diff options
author | Andreas Huber <andih@google.com> | 2011-09-08 14:12:44 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2011-09-30 15:26:31 -0700 |
commit | 2944eca607304a095ea43ba2b8f0b9de61249f9f (patch) | |
tree | f3dbe4e61cc94ec086b098c7387034f226a2ac14 /media/libstagefright/mpeg2ts/ESQueue.cpp | |
parent | d3523f89a867afa111bb332887bf006ec3ae93e6 (diff) | |
download | frameworks_av-2944eca607304a095ea43ba2b8f0b9de61249f9f.zip frameworks_av-2944eca607304a095ea43ba2b8f0b9de61249f9f.tar.gz frameworks_av-2944eca607304a095ea43ba2b8f0b9de61249f9f.tar.bz2 |
Support for an MPEG2 Program Stream extractor.
Change-Id: I606d87c278f72b22a5b6d7ee57bce6b02e280d41
Diffstat (limited to 'media/libstagefright/mpeg2ts/ESQueue.cpp')
-rw-r--r-- | media/libstagefright/mpeg2ts/ESQueue.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/media/libstagefright/mpeg2ts/ESQueue.cpp b/media/libstagefright/mpeg2ts/ESQueue.cpp index f8a1d84..1045e09 100644 --- a/media/libstagefright/mpeg2ts/ESQueue.cpp +++ b/media/libstagefright/mpeg2ts/ESQueue.cpp @@ -581,6 +581,8 @@ sp<ABuffer> ElementaryStreamQueue::dequeueAccessUnitMPEGAudio() { return NULL; } + unsigned layer = 4 - ((header >> 17) & 3); + sp<ABuffer> accessUnit = new ABuffer(frameSize); memcpy(accessUnit->data(), data, frameSize); @@ -597,7 +599,24 @@ sp<ABuffer> ElementaryStreamQueue::dequeueAccessUnitMPEGAudio() { if (mFormat == NULL) { mFormat = new MetaData; - mFormat->setCString(kKeyMIMEType, MEDIA_MIMETYPE_AUDIO_MPEG); + + switch (layer) { + case 1: + mFormat->setCString( + kKeyMIMEType, MEDIA_MIMETYPE_AUDIO_MPEG_LAYER_I); + break; + case 2: + mFormat->setCString( + kKeyMIMEType, MEDIA_MIMETYPE_AUDIO_MPEG_LAYER_II); + break; + case 3: + mFormat->setCString( + kKeyMIMEType, MEDIA_MIMETYPE_AUDIO_MPEG); + break; + default: + TRESPASS(); + } + mFormat->setInt32(kKeySampleRate, samplingRate); mFormat->setInt32(kKeyChannelCount, numChannels); } |