diff options
| author | Andreas Huber <andih@google.com> | 2012-08-09 13:51:50 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2012-08-09 13:51:50 -0700 |
| commit | 7a06b60f697ba0729ad3a2230529a7b493b9cfb4 (patch) | |
| tree | b584d660f25525a79993513fcd55ec227207ee67 /media/libmediaplayerservice/nuplayer/mp4/Parser.cpp | |
| parent | e9103a17dd0957e3dd21c2b424e03ac79faf4192 (diff) | |
| parent | 8f8bffd61352915af9d7af6d0279ada039a58d7e (diff) | |
| download | frameworks_av-7a06b60f697ba0729ad3a2230529a7b493b9cfb4.zip frameworks_av-7a06b60f697ba0729ad3a2230529a7b493b9cfb4.tar.gz frameworks_av-7a06b60f697ba0729ad3a2230529a7b493b9cfb4.tar.bz2 | |
am 8f8bffd6: am faa88edb: Merge "Fix static sample table processing, add support for h.263 video." into jb-mr1-dev
* commit '8f8bffd61352915af9d7af6d0279ada039a58d7e':
Fix static sample table processing, add support for h.263 video.
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/mp4/Parser.cpp')
| -rw-r--r-- | media/libmediaplayerservice/nuplayer/mp4/Parser.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/nuplayer/mp4/Parser.cpp b/media/libmediaplayerservice/nuplayer/mp4/Parser.cpp index b9fe819..7938fa4 100644 --- a/media/libmediaplayerservice/nuplayer/mp4/Parser.cpp +++ b/media/libmediaplayerservice/nuplayer/mp4/Parser.cpp @@ -271,6 +271,19 @@ void Parser::onMessageReceived(const sp<AMessage> &msg) { mBuffer->setRange(0, mBuffer->size()); size_t maxBytesToRead = mBuffer->capacity() - mBuffer->size(); + + if (maxBytesToRead < needed) { + ALOGI("resizing buffer."); + + sp<ABuffer> newBuffer = + new ABuffer((mBuffer->size() + needed + 1023) & ~1023); + memcpy(newBuffer->data(), mBuffer->data(), mBuffer->size()); + newBuffer->setRange(0, mBuffer->size()); + + mBuffer = newBuffer; + maxBytesToRead = mBuffer->capacity() - mBuffer->size(); + } + CHECK_GE(maxBytesToRead, needed); ssize_t n = mSource->readAt( @@ -1023,6 +1036,11 @@ status_t Parser::parseVisualSampleEntry( case FOURCC('m', 'p', '4', 'v'): format->setString("mime", MEDIA_MIMETYPE_VIDEO_MPEG4); break; + case FOURCC('s', '2', '6', '3'): + case FOURCC('h', '2', '6', '3'): + case FOURCC('H', '2', '6', '3'): + format->setString("mime", MEDIA_MIMETYPE_VIDEO_H263); + break; default: format->setString("mime", "application/octet-stream"); break; @@ -1062,11 +1080,13 @@ status_t Parser::parseAudioSampleEntry( case FOURCC('m', 'p', '4', 'a'): format->setString("mime", MEDIA_MIMETYPE_AUDIO_AAC); break; + case FOURCC('s', 'a', 'm', 'r'): format->setString("mime", MEDIA_MIMETYPE_AUDIO_AMR_NB); format->setInt32("channel-count", 1); format->setInt32("sample-rate", 8000); break; + case FOURCC('s', 'a', 'w', 'b'): format->setString("mime", MEDIA_MIMETYPE_AUDIO_AMR_WB); format->setInt32("channel-count", 1); |
