Loading apex/manifest.json +1 −1 Original line number Original line Diff line number Diff line { { "name": "com.android.media", "name": "com.android.media", "version": 300900600 "version": 300900700 } } apex/manifest_codec.json +1 −1 Original line number Original line Diff line number Diff line { { "name": "com.android.media.swcodec", "name": "com.android.media.swcodec", "version": 300900600 "version": 300900700 } } media/extractors/mp4/MPEG4Extractor.cpp +10 −9 Original line number Original line Diff line number Diff line Loading @@ -3817,43 +3817,44 @@ status_t MPEG4Extractor::parseITunesMetaData(off64_t offset, size_t size) { switch ((int32_t)mPath[4]) { switch ((int32_t)mPath[4]) { case FOURCC("\251alb"): case FOURCC("\251alb"): { { metadataKey = "album"; metadataKey = AMEDIAFORMAT_KEY_ALBUM; break; break; } } case FOURCC("\251ART"): case FOURCC("\251ART"): { { metadataKey = "artist"; metadataKey = AMEDIAFORMAT_KEY_ARTIST; break; break; } } case FOURCC("aART"): case FOURCC("aART"): { { metadataKey = "albumartist"; metadataKey = AMEDIAFORMAT_KEY_ALBUMARTIST; break; break; } } case FOURCC("\251day"): case FOURCC("\251day"): { { metadataKey = "year"; metadataKey = AMEDIAFORMAT_KEY_YEAR; break; break; } } case FOURCC("\251nam"): case FOURCC("\251nam"): { { metadataKey = "title"; metadataKey = AMEDIAFORMAT_KEY_TITLE; break; break; } } case FOURCC("\251wrt"): case FOURCC("\251wrt"): { { metadataKey = "writer"; // various open source taggers agree that the "©wrt" tag is for composer, not writer metadataKey = AMEDIAFORMAT_KEY_COMPOSER; break; break; } } case FOURCC("covr"): case FOURCC("covr"): { { metadataKey = "albumart"; metadataKey = AMEDIAFORMAT_KEY_ALBUMART; break; break; } } case FOURCC("gnre"): case FOURCC("gnre"): case FOURCC("\251gen"): case FOURCC("\251gen"): { { metadataKey = "genre"; metadataKey = AMEDIAFORMAT_KEY_GENRE; break; break; } } case FOURCC("cpil"): case FOURCC("cpil"): Loading Loading @@ -3958,7 +3959,7 @@ status_t MPEG4Extractor::parseITunesMetaData(off64_t offset, size_t size) { if (!strcmp(metadataKey, "albumart")) { if (!strcmp(metadataKey, "albumart")) { AMediaFormat_setBuffer(mFileMetaData, metadataKey, AMediaFormat_setBuffer(mFileMetaData, metadataKey, buffer + 8, size - 8); buffer + 8, size - 8); } else if (!strcmp(metadataKey, "genre")) { } else if (!strcmp(metadataKey, AMEDIAFORMAT_KEY_GENRE)) { if (flags == 0) { if (flags == 0) { // uint8_t genre code, iTunes genre codes are // uint8_t genre code, iTunes genre codes are // the standard id3 codes, except they start // the standard id3 codes, except they start Loading media/libstagefright/codecs/mp3dec/SoftMP3.cpp +14 −0 Original line number Original line Diff line number Diff line Loading @@ -307,6 +307,20 @@ void SoftMP3::onQueueFilled(OMX_U32 /* portIndex */) { if (inHeader->nFlags & OMX_BUFFERFLAG_EOS) { if (inHeader->nFlags & OMX_BUFFERFLAG_EOS) { mSawInputEos = true; mSawInputEos = true; if (mIsFirst && !inHeader->nFilledLen) { ALOGV("empty first EOS"); outHeader->nFilledLen = 0; outHeader->nTimeStamp = inHeader->nTimeStamp; outHeader->nFlags = OMX_BUFFERFLAG_EOS; mSignalledOutputEos = true; outInfo->mOwnedByUs = false; outQueue.erase(outQueue.begin()); notifyFillBufferDone(outHeader); inInfo->mOwnedByUs = false; inQueue.erase(inQueue.begin()); notifyEmptyBufferDone(inHeader); return; } } } mConfig->pInputBuffer = mConfig->pInputBuffer = Loading Loading
apex/manifest.json +1 −1 Original line number Original line Diff line number Diff line { { "name": "com.android.media", "name": "com.android.media", "version": 300900600 "version": 300900700 } }
apex/manifest_codec.json +1 −1 Original line number Original line Diff line number Diff line { { "name": "com.android.media.swcodec", "name": "com.android.media.swcodec", "version": 300900600 "version": 300900700 } }
media/extractors/mp4/MPEG4Extractor.cpp +10 −9 Original line number Original line Diff line number Diff line Loading @@ -3817,43 +3817,44 @@ status_t MPEG4Extractor::parseITunesMetaData(off64_t offset, size_t size) { switch ((int32_t)mPath[4]) { switch ((int32_t)mPath[4]) { case FOURCC("\251alb"): case FOURCC("\251alb"): { { metadataKey = "album"; metadataKey = AMEDIAFORMAT_KEY_ALBUM; break; break; } } case FOURCC("\251ART"): case FOURCC("\251ART"): { { metadataKey = "artist"; metadataKey = AMEDIAFORMAT_KEY_ARTIST; break; break; } } case FOURCC("aART"): case FOURCC("aART"): { { metadataKey = "albumartist"; metadataKey = AMEDIAFORMAT_KEY_ALBUMARTIST; break; break; } } case FOURCC("\251day"): case FOURCC("\251day"): { { metadataKey = "year"; metadataKey = AMEDIAFORMAT_KEY_YEAR; break; break; } } case FOURCC("\251nam"): case FOURCC("\251nam"): { { metadataKey = "title"; metadataKey = AMEDIAFORMAT_KEY_TITLE; break; break; } } case FOURCC("\251wrt"): case FOURCC("\251wrt"): { { metadataKey = "writer"; // various open source taggers agree that the "©wrt" tag is for composer, not writer metadataKey = AMEDIAFORMAT_KEY_COMPOSER; break; break; } } case FOURCC("covr"): case FOURCC("covr"): { { metadataKey = "albumart"; metadataKey = AMEDIAFORMAT_KEY_ALBUMART; break; break; } } case FOURCC("gnre"): case FOURCC("gnre"): case FOURCC("\251gen"): case FOURCC("\251gen"): { { metadataKey = "genre"; metadataKey = AMEDIAFORMAT_KEY_GENRE; break; break; } } case FOURCC("cpil"): case FOURCC("cpil"): Loading Loading @@ -3958,7 +3959,7 @@ status_t MPEG4Extractor::parseITunesMetaData(off64_t offset, size_t size) { if (!strcmp(metadataKey, "albumart")) { if (!strcmp(metadataKey, "albumart")) { AMediaFormat_setBuffer(mFileMetaData, metadataKey, AMediaFormat_setBuffer(mFileMetaData, metadataKey, buffer + 8, size - 8); buffer + 8, size - 8); } else if (!strcmp(metadataKey, "genre")) { } else if (!strcmp(metadataKey, AMEDIAFORMAT_KEY_GENRE)) { if (flags == 0) { if (flags == 0) { // uint8_t genre code, iTunes genre codes are // uint8_t genre code, iTunes genre codes are // the standard id3 codes, except they start // the standard id3 codes, except they start Loading
media/libstagefright/codecs/mp3dec/SoftMP3.cpp +14 −0 Original line number Original line Diff line number Diff line Loading @@ -307,6 +307,20 @@ void SoftMP3::onQueueFilled(OMX_U32 /* portIndex */) { if (inHeader->nFlags & OMX_BUFFERFLAG_EOS) { if (inHeader->nFlags & OMX_BUFFERFLAG_EOS) { mSawInputEos = true; mSawInputEos = true; if (mIsFirst && !inHeader->nFilledLen) { ALOGV("empty first EOS"); outHeader->nFilledLen = 0; outHeader->nTimeStamp = inHeader->nTimeStamp; outHeader->nFlags = OMX_BUFFERFLAG_EOS; mSignalledOutputEos = true; outInfo->mOwnedByUs = false; outQueue.erase(outQueue.begin()); notifyFillBufferDone(outHeader); inInfo->mOwnedByUs = false; inQueue.erase(inQueue.begin()); notifyEmptyBufferDone(inHeader); return; } } } mConfig->pInputBuffer = mConfig->pInputBuffer = Loading