[vlc-commits] avcodec: vaapi: get output pictures from the pool

Steve Lhomme git at videolan.org
Mon Oct 21 15:11:33 CEST 2019


vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Mon Jul 22 13:47:54 2019 +0200| [001ac973dd355ad165ed20cfc4b617dc598bf953] | committer: Steve Lhomme

avcodec: vaapi: get output pictures from the pool

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=001ac973dd355ad165ed20cfc4b617dc598bf953
---

 modules/codec/avcodec/vaapi.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/modules/codec/avcodec/vaapi.c b/modules/codec/avcodec/vaapi.c
index df7260a8ec..1623088133 100644
--- a/modules/codec/avcodec/vaapi.c
+++ b/modules/codec/avcodec/vaapi.c
@@ -146,7 +146,19 @@ static void Delete(vlc_va_t *va)
     free(sys);
 }
 
-static const struct vlc_va_operations ops = { Get, NULL /* TODO */, Delete, };
+static picture_t *GetVAAPIPicture(vlc_va_t *va, const video_format_t *fmt)
+{
+    picture_t *pic = picture_pool_Get(va->sys->picture_pool);
+    if (pic && !video_format_IsSimilar(&pic->format, fmt))
+    {
+        msg_Err(va, "mismatched pool/decoder format");
+        picture_Release(pic);
+        pic = NULL;
+    }
+    return pic;
+}
+
+static const struct vlc_va_operations ops = { Get, GetVAAPIPicture, Delete, };
 
 static int Create(vlc_va_t *va, AVCodecContext *ctx, const AVPixFmtDescriptor *desc,
                   enum PixelFormat pix_fmt,



More information about the vlc-commits mailing list