summaryrefslogtreecommitdiffstats
path: root/cmds
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2009-10-16 15:32:50 -0700
committerAndreas Huber <andih@google.com>2009-10-16 15:32:50 -0700
commitb90ca5b1beb9c73e09f46773172c08fad12d6a95 (patch)
treee0deff452bde0e2a1d1f323d20a4a00c1ae3554a /cmds
parentb02ee76cc797db50bff7684c17d826ebbefd423c (diff)
parenta3b28504ad5e5d1a6265d385031f2aaba01cec76 (diff)
downloadframeworks_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')
-rw-r--r--cmds/stagefright/stagefright.cpp23
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, &timestampUs));
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",