[vlc-commits] vdpau/avcodec: remove backward compatibility code
Rémi Denis-Courmont
git at videolan.org
Tue Nov 22 20:58:01 CET 2016
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Tue Nov 22 21:56:31 2016 +0200| [ccc8a356d3448651da251fe165d4bc2adcd73de0] | committer: Rémi Denis-Courmont
vdpau/avcodec: remove backward compatibility code
VLC requires a newer libavcodec version anyway.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ccc8a356d3448651da251fe165d4bc2adcd73de0
---
configure.ac | 10 ++--
modules/hw/vdpau/avcodec.c | 123 ---------------------------------------------
2 files changed, 5 insertions(+), 128 deletions(-)
diff --git a/configure.ac b/configure.ac
index 0f5994e..c61bed5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3111,17 +3111,17 @@ AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
have_avcodec_vdpau="no"
AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
case "${avfork}" in
- libav) av_vdpau_ver="55.26.0" ;;
- ffmpeg) av_vdpau_ver="55.42.100" ;;
+ libav) av_vdpau_ver="56.10.0" ;;
+ ffmpeg) av_vdpau_ver="56.19.100" ;;
esac
- PKG_CHECK_EXISTS([libavutil >= 52.4.0 libavcodec >= ${av_vdpau_ver}], [
+ PKG_CHECK_EXISTS([libavcodec >= ${av_vdpau_ver}], [
have_avcodec_vdpau="yes"
AC_MSG_NOTICE([VDPAU decoding acceleration activated])
], [
AS_IF([test -n "${enable_vdpau}"], [
- AC_MSG_ERROR([libav libavutil >= 52.4.0 and libavcodec >= 55.26.0 are required for VDPAU decoding.])
+ AC_MSG_ERROR([libavcodec >= 56.10.0 is required for VDPAU decoding.])
], [
- AC_MSG_WARN([libav libavutil >= 52.4.0 and libavcodec >= 55.26.0 are required for VDPAU decoding.])
+ AC_MSG_WARN([libavcodec >= 56.10.0 are required for VDPAU decoding.])
])
])
])
diff --git a/modules/hw/vdpau/avcodec.c b/modules/hw/vdpau/avcodec.c
index e175cb2..172d2af 100644
--- a/modules/hw/vdpau/avcodec.c
+++ b/modules/hw/vdpau/avcodec.c
@@ -49,24 +49,6 @@ struct vlc_va_sys_t
vlc_vdp_video_field_t *pool[6];
};
-#if !LIBAVCODEC_VERSION_CHECK(56, 10, 0, 19, 100)
-static int av_vdpau_get_surface_parameters(AVCodecContext *avctx,
- VdpChromaType *type,
- uint32_t *width, uint32_t *height)
-{
- if (type != NULL)
- *type = VDP_CHROMA_TYPE_420;
- if (width != NULL)
- *width = (avctx->coded_width + 1) & ~1;
- if (height != NULL)
- *height = (avctx->coded_height + 3) & ~3;
- return 0;
-}
-#endif
-#if !LIBAVCODEC_VERSION_CHECK(56, 9, 0, 18, 100)
-# define AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH (0)
-#endif
-
static vlc_vdp_video_field_t *CreateSurface(vlc_va_t *va)
{
vlc_va_sys_t *sys = va->sys;
@@ -150,35 +132,6 @@ static int Open(vlc_va_t *va, AVCodecContext *avctx, enum PixelFormat pix_fmt,
(void) p_sys;
void *func;
VdpStatus err;
-#if (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(56, 2, 0))
- VdpDecoderProfile profile;
- int level = avctx->level;
-
- if (av_vdpau_get_profile(avctx, &profile))
- {
- msg_Err(va, "unsupported codec %d or profile %d", avctx->codec_id,
- avctx->profile);
- return VLC_EGENERIC;
- }
-
- switch (avctx->codec_id)
- {
- case AV_CODEC_ID_MPEG1VIDEO:
- level = VDP_DECODER_LEVEL_MPEG1_NA;
- break;
- case AV_CODEC_ID_MPEG2VIDEO:
- level = VDP_DECODER_LEVEL_MPEG2_HL;
- break;
- case AV_CODEC_ID_H263:
- level = VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L5;
- break;
- case AV_CODEC_ID_H264:
- if ((avctx->profile & FF_PROFILE_H264_INTRA) && level == 11)
- level = VDP_DECODER_LEVEL_H264_1b;
- default:
- break;
- }
-#endif
VdpChromaType type;
uint32_t width, height;
@@ -218,7 +171,6 @@ static int Open(vlc_va_t *va, AVCodecContext *avctx, enum PixelFormat pix_fmt,
return VLC_EGENERIC;
}
-#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(56, 2, 0))
unsigned flags = AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH;
err = vdp_get_proc_address(sys->vdp, sys->device,
@@ -228,68 +180,6 @@ static int Open(vlc_va_t *va, AVCodecContext *avctx, enum PixelFormat pix_fmt,
if (av_vdpau_bind_context(avctx, sys->device, func, flags))
goto error;
-#else
- AVVDPAUContext *hwctx = av_vdpau_alloc_context();
- if (unlikely(hwctx == NULL))
- goto error;
-
- hwctx->decoder = VDP_INVALID_HANDLE;
- avctx->hwaccel_context = hwctx;
-
- err = vdp_get_proc_address(sys->vdp, sys->device,
- VDP_FUNC_ID_DECODER_RENDER, &func);
- if (err != VDP_STATUS_OK)
- goto error;
-
- hwctx->render = func;
-
- /* Check capabilities */
- VdpBool support;
- uint32_t l, mb, w, h;
-
- if (vdp_video_surface_query_capabilities(sys->vdp, sys->device,
- VDP_CHROMA_TYPE_420, &support, &w, &h) != VDP_STATUS_OK)
- support = VDP_FALSE;
- if (!support)
- {
- msg_Err(va, "video surface format not supported: %s", "YUV 4:2:0");
- goto error;
- }
- msg_Dbg(va, "video surface limits: %"PRIu32"x%"PRIu32, w, h);
- if (w < avctx->coded_width || h < avctx->coded_height)
- {
- msg_Err(va, "video surface above limits: %dx%d",
- avctx->coded_width, avctx->coded_height);
- goto error;
- }
-
- if (vdp_decoder_query_capabilities(sys->vdp, sys->device, profile,
- &support, &l, &mb, &w, &h) != VDP_STATUS_OK)
- support = VDP_FALSE;
- if (!support)
- {
- msg_Err(va, "decoder profile not supported: %u", profile);
- goto error;
- }
- msg_Dbg(va, "decoder profile limits: level %"PRIu32" mb %"PRIu32" "
- "%"PRIu32"x%"PRIu32, l, mb, w, h);
- if ((int)l < level || w < avctx->coded_width || h < avctx->coded_height)
- {
- msg_Err(va, "decoder profile above limits: level %d %dx%d",
- level, avctx->coded_width, avctx->coded_height);
- goto error;
- }
-
- err = vdp_decoder_create(sys->vdp, sys->device, profile, width, height,
- avctx->refs, &hwctx->decoder);
- if (err != VDP_STATUS_OK)
- {
- hwctx->decoder = VDP_INVALID_HANDLE;
- msg_Err(va, "%s creation failure: %s", "decoder",
- vdp_get_error_string(sys->vdp, err));
- goto error;
- }
-#endif
va->sys = sys;
int i = 0;
@@ -321,14 +211,6 @@ static int Open(vlc_va_t *va, AVCodecContext *avctx, enum PixelFormat pix_fmt,
return VLC_SUCCESS;
error:
-#if (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(56, 2, 0))
- if (hwctx != NULL)
- {
- if (hwctx->decoder != VDP_INVALID_HANDLE)
- vdp_decoder_destroy(sys->vdp, hwctx->decoder);
- av_freep(&avctx->hwaccel_context);
- }
-#endif
vdp_release_x11(sys->vdp);
free(sys);
return VLC_EGENERIC;
@@ -337,11 +219,6 @@ error:
static void Close(vlc_va_t *va, AVCodecContext *avctx)
{
vlc_va_sys_t *sys = va->sys;
-#if (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(56, 2, 0))
- AVVDPAUContext *hwctx = avctx->hwaccel_context;
-
- vdp_decoder_destroy(sys->vdp, hwctx->decoder);
-#endif
for (unsigned i = 0; sys->pool[i] != NULL; i++)
DestroySurface(sys->pool[i]);
More information about the vlc-commits
mailing list