summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/OMXCodec.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2009-12-11 11:27:02 -0800
committerAndreas Huber <andih@google.com>2009-12-11 11:27:02 -0800
commit6b91407a918d755454ed396068ff7f67b7088f34 (patch)
treeff38d37a9acdcf4a0890501402c835b77538cf8a /media/libstagefright/OMXCodec.cpp
parent72124cf05cd5b40f2902198aca2797616b813457 (diff)
downloadframeworks_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.cpp24
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