Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0d6c24d4 authored by Wonsik Kim's avatar Wonsik Kim
Browse files

mpeg2ts: report estimated duration only when stabilized

Bug: 31964524
Test: adb shell am instrument -w -r -e class com.android.mediaframeworktest.stress.MediaPlayerStressTest com.android.mediaframeworktest/.MediaPlayerStressTestRunner
Change-Id: Iddd0236cf8ebd58fce76f57802d5429429070f25
parent d4370268
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -212,23 +212,22 @@ void MPEG2TSExtractor::init() {
                        - mSeekSyncPoints->keyAt(0);
                off64_t diffOffset = mSeekSyncPoints->valueAt(prevSyncSize - 1)
                        - mSeekSyncPoints->valueAt(0);
                durationUs = size * diffUs / diffOffset;
                durations.push_back(durationUs);
                int64_t currentDurationUs = size * diffUs / diffOffset;
                durations.push_back(currentDurationUs);
                if (durations.size() > 5) {
                    durations.erase(durations.begin());
                    int64_t min = *durations.begin();
                    int64_t max = *durations.begin();
                    for (List<int64_t>::iterator i = durations.begin();
                            i != durations.end();
                            ++i) {
                        if (min > *i) {
                            min = *i;
                    for (auto duration : durations) {
                        if (min > duration) {
                            min = duration;
                        }
                        if (max < *i) {
                            max = *i;
                        if (max < duration) {
                            max = duration;
                        }
                    }
                    if (max - min < 500 * 1000) {
                        durationUs = currentDurationUs;
                        break;
                    }
                }