Extract video thumbnails from the largest sync sample among the first 20.
Also fixes OMXCodec seek behaviour on the very first call to OMXCodec::read()
diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp
index ff001e8..f8c0bda 100644
--- a/media/libstagefright/OMXCodec.cpp
+++ b/media/libstagefright/OMXCodec.cpp
@@ -1943,9 +1943,24 @@
return UNKNOWN_ERROR;
}
+ bool seeking = false;
+ int64_t seekTimeUs;
+ if (options && options->getSeekTo(&seekTimeUs)) {
+ seeking = true;
+ }
+
if (mInitialBufferSubmit) {
mInitialBufferSubmit = false;
+ if (seeking) {
+ CHECK(seekTimeUs >= 0);
+ mSeekTimeUs = seekTimeUs;
+
+ // There's no reason to trigger the code below, there's
+ // nothing to flush yet.
+ seeking = false;
+ }
+
drainInputBuffers();
if (mState == EXECUTING) {
@@ -1955,8 +1970,7 @@
}
}
- int64_t seekTimeUs;
- if (options && options->getSeekTo(&seekTimeUs)) {
+ if (seeking) {
CODEC_LOGV("seeking to %lld us (%.2f secs)", seekTimeUs, seekTimeUs / 1E6);
mSignalledEOS = false;