diff options
author | Jean-Baptiste Queru <jbq@google.com> | 2012-08-21 10:14:59 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-08-21 10:14:59 -0700 |
commit | 8a825ec079da6f2b89149c53568cb9721c10d923 (patch) | |
tree | d1d83f2efea1c1b7ba86450bf4adada59a795b52 /media | |
parent | 41ee747fc019eb5856454c698adf23f55073c69e (diff) | |
parent | aa411adfc39a4ee6c4ff57952296ba40c2fbfdb3 (diff) | |
download | frameworks_av-8a825ec079da6f2b89149c53568cb9721c10d923.zip frameworks_av-8a825ec079da6f2b89149c53568cb9721c10d923.tar.gz frameworks_av-8a825ec079da6f2b89149c53568cb9721c10d923.tar.bz2 |
am aa411adf: Merge "h264 streaming: make profile-level-id optional"
* commit 'aa411adfc39a4ee6c4ff57952296ba40c2fbfdb3':
h264 streaming: make profile-level-id optional
Diffstat (limited to 'media')
-rw-r--r-- | media/libstagefright/rtsp/APacketSource.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/media/libstagefright/rtsp/APacketSource.cpp b/media/libstagefright/rtsp/APacketSource.cpp index fc177d2..ddd2f06 100644 --- a/media/libstagefright/rtsp/APacketSource.cpp +++ b/media/libstagefright/rtsp/APacketSource.cpp @@ -110,14 +110,12 @@ static sp<ABuffer> MakeAVCCodecSpecificData( *height = 0; AString val; - if (!GetAttribute(params, "profile-level-id", &val)) { - return NULL; + sp<ABuffer> profileLevelID = NULL; + if (GetAttribute(params, "profile-level-id", &val)) { + profileLevelID = decodeHex(val); + CHECK_EQ(profileLevelID->size(), 3u); } - sp<ABuffer> profileLevelID = decodeHex(val); - CHECK(profileLevelID != NULL); - CHECK_EQ(profileLevelID->size(), 3u); - Vector<sp<ABuffer> > paramSets; size_t numSeqParameterSets = 0; @@ -176,8 +174,15 @@ static sp<ABuffer> MakeAVCCodecSpecificData( uint8_t *out = csd->data(); *out++ = 0x01; // configurationVersion - memcpy(out, profileLevelID->data(), 3); - out += 3; + if (profileLevelID != NULL) { + memcpy(out, profileLevelID->data(), 3); + out += 3; + } else { + *out++ = 0x42; // Baseline profile + *out++ = 0xE0; // Common subset for all profiles + *out++ = 0x0A; // Level 1 + } + *out++ = (0x3f << 2) | 1; // lengthSize == 2 bytes *out++ = 0xe0 | numSeqParameterSets; |