From 84e847c7c80cc71d24f0e4ceb99331389d960b04 Mon Sep 17 00:00:00 2001 From: James Almer Date: Mon, 13 Jul 2015 14:10:31 -0300 Subject: [PATCH] avcodec/hevc_parser: use the old parser only when hevc decoder is available If it's not, then the new dependence-free parser will be used instead Reviewed-by: Michael Niedermayer Signed-off-by: James Almer --- configure | 2 -- libavcodec/hevc_parser.c | 10 +++++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/configure b/configure index ac32a1f737..88ee936683 100755 --- a/configure +++ b/configure @@ -2441,8 +2441,6 @@ wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel" # parsers h264_parser_select="h264_decoder" hevc_parser_select="golomb" -#If ADVANCED_PARSER is enabled then the decoder is needed otherwise the next line can be removed -hevc_parser_select="hevc_decoder" mpegvideo_parser_select="mpegvideo" mpeg4video_parser_select="error_resilience h263dsp mpeg_er mpegvideo qpeldsp" vc1_parser_select="mpegvideo startcode vc1_decoder" diff --git a/libavcodec/hevc_parser.c b/libavcodec/hevc_parser.c index 77ca017bd7..fd879a6436 100644 --- a/libavcodec/hevc_parser.c +++ b/libavcodec/hevc_parser.c @@ -30,7 +30,7 @@ #define IS_IRAP_NAL(nal) (nal->type >= 16 && nal->type <= 23) -#define ADVANCED_PARSER +#define ADVANCED_PARSER CONFIG_HEVC_DECODER typedef struct HEVCParserContext { ParseContext pc; @@ -40,11 +40,12 @@ typedef struct HEVCParserContext { int parsed_extradata; -#ifdef ADVANCED_PARSER +#if ADVANCED_PARSER HEVCContext h; #endif } HEVCParserContext; +#if !ADVANCED_PARSER static int hevc_parse_slice_header(AVCodecParserContext *s, HEVCNAL *nal, AVCodecContext *avctx) { @@ -81,7 +82,6 @@ static int hevc_parse_slice_header(AVCodecParserContext *s, HEVCNAL *nal, return 0; } -#ifndef ADVANCED_PARSER static int parse_nal_units(AVCodecParserContext *s, const uint8_t *buf, int buf_size, AVCodecContext *avctx) { @@ -166,6 +166,7 @@ static int hevc_find_frame_end(AVCodecParserContext *s, const uint8_t *buf, return END_NOT_FOUND; } +#if ADVANCED_PARSER /** * Parse NAL units of found picture and decode some basic information. * @@ -174,7 +175,6 @@ static int hevc_find_frame_end(AVCodecParserContext *s, const uint8_t *buf, * @param buf buffer with field/frame data. * @param buf_size size of the buffer. */ -#ifdef ADVANCED_PARSER static inline int parse_nal_units(AVCodecParserContext *s, const uint8_t *buf, int buf_size, AVCodecContext *avctx) { @@ -418,7 +418,7 @@ static void hevc_parser_close(AVCodecParserContext *s) HEVCParserContext *ctx = s->priv_data; int i; -#ifdef ADVANCED_PARSER +#if ADVANCED_PARSER HEVCContext *h = &ctx->h; av_freep(&h->HEVClc); #endif