summaryrefslogtreecommitdiffstats
path: root/video/decode/vd_lavc.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/decode/vd_lavc.c')
-rw-r--r--video/decode/vd_lavc.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/video/decode/vd_lavc.c b/video/decode/vd_lavc.c
index 4935913d73..57b391a6a2 100644
--- a/video/decode/vd_lavc.c
+++ b/video/decode/vd_lavc.c
@@ -225,6 +225,8 @@ static int init(struct dec_video *vd, const char *decoder)
ctx->log = vd->log;
ctx->opts = vd->opts;
+ ctx->selected_hwdec = vd->opts->hwdec_api;
+
if (bstr_endswith0(bstr0(decoder), "_vdpau")) {
MP_WARN(vd, "VDPAU decoder '%s' was requested. "
"This way of enabling hardware\ndecoding is not supported "
@@ -646,6 +648,13 @@ static int control(struct dec_video *vd, int cmd, void *arg)
delay += avctx->thread_count - 1;
*(int *)arg = delay;
return CONTROL_TRUE;
+ case VDCTRL_GET_HWDEC: {
+ int hwdec = ctx->selected_hwdec;
+ if (!ctx->software_fallback_decoder)
+ hwdec = 0;
+ *(int *)arg = hwdec;
+ return CONTROL_TRUE;
+ }
case VDCTRL_FORCE_HWDEC_FALLBACK:
return force_fallback(vd);
}