summaryrefslogtreecommitdiffstats
path: root/video/decode/vdpau_old.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-08-15 18:20:15 +0200
committerwm4 <wm4@nowhere>2013-08-15 23:40:02 +0200
commit0da96385765840c418a789d06ec66c918b59d7ce (patch)
treed7ae53619256e17f9a7c901046af9dffc52786a6 /video/decode/vdpau_old.c
parent30f2db5930993184e125aa5ee46c73002f5de745 (diff)
downloadmpv-0da96385765840c418a789d06ec66c918b59d7ce.tar.bz2
mpv-0da96385765840c418a789d06ec66c918b59d7ce.tar.xz
video/decode: pass parameters directly to hwdec allocate_image callback
Instead of passing AVFrame. This also moves the mysterious logic about the size of the allocated image to common code, instead of duplicating it everywhere.
Diffstat (limited to 'video/decode/vdpau_old.c')
-rw-r--r--video/decode/vdpau_old.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/video/decode/vdpau_old.c b/video/decode/vdpau_old.c
index 4abdafa9c0..b5674dcec0 100644
--- a/video/decode/vdpau_old.c
+++ b/video/decode/vdpau_old.c
@@ -162,18 +162,14 @@ static void release_surface(void *ptr)
talloc_free(state);
}
-static struct mp_image *allocate_image(struct lavc_ctx *ctx, AVFrame *frame)
+static struct mp_image *allocate_image(struct lavc_ctx *ctx, int imgfmt,
+ int w, int h)
{
struct priv *p = ctx->hwdec_priv;
- int imgfmt = pixfmt2imgfmt(frame->format);
if (!IMGFMT_IS_VDPAU(imgfmt))
return NULL;
- // frame->width/height lie. Using them breaks with non-mod 16 video.
- int w = ctx->avctx->width;
- int h = ctx->avctx->height;
-
if (w != p->vid_width || h != p->vid_height || imgfmt != p->image_format) {
p->vid_width = w;
p->vid_height = h;