OSDN Git Service

examples/qsvdec: free the lavc decoder before closing MFX/VAAPI
authorAnton Khirnov <anton@khirnov.net>
Tue, 11 Aug 2015 13:00:24 +0000 (15:00 +0200)
committerAnton Khirnov <anton@khirnov.net>
Mon, 28 Sep 2015 13:46:10 +0000 (15:46 +0200)
lavc expects MFX to still be in a usable state on close.

doc/examples/qsvdec.c

index 2f26f41..fd934be 100644 (file)
@@ -468,6 +468,10 @@ finish:
 
     av_frame_free(&frame);
 
+    if (decoder_ctx)
+        av_freep(&decoder_ctx->hwaccel_context);
+    avcodec_free_context(&decoder_ctx);
+
     free_surfaces(&decode);
 
     if (decode.mfx_session)
@@ -477,10 +481,6 @@ finish:
     if (dpy)
         XCloseDisplay(dpy);
 
-    if (decoder_ctx)
-        av_freep(&decoder_ctx->hwaccel_context);
-    avcodec_free_context(&decoder_ctx);
-
     avio_close(output_ctx);
 
     return ret;