]> git.sesse.net Git - vlc/commitdiff
* src/video_output/vout_intf.c, src/misc/image.c: proper aspect ratio for snapshots.
authorGildas Bazin <gbazin@videolan.org>
Thu, 17 Mar 2005 13:14:04 +0000 (13:14 +0000)
committerGildas Bazin <gbazin@videolan.org>
Thu, 17 Mar 2005 13:14:04 +0000 (13:14 +0000)
src/misc/image.c
src/video_output/vout_intf.c

index 37511e6a31d37b063ab427f1591b1942d5c007bd..af7d6dd1dc216d4313642ae0f4c8bbc7e53a1a25 100644 (file)
@@ -581,6 +581,15 @@ static encoder_t *CreateEncoder( vlc_object_t *p_this, video_format_t *fmt_in,
         p_enc->fmt_in.video.i_width = fmt_out->i_width;
         p_enc->fmt_in.video.i_height = fmt_out->i_height;
     }
+    else if( fmt_out->i_sar_num && fmt_out->i_sar_den &&
+            fmt_out->i_sar_num * fmt_in->i_sar_den !=
+             fmt_out->i_sar_den * fmt_in->i_sar_num )
+    {
+        p_enc->fmt_in.video.i_width =
+           fmt_in->i_sar_num * (int64_t)fmt_out->i_sar_den * fmt_in->i_width /
+            fmt_in->i_sar_den / fmt_out->i_sar_num;
+    }
+
     p_enc->fmt_in.video.i_frame_rate = 25;
     p_enc->fmt_in.video.i_frame_rate_base = 1;
 
index 1a4115af9f621d2d4e80ace2a71b9ada4d30df50..85faaeffa0c9b66c372e711c9002ed1b55266b03 100644 (file)
@@ -356,6 +356,9 @@ int vout_Snapshot( vout_thread_t *p_vout, picture_t *p_pic )
     fmt_in.i_chroma = p_vout->render.i_chroma;
     fmt_in.i_width = p_vout->render.i_width;
     fmt_in.i_height = p_vout->render.i_height;
+    fmt_in.i_sar_num = p_vout->fmt_render.i_sar_num;
+    fmt_in.i_sar_den = p_vout->fmt_render.i_sar_den;
+    fmt_out.i_sar_num = fmt_out.i_sar_den = 1;
     i_ret = image_WriteUrl( p_image, p_pic, &fmt_in, &fmt_out, psz_filename );
     if( i_ret != VLC_SUCCESS )
     {