diff --git a/utils/MediaBase/src/FfmpegDecoder.cpp b/utils/MediaBase/src/FfmpegDecoder.cpp index 8be9226..2d64073 100644 --- a/utils/MediaBase/src/FfmpegDecoder.cpp +++ b/utils/MediaBase/src/FfmpegDecoder.cpp @@ -146,13 +146,20 @@ void inline FfmpegDecoder::AVParseData(const void *data, const size_t &size, } uint8_t *frameData = (uint8_t *)data; size_t data_size = size; + size_t parse_size = 0; while (data_size > 0) { + if (data_size > 4096) { + parse_size = 4096; + } + else { + parse_size = data_size; + } int ret = av_parser_parse2(mParser, mCodecCtx, &mPacket->data, &mPacket->size, frameData, - data_size, + parse_size, AV_NOPTS_VALUE, AV_NOPTS_VALUE, 0);