summaryrefslogtreecommitdiffstats
path: root/media/libstagefright
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2012-11-20 09:27:21 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2012-11-20 09:27:21 -0800
commit34a895226e062c15197e2be1dd710098224702c3 (patch)
treef1d7c52b77772845505c7acc5806b58e3c77d9b7 /media/libstagefright
parentbc9ea63daaad764d242ce0eadfeb697abb9ce34e (diff)
parentfcc6d852b6efb93c1f189399446e4219578cc311 (diff)
downloadframeworks_av-34a895226e062c15197e2be1dd710098224702c3.zip
frameworks_av-34a895226e062c15197e2be1dd710098224702c3.tar.gz
frameworks_av-34a895226e062c15197e2be1dd710098224702c3.tar.bz2
am 343f9c81: am dca2b5d7: Merge "Changed parsing of trkn and disk from 8 bits to 16 bits"
* commit '343f9c81f293f56e09b1cc1921844ecd3372e435': Changed parsing of trkn and disk from 8 bits to 16 bits
Diffstat (limited to 'media/libstagefright')
-rw-r--r--media/libstagefright/MPEG4Extractor.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/MPEG4Extractor.cpp
index dc8e4a3..cc71d4c 100644
--- a/media/libstagefright/MPEG4Extractor.cpp
+++ b/media/libstagefright/MPEG4Extractor.cpp
@@ -1633,8 +1633,9 @@ status_t MPEG4Extractor::parseMetaData(off64_t offset, size_t size) {
{
if (size == 16 && flags == 0) {
char tmp[16];
- sprintf(tmp, "%d/%d",
- (int)buffer[size - 5], (int)buffer[size - 3]);
+ uint16_t* pTrack = (uint16_t*)&buffer[10];
+ uint16_t* pTotalTracks = (uint16_t*)&buffer[12];
+ sprintf(tmp, "%d/%d", ntohs(*pTrack), ntohs(*pTotalTracks));
mFileMetaData->setCString(kKeyCDTrackNumber, tmp);
}
@@ -1642,10 +1643,11 @@ status_t MPEG4Extractor::parseMetaData(off64_t offset, size_t size) {
}
case FOURCC('d', 'i', 's', 'k'):
{
- if (size == 14 && flags == 0) {
+ if ((size == 14 || size == 16) && flags == 0) {
char tmp[16];
- sprintf(tmp, "%d/%d",
- (int)buffer[size - 3], (int)buffer[size - 1]);
+ uint16_t* pDisc = (uint16_t*)&buffer[10];
+ uint16_t* pTotalDiscs = (uint16_t*)&buffer[12];
+ sprintf(tmp, "%d/%d", ntohs(*pDisc), ntohs(*pTotalDiscs));
mFileMetaData->setCString(kKeyDiscNumber, tmp);
}