On 5/10/2019 1:41 AM, Jing Sun wrote:
> + if (avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER) {
> + EB_BUFFERHEADERTYPE *header_ptr = NULL;
> +
> + svt_ret = EbH265EncStreamHeader(svt_enc->svt_handle, &header_ptr);
> + if (svt_ret != EB_ErrorNone) {
> + av_log(avctx, AV_LOG_ERROR, "Error when build stream header.\n");
> + goto failed_init_enc;
> + }
> +
> + avctx->extradata_size = header_ptr->nFilledLen;
> + avctx->extradata = av_mallocz(avctx->extradata_size +
> AV_INPUT_BUFFER_PADDING_SIZE);
> + if (!avctx->extradata) {
> + av_log(avctx, AV_LOG_ERROR,
> + "Cannot allocate HEVC header of size %d.\n",
> avctx->extradata_size);
> + svt_ret = EB_ErrorInsufficientResources;
> + goto failed_init_enc;
> + }
> + memset(avctx->extradata, 0x0,
> avctx->extradata_size+AV_INPUT_BUFFER_PADDING_SIZE);
You used av_mallocz() to allocate the buffer, so it's already fully zeroed.
In any case, it would be faster to instead use av_malloc() above, then
only zero the padding bytes here. Since you're copying the actual data
in the line below, nothing will remain uninitialized.
> + memcpy(avctx->extradata, header_ptr->pBuffer, avctx->extradata_size);
> + }
_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".