Index: libhb/muxmp4.c =================================================================== --- libhb/muxmp4.c (revision 1278) +++ libhb/muxmp4.c (working copy) @@ -242,61 +242,10 @@ 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;