From 77847c2366b758ca05201d93cbdbc3375005890b Mon Sep 17 00:00:00 2001 From: ritsuka Date: Sun, 17 Feb 2008 17:05:24 +0000 Subject: [PATCH] Remove the transformation matrix, and use the width field of the tkhd atom to do anamorphic in quicktime based players and devices. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1280 b64f7644-9d1e-0410-96f1-a4d463321fa5 --- libhb/muxmp4.c | 55 ++----------------------------------------------------- 1 file changed, 2 insertions(+), 53 deletions(-) diff --git a/libhb/muxmp4.c b/libhb/muxmp4.c index 3f043dbd..8f9ba1a0 100644 --- a/libhb/muxmp4.c +++ b/libhb/muxmp4.c @@ -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; -- 2.11.4.GIT