Commit c7a2a17a authored by David Fuhrmann's avatar David Fuhrmann

vda: user ref buffer mode

This fixes memory leaks when seeking or dropping frames for other reasons.

close #8927
parent 49984f49
......@@ -2384,24 +2384,24 @@ AS_IF([test "${enable_vda}" != "no"], [
if test "${SYS}" = "darwin"; then
AS_IF([test "x${have_avcodec}" = "xyes"], [
AC_CHECK_HEADERS(VideoDecodeAcceleration/VDADecoder.h,
[
AC_CHECK_HEADERS(libavcodec/vda.h, [
have_avcodec_vda="yes"
],[
AS_IF([test "${enable_vda}" = "yes"],
[AC_MSG_ERROR([vda is present but libavcodec/vda.h is missing])],
[AC_MSG_WARN([vda is present but libavcodec/vda.h is missing ])])
])
],[
AS_IF([test "${enable_vda}" = "yes"],
[AC_MSG_ERROR([Could not find required VideoDecodeAcceleration/VDADecoder.h])],
[AC_MSG_WARN([VideoDecodeAcceleration/VDADecoder.h not found])])
[
PKG_CHECK_EXISTS([libavcodec >= 55.19.0], [
have_avcodec_vda="yes"
],[
AS_IF([test "${enable_vda}" = "yes"],
[AC_MSG_ERROR([libavcodec >= 55.19.0 is required for VDA decoding])],
[AC_MSG_WARN([libavcodec >= 55.19.0 is required for VDA decoding])])
])
],[
AS_IF([test "${enable_vda}" = "yes"],
[AC_MSG_ERROR([Could not find required VideoDecodeAcceleration/VDADecoder.h])],
[AC_MSG_WARN([VideoDecodeAcceleration/VDADecoder.h not found])])
])
],[
AS_IF([test "x${enable_vda}" != "x"], [
AC_MSG_ERROR([--enable-vda and --disable-avcodec options are mutually exclusive.])
])
])
])
fi
])
AM_CONDITIONAL([HAVE_AVCODEC_VDA], [test "${have_avcodec_vda}" = "yes"])
......
......@@ -106,7 +106,6 @@ static void vda_Copy420YpCbCr8Planar( picture_t *p_pic,
i_width, i_height, cache );
CVPixelBufferUnlockBaseAddress( buffer, 0 );
CVPixelBufferRelease( buffer );
}
/*****************************************************************************
......@@ -137,7 +136,6 @@ static void vda_Copy422YpCbCr8( picture_t *p_pic,
}
CVPixelBufferUnlockBaseAddress( buffer, 0 );
CVPixelBufferRelease( buffer );
}
static int Setup( vlc_va_t *external, void **pp_hw_ctx, vlc_fourcc_t *pi_chroma,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment