Loading media/libstagefright/MediaCodecList.cpp +11 −2 Original line number Diff line number Diff line Loading @@ -287,7 +287,9 @@ const sp<AMessage> MediaCodecList::getGlobalSettings() const { //static bool MediaCodecList::isSoftwareCodec(const AString &componentName) { return componentName.startsWithIgnoreCase("OMX.google.") || !componentName.startsWithIgnoreCase("OMX."); || componentName.startsWithIgnoreCase("c2.android.") || (!componentName.startsWithIgnoreCase("OMX.") && !componentName.startsWithIgnoreCase("c2.")); } static int compareSoftwareCodecsFirst(const AString *name1, const AString *name2) { Loading @@ -298,7 +300,14 @@ static int compareSoftwareCodecsFirst(const AString *name1, const AString *name2 return isSoftwareCodec2 - isSoftwareCodec1; } // sort order 2: OMX codecs are first (lower) // sort order 2: Codec 2.0 codecs are first (lower) bool isC2_1 = name1->startsWithIgnoreCase("c2."); bool isC2_2 = name2->startsWithIgnoreCase("c2."); if (isC2_1 != isC2_2) { return isC2_2 - isC2_1; } // sort order 3: OMX codecs are first (lower) bool isOMX1 = name1->startsWithIgnoreCase("OMX."); bool isOMX2 = name2->startsWithIgnoreCase("OMX."); return isOMX2 - isOMX1; Loading media/libstagefright/MediaCodecListOverrides.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -222,7 +222,7 @@ void profileCodecs( AString supportMultipleSecureCodecs = "true"; for (const auto& info : infos) { AString name = info->getCodecName(); if (name.startsWith("OMX.google.") || if (name.startsWith("OMX.google.") || name.startsWith("c2.android.") || // TODO: reenable below codecs once fixed name == "OMX.Intel.VideoDecoder.VP9.hybrid") { continue; Loading media/libstagefright/data/media_codecs_google_c2_audio.xml +14 −14 Original line number Diff line number Diff line Loading @@ -16,77 +16,77 @@ <Included> <Decoders> <MediaCodec name="c2.google.mp3.decoder" type="audio/mpeg"> <MediaCodec name="c2.android.mp3.decoder" type="audio/mpeg"> <Limit name="channel-count" max="2" /> <Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" /> <Limit name="bitrate" range="8000-320000" /> </MediaCodec> <MediaCodec name="c2.google.amrnb.decoder" type="audio/3gpp"> <MediaCodec name="c2.android.amrnb.decoder" type="audio/3gpp"> <Limit name="channel-count" max="1" /> <Limit name="sample-rate" ranges="8000" /> <Limit name="bitrate" range="4750-12200" /> </MediaCodec> <MediaCodec name="c2.google.amrwb.decoder" type="audio/amr-wb"> <MediaCodec name="c2.android.amrwb.decoder" type="audio/amr-wb"> <Limit name="channel-count" max="1" /> <Limit name="sample-rate" ranges="16000" /> <Limit name="bitrate" range="6600-23850" /> </MediaCodec> <MediaCodec name="c2.google.aac.decoder" type="audio/mp4a-latm"> <MediaCodec name="c2.android.aac.decoder" type="audio/mp4a-latm"> <Limit name="channel-count" max="8" /> <Limit name="sample-rate" ranges="7350,8000,11025,12000,16000,22050,24000,32000,44100,48000" /> <Limit name="bitrate" range="8000-960000" /> </MediaCodec> <MediaCodec name="c2.google.g711.alaw.decoder" type="audio/g711-alaw"> <MediaCodec name="c2.android.g711.alaw.decoder" type="audio/g711-alaw"> <Limit name="channel-count" max="1" /> <Limit name="sample-rate" ranges="8000-48000" /> <Limit name="bitrate" range="64000" /> </MediaCodec> <MediaCodec name="c2.google.g711.mlaw.decoder" type="audio/g711-mlaw"> <MediaCodec name="c2.android.g711.mlaw.decoder" type="audio/g711-mlaw"> <Limit name="channel-count" max="1" /> <Limit name="sample-rate" ranges="8000-48000" /> <Limit name="bitrate" range="64000" /> </MediaCodec> <MediaCodec name="c2.google.vorbis.decoder" type="audio/vorbis"> <MediaCodec name="c2.android.vorbis.decoder" type="audio/vorbis"> <Limit name="channel-count" max="8" /> <Limit name="sample-rate" ranges="8000-96000" /> <Limit name="bitrate" range="32000-500000" /> </MediaCodec> <MediaCodec name="c2.google.opus.decoder" type="audio/opus"> <MediaCodec name="c2.android.opus.decoder" type="audio/opus"> <Limit name="channel-count" max="8" /> <Limit name="sample-rate" ranges="48000" /> <Limit name="bitrate" range="6000-510000" /> </MediaCodec> <MediaCodec name="c2.google.raw.decoder" type="audio/raw"> <MediaCodec name="c2.android.raw.decoder" type="audio/raw"> <Limit name="channel-count" max="8" /> <Limit name="sample-rate" ranges="8000-96000" /> <Limit name="bitrate" range="1-10000000" /> </MediaCodec> <MediaCodec name="c2.google.flac.decoder" type="audio/flac"> <MediaCodec name="c2.android.flac.decoder" type="audio/flac"> <Limit name="channel-count" max="8" /> <Limit name="sample-rate" ranges="1-655350" /> <Limit name="bitrate" range="1-21000000" /> </MediaCodec> </Decoders> <Encoders> <MediaCodec name="c2.google.aac.encoder" type="audio/mp4a-latm"> <MediaCodec name="c2.android.aac.encoder" type="audio/mp4a-latm"> <Limit name="channel-count" max="6" /> <Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" /> <!-- also may support 64000, 88200 and 96000 Hz --> <Limit name="bitrate" range="8000-960000" /> </MediaCodec> <MediaCodec name="c2.google.amrnb.encoder" type="audio/3gpp"> <MediaCodec name="c2.android.amrnb.encoder" type="audio/3gpp"> <Limit name="channel-count" max="1" /> <Limit name="sample-rate" ranges="8000" /> <Limit name="bitrate" range="4750-12200" /> <Feature name="bitrate-modes" value="CBR" /> </MediaCodec> <MediaCodec name="c2.google.amrwb.encoder" type="audio/amr-wb"> <MediaCodec name="c2.android.amrwb.encoder" type="audio/amr-wb"> <Limit name="channel-count" max="1" /> <Limit name="sample-rate" ranges="16000" /> <Limit name="bitrate" range="6600-23850" /> <Feature name="bitrate-modes" value="CBR" /> </MediaCodec> <MediaCodec name="c2.google.flac.encoder" type="audio/flac"> <MediaCodec name="c2.android.flac.encoder" type="audio/flac"> <Limit name="channel-count" max="2" /> <Limit name="sample-rate" ranges="1-655350" /> <Limit name="bitrate" range="1-21000000" /> Loading media/libstagefright/data/media_codecs_google_c2_video.xml +11 −11 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ <Included> <Decoders> <MediaCodec name="c2.google.mpeg4.decoder" type="video/mp4v-es"> <MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es"> <!-- profiles and levels: ProfileSimple : Level3 --> <Limit name="size" min="2x2" max="352x288" /> <Limit name="alignment" value="2x2" /> Loading @@ -25,7 +25,7 @@ <Limit name="bitrate" range="1-384000" /> <Feature name="adaptive-playback" /> </MediaCodec> <MediaCodec name="c2.google.h263.decoder" type="video/3gpp"> <MediaCodec name="c2.android.h263.decoder" type="video/3gpp"> <!-- profiles and levels: ProfileBaseline : Level30, ProfileBaseline : Level45 ProfileISWV2 : Level30, ProfileISWV2 : Level45 --> <Limit name="size" min="2x2" max="352x288" /> Loading @@ -33,7 +33,7 @@ <Limit name="bitrate" range="1-384000" /> <Feature name="adaptive-playback" /> </MediaCodec> <MediaCodec name="c2.google.avc.decoder" type="video/avc"> <MediaCodec name="c2.android.avc.decoder" type="video/avc"> <!-- profiles and levels: ProfileHigh : Level52 --> <Limit name="size" min="2x2" max="4080x4080" /> <Limit name="alignment" value="2x2" /> Loading @@ -43,7 +43,7 @@ <Limit name="bitrate" range="1-48000000" /> <Feature name="adaptive-playback" /> </MediaCodec> <MediaCodec name="c2.google.hevc.decoder" type="video/hevc"> <MediaCodec name="c2.android.hevc.decoder" type="video/hevc"> <!-- profiles and levels: ProfileMain : MainTierLevel51 --> <Limit name="size" min="2x2" max="4096x4096" /> <Limit name="alignment" value="2x2" /> Loading @@ -53,7 +53,7 @@ <Limit name="bitrate" range="1-10000000" /> <Feature name="adaptive-playback" /> </MediaCodec> <MediaCodec name="c2.google.vp8.decoder" type="video/x-vnd.on2.vp8"> <MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8"> <Limit name="size" min="2x2" max="2048x2048" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> Loading @@ -62,7 +62,7 @@ <Limit name="bitrate" range="1-40000000" /> <Feature name="adaptive-playback" /> </MediaCodec> <MediaCodec name="c2.google.vp9.decoder" type="video/x-vnd.on2.vp9"> <MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9"> <Limit name="size" min="2x2" max="2048x2048" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> Loading @@ -74,13 +74,13 @@ </Decoders> <Encoders> <MediaCodec name="c2.google.h263.encoder" type="video/3gpp"> <MediaCodec name="c2.android.h263.encoder" type="video/3gpp"> <!-- profiles and levels: ProfileBaseline : Level45 --> <Limit name="size" min="176x144" max="176x144" /> <Limit name="alignment" value="16x16" /> <Limit name="bitrate" range="1-128000" /> </MediaCodec> <MediaCodec name="c2.google.avc.encoder" type="video/avc"> <MediaCodec name="c2.android.avc.encoder" type="video/avc"> <!-- profiles and levels: ProfileBaseline : Level41 --> <Limit name="size" min="16x16" max="2048x2048" /> <Limit name="alignment" value="2x2" /> Loading @@ -90,7 +90,7 @@ <Limit name="bitrate" range="1-12000000" /> <Feature name="intra-refresh" /> </MediaCodec> <MediaCodec name="c2.google.mpeg4.encoder" type="video/mp4v-es"> <MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es"> <!-- profiles and levels: ProfileCore : Level2 --> <Limit name="size" min="16x16" max="176x144" /> <Limit name="alignment" value="16x16" /> Loading @@ -98,7 +98,7 @@ <Limit name="blocks-per-second" range="12-1485" /> <Limit name="bitrate" range="1-64000" /> </MediaCodec> <MediaCodec name="c2.google.vp8.encoder" type="video/x-vnd.on2.vp8"> <MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8"> <!-- profiles and levels: ProfileMain : Level_Version0-3 --> <Limit name="size" min="2x2" max="2048x2048" /> <Limit name="alignment" value="2x2" /> Loading @@ -108,7 +108,7 @@ <Limit name="bitrate" range="1-40000000" /> <Feature name="bitrate-modes" value="VBR,CBR" /> </MediaCodec> <MediaCodec name="c2.google.vp9.encoder" type="video/x-vnd.on2.vp9"> <MediaCodec name="c2.android.vp9.encoder" type="video/x-vnd.on2.vp9"> <!-- profiles and levels: ProfileMain : Level_Version0-3 --> <Limit name="size" min="2x2" max="2048x2048" /> <Limit name="alignment" value="2x2" /> Loading Loading
media/libstagefright/MediaCodecList.cpp +11 −2 Original line number Diff line number Diff line Loading @@ -287,7 +287,9 @@ const sp<AMessage> MediaCodecList::getGlobalSettings() const { //static bool MediaCodecList::isSoftwareCodec(const AString &componentName) { return componentName.startsWithIgnoreCase("OMX.google.") || !componentName.startsWithIgnoreCase("OMX."); || componentName.startsWithIgnoreCase("c2.android.") || (!componentName.startsWithIgnoreCase("OMX.") && !componentName.startsWithIgnoreCase("c2.")); } static int compareSoftwareCodecsFirst(const AString *name1, const AString *name2) { Loading @@ -298,7 +300,14 @@ static int compareSoftwareCodecsFirst(const AString *name1, const AString *name2 return isSoftwareCodec2 - isSoftwareCodec1; } // sort order 2: OMX codecs are first (lower) // sort order 2: Codec 2.0 codecs are first (lower) bool isC2_1 = name1->startsWithIgnoreCase("c2."); bool isC2_2 = name2->startsWithIgnoreCase("c2."); if (isC2_1 != isC2_2) { return isC2_2 - isC2_1; } // sort order 3: OMX codecs are first (lower) bool isOMX1 = name1->startsWithIgnoreCase("OMX."); bool isOMX2 = name2->startsWithIgnoreCase("OMX."); return isOMX2 - isOMX1; Loading
media/libstagefright/MediaCodecListOverrides.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -222,7 +222,7 @@ void profileCodecs( AString supportMultipleSecureCodecs = "true"; for (const auto& info : infos) { AString name = info->getCodecName(); if (name.startsWith("OMX.google.") || if (name.startsWith("OMX.google.") || name.startsWith("c2.android.") || // TODO: reenable below codecs once fixed name == "OMX.Intel.VideoDecoder.VP9.hybrid") { continue; Loading
media/libstagefright/data/media_codecs_google_c2_audio.xml +14 −14 Original line number Diff line number Diff line Loading @@ -16,77 +16,77 @@ <Included> <Decoders> <MediaCodec name="c2.google.mp3.decoder" type="audio/mpeg"> <MediaCodec name="c2.android.mp3.decoder" type="audio/mpeg"> <Limit name="channel-count" max="2" /> <Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" /> <Limit name="bitrate" range="8000-320000" /> </MediaCodec> <MediaCodec name="c2.google.amrnb.decoder" type="audio/3gpp"> <MediaCodec name="c2.android.amrnb.decoder" type="audio/3gpp"> <Limit name="channel-count" max="1" /> <Limit name="sample-rate" ranges="8000" /> <Limit name="bitrate" range="4750-12200" /> </MediaCodec> <MediaCodec name="c2.google.amrwb.decoder" type="audio/amr-wb"> <MediaCodec name="c2.android.amrwb.decoder" type="audio/amr-wb"> <Limit name="channel-count" max="1" /> <Limit name="sample-rate" ranges="16000" /> <Limit name="bitrate" range="6600-23850" /> </MediaCodec> <MediaCodec name="c2.google.aac.decoder" type="audio/mp4a-latm"> <MediaCodec name="c2.android.aac.decoder" type="audio/mp4a-latm"> <Limit name="channel-count" max="8" /> <Limit name="sample-rate" ranges="7350,8000,11025,12000,16000,22050,24000,32000,44100,48000" /> <Limit name="bitrate" range="8000-960000" /> </MediaCodec> <MediaCodec name="c2.google.g711.alaw.decoder" type="audio/g711-alaw"> <MediaCodec name="c2.android.g711.alaw.decoder" type="audio/g711-alaw"> <Limit name="channel-count" max="1" /> <Limit name="sample-rate" ranges="8000-48000" /> <Limit name="bitrate" range="64000" /> </MediaCodec> <MediaCodec name="c2.google.g711.mlaw.decoder" type="audio/g711-mlaw"> <MediaCodec name="c2.android.g711.mlaw.decoder" type="audio/g711-mlaw"> <Limit name="channel-count" max="1" /> <Limit name="sample-rate" ranges="8000-48000" /> <Limit name="bitrate" range="64000" /> </MediaCodec> <MediaCodec name="c2.google.vorbis.decoder" type="audio/vorbis"> <MediaCodec name="c2.android.vorbis.decoder" type="audio/vorbis"> <Limit name="channel-count" max="8" /> <Limit name="sample-rate" ranges="8000-96000" /> <Limit name="bitrate" range="32000-500000" /> </MediaCodec> <MediaCodec name="c2.google.opus.decoder" type="audio/opus"> <MediaCodec name="c2.android.opus.decoder" type="audio/opus"> <Limit name="channel-count" max="8" /> <Limit name="sample-rate" ranges="48000" /> <Limit name="bitrate" range="6000-510000" /> </MediaCodec> <MediaCodec name="c2.google.raw.decoder" type="audio/raw"> <MediaCodec name="c2.android.raw.decoder" type="audio/raw"> <Limit name="channel-count" max="8" /> <Limit name="sample-rate" ranges="8000-96000" /> <Limit name="bitrate" range="1-10000000" /> </MediaCodec> <MediaCodec name="c2.google.flac.decoder" type="audio/flac"> <MediaCodec name="c2.android.flac.decoder" type="audio/flac"> <Limit name="channel-count" max="8" /> <Limit name="sample-rate" ranges="1-655350" /> <Limit name="bitrate" range="1-21000000" /> </MediaCodec> </Decoders> <Encoders> <MediaCodec name="c2.google.aac.encoder" type="audio/mp4a-latm"> <MediaCodec name="c2.android.aac.encoder" type="audio/mp4a-latm"> <Limit name="channel-count" max="6" /> <Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" /> <!-- also may support 64000, 88200 and 96000 Hz --> <Limit name="bitrate" range="8000-960000" /> </MediaCodec> <MediaCodec name="c2.google.amrnb.encoder" type="audio/3gpp"> <MediaCodec name="c2.android.amrnb.encoder" type="audio/3gpp"> <Limit name="channel-count" max="1" /> <Limit name="sample-rate" ranges="8000" /> <Limit name="bitrate" range="4750-12200" /> <Feature name="bitrate-modes" value="CBR" /> </MediaCodec> <MediaCodec name="c2.google.amrwb.encoder" type="audio/amr-wb"> <MediaCodec name="c2.android.amrwb.encoder" type="audio/amr-wb"> <Limit name="channel-count" max="1" /> <Limit name="sample-rate" ranges="16000" /> <Limit name="bitrate" range="6600-23850" /> <Feature name="bitrate-modes" value="CBR" /> </MediaCodec> <MediaCodec name="c2.google.flac.encoder" type="audio/flac"> <MediaCodec name="c2.android.flac.encoder" type="audio/flac"> <Limit name="channel-count" max="2" /> <Limit name="sample-rate" ranges="1-655350" /> <Limit name="bitrate" range="1-21000000" /> Loading
media/libstagefright/data/media_codecs_google_c2_video.xml +11 −11 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ <Included> <Decoders> <MediaCodec name="c2.google.mpeg4.decoder" type="video/mp4v-es"> <MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es"> <!-- profiles and levels: ProfileSimple : Level3 --> <Limit name="size" min="2x2" max="352x288" /> <Limit name="alignment" value="2x2" /> Loading @@ -25,7 +25,7 @@ <Limit name="bitrate" range="1-384000" /> <Feature name="adaptive-playback" /> </MediaCodec> <MediaCodec name="c2.google.h263.decoder" type="video/3gpp"> <MediaCodec name="c2.android.h263.decoder" type="video/3gpp"> <!-- profiles and levels: ProfileBaseline : Level30, ProfileBaseline : Level45 ProfileISWV2 : Level30, ProfileISWV2 : Level45 --> <Limit name="size" min="2x2" max="352x288" /> Loading @@ -33,7 +33,7 @@ <Limit name="bitrate" range="1-384000" /> <Feature name="adaptive-playback" /> </MediaCodec> <MediaCodec name="c2.google.avc.decoder" type="video/avc"> <MediaCodec name="c2.android.avc.decoder" type="video/avc"> <!-- profiles and levels: ProfileHigh : Level52 --> <Limit name="size" min="2x2" max="4080x4080" /> <Limit name="alignment" value="2x2" /> Loading @@ -43,7 +43,7 @@ <Limit name="bitrate" range="1-48000000" /> <Feature name="adaptive-playback" /> </MediaCodec> <MediaCodec name="c2.google.hevc.decoder" type="video/hevc"> <MediaCodec name="c2.android.hevc.decoder" type="video/hevc"> <!-- profiles and levels: ProfileMain : MainTierLevel51 --> <Limit name="size" min="2x2" max="4096x4096" /> <Limit name="alignment" value="2x2" /> Loading @@ -53,7 +53,7 @@ <Limit name="bitrate" range="1-10000000" /> <Feature name="adaptive-playback" /> </MediaCodec> <MediaCodec name="c2.google.vp8.decoder" type="video/x-vnd.on2.vp8"> <MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8"> <Limit name="size" min="2x2" max="2048x2048" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> Loading @@ -62,7 +62,7 @@ <Limit name="bitrate" range="1-40000000" /> <Feature name="adaptive-playback" /> </MediaCodec> <MediaCodec name="c2.google.vp9.decoder" type="video/x-vnd.on2.vp9"> <MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9"> <Limit name="size" min="2x2" max="2048x2048" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> Loading @@ -74,13 +74,13 @@ </Decoders> <Encoders> <MediaCodec name="c2.google.h263.encoder" type="video/3gpp"> <MediaCodec name="c2.android.h263.encoder" type="video/3gpp"> <!-- profiles and levels: ProfileBaseline : Level45 --> <Limit name="size" min="176x144" max="176x144" /> <Limit name="alignment" value="16x16" /> <Limit name="bitrate" range="1-128000" /> </MediaCodec> <MediaCodec name="c2.google.avc.encoder" type="video/avc"> <MediaCodec name="c2.android.avc.encoder" type="video/avc"> <!-- profiles and levels: ProfileBaseline : Level41 --> <Limit name="size" min="16x16" max="2048x2048" /> <Limit name="alignment" value="2x2" /> Loading @@ -90,7 +90,7 @@ <Limit name="bitrate" range="1-12000000" /> <Feature name="intra-refresh" /> </MediaCodec> <MediaCodec name="c2.google.mpeg4.encoder" type="video/mp4v-es"> <MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es"> <!-- profiles and levels: ProfileCore : Level2 --> <Limit name="size" min="16x16" max="176x144" /> <Limit name="alignment" value="16x16" /> Loading @@ -98,7 +98,7 @@ <Limit name="blocks-per-second" range="12-1485" /> <Limit name="bitrate" range="1-64000" /> </MediaCodec> <MediaCodec name="c2.google.vp8.encoder" type="video/x-vnd.on2.vp8"> <MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8"> <!-- profiles and levels: ProfileMain : Level_Version0-3 --> <Limit name="size" min="2x2" max="2048x2048" /> <Limit name="alignment" value="2x2" /> Loading @@ -108,7 +108,7 @@ <Limit name="bitrate" range="1-40000000" /> <Feature name="bitrate-modes" value="VBR,CBR" /> </MediaCodec> <MediaCodec name="c2.google.vp9.encoder" type="video/x-vnd.on2.vp9"> <MediaCodec name="c2.android.vp9.encoder" type="video/x-vnd.on2.vp9"> <!-- profiles and levels: ProfileMain : Level_Version0-3 --> <Limit name="size" min="2x2" max="2048x2048" /> <Limit name="alignment" value="2x2" /> Loading