diff options
author | Andreas Huber <andih@google.com> | 2009-10-16 15:32:50 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2009-10-16 15:32:50 -0700 |
commit | b90ca5b1beb9c73e09f46773172c08fad12d6a95 (patch) | |
tree | e0deff452bde0e2a1d1f323d20a4a00c1ae3554a /cmds/stagefright | |
parent | b02ee76cc797db50bff7684c17d826ebbefd423c (diff) | |
parent | a3b28504ad5e5d1a6265d385031f2aaba01cec76 (diff) | |
download | frameworks_av-b90ca5b1beb9c73e09f46773172c08fad12d6a95.zip frameworks_av-b90ca5b1beb9c73e09f46773172c08fad12d6a95.tar.gz frameworks_av-b90ca5b1beb9c73e09f46773172c08fad12d6a95.tar.bz2 |
resolved conflicts for merge of f585be7f to eclair-mr2
Diffstat (limited to 'cmds/stagefright')
-rw-r--r-- | cmds/stagefright/stagefright.cpp | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/cmds/stagefright/stagefright.cpp b/cmds/stagefright/stagefright.cpp index 7dc99c1..3b7cece 100644 --- a/cmds/stagefright/stagefright.cpp +++ b/cmds/stagefright/stagefright.cpp @@ -52,6 +52,9 @@ static int64_t getNowUs() { static void playSource(OMXClient *client, const sp<MediaSource> &source) { sp<MetaData> meta = source->getFormat(); + int64_t durationUs; + CHECK(meta->findInt64(kKeyDuration, &durationUs)); + sp<OMXCodec> decoder = OMXCodec::Create( client->interface(), meta, false /* createEncoder */, source); @@ -61,7 +64,7 @@ static void playSource(OMXClient *client, const sp<MediaSource> &source) { decoder->start(); - if (gReproduceBug == 3) { + if (gReproduceBug >= 3 && gReproduceBug <= 5) { status_t err; MediaBuffer *buffer; MediaSource::ReadOptions options; @@ -85,10 +88,19 @@ static void playSource(OMXClient *client, const sp<MediaSource> &source) { CHECK(buffer->meta_data()->findInt64(kKeyTime, ×tampUs)); bool failed = false; + if (seekTimeUs >= 0) { int64_t diff = timestampUs - seekTimeUs; - if (diff > 500000) { + if (diff < 0) { + diff = -diff; + } + + if ((gReproduceBug == 4 && diff > 500000) + || (gReproduceBug == 5 && timestampUs < 0)) { + printf("wanted: %.2f secs, got: %.2f secs\n", + seekTimeUs / 1E6, timestampUs / 1E6); + printf("ERROR: "); failed = true; } @@ -105,13 +117,16 @@ static void playSource(OMXClient *client, const sp<MediaSource> &source) { } shouldSeek = ((double)rand() / RAND_MAX) < 0.1; - shouldSeek = false; + + if (gReproduceBug == 3) { + shouldSeek = false; + } } seekTimeUs = -1; if (shouldSeek) { - seekTimeUs = (rand() * 30E6) / RAND_MAX; + seekTimeUs = (rand() * (float)durationUs) / RAND_MAX; options.setSeekTo(seekTimeUs); printf("seeking to %lld us (%.2f secs)\n", |