From 6dff4983e3871650cd0bb220796b1a49236ace91 Mon Sep 17 00:00:00 2001 From: Surajit Podder Date: Tue, 20 Aug 2013 05:24:15 +0530 Subject: libstagefright: Use proper ctts offset Calculate ctts offset as difference between composition time and decoding time, and avoid adding kMaxCttsOffsetTimeUs as it increases the sample timestamp by the same amount which leads to av sync loss for B-frames. CRs-Fixed: 524739 Change-Id: I75a1bb594536623e3a445af2ee1ceb0cf0926a6e --- media/libstagefright/MPEG4Writer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'media/libstagefright/MPEG4Writer.cpp') diff --git a/media/libstagefright/MPEG4Writer.cpp b/media/libstagefright/MPEG4Writer.cpp index fdc58af..df37ea8 100644 --- a/media/libstagefright/MPEG4Writer.cpp +++ b/media/libstagefright/MPEG4Writer.cpp @@ -2328,8 +2328,8 @@ status_t MPEG4Writer::Track::threadEntry() { CHECK(meta_data->findInt64(kKeyDecodingTime, &decodingTimeUs)); decodingTimeUs -= previousPausedDurationUs; cttsOffsetTimeUs = - timestampUs + kMaxCttsOffsetTimeUs - decodingTimeUs; - if (WARN_UNLESS(cttsOffsetTimeUs >= 0ll, "for %s track", trackName)) { + timestampUs - decodingTimeUs; + if (WARN_UNLESS(kMaxCttsOffsetTimeUs >= decodingTimeUs - timestampUs, "for %s track", trackName)) { copy->release(); return ERROR_MALFORMED; } -- cgit v1.1