[FFmpeg-devel] [PATCH 3/5] lavc/qsvdec: remove orignal parser code since not needed now
Zhong Li
zhong.li at intel.com
Mon Jan 21 14:41:55 EET 2019
Signed-off-by: Zhong Li <zhong.li at intel.com>
---
configure | 10 +++++-----
libavcodec/qsvdec.c | 16 +---------------
libavcodec/qsvdec.h | 2 --
3 files changed, 6 insertions(+), 22 deletions(-)
diff --git a/configure b/configure
index c2b8fac..946f534 100755
--- a/configure
+++ b/configure
@@ -2957,7 +2957,7 @@ h264_mediacodec_decoder_select="h264_mp4toannexb_bsf h264_parser"
h264_mmal_decoder_deps="mmal"
h264_nvenc_encoder_deps="nvenc"
h264_omx_encoder_deps="omx"
-h264_qsv_decoder_select="h264_mp4toannexb_bsf h264_parser qsvdec"
+h264_qsv_decoder_select="h264_mp4toannexb_bsf qsvdec"
h264_qsv_encoder_select="qsvenc"
h264_rkmpp_decoder_deps="rkmpp"
h264_rkmpp_decoder_select="h264_mp4toannexb_bsf"
@@ -2971,7 +2971,7 @@ hevc_cuvid_decoder_select="hevc_mp4toannexb_bsf"
hevc_mediacodec_decoder_deps="mediacodec"
hevc_mediacodec_decoder_select="hevc_mp4toannexb_bsf hevc_parser"
hevc_nvenc_encoder_deps="nvenc"
-hevc_qsv_decoder_select="hevc_mp4toannexb_bsf hevc_parser qsvdec"
+hevc_qsv_decoder_select="hevc_mp4toannexb_bsf qsvdec"
hevc_qsv_encoder_select="hevcparse qsvenc"
hevc_rkmpp_decoder_deps="rkmpp"
hevc_rkmpp_decoder_select="hevc_mp4toannexb_bsf"
@@ -2991,7 +2991,7 @@ mpeg2_crystalhd_decoder_select="crystalhd"
mpeg2_cuvid_decoder_deps="cuvid"
mpeg2_mmal_decoder_deps="mmal"
mpeg2_mediacodec_decoder_deps="mediacodec"
-mpeg2_qsv_decoder_select="qsvdec mpegvideo_parser"
+mpeg2_qsv_decoder_select="qsvdec"
mpeg2_qsv_encoder_select="qsvenc"
mpeg2_vaapi_encoder_select="cbs_mpeg2 vaapi_encode"
mpeg2_v4l2m2m_decoder_deps="v4l2_m2m mpeg2_v4l2_m2m"
@@ -3008,11 +3008,11 @@ nvenc_hevc_encoder_select="hevc_nvenc_encoder"
vc1_crystalhd_decoder_select="crystalhd"
vc1_cuvid_decoder_deps="cuvid"
vc1_mmal_decoder_deps="mmal"
-vc1_qsv_decoder_select="qsvdec vc1_parser"
+vc1_qsv_decoder_select="qsvdec"
vc1_v4l2m2m_decoder_deps="v4l2_m2m vc1_v4l2_m2m"
vp8_cuvid_decoder_deps="cuvid"
vp8_mediacodec_decoder_deps="mediacodec"
-vp8_qsv_decoder_select="qsvdec vp8_parser"
+vp8_qsv_decoder_select="qsvdec"
vp8_rkmpp_decoder_deps="rkmpp"
vp8_vaapi_encoder_deps="VAEncPictureParameterBufferVP8"
vp8_vaapi_encoder_select="vaapi_encode"
diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c
index 013400b..2f7a4bd 100644
--- a/libavcodec/qsvdec.c
+++ b/libavcodec/qsvdec.c
@@ -474,7 +474,6 @@ int ff_qsv_decode_close(QSVContext *q)
av_fifo_free(q->async_fifo);
q->async_fifo = NULL;
- av_parser_close(q->parser);
avcodec_free_context(&q->avctx_internal);
if (q->internal_session)
@@ -500,25 +499,12 @@ int ff_qsv_process_data(AVCodecContext *avctx, QSVContext *q,
return AVERROR(ENOMEM);
q->avctx_internal->codec_id = avctx->codec_id;
-
- q->parser = av_parser_init(avctx->codec_id);
- if (!q->parser)
- return AVERROR(ENOMEM);
-
- q->parser->flags |= PARSER_FLAG_COMPLETE_FRAMES;
q->orig_pix_fmt = AV_PIX_FMT_NONE;
}
if (!pkt->size)
return qsv_decode(avctx, q, frame, got_frame, pkt);
- /* we assume the packets are already split properly and want
- * just the codec parameters here */
- av_parser_parse2(q->parser, q->avctx_internal,
- &dummy_data, &dummy_size,
- pkt->data, pkt->size, pkt->pts, pkt->dts,
- pkt->pos);
-
/* TODO: flush delayed frames on reinit */
if (!q->initialized){
@@ -540,7 +526,7 @@ int ff_qsv_process_data(AVCodecContext *avctx, QSVContext *q,
return qsv_decode(avctx, q, frame, got_frame, pkt);
reinit_fail:
- q->orig_pix_fmt = q->parser->format = avctx->pix_fmt = AV_PIX_FMT_NONE;
+ q->orig_pix_fmt = avctx->pix_fmt = AV_PIX_FMT_NONE;
return ret;
}
diff --git a/libavcodec/qsvdec.h b/libavcodec/qsvdec.h
index 4812fb2..8e64839 100644
--- a/libavcodec/qsvdec.h
+++ b/libavcodec/qsvdec.h
@@ -56,8 +56,6 @@ typedef struct QSVContext {
int buffered_count;
int reinit_flag;
- // the internal parser and codec context for parsing the data
- AVCodecParserContext *parser;
AVCodecContext *avctx_internal;
enum AVPixelFormat orig_pix_fmt;
uint32_t fourcc;
--
2.7.4
More information about the ffmpeg-devel
mailing list