summaryrefslogtreecommitdiffstats
path: root/avtools/avconv_opt.c
diff options
context:
space:
mode:
Diffstat (limited to 'avtools/avconv_opt.c')
-rw-r--r--avtools/avconv_opt.c47
1 files changed, 21 insertions, 26 deletions
diff --git a/avtools/avconv_opt.c b/avtools/avconv_opt.c
index df69336..a4a225c 100644
--- a/avtools/avconv_opt.c
+++ b/avtools/avconv_opt.c
@@ -56,33 +56,11 @@
}
const HWAccel hwaccels[] = {
-#if HAVE_VDPAU_X11
- { "vdpau", hwaccel_decode_init, HWACCEL_VDPAU, AV_PIX_FMT_VDPAU,
- AV_HWDEVICE_TYPE_VDPAU },
-#endif
-#if CONFIG_D3D11VA
- { "d3d11va", hwaccel_decode_init, HWACCEL_D3D11VA, AV_PIX_FMT_D3D11,
- AV_HWDEVICE_TYPE_D3D11VA },
-#endif
-#if CONFIG_DXVA2
- { "dxva2", hwaccel_decode_init, HWACCEL_DXVA2, AV_PIX_FMT_DXVA2_VLD,
- AV_HWDEVICE_TYPE_DXVA2 },
-#endif
#if CONFIG_VDA
- { "vda", vda_init, HWACCEL_VDA, AV_PIX_FMT_VDA,
- AV_HWDEVICE_TYPE_NONE },
+ { "vda", vda_init, HWACCEL_VDA, AV_PIX_FMT_VDA },
#endif
#if CONFIG_LIBMFX
- { "qsv", qsv_init, HWACCEL_QSV, AV_PIX_FMT_QSV,
- AV_HWDEVICE_TYPE_NONE },
-#endif
-#if CONFIG_VAAPI
- { "vaapi", hwaccel_decode_init, HWACCEL_VAAPI, AV_PIX_FMT_VAAPI,
- AV_HWDEVICE_TYPE_VAAPI },
-#endif
-#if CONFIG_CUVID
- { "cuvid", hwaccel_decode_init, HWACCEL_CUVID, AV_PIX_FMT_CUDA,
- AV_HWDEVICE_TYPE_CUDA },
+ { "qsv", qsv_init, HWACCEL_QSV, AV_PIX_FMT_QSV },
#endif
{ 0 },
};
@@ -201,12 +179,15 @@ static double parse_frame_aspect_ratio(const char *arg)
static int show_hwaccels(void *optctx, const char *opt, const char *arg)
{
+ enum AVHWDeviceType type = AV_HWDEVICE_TYPE_NONE;
int i;
printf("Supported hardware acceleration:\n");
- for (i = 0; hwaccels[i].name; i++) {
+ while ((type = av_hwdevice_iterate_types(type)) !=
+ AV_HWDEVICE_TYPE_NONE)
+ printf("%s\n", av_hwdevice_get_type_name(type));
+ for (i = 0; hwaccels[i].name; i++)
printf("%s\n", hwaccels[i].name);
- }
printf("\n");
return 0;
}
@@ -623,6 +604,7 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
else if (!strcmp(hwaccel, "auto"))
ist->hwaccel_id = HWACCEL_AUTO;
else {
+ enum AVHWDeviceType type;
int i;
for (i = 0; hwaccels[i].name; i++) {
if (!strcmp(hwaccels[i].name, hwaccel)) {
@@ -632,9 +614,22 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
}
if (!ist->hwaccel_id) {
+ type = av_hwdevice_find_type_by_name(hwaccel);
+ if (type != AV_HWDEVICE_TYPE_NONE) {
+ ist->hwaccel_id = HWACCEL_GENERIC;
+ ist->hwaccel_device_type = type;
+ }
+ }
+
+ if (!ist->hwaccel_id) {
av_log(NULL, AV_LOG_FATAL, "Unrecognized hwaccel: %s.\n",
hwaccel);
av_log(NULL, AV_LOG_FATAL, "Supported hwaccels: ");
+ type = AV_HWDEVICE_TYPE_NONE;
+ while ((type = av_hwdevice_iterate_types(type)) !=
+ AV_HWDEVICE_TYPE_NONE)
+ av_log(NULL, AV_LOG_FATAL, "%s ",
+ av_hwdevice_get_type_name(type));
for (i = 0; hwaccels[i].name; i++)
av_log(NULL, AV_LOG_FATAL, "%s ", hwaccels[i].name);
av_log(NULL, AV_LOG_FATAL, "\n");
OpenPOWER on IntegriCloud