]> granicus.if.org Git - libx264/commitdiff
write aspect ratio in mp4
authorvmrsss <vmrsss@gmail.com>
Sat, 17 May 2008 06:50:22 +0000 (00:50 -0600)
committerLoren Merritt <pengvado@akuvian.org>
Sat, 17 May 2008 06:54:45 +0000 (00:54 -0600)
muxers.c

index 770bb4c4cbbcabd5cff7844e05bd8265cb42fb7e..41b8e7d5e2d426fc331f7995091a3896da5dd1f8 100644 (file)
--- a/muxers.c
+++ b/muxers.c
@@ -676,6 +676,18 @@ int set_param_mp4( hnd_t handle, x264_param_t *p_param )
     gf_isom_set_visual_info(p_mp4->p_file, p_mp4->i_track, p_mp4->i_descidx,
         p_param->i_width, p_param->i_height);
 
+    if( p_param->vui.i_sar_width && p_param->vui.i_sar_height )
+    {
+        uint64_t dw = p_param->i_width << 16;
+        uint64_t dh = p_param->i_height << 16;
+        double sar = (double)p_param->vui.i_sar_width / p_param->vui.i_sar_height;
+        if( sar > 1.0 )
+            dw *= sar ;
+        else
+            dh /= sar;
+        gf_isom_set_track_layout_info( p_mp4->p_file, p_mp4->i_track, dw, dh, 0, 0, 0 );
+    }
+
     p_mp4->p_sample->data = (char *)malloc(p_param->i_width * p_param->i_height * 3 / 2);
     if (p_mp4->p_sample->data == NULL)
         return -1;