diff options
author | Michael Gernoth <michael@gernoth.net> | 2015-02-15 21:06:22 +0100 |
---|---|---|
committer | Andreas Blaesius <skate4life@gmx.de> | 2015-02-16 19:47:50 +0100 |
commit | 891799e00f17987b890b5f71aa308eb76ca74ce3 (patch) | |
tree | 0016888c26c0ddebf0bfe8c6826cba3d05d73d50 | |
parent | 890eb528dbd0296b5d506b71068b169080d5a5a4 (diff) | |
download | device_samsung_espresso3g-891799e00f17987b890b5f71aa308eb76ca74ce3.zip device_samsung_espresso3g-891799e00f17987b890b5f71aa308eb76ca74ce3.tar.gz device_samsung_espresso3g-891799e00f17987b890b5f71aa308eb76ca74ce3.tar.bz2 |
media_codecs: fix Netflix
The current Netflix app tries very hard to find a codec which supports
AdaptivePlayback. As our HW-codec doesn't support that, the Google
H.264 software-codec gets used. But it is incapable of decoding the
stream from Netflix, returning H264SWDEC_STRM_ERR. The hw-codec
plays the stream just fine.
This removes the declaration of adaptive-playback from the (broken)
software-codec which causes Netflix to use hw-based decoding.
Change-Id: I50b33f445a7db5bd7ad59d200277c193c68e3ba7
-rw-r--r-- | configs/media_codecs_google_video.xml | 112 | ||||
-rwxr-xr-x | p51xx-common.mk | 2 |
2 files changed, 113 insertions, 1 deletions
diff --git a/configs/media_codecs_google_video.xml b/configs/media_codecs_google_video.xml new file mode 100644 index 0000000..dde73cf --- /dev/null +++ b/configs/media_codecs_google_video.xml @@ -0,0 +1,112 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- Copyright (C) 2014 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<Included> + <Decoders> + <MediaCodec name="OMX.google.mpeg4.decoder"> + <Type name="video/mp4v-es" /> + <!-- + Use Google mpeg4 decoder for mpeg4 DP content which is not + supported by HW. A component can be used to support several + mimetypes, so non-DP mpeg4 usecases will not be affected by this. + --> + <Type name="video/mp4v-esdp" /> + <!-- profiles and levels: ProfileSimple : Level3 --> + <Limit name="size" min="2x2" max="352x288" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" range="12-11880" /> + <Limit name="bitrate" range="1-384000" /> + <Feature name="adaptive-playback" /> + </MediaCodec> + <MediaCodec name="OMX.google.h263.decoder" type="video/3gpp"> + <!-- profiles and levels: ProfileBaseline : Level30, ProfileBaseline : Level45 + ProfileISWV2 : Level30, ProfileISWV2 : Level45 --> + <Limit name="size" min="2x2" max="352x288" /> + <Limit name="alignment" value="2x2" /> + <Limit name="bitrate" range="1-384000" /> + <Feature name="adaptive-playback" /> + </MediaCodec> + <!-- STARGO: Remove adaptive-playback from H.264 decoder to fix Netflix --> + <MediaCodec name="OMX.google.h264.decoder" type="video/avc"> + <!-- profiles and levels: ProfileBaseline : Level51 --> + <Limit name="size" min="2x2" max="2048x2048" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" range="1-983040" /> + <Limit name="bitrate" range="1-40000000" /> + </MediaCodec> + <!-- STARGO: end Netflix hack --> + <MediaCodec name="OMX.google.hevc.decoder" type="video/hevc"> + <!-- profiles and levels: ProfileMain : MainTierLevel51 --> + <Limit name="size" min="2x2" max="2048x2048" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="8x8" /> + <Limit name="block-count" range="1-139264" /> + <Limit name="blocks-per-second" range="1-2000000" /> + <Limit name="bitrate" range="1-10000000" /> + <Feature name="adaptive-playback" /> + </MediaCodec> + <MediaCodec name="OMX.google.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" /> + <Limit name="blocks-per-second" range="1-1000000" /> + <Limit name="bitrate" range="1-40000000" /> + <Feature name="adaptive-playback" /> + </MediaCodec> + <MediaCodec name="OMX.google.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" /> + <Limit name="blocks-per-second" range="1-500000" /> + <Limit name="bitrate" range="1-40000000" /> + <Feature name="adaptive-playback" /> + </MediaCodec> + </Decoders> + + <Encoders> + <MediaCodec name="OMX.google.h263.encoder" type="video/3gpp"> + <!-- profiles and levels: ProfileBaseline : Level45 --> + <Limit name="size" min="16x16" max="176x144" /> + <Limit name="alignment" value="16x16" /> + <Limit name="bitrate" range="1-128000" /> + </MediaCodec> + <MediaCodec name="OMX.google.h264.encoder" type="video/avc"> + <!-- profiles and levels: ProfileBaseline : Level2 --> + <Limit name="size" min="16x16" max="896x896" /> + <Limit name="alignment" value="16x16" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" range="1-11880" /> + <Limit name="bitrate" range="1-2000000" /> + </MediaCodec> + <MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es"> + <!-- profiles and levels: ProfileCore : Level2 --> + <Limit name="size" min="16x16" max="176x144" /> + <Limit name="alignment" value="16x16" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" range="12-1485" /> + <Limit name="bitrate" range="1-64000" /> + </MediaCodec> + <MediaCodec name="OMX.google.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" /> + <Limit name="bitrate" range="1-40000000" /> + <Feature name="bitrate-modes" value="VBR,CBR" /> + </MediaCodec> + </Encoders> +</Included> diff --git a/p51xx-common.mk b/p51xx-common.mk index 1a9efe9..627744e 100755 --- a/p51xx-common.mk +++ b/p51xx-common.mk @@ -57,10 +57,10 @@ PRODUCT_PROPERTY_OVERRIDES += \ # Media profiles PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/media_codecs.xml:system/etc/media_codecs.xml \ + $(LOCAL_PATH)/configs/media_codecs_google_video.xml:system/etc/media_codecs_google_video.xml \ $(LOCAL_PATH)/configs/media_profiles.xml:system/etc/media_profiles.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \ - frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:system/etc/media_codecs_google_video.xml \ frameworks/av/media/libstagefright/data/media_codecs_ffmpeg.xml:system/etc/media_codecs_ffmpeg.xml # Keylayout |