[FFmpeg-devel] Defect: MediaCodec Encoder - Pixel ColorSpace of many Adreno GPUs not supported

Ben Temple ben.temple at epicgames.com
Wed Dec 7 00:52:46 EET 2022


MediaCodec Encoder: Pixel ColorSpace of many Adreno GPUs is not supported
(<= Adreno 650 in our testing)What you were trying to accomplish?

I am trying to transcode an MP4 file using the MediaCodec encoder support
that was recently added by Zhao Zhili <zhilizhao at tencent.com> here
<https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/0ff18a7d6d496f89d9e007ddd1cad7116baf5c7c>
(
https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/0ff18a7d6d496f89d9e007ddd1cad7116baf5c7c
)
The problem you encountered:

On multiple phones containing an Adreno GPU, the encoding process
immediately fails because the color space expected by the GPU is
unsupported.

The exact error output: “does not support color format 19”

Phone information:

Model Name: Samsung Galaxy S10

Model Number: SM-G793U1

GPU Information: Adreno 640


Other phones that were tested and not working with this same error:

Brand Model name Model number OS GPU

Huawei Honor 10 COL-L29 Android 8.1 Mali-G72
Xiaomi Redmi Note 9S Redmi Note 9S Android 11 Adreno (TM) 618
Samsung Galaxy Z Flip SM-F700U1 Android 11 Adreno (TM) 640
Razer Razer phone Phone Android 7.1.1 Adreno (TM) 540
Essential PH-1 PH-1 Android 8.1 Adreno (TM) 541
Huawei Nexus 6P Nexus 6P Android 8.1 Adreno (TM) 430
Samsung Galaxy S6 SM-G920A Android 7 Mali-T760
Samsung Galaxy Tab S4 (Tablet) SM-T830 Android 10 Adreno (TM) 540
Samsung Galaxy S20 FE SM-G780G/DS Android 12 Adreno (TM) 650
Samsung Galaxy S10 SM-G973U1 Android 11 Adreno (TM) 640
Samsung Galaxy Note10 SM-N970U1 Android 12 Adreno (TM) 640

The following phones did not exhibit this behavior and were able to encode
without issues:

Brand Model name Model number OS GPU

Samsung Galaxy S21 Ultra 5G SM-G998U1 Android 12 Adreno (TM) 660
Huawei P10 plus VKY-L29 Android 8.1 Mali-G71
Huawei P40 Lite JNY-LX1 Android 10 Mali-G52
Samsung Galaxy S8 SM-G950F Android 9 Mali-G71
Samsung Galaxy S10+ Sm-G975F Android 12 Mali-G76
Huawei P30 ELE-L29 Android 10 Mali-G76
Google Pixel 4XL Pixel 4XL Android 13 Adreno (TM) 640
Samsung Galaxy S7 SM-G930F Android 8 Mali-T880
Samsung Galaxy S10 SM-G973F Android 11 Mali-G76
Samsung Galaxy S20 FE SM-G780F Android 11 Mali G77
Google Pixel 6 Pixel 6 Android 13 Mali-G78

The exact command line you were using:

-hwaccel mediacodec -hwaccel_output_format mediacodec -i
"/data/user/0/com.test.ffmpeg_kit_android_demo/cache/test_input.mp4"  -c:v
h264_mediacodec  -ndk_codec 1  -y
"/data/user/0/com.test.ffmpeg_kit_android_demo/cache/test_output.mp4"
-loglevel trace
Console output:

See attached console_output.log
Input Files:

See attached test_input.mp4
-------------- next part --------------
A non-text attachment was scrubbed...
Name: console_output.log
Type: application/octet-stream
Size: 12509 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20221206/ea00fd8d/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test_input.mp4
Type: video/mp4
Size: 13771 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20221206/ea00fd8d/attachment.mp4>


More information about the ffmpeg-devel mailing list