diff options
author | Andreas Huber <andih@google.com> | 2009-12-11 11:27:02 -0800 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2009-12-11 11:27:02 -0800 |
commit | 6b91407a918d755454ed396068ff7f67b7088f34 (patch) | |
tree | ff38d37a9acdcf4a0890501402c835b77538cf8a /media/libstagefright/OMXCodec.cpp | |
parent | 72124cf05cd5b40f2902198aca2797616b813457 (diff) | |
download | frameworks_av-6b91407a918d755454ed396068ff7f67b7088f34.zip frameworks_av-6b91407a918d755454ed396068ff7f67b7088f34.tar.gz frameworks_av-6b91407a918d755454ed396068ff7f67b7088f34.tar.bz2 |
Propagate duration from input to output only if available, support multiple full frames of audio per input buffer in AMR/AAC decoders.
Diffstat (limited to 'media/libstagefright/OMXCodec.cpp')
-rw-r--r-- | media/libstagefright/OMXCodec.cpp | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp index fc3c05b..9c9787f 100644 --- a/media/libstagefright/OMXCodec.cpp +++ b/media/libstagefright/OMXCodec.cpp @@ -293,17 +293,19 @@ sp<MediaSource> OMXCodec::Create( CHECK(success); #if BUILD_WITH_FULL_STAGEFRIGHT - if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AAC)) { - return new AACDecoder(source); - } else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AMR_NB)) { - return new AMRNBDecoder(source); - } else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AMR_WB)) { - return new AMRWBDecoder(source); - } else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_MPEG)) { - return new MP3Decoder(source); - } else if (!strcasecmp(mime, MEDIA_MIMETYPE_VIDEO_AVC) - && (flags & kPreferSoftwareCodecs)) { - return new AVCDecoder(source); + if (!createEncoder) { + if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AAC)) { + return new AACDecoder(source); + } else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AMR_NB)) { + return new AMRNBDecoder(source); + } else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AMR_WB)) { + return new AMRWBDecoder(source); + } else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_MPEG)) { + return new MP3Decoder(source); + } else if (!strcasecmp(mime, MEDIA_MIMETYPE_VIDEO_AVC) + && (flags & kPreferSoftwareCodecs)) { + return new AVCDecoder(source); + } } #endif |