diff options
author | wm4 <wm4@nowhere> | 2017-01-12 09:40:16 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2017-01-12 13:58:28 +0100 |
commit | 26d25d567f49d0f98f7c21a18be7bd921e351f8d (patch) | |
tree | ddd2bed92d2ec16ab6d1da8dedcfbadc93a15b4f /video/mp_image.c | |
parent | a51e991b564113254d9262565ddb69e40e2fd726 (diff) | |
download | mpv-26d25d567f49d0f98f7c21a18be7bd921e351f8d.tar.bz2 mpv-26d25d567f49d0f98f7c21a18be7bd921e351f8d.tar.xz |
vaapi: properly set hw_subfmt field with new decode API
This fixes direct rendering with hwdec_vaegl.c.
The code duplication between update_image_params() and
mp_image_copy_fields_from_av_frame() is quite annoying,
bit will have to be resolved in another commit.
Diffstat (limited to 'video/mp_image.c')
-rw-r--r-- | video/mp_image.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/video/mp_image.c b/video/mp_image.c index 2c4627c33e..9781386129 100644 --- a/video/mp_image.c +++ b/video/mp_image.c @@ -27,6 +27,7 @@ #include <libavutil/mem.h> #include <libavutil/common.h> #include <libavutil/bswap.h> +#include <libavutil/hwcontext.h> #include <libavutil/rational.h> #include <libavcodec/avcodec.h> @@ -706,6 +707,11 @@ static void mp_image_copy_fields_from_av_frame(struct mp_image *dst, dst->fields |= MP_IMGFIELD_TOP_FIRST; if (src->repeat_pict == 1) dst->fields |= MP_IMGFIELD_REPEAT_FIRST; + + if (src->hw_frames_ctx) { + AVHWFramesContext *fctx = (void *)src->hw_frames_ctx->data; + dst->params.hw_subfmt = pixfmt2imgfmt(fctx->sw_format); + } } // Copy properties and data of the mp_image into the AVFrame, without taking |