diff options
-rw-r--r-- | conf_files/sm6150/media_codecs.xml | 18 | ||||
-rw-r--r-- | conf_files/sm6150/media_codecs_sdmmagpie_v1.xml | 97 | ||||
-rw-r--r-- | conf_files/sm6150/media_codecs_vendor_sdmmagpie_v0.xml | 2 | ||||
-rw-r--r-- | conf_files/sm6150/media_codecs_vendor_sdmmagpie_v1.xml | 99 | ||||
-rw-r--r-- | mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp | 14 | ||||
-rw-r--r-- | mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp | 21 | ||||
-rw-r--r-- | mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp | 6 |
7 files changed, 134 insertions, 123 deletions
diff --git a/conf_files/sm6150/media_codecs.xml b/conf_files/sm6150/media_codecs.xml index c2ba2d2e..030fbc41 100644 --- a/conf_files/sm6150/media_codecs.xml +++ b/conf_files/sm6150/media_codecs.xml @@ -88,7 +88,7 @@ Only the three quirks included above are recognized at this point: | h264 | 4096 2160 24 100 829440 | | hevc | 4096 2160 24 100 829440 | | mpeg4-sw | 1920 1088 30 40 244800 | - | vp8 | 3840 2160 30 100 972000 | + | vp8 | 1920 1088 60 100 489600 | | vp9 | 4096 2160 24 100 829440 | | vc1 | 1920 1088 30 20 244800 | | h263-sw | 864 480 30 16 48600 | @@ -112,7 +112,7 @@ Only the three quirks included above are recognized at this point: | h264 | 4096 2160 24 100 829440 | | hevc | 4096 2160 24 100 829440 | | mpeg4-sw | 1280 720 30 4 108000 | - | vp8 | 3840 2160 30 100 972000 | + | vp8 | 1920 1088 60 40 489600 | | h263-sw | 864 480 30 2 48600 | |__________|_________________________________________| --> @@ -145,12 +145,12 @@ Only the three quirks included above are recognized at this point: <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> <Quirk name="requires-loaded-to-idle-after-allocation" /> - <Limit name="size" min="96x96" max="3840x2160" /> + <Limit name="size" min="96x96" max="1920x1088" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="979200" /> - <Limit name="bitrate" range="1-120000000" /> - <Limit name="frame-rate" range="1-240" /> + <Limit name="blocks-per-second" min="24" max="489600" /> + <Limit name="bitrate" range="1-40000000" /> + <Limit name="frame-rate" range="1-120" /> <Limit name="concurrent-instances" max="16" /> <Limit name="performance-point-3840x2160" value="30" /> </MediaCodec> @@ -272,12 +272,12 @@ Only the three quirks included above are recognized at this point: <MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" > <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> - <Limit name="size" min="96x96" max="3840x2160" /> + <Limit name="size" min="96x96" max="1920x1088" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="979200" /> + <Limit name="blocks-per-second" min="24" max="489600" /> <Limit name="bitrate" range="1-100000000" /> - <Limit name="frame-rate" range="1-240" /> + <Limit name="frame-rate" range="1-120" /> <Feature name="adaptive-playback" /> <Limit name="concurrent-instances" max="16" /> <Limit name="performance-point-3840x2160" value="30" /> diff --git a/conf_files/sm6150/media_codecs_sdmmagpie_v1.xml b/conf_files/sm6150/media_codecs_sdmmagpie_v1.xml index 2cff647e..cf99e49a 100644 --- a/conf_files/sm6150/media_codecs_sdmmagpie_v1.xml +++ b/conf_files/sm6150/media_codecs_sdmmagpie_v1.xml @@ -87,14 +87,11 @@ Only the three quirks included above are recognized at this point: _________________________________________________________ | Codec | W H fps Mbps MB/s | |_____________|_________________________________________| - | h264 | 4096 2160 60 120 2073600 | - | | (4096) (2304) (30) (120) | - | hevc | 4096 2160 60 120 2073600 | - | | (4096) (2304) (30) (120) | + | h264 | 4096 2160 30 100 1036800 | + | hevc | 4096 2160 30 100 1036800 | | mpeg4-sw | 1920 1088 30 40 244800 | - | vp8 | 4096 2160 30 120 1036800 | - | | (4096) (2304) (24) (120) | - | vp9 | 4096 2160 60 120 2073600 | + | vp8 | 1920 1088 60 100 489600 | + | vp9 | 4096 2160 30 100 1036800 | | | (4096) (2304) (30) (120) | | vc1 | 1920 1088 30 20 244800 | | h263-sw | 864 480 30 16 48600 | @@ -105,12 +102,9 @@ Only the three quirks included above are recognized at this point: ______________________________________________________ | Codec | W H fps Mbps MB/s | |__________|_________________________________________| - | h264 | 4096 2160 60 40 2073600 | - | | (4096) (2304) (30) (40) | - | vp9 | 4096 2160 60 40 2073600 | - | | (4096) (2304) (30) (40) | - | hevc | 4096 2160 60 40 2073600 | - | | (4096) (2304) (30) (40) | + | h264 | 4096 2160 30 40 1036800 | + | vp9 | 4096 2160 30 40 1036800 | + | hevc | 4096 2160 30 40 1036800 | | mpeg2 | 1920 1088 30 40 244800 | |__________|_________________________________________| @@ -118,13 +112,10 @@ Only the three quirks included above are recognized at this point: ______________________________________________________ | Codec | W H fps Mbps MB/s | |__________|_________________________________________| - | h264 | 4096 2160 60 120 2073600 | - | | (4096) (2304) (30) (120) | - | hevc | 4096 2160 60 120 2073600 | - | | (4096) (2304) (30) (120) | + | h264 | 4096 2160 30 100 1036800 | + | hevc | 4096 2160 30 100 1036800 | | mpeg4-sw | 1280 720 30 4 108000 | - | vp8 | 4096 2160 30 120 1036800 | - | | (4096) (2304) (24) (120) | + | vp8 | 1920 1088 60 40 489600 | | h263-sw | 864 480 30 2 48600 | |__________|_________________________________________| --> @@ -141,36 +132,36 @@ Only the three quirks included above are recognized at this point: <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> <Quirk name="requires-loaded-to-idle-after-allocation" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="4096x2160" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="2073600" /> - <Limit name="bitrate" range="1-120000000" /> - <Limit name="frame-rate" range="1-480" /> + <Limit name="blocks-per-second" min="24" max="1036800" /> + <Limit name="bitrate" range="1-100000000" /> + <Limit name="frame-rate" range="1-240" /> <Limit name="concurrent-instances" max="16" /> </MediaCodec> <MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" > <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> <Quirk name="requires-loaded-to-idle-after-allocation" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="1920x1088" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="1036800" /> - <Limit name="bitrate" range="1-120000000" /> - <Limit name="frame-rate" range="1-240" /> + <Limit name="blocks-per-second" min="24" max="489600" /> + <Limit name="bitrate" range="1-40000000" /> + <Limit name="frame-rate" range="1-120" /> <Limit name="concurrent-instances" max="16" /> </MediaCodec> <MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" > <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> <Quirk name="requires-loaded-to-idle-after-allocation" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="4096x2160" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="2073600" /> - <Limit name="bitrate" range="1-120000000" /> - <Limit name="frame-rate" range="1-480" /> + <Limit name="blocks-per-second" min="24" max="1036800" /> + <Limit name="bitrate" range="1-100000000" /> + <Limit name="frame-rate" range="1-240" /> <Limit name="concurrent-instances" max="16" /> <Limit name="quality" range="0-100" default="80" /> <Feature name="bitrate-modes" value="VBR,CBR,CQ" /> @@ -206,22 +197,22 @@ Only the three quirks included above are recognized at this point: <MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" > <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="4096x2160" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="2073600" /> - <Limit name="bitrate" range="1-120000000" /> - <Limit name="frame-rate" range="1-480" /> + <Limit name="blocks-per-second" min="24" max="1036800" /> + <Limit name="bitrate" range="1-100000000" /> + <Limit name="frame-rate" range="1-240" /> <Feature name="adaptive-playback" /> <Limit name="concurrent-instances" max="16" /> </MediaCodec> <MediaCodec name="OMX.qcom.video.decoder.avc.secure" type="video/avc" > <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="4096x2160" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="2073600" /> + <Limit name="blocks-per-second" min="24" max="1036800" /> <Limit name="bitrate" range="1-40000000" /> <Limit name="frame-rate" range="1-60" /> <Feature name="adaptive-playback" /> @@ -256,34 +247,34 @@ Only the three quirks included above are recognized at this point: <MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" > <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="1920x1088" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="1036800" /> - <Limit name="bitrate" range="1-120000000" /> - <Limit name="frame-rate" range="1-240" /> + <Limit name="blocks-per-second" min="24" max="489600" /> + <Limit name="bitrate" range="1-100000000" /> + <Limit name="frame-rate" range="1-120" /> <Feature name="adaptive-playback" /> <Limit name="concurrent-instances" max="16" /> </MediaCodec> <MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" > <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="4096x2160" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="2073600" /> - <Limit name="bitrate" range="1-120000000" /> - <Limit name="frame-rate" range="1-480" /> + <Limit name="blocks-per-second" min="24" max="1036800" /> + <Limit name="bitrate" range="1-100000000" /> + <Limit name="frame-rate" range="1-240" /> <Feature name="adaptive-playback" /> <Limit name="concurrent-instances" max="6" /> </MediaCodec> <MediaCodec name="OMX.qcom.video.decoder.vp9.secure" type="video/x-vnd.on2.vp9" > <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="4096x2160" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="2073600" /> + <Limit name="blocks-per-second" min="24" max="1036800" /> <Limit name="bitrate" range="1-40000000" /> <Limit name="frame-rate" range="1-60" /> <Feature name="adaptive-playback" /> @@ -293,22 +284,22 @@ Only the three quirks included above are recognized at this point: <MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" > <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="4096x2160" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="2073600" /> - <Limit name="bitrate" range="1-120000000" /> - <Limit name="frame-rate" range="1-480" /> + <Limit name="blocks-per-second" min="24" max="1036800" /> + <Limit name="bitrate" range="1-100000000" /> + <Limit name="frame-rate" range="1-240" /> <Feature name="adaptive-playback" /> <Limit name="concurrent-instances" max="16" /> </MediaCodec> <MediaCodec name="OMX.qcom.video.decoder.hevc.secure" type="video/hevc" > <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="4096x2160" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="2073600" /> + <Limit name="blocks-per-second" min="24" max="1036800" /> <Limit name="bitrate" range="1-40000000" /> <Limit name="frame-rate" range="1-60" /> <Feature name="adaptive-playback" /> diff --git a/conf_files/sm6150/media_codecs_vendor_sdmmagpie_v0.xml b/conf_files/sm6150/media_codecs_vendor_sdmmagpie_v0.xml index 1901a2e9..1f8b65e6 100644 --- a/conf_files/sm6150/media_codecs_vendor_sdmmagpie_v0.xml +++ b/conf_files/sm6150/media_codecs_vendor_sdmmagpie_v0.xml @@ -203,7 +203,7 @@ Only the three quirks included above are recognized at this point: <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> <Quirk name="requires-loaded-to-idle-after-allocation" /> - <Limit name="size" min="512x512" max="4096x2160" /> + <Limit name="size" min="512x512" max="8192x8192" /> <Limit name="frame-rate" range="1-20" /> <Limit name="concurrent-instances" max="6" /> <Limit name="quality" range="0-100" default="80" /> diff --git a/conf_files/sm6150/media_codecs_vendor_sdmmagpie_v1.xml b/conf_files/sm6150/media_codecs_vendor_sdmmagpie_v1.xml index 5fe914d5..e20dfecc 100644 --- a/conf_files/sm6150/media_codecs_vendor_sdmmagpie_v1.xml +++ b/conf_files/sm6150/media_codecs_vendor_sdmmagpie_v1.xml @@ -87,14 +87,11 @@ Only the three quirks included above are recognized at this point: _________________________________________________________ | Codec | W H fps Mbps MB/s | |_____________|_________________________________________| - | h264 | 4096 2160 60 120 2073600 | - | | (4096) (2304) (30) (120) | - | hevc | 4096 2160 60 120 2073600 | - | | (4096) (2304) (30) (120) | + | h264 | 4096 2160 30 100 1036800 | + | hevc | 4096 2160 30 100 1036800 | | mpeg4-sw | 1920 1088 30 40 244800 | - | vp8 | 4096 2160 30 120 1036800 | - | | (4096) (2304) (24) (120) | - | vp9 | 4096 2160 60 120 2073600 | + | vp8 | 1920 1088 60 100 489600 | + | vp9 | 4096 2160 30 100 1036800 | | | (4096) (2304) (30) (120) | | vc1 | 1920 1088 30 20 244800 | | h263-sw | 864 480 30 16 48600 | @@ -105,12 +102,9 @@ Only the three quirks included above are recognized at this point: ______________________________________________________ | Codec | W H fps Mbps MB/s | |__________|_________________________________________| - | h264 | 4096 2160 60 40 2073600 | - | | (4096) (2304) (30) (40) | - | vp9 | 4096 2160 60 40 2073600 | - | | (4096) (2304) (30) (40) | - | hevc | 4096 2160 60 40 2073600 | - | | (4096) (2304) (30) (40) | + | h264 | 4096 2160 30 40 1036800 | + | vp9 | 4096 2160 30 40 1036800 | + | hevc | 4096 2160 30 40 1036800 | | mpeg2 | 1920 1088 30 40 244800 | |__________|_________________________________________| @@ -118,13 +112,10 @@ Only the three quirks included above are recognized at this point: ______________________________________________________ | Codec | W H fps Mbps MB/s | |__________|_________________________________________| - | h264 | 4096 2160 60 120 2073600 | - | | (4096) (2304) (30) (120) | - | hevc | 4096 2160 60 120 2073600 | - | | (4096) (2304) (30) (120) | + | h264 | 4096 2160 30 100 1036800 | + | hevc | 4096 2160 30 100 1036800 | | mpeg4-sw | 1280 720 30 4 108000 | - | vp8 | 4096 2160 30 120 1036800 | - | | (4096) (2304) (24) (120) | + | vp8 | 1920 1088 60 40 489600 | | h263-sw | 864 480 30 2 48600 | |__________|_________________________________________| --> @@ -142,12 +133,12 @@ Only the three quirks included above are recognized at this point: <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> <Quirk name="requires-loaded-to-idle-after-allocation" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="4096x2160" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="2073600" /> - <Limit name="bitrate" range="1-120000000" /> - <Limit name="frame-rate" range="1-480" /> + <Limit name="blocks-per-second" min="24" max="1036800" /> + <Limit name="bitrate" range="1-100000000" /> + <Limit name="frame-rate" range="1-240" /> <Limit name="concurrent-instances" max="16" /> <Limit name="performance-point-4096x2160" value="24" /> <Limit name="performance-point-3840x2160" value="30" /> @@ -158,12 +149,12 @@ Only the three quirks included above are recognized at this point: <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> <Quirk name="requires-loaded-to-idle-after-allocation" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="1920x1088" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="1036800" /> - <Limit name="bitrate" range="1-120000000" /> - <Limit name="frame-rate" range="1-240" /> + <Limit name="blocks-per-second" min="24" max="489600" /> + <Limit name="bitrate" range="1-40000000" /> + <Limit name="frame-rate" range="1-120" /> <Limit name="concurrent-instances" max="16" /> <Limit name="performance-point-1920x1080" value="60" /> <Limit name="performance-point-1280x720" value="120" /> @@ -172,12 +163,12 @@ Only the three quirks included above are recognized at this point: <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> <Quirk name="requires-loaded-to-idle-after-allocation" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="4096x2160" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="2073600" /> - <Limit name="bitrate" range="1-120000000" /> - <Limit name="frame-rate" range="1-480" /> + <Limit name="blocks-per-second" min="24" max="1036800" /> + <Limit name="bitrate" range="1-100000000" /> + <Limit name="frame-rate" range="1-240" /> <Limit name="concurrent-instances" max="16" /> <Limit name="performance-point-4096x2160" value="24" /> <Limit name="performance-point-3840x2160" value="30" /> @@ -203,7 +194,7 @@ Only the three quirks included above are recognized at this point: <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> <Quirk name="requires-loaded-to-idle-after-allocation" /> - <Limit name="size" min="512x512" max="4096x2160" /> + <Limit name="size" min="512x512" max="8192x8192" /> <Limit name="frame-rate" range="1-20" /> <Limit name="concurrent-instances" max="6" /> <Limit name="quality" range="0-100" default="80" /> @@ -247,12 +238,12 @@ Only the three quirks included above are recognized at this point: <MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" > <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="4096x2160" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="2073600" /> - <Limit name="bitrate" range="1-120000000" /> - <Limit name="frame-rate" range="1-480" /> + <Limit name="blocks-per-second" min="24" max="1036800" /> + <Limit name="bitrate" range="1-100000000" /> + <Limit name="frame-rate" range="1-240" /> <Feature name="adaptive-playback" /> <Limit name="concurrent-instances" max="16" /> <Limit name="performance-point-4096x2160" value="24" /> @@ -263,10 +254,10 @@ Only the three quirks included above are recognized at this point: <MediaCodec name="OMX.qcom.video.decoder.avc.secure" type="video/avc" > <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="4096x2160" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="2073600" /> + <Limit name="blocks-per-second" min="24" max="1036800" /> <Limit name="bitrate" range="1-40000000" /> <Limit name="frame-rate" range="1-60" /> <Feature name="adaptive-playback" /> @@ -306,12 +297,12 @@ Only the three quirks included above are recognized at this point: <MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" > <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="1920x1088" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="1036800" /> - <Limit name="bitrate" range="1-120000000" /> - <Limit name="frame-rate" range="1-240" /> + <Limit name="blocks-per-second" min="24" max="489600" /> + <Limit name="bitrate" range="1-100000000" /> + <Limit name="frame-rate" range="1-120" /> <Feature name="adaptive-playback" /> <Limit name="concurrent-instances" max="16" /> <Limit name="performance-point-1920x1080" value="60" /> @@ -320,12 +311,12 @@ Only the three quirks included above are recognized at this point: <MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" > <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="4096x2160" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="2073600" /> - <Limit name="bitrate" range="1-120000000" /> - <Limit name="frame-rate" range="1-480" /> + <Limit name="blocks-per-second" min="24" max="1036800" /> + <Limit name="bitrate" range="1-100000000" /> + <Limit name="frame-rate" range="1-240" /> <Feature name="adaptive-playback" /> <Limit name="concurrent-instances" max="6" /> <Limit name="performance-point-4096x2160" value="24" /> @@ -336,10 +327,10 @@ Only the three quirks included above are recognized at this point: <MediaCodec name="OMX.qcom.video.decoder.vp9.secure" type="video/x-vnd.on2.vp9" > <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="4096x2160" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="2073600" /> + <Limit name="blocks-per-second" min="24" max="1036800" /> <Limit name="bitrate" range="1-40000000" /> <Limit name="frame-rate" range="1-60" /> <Feature name="adaptive-playback" /> @@ -352,12 +343,12 @@ Only the three quirks included above are recognized at this point: <MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" > <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="4096x2160" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="2073600" /> - <Limit name="bitrate" range="1-120000000" /> - <Limit name="frame-rate" range="1-480" /> + <Limit name="blocks-per-second" min="24" max="1036800" /> + <Limit name="bitrate" range="1-100000000" /> + <Limit name="frame-rate" range="1-240" /> <Feature name="adaptive-playback" /> <Limit name="concurrent-instances" max="16" /> <Limit name="performance-point-4096x2160" value="24" /> @@ -368,10 +359,10 @@ Only the three quirks included above are recognized at this point: <MediaCodec name="OMX.qcom.video.decoder.hevc.secure" type="video/hevc" > <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> - <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="size" min="96x96" max="4096x2160" /> <Limit name="alignment" value="2x2" /> <Limit name="block-size" value="16x16" /> - <Limit name="blocks-per-second" min="24" max="2073600" /> + <Limit name="blocks-per-second" min="24" max="1036800" /> <Limit name="bitrate" range="1-40000000" /> <Limit name="frame-rate" range="1-60" /> <Feature name="adaptive-playback" /> diff --git a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp index 5db344ad..b28d44ff 100644 --- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp +++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp @@ -12733,8 +12733,13 @@ OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_il_buf_hdr { bool status = true; pthread_mutex_lock(&omx->c_lock); + /* Whenever port mode is set to kPortModeDynamicANWBuffer, Video Frameworks + always uses VideoNativeMetadata and OMX recives buffer type as + grallocsource via storeMetaDataInBuffers_l API. The buffer_size + will be communicated to frameworks via IndexParamPortdefinition. */ if (!enabled) - buffer_size = omx->drv_ctx.op_buf.buffer_size; + buffer_size = omx->dynamic_buf_mode ? sizeof(struct VideoNativeMetadata) : + omx->drv_ctx.op_buf.buffer_size; else { buffer_size = c2dcc.getBuffSize(C2D_OUTPUT); } @@ -12743,9 +12748,10 @@ OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_il_buf_hdr } OMX_ERRORTYPE omx_vdec::allocate_color_convert_buf::set_buffer_req( - OMX_U32 buffer_size, OMX_U32 actual_count) { - OMX_U32 expectedSize = enabled ? buffer_size_req : omx->drv_ctx.op_buf.buffer_size; - + OMX_U32 buffer_size, OMX_U32 actual_count) +{ + OMX_U32 expectedSize = enabled ? buffer_size_req : omx->dynamic_buf_mode ? + sizeof(struct VideoDecoderOutputMetaData) : omx->drv_ctx.op_buf.buffer_size; if (buffer_size < expectedSize) { DEBUG_PRINT_ERROR("OP Requirements: Client size(%u) insufficient v/s requested(%u)", buffer_size, expectedSize); diff --git a/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp b/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp index 8f0868b7..346f017f 100644 --- a/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp +++ b/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp @@ -248,8 +248,25 @@ OMX_ERRORTYPE omx_venc::component_init(OMX_STRING role) codec_type = OMX_VIDEO_CodingHEVC; } else if (!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.heic", \ OMX_MAX_STRINGNAME_SIZE)) { - strlcpy((char *)m_cRole, "video_encoder.hevc", OMX_MAX_STRINGNAME_SIZE); - codec_type = OMX_VIDEO_CodingImageHEIC; + char platform_name[PROP_VALUE_MAX] = {0}; + char version[PROP_VALUE_MAX] = {0}; + property_get("ro.board.platform", platform_name, "0"); //HW ID + if (!strcmp(platform_name, "sm6150")) + { + if (property_get("vendor.media.target.version", version, "0") && + (atoi(version) == 0)) + { + //Sku version, HEIC is disabled on this target + DEBUG_PRINT_ERROR("heic encoder not supported on this target"); + eRet = OMX_ErrorInvalidComponentName; + } else { + strlcpy((char *)m_cRole, "video_encoder.hevc", OMX_MAX_STRINGNAME_SIZE); + codec_type = OMX_VIDEO_CodingImageHEIC; + } + } else { + strlcpy((char *)m_cRole, "video_encoder.hevc", OMX_MAX_STRINGNAME_SIZE); + codec_type = OMX_VIDEO_CodingImageHEIC; + } } else if (!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.hevc.secure", \ OMX_MAX_STRINGNAME_SIZE)) { strlcpy((char *)m_cRole, "video_encoder.hevc", OMX_MAX_STRINGNAME_SIZE); diff --git a/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp b/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp index 5a6c3849..5249ac3c 100644 --- a/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp +++ b/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp @@ -2120,6 +2120,12 @@ bool venc_dev::venc_get_buf_req(OMX_U32 *min_buff_count, DEBUG_PRINT_LOW("Set buffer count = %d as metadata mode and batchmode enabled", minCount); } + // reset min count to 4 for HEIC cases + if (mIsGridset) { + minCount = 4; + DEBUG_PRINT_LOW("Set buffer count = %d for HEIC", minCount); + } + minCount = MAX((unsigned int)control.value, minCount); m_sInput_buff_property.mincount = minCount; |