]> granicus.if.org Git - handbrake/commitdiff
Remove the transformation matrix, and use the width field of the tkhd atom to do...
authorritsuka <damiog@gmail.com>
Sun, 17 Feb 2008 17:05:24 +0000 (17:05 +0000)
committerritsuka <damiog@gmail.com>
Sun, 17 Feb 2008 17:05:24 +0000 (17:05 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1280 b64f7644-9d1e-0410-96f1-a4d463321fa5

libhb/muxmp4.c

index 3f043dbddd516a9dab2958750131a1f4e2b5e911..8f9ba1a0e8d0c5b2b988f8649d73775026d73aeb 100644 (file)
@@ -242,61 +242,10 @@ static int MP4Init( hb_mux_object_t * m )
         height = job->pixel_aspect_height;
         
         MP4AddPixelAspectRatio(m->file, mux_data->track, (uint32_t)width, (uint32_t)height);
+        
+        MP4SetTrackFloatProperty(m->file, mux_data->track, "tkhd.width", job->width * (width / height));
     }
 
-
-       if( job->pixel_ratio ) {
-           /* apply the anamorphic transformation matrix as well */
-               uint8_t* val;
-               uint8_t nval[38];
-               uint32_t *ptr32 = (uint32_t*) (nval + 2);
-               uint32_t size;
-
-               MP4GetBytesProperty(m->file, "moov.trak.tkhd.reserved3", &val, &size);
-
-               if (size == 38) {
-
-                       memcpy(nval, val, size);
-
-                       float width, height;
-                       width = job->pixel_aspect_width;
-                       height = job->pixel_aspect_height;
-
-           uint32_t pixelRatioInt;
-           if (width >= height)
-           {
-               pixelRatioInt = (uint32_t)((width / height) * 0x10000);
-
-#ifdef WORDS_BIGENDIAN
-               ptr32[0] = pixelRatioInt;
-#else
-               /* we need to switch the endianness, as the file format expects big endian */
-               ptr32[0] = ((pixelRatioInt & 0x000000FF) << 24) + ((pixelRatioInt & 0x0000FF00) << 8) + ((pixelRatioInt & 0x00FF0000) >> 8) + ((pixelRatioInt & 0xFF000000) >> 24);
-#endif
-
-           }
-           else
-           {
-               pixelRatioInt = (uint32_t)((height / width) * 0x10000);
-#ifdef WORDS_BIGENDIAN
-               ptr32[4] = pixelRatioInt;
-#else
-                /* we need to switch the endianness, as the file format expects big endian */
-                ptr32[4] = ((pixelRatioInt & 0x000000FF) << 24) + ((pixelRatioInt & 0x0000FF00) << 8) + ((pixelRatioInt & 0x00FF0000) >> 8) + ((pixelRatioInt & 0xFF000000) >> 24);
-#endif
-            }
-
-
-                       if(!MP4SetBytesProperty(m->file, "moov.trak.tkhd.reserved3", nval, size)) {
-                               hb_log("Problem setting transform matrix");
-                       }
-                       
-               }
-
-       }
-
-       /* end of transformation matrix */
-
        /* firstAudioTrack will be used to reference the first audio track when we add a chapter track */
        MP4TrackId firstAudioTrack = 0;