Я делаю приложение, которое использует FFmpeg на Android для показа экрана.
У меня есть несколько вопросов, чтобы задать вам.
std::vector <AVHWDeviceType> GetSupportHwDeviceType ()
{
unsigned int idx {};
std::vector <AVHWDeviceType> hwDevTypes;
AVHWDeviceType hwDevType = AVHWDeviceType::AV_HWDEVICE_TYPE_NONE;
while ((hwDevType = av_hwdevice_iterate_types (hwDevType)) ! = AVHWDeviceType::AV_HWDEVICE_TYPE_NONE)
{
__android_log_print (ANDROID_LOG_DEBUG, __func__, "[Index% d]", idx ++);
__android_log_print (ANDROID_LOG_DEBUG, __func__,
"[Support Device Name% s]", av_hwdevice_get_type_name (hwDevType));
hwDevTypes.push_back (hwDevType);
}
return hwDevTypes;
}
Я хотел бы использовать аппаратное ускорениес вышеупомянутой функцией, и в результате я не смог найти какой-либо тип.
В https://trac.ffmpeg.org/wiki/HWAccelIntro, он говорит, что Android может использовать MediaCodec.Почему я не могу получить какой-либо тип из Android NDK с помощью GetSupportHwDeviceType ()?
Аргумент Configure, используемый при сборке FFmpeg для Android.
--disable-asm
--enable-cross-comile
--disable-static
--disable-programs
--disable-doc
--enable-shared
--enable-protocol=file
--enable-pic
--enable-small
--enable-mediacodec
--enable-jni
--enable-decoder=h264_mediacodec
--enable-opengl
/* The argument was not supported by ./configure --list-hwaccel in FFmpeg v4.0.3. */
--enable-hwaccel=h264_mediacodec