am 0ea4ed3b: Don\'t drop a late frame which may lead to missing I frames in the MP4 file

Merge commit '0ea4ed3bbb28fb6913392d2bee55621a1290dca8' into gingerbread-plus-aosp

* commit '0ea4ed3bbb28fb6913392d2bee55621a1290dca8':
  Don't drop a late frame which may lead to missing I frames in the MP4 file
This commit is contained in:
James Dong
2010-08-19 18:07:08 -07:00
committed by Android Git Automerger

View File

@@ -1524,10 +1524,24 @@ status_t MPEG4Writer::Track::threadEntry() {
CHECK(timestampUs >= 0);
if (mNumSamples > 1) {
if (timestampUs <= lastTimestampUs) {
LOGW("Drop a frame, since it arrives too late!");
LOGW("Frame arrives too late!");
#if 0
// Drop the late frame.
copy->release();
copy = NULL;
continue;
#else
// Don't drop the late frame, since dropping a frame may cause
// problems later during playback
// The idea here is to avoid having two or more samples with the
// same timestamp in the output file.
if (mTimeScale >= 1000000LL) {
timestampUs += 1;
} else {
timestampUs += (1000000LL + (mTimeScale >> 1)) / mTimeScale;
}
#endif
}
}