diff options
-rw-r--r-- | media/libstagefright/OggExtractor.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/media/libstagefright/OggExtractor.cpp b/media/libstagefright/OggExtractor.cpp index 16f094b..641a876 100644 --- a/media/libstagefright/OggExtractor.cpp +++ b/media/libstagefright/OggExtractor.cpp @@ -361,11 +361,17 @@ status_t MyVorbisExtractor::readNextPacket(MediaBuffer **out) { memcpy(tmp->data(), buffer->data(), buffer->range_length()); tmp->set_range(0, buffer->range_length()); buffer->release(); - } else if (mVi.rate) { + } else { // XXX Not only is this not technically the correct time for // this packet, we also stamp every packet in this page // with the same time. This needs fixing later. - timeUs = mCurrentPage.mGranulePosition * 1000000ll / mVi.rate; + + if (mVi.rate) { + // Rate may not have been initialized yet if we're currently + // reading the configuration packets... + // Fortunately, the timestamp doesn't matter for those. + timeUs = mCurrentPage.mGranulePosition * 1000000ll / mVi.rate; + } tmp->set_range(0, 0); } buffer = tmp; |