summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/MPEG4Extractor.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2010-08-06 14:13:10 -0700
committerAndreas Huber <andih@google.com>2010-08-06 15:46:17 -0700
commit8bf59e735760af0b6a85747fd90bf8cf1e5388d7 (patch)
treee5225adeb9422fffd7eeee833315f1c4a979a446 /media/libstagefright/MPEG4Extractor.cpp
parent2500c2d6ff55c26452ccba925a9f8b86b926f43e (diff)
downloadframeworks_av-8bf59e735760af0b6a85747fd90bf8cf1e5388d7.zip
frameworks_av-8bf59e735760af0b6a85747fd90bf8cf1e5388d7.tar.gz
frameworks_av-8bf59e735760af0b6a85747fd90bf8cf1e5388d7.tar.bz2
Support for communicating if a buffer read from the _extractor_ is a sync sample or not.
Change-Id: Ie71506224d937cfff1fa1273bfac31c47db8845f related-to-bug: 2900534
Diffstat (limited to 'media/libstagefright/MPEG4Extractor.cpp')
-rw-r--r--media/libstagefright/MPEG4Extractor.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/MPEG4Extractor.cpp
index d937838..6af3a7f 100644
--- a/media/libstagefright/MPEG4Extractor.cpp
+++ b/media/libstagefright/MPEG4Extractor.cpp
@@ -1551,13 +1551,14 @@ status_t MPEG4Source::read(
off_t offset;
size_t size;
uint32_t dts;
+ bool isSyncSample;
bool newBuffer = false;
if (mBuffer == NULL) {
newBuffer = true;
status_t err =
mSampleTable->getMetaDataForSample(
- mCurrentSampleIndex, &offset, &size, &dts);
+ mCurrentSampleIndex, &offset, &size, &dts, &isSyncSample);
if (err != OK) {
return err;
@@ -1594,6 +1595,10 @@ status_t MPEG4Source::read(
kKeyTargetTime, targetSampleTimeUs);
}
+ if (isSyncSample) {
+ mBuffer->meta_data()->setInt32(kKeyIsSyncFrame, 1);
+ }
+
++mCurrentSampleIndex;
}
@@ -1696,6 +1701,10 @@ status_t MPEG4Source::read(
kKeyTargetTime, targetSampleTimeUs);
}
+ if (isSyncSample) {
+ mBuffer->meta_data()->setInt32(kKeyIsSyncFrame, 1);
+ }
+
++mCurrentSampleIndex;
*out = mBuffer;