X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Futils.c;h=9b055d2b3ebde639677698921722c8a515cd0b62;hb=d682ae70b4b3a53fb73ec30281f9f4cfbc531edd;hp=84c28c8396e01c3356273d7256c4186131890b54;hpb=64722057b41d5463522740c79995db73678252b5;p=ffmpeg diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 84c28c8396e..9b055d2b3eb 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -2263,7 +2263,11 @@ int attribute_align_arg avcodec_decode_video2(AVCodecContext *avctx, AVFrame *pi if ((avctx->codec->capabilities & AV_CODEC_CAP_DELAY) || avpkt->size || (avctx->active_thread_type & FF_THREAD_FRAME)) { +#if FF_API_MERGE_SD +FF_DISABLE_DEPRECATION_WARNINGS int did_split = av_packet_split_side_data(&tmp); +FF_ENABLE_DEPRECATION_WARNINGS +#endif ret = apply_param_change(avctx, &tmp); if (ret < 0) goto fail; @@ -2295,11 +2299,13 @@ fail: emms_c(); //needed to avoid an emms_c() call before every return; avctx->internal->pkt = NULL; +#if FF_API_MERGE_SD if (did_split) { av_packet_free_side_data(&tmp); if(ret == tmp.size) ret = avpkt->size; } +#endif if (picture->flags & AV_FRAME_FLAG_DISCARD) { *got_picture_ptr = 0; } @@ -2369,7 +2375,11 @@ int attribute_align_arg avcodec_decode_audio4(AVCodecContext *avctx, uint8_t discard_reason = 0; // copy to ensure we do not change avpkt AVPacket tmp = *avpkt; +#if FF_API_MERGE_SD +FF_DISABLE_DEPRECATION_WARNINGS int did_split = av_packet_split_side_data(&tmp); +FF_ENABLE_DEPRECATION_WARNINGS +#endif ret = apply_param_change(avctx, &tmp); if (ret < 0) goto fail; @@ -2481,11 +2491,13 @@ FF_ENABLE_DEPRECATION_WARNINGS } fail: avctx->internal->pkt = NULL; +#if FF_API_MERGE_SD if (did_split) { av_packet_free_side_data(&tmp); if(ret == tmp.size) ret = avpkt->size; } +#endif if (ret >= 0 && *got_frame_ptr) { if (!avctx->refcounted_frames) { @@ -2682,6 +2694,8 @@ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, if ((avctx->codec->capabilities & AV_CODEC_CAP_DELAY) || avpkt->size) { AVPacket pkt_recoded; AVPacket tmp = *avpkt; +#if FF_API_MERGE_SD +FF_DISABLE_DEPRECATION_WARNINGS int did_split = av_packet_split_side_data(&tmp); //apply_param_change(avctx, &tmp); @@ -2694,6 +2708,8 @@ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, memset(tmp.data + tmp.size, 0, FFMIN(avpkt->size - tmp.size, AV_INPUT_BUFFER_PADDING_SIZE)); } +FF_ENABLE_DEPRECATION_WARNINGS +#endif pkt_recoded = tmp; ret = recode_subtitle(avctx, &pkt_recoded, &tmp); @@ -2753,11 +2769,13 @@ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, avctx->internal->pkt = NULL; } +#if FF_API_MERGE_SD if (did_split) { av_packet_free_side_data(&tmp); if(ret == tmp.size) ret = avpkt->size; } +#endif if (*got_sub_ptr) avctx->frame_number++; @@ -2873,12 +2891,18 @@ int attribute_align_arg avcodec_send_packet(AVCodecContext *avctx, const AVPacke if (avctx->codec->send_packet) { if (avpkt) { AVPacket tmp = *avpkt; +#if FF_API_MERGE_SD +FF_DISABLE_DEPRECATION_WARNINGS int did_split = av_packet_split_side_data(&tmp); +FF_ENABLE_DEPRECATION_WARNINGS +#endif ret = apply_param_change(avctx, &tmp); if (ret >= 0) ret = avctx->codec->send_packet(avctx, &tmp); +#if FF_API_MERGE_SD if (did_split) av_packet_free_side_data(&tmp); +#endif return ret; } else { return avctx->codec->send_packet(avctx, NULL);