On Di, 2024-09-24 at 00:53 +0300, Andrew Randrianasulu wrote:
> I tried to trivially add qsv/mediacodec decode to cinelerra-gg, but
> discovered that I can't use it like vaapi/vdpau/cuda because (?)
> qsv/mediacodec not listed in
> 
> ffmpeg/libavcodec/hwconfig.h
> and (for h264) in
> ffmpeg/libavcodec/h264dec.c
> 
> so on decoding I get (in termux, cingg compiled with system ffmpeg)
> 
> 
> Decoder h264 does not support device type mediacodec.
> 
> HW device init failed, using SW decode.
> file:/data/data/com.termux/files/home/20210419_055507A.mp4
> err: Operation not permitted
> 
> yet ffmpeg -hwaccel show
> 
> ~/cinelerra/cinelerra-5.1 $ ffmpeg -hwaccels
> 
>  ffmpeg version 6.1.2 Copyright (c) 2000-2024 the FFmpeg developers
> 
> built with Android (12027248, +pgo, +bolt, +lto, +mlgo, based on r522817)
> clang version 18.0.1 (
> https://android.googlesource.com/toolchain/llvm-project
> d8003a456d14a3deb8054cdaa529ffbf02d9b262)     configuration: --arch=aarch64
> --as=aarch64-linux-android-clang --cc=aarch64-linux-android-clang
> --cxx=aarch64-linux-android-clang++ --nm=llvm-nm
> --pkg-config=/home/builder/.termux-build/_cache/android-r27-api-24-v1/bin/pkg-
> config
> --strip=llvm-strip --cross-prefix=aarch64-linux-android- --disable-indevs
> --disable-outdevs --enable-indev=lavfi --disable-static --disable-symver
> --enable-cross-compile --enable-gnutls --enable-gpl --enable-version3
> --enable-jni --enable-lcms2 --enable-libaom --enable-libass
> --enable-libbluray --enable-libdav1d --enable-libfontconfig
> --enable-libfreetype --enable-libfribidi --enable-libgme
> --enable-libharfbuzz --enable-libmp3lame --enable-libopencore-amrnb
> --enable-libopencore-amrwb --enable-libopenmpt --enable-libopus
> --enable-librav1e --enable-libsoxr --enable-libsrt --enable-libssh
> --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab
> --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx
> --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2
> --enable-libxvid --enable-libzimg --enable-mediacodec --enable-opencl
> --enable-shared --prefix=/data/data/com.termux/files/usr
> --target-os=android --extra-libs=-landroid-glob --disable-vulkan
> --enable-neon --disable-libfdk-aac                   libavutil      58.
> 29.100 / 58. 29.100
> 
> libavcodec     60. 31.102 / 60. 31.102
> 
> libavformat    60. 16.100 / 60. 16.100
> 
>  libavdevice    60.  3.100 / 60.  3.100
> 
> libavfilter     9. 12.100 /  9. 12.100
> 
> libswscale      7.  5.100 /  7.  5.100
> 
> libswresample   4. 12.100 /  4. 12.100
> 
> libpostproc    57.  3.100 / 57.  3.100
> 
> Hardware acceleration methods:
> opencl
>                 mediacodec
> 
> ===
> 
> is it oversight or some more fundamental limitation?


vaapi/cuda/vdpau is used to accelerate the native decoders in FFmpeg, however
for mediacodec/qsv, there are corresponding decoders. 

For example, both qsv and vaapi are enabled when running configuration, you may
get all supported qsv decoders with the command below:
$ ffmpeg -decoders 2>/dev/null | grep qsv
 V....D av1_qsv              AV1 video (Intel Quick Sync Video acceleration) 
(codec av1)
 V....D h264_qsv             H264 video (Intel Quick Sync Video acceleration) 
(codec h264)
 V....D hevc_qsv             HEVC video (Intel Quick Sync Video acceleration) 
(codec hevc)
 V....D mjpeg_qsv            MJPEG video (Intel Quick Sync Video acceleration) 
(codec mjpeg)
 V....D mpeg2_qsv            MPEG2VIDEO video (Intel Quick Sync Video 
acceleration) (codec mpeg2video)
 V....D vc1_qsv              VC1 video (Intel Quick Sync Video acceleration) 
(codec vc1)
 V....D vp8_qsv              VP8 video (Intel Quick Sync Video acceleration) 
(codec vp8)
 V....D vp9_qsv              VP9 video (Intel Quick Sync Video acceleration) 
(codec vp9)

However for vaapi, you will get nothing,

$ ffmpeg -decoders 2>/dev/null | grep vaapi

Thanks
Haihao


_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to