From patchwork Mon Jan 6 10:31:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 17210 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 6149544A196 for ; Mon, 6 Jan 2020 12:37:04 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3548F68ADA6; Mon, 6 Jan 2020 12:37:04 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f194.google.com (mail-pg1-f194.google.com [209.85.215.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7A64968AADF for ; Mon, 6 Jan 2020 12:36:57 +0200 (EET) Received: by mail-pg1-f194.google.com with SMTP id k25so26697195pgt.7 for ; Mon, 06 Jan 2020 02:36:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=Ns1vQY17A3NazmG2DBWvsrHOL30hok8lYAFKS9vYFBk=; b=NK5+aSQh3KReL47loFyqnec3HbuoETjjHahMPfHwHuomb0bsyq01ndoHD9Z4HQqQCj jSuHYX3d1SpYChGA8FfAaHvSdjzyv93WKLIYRIbeG7Rtkxb8laGtroG5e+9XDcNqyPk+ eFXbaeUG4S8lxtOgRVIq+7NdnZ6O9pTZlbGo/BQ3eb4A5dMaK8oOxata8iMu2wg3x53w owD3dZ3xAXgfLT6Eqmk2iNCHeTmZ6+Q/z7Arb7bDnQxq8pket8mI1cQxBfau5lAViFdM HyoumrWDBDUbeXjfC/+i6DwaVxxBnYMmWAuCZ7uX8rB2MhFf5soyBlrqB7f3hmcG+Z6X WOpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=Ns1vQY17A3NazmG2DBWvsrHOL30hok8lYAFKS9vYFBk=; b=D/3YW+fyRzPuepRus85v1Tk3g32OGE9LSESx8KaznnTC7w2/oK0H6ih0cZO0/n3Nha MZz34OyLPDrxBqr1FvD6upsOLOIofc1dBon9xz7DncC91Aq0b4fzHuQRybWx8tyrtZ1u kQKkkBsIGVXDdy65+7D8HcU8SLJNsMqUhmfu7+kg91t8oN8PQYr7WWIwufEeQXZ8a222 uFaL+wcqVaq3/ZF6L1TaqqtU7vPB/DpSm7bX40TGQvoOnVvZl5pb+mkjWMlMxWABlupD 61OhhVEWPosH2rNK8EuONZ9vZg9L4R0znae4NN1t5x/kl7wqzD7yzXCxZGl+fiM/weib wjIg== X-Gm-Message-State: APjAAAU6H59BYM5g+tkad68DyczYlTWVZrgaIMNLuEzk3sNvTAK20xnP H6JBplcVOu1hfBlwYLZoFKAOhR4o X-Google-Smtp-Source: APXvYqyvEoulDwxrQKO7OtCrrsZurBh9MTcS4mQIV0WZ3T0QF1/EQZz2XDnHfVECofbDAd4HJCygZg== X-Received: by 2002:a63:6c09:: with SMTP id h9mr107869346pgc.34.1578306667533; Mon, 06 Jan 2020 02:31:07 -0800 (PST) Received: from vpn.localdomain ([47.90.99.151]) by smtp.gmail.com with ESMTPSA id d65sm77992707pfa.159.2020.01.06.02.31.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Jan 2020 02:31:07 -0800 (PST) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Mon, 6 Jan 2020 18:31:03 +0800 Message-Id: <20200106103103.5355-1-lance.lmwang@gmail.com> X-Mailer: git-send-email 2.9.5 Subject: [FFmpeg-devel] [PATCH v1] avcodec/decode: replace avctx->internal with avci for better readability X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Limin Wang Signed-off-by: Limin Wang --- libavcodec/decode.c | 52 +++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/libavcodec/decode.c b/libavcodec/decode.c index cd275bacc4..03b9da25f9 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -479,32 +479,32 @@ static int decode_simple_internal(AVCodecContext *avctx, AVFrame *frame) side= av_packet_get_side_data(avci->last_pkt_props, AV_PKT_DATA_SKIP_SAMPLES, &side_size); if(side && side_size>=10) { - avctx->internal->skip_samples = AV_RL32(side) * avctx->internal->skip_samples_multiplier; + avci->skip_samples = AV_RL32(side) * avci->skip_samples_multiplier; discard_padding = AV_RL32(side + 4); av_log(avctx, AV_LOG_DEBUG, "skip %d / discard %d samples due to side data\n", - avctx->internal->skip_samples, (int)discard_padding); + avci->skip_samples, (int)discard_padding); skip_reason = AV_RL8(side + 8); discard_reason = AV_RL8(side + 9); } if ((frame->flags & AV_FRAME_FLAG_DISCARD) && got_frame && !(avctx->flags2 & AV_CODEC_FLAG2_SKIP_MANUAL)) { - avctx->internal->skip_samples = FFMAX(0, avctx->internal->skip_samples - frame->nb_samples); + avci->skip_samples = FFMAX(0, avci->skip_samples - frame->nb_samples); got_frame = 0; } - if (avctx->internal->skip_samples > 0 && got_frame && + if (avci->skip_samples > 0 && got_frame && !(avctx->flags2 & AV_CODEC_FLAG2_SKIP_MANUAL)) { - if(frame->nb_samples <= avctx->internal->skip_samples){ + if(frame->nb_samples <= avci->skip_samples){ got_frame = 0; - avctx->internal->skip_samples -= frame->nb_samples; + avci->skip_samples -= frame->nb_samples; av_log(avctx, AV_LOG_DEBUG, "skip whole frame, skip left: %d\n", - avctx->internal->skip_samples); + avci->skip_samples); } else { - av_samples_copy(frame->extended_data, frame->extended_data, 0, avctx->internal->skip_samples, - frame->nb_samples - avctx->internal->skip_samples, avctx->channels, frame->format); + av_samples_copy(frame->extended_data, frame->extended_data, 0, avci->skip_samples, + frame->nb_samples - avci->skip_samples, avctx->channels, frame->format); if(avctx->pkt_timebase.num && avctx->sample_rate) { - int64_t diff_ts = av_rescale_q(avctx->internal->skip_samples, + int64_t diff_ts = av_rescale_q(avci->skip_samples, (AVRational){1, avctx->sample_rate}, avctx->pkt_timebase); if(frame->pts!=AV_NOPTS_VALUE) @@ -523,9 +523,9 @@ FF_ENABLE_DEPRECATION_WARNINGS av_log(avctx, AV_LOG_WARNING, "Could not update timestamps for skipped samples.\n"); } av_log(avctx, AV_LOG_DEBUG, "skip %d/%d samples\n", - avctx->internal->skip_samples, frame->nb_samples); - frame->nb_samples -= avctx->internal->skip_samples; - avctx->internal->skip_samples = 0; + avci->skip_samples, frame->nb_samples); + frame->nb_samples -= avci->skip_samples; + avci->skip_samples = 0; } } @@ -551,11 +551,11 @@ FF_ENABLE_DEPRECATION_WARNINGS if ((avctx->flags2 & AV_CODEC_FLAG2_SKIP_MANUAL) && got_frame) { AVFrameSideData *fside = av_frame_new_side_data(frame, AV_FRAME_DATA_SKIP_SAMPLES, 10); if (fside) { - AV_WL32(fside->data, avctx->internal->skip_samples); + AV_WL32(fside->data, avci->skip_samples); AV_WL32(fside->data + 4, discard_padding); AV_WL8(fside->data + 8, skip_reason); AV_WL8(fside->data + 9, discard_reason); - avctx->internal->skip_samples = 0; + avci->skip_samples = 0; } } } @@ -580,7 +580,7 @@ FF_ENABLE_DEPRECATION_WARNINGS /* do not stop draining when actual_got_frame != 0 or ret < 0 */ /* got_frame == 0 but actual_got_frame != 0 when frame is discarded */ - if (avctx->internal->draining && !actual_got_frame) { + if (avci->draining && !actual_got_frame) { if (ret < 0) { /* prevent infinite loop if a decoder wrongly always return error on draining */ /* reasonable nb_errors_max = maximum b frames + thread count */ @@ -2030,15 +2030,17 @@ static void bsfs_flush(AVCodecContext *avctx) void avcodec_flush_buffers(AVCodecContext *avctx) { - avctx->internal->draining = 0; - avctx->internal->draining_done = 0; - avctx->internal->nb_draining_errors = 0; - av_frame_unref(avctx->internal->buffer_frame); - av_frame_unref(avctx->internal->compat_decode_frame); - av_packet_unref(avctx->internal->buffer_pkt); - avctx->internal->buffer_pkt_valid = 0; + AVCodecInternal *avci = avctx->internal; + + avci->draining = 0; + avci->draining_done = 0; + avci->nb_draining_errors = 0; + av_frame_unref(avci->buffer_frame); + av_frame_unref(avci->compat_decode_frame); + av_packet_unref(avci->buffer_pkt); + avci->buffer_pkt_valid = 0; - av_packet_unref(avctx->internal->ds.in_pkt); + av_packet_unref(avci->ds.in_pkt); if (HAVE_THREADS && avctx->active_thread_type & FF_THREAD_FRAME) ff_thread_flush(avctx); @@ -2051,7 +2053,7 @@ void avcodec_flush_buffers(AVCodecContext *avctx) bsfs_flush(avctx); if (!avctx->refcounted_frames) - av_frame_unref(avctx->internal->to_free); + av_frame_unref(avci->to_free); } void ff_decode_bsfs_uninit(AVCodecContext *avctx)