From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id CB23A461A2 for ; Mon, 7 Aug 2023 20:22:38 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0AA0768C599; Mon, 7 Aug 2023 23:22:35 +0300 (EEST) Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3BD9668C582 for ; Mon, 7 Aug 2023 23:22:28 +0300 (EEST) Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-3fe32016bc8so41824555e9.1 for ; Mon, 07 Aug 2023 13:22:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jkqxz-net.20221208.gappssmtp.com; s=20221208; t=1691439747; x=1692044547; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=/GUcv1cX6rBCk6W09dKsw486nrYgMo39RkhP7urn+LA=; b=TB0O/LMJbrQYLMeQmadpCh92BkZGsXIwILVEqvJqclnGw4j/Elx8Ub7X20Ro6xRsPr oh5btoE+fFs78qz/tW691zngIosWqVpUHdcXtXLz/H1yYxikDnswUQFPbRWa+2sIH0hD oIrLNA2bUVJkWtjO+X5FtFxjgC2A3C/4y5u4uyTOpRjr0NpT3f/kgyv52dgnF3OnnTVF WOKI6hxHLgyKVU79dJPbHpplOLRn4FihGXhv4NeCeQs/L/RhL8Tzx8VYDozUMdfKbt0Q POnh6cIA2084nVjPteaJnX/uBICAFamXNr+ssf+mKVI+ki8MQjrcOW++qfLzCLFXBXoh RxGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691439747; x=1692044547; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=/GUcv1cX6rBCk6W09dKsw486nrYgMo39RkhP7urn+LA=; b=aXUe6joxy+AQPZkt4KryiOBT1iSOWa3Un5HeoXJR/ARH1juoBbGkofn1xGCcANp6Ol QDIt9jYa3uoll7wiDg7ncOLMGSfq8/j7LjHV1CxYOEs/cU4Y52vENCTg2Kx0+cuMjWUQ MKexYIym20LGGac5DpwpHPw0SKkITaIBHKzVVdp59ywTnIcninZfefHh5VXhliKYtErc W4SaGWWtd/SfAYYsMmAArVEe/aLCXxGP2ToTKO1/ZX1Exr7sGFVOfLPCGoTJ3ElLMEZ0 K6ZSCJbyPITurhz7QhIx8LYRrXBVW/UxC8vmCnviJ0s5L5qsBMuslq8HxwirPMFYCugt U74w== X-Gm-Message-State: AOJu0YypSQJmO1xFlT89RmCsyQa/rYgNV1B2iOS2z0ZMef1poSG3hIQm fdQ7eFeZspHZ42tUXIkwS0Gsrq7ikZyiAJcYN8g= X-Google-Smtp-Source: AGHT+IF3vmpRfPiVpp+NdUMXtybnVMsirOuuxeAi5dan3+Ikqo3OnJBJGnLIuIlj9GAVf3i2YKKS6A== X-Received: by 2002:a7b:cb91:0:b0:3fe:212c:f790 with SMTP id m17-20020a7bcb91000000b003fe212cf790mr6642212wmi.36.1691439747224; Mon, 07 Aug 2023 13:22:27 -0700 (PDT) Received: from [192.168.0.15] (cpc92320-cmbg19-2-0-cust383.5-4.cable.virginm.net. [82.13.65.128]) by smtp.gmail.com with ESMTPSA id y8-20020a7bcd88000000b003fe2b081661sm16192040wmj.30.2023.08.07.13.22.26 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 07 Aug 2023 13:22:27 -0700 (PDT) Message-ID: <72de5f4d-2110-6d1f-c369-d8e4cd869598@jkqxz.net> Date: Mon, 7 Aug 2023 21:22:39 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 To: ffmpeg-devel@ffmpeg.org References: <20230803060132.501741-1-fei.w.wang@intel.com> <20230803060132.501741-4-fei.w.wang@intel.com> Content-Language: en-US From: Mark Thompson In-Reply-To: <20230803060132.501741-4-fei.w.wang@intel.com> Subject: Re: [FFmpeg-devel] [PATCH v3 4/6] lavc/vaapi_encode: Extract set output pkt timestamp function X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: On 03/08/2023 07:01, fei.w.wang-at-intel.com@ffmpeg.org wrote: > From: Fei Wang > > Signed-off-by: Fei Wang > --- > libavcodec/vaapi_encode.c | 37 ++++++++++++++++++++++++------------- > 1 file changed, 24 insertions(+), 13 deletions(-) > > diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c > index 8c9f14df66..c8545cd8db 100644 > --- a/libavcodec/vaapi_encode.c > +++ b/libavcodec/vaapi_encode.c > @@ -650,6 +650,27 @@ fail_at_end: > return err; > } > > +static int vaapi_encode_set_output_timestamp(AVCodecContext *avctx, > + VAAPIEncodePicture *pic, > + AVPacket *pkt) > +{ > + VAAPIEncodeContext *ctx = avctx->priv_data; > + > + if (ctx->output_delay == 0) { > + pkt->dts = pkt->pts; > + } else if (pic->encode_order < ctx->decode_delay) { > + if (ctx->ts_ring[pic->encode_order] < INT64_MIN + ctx->dts_pts_diff) > + pkt->dts = INT64_MIN; > + else > + pkt->dts = ctx->ts_ring[pic->encode_order] - ctx->dts_pts_diff; > + } else { > + pkt->dts = ctx->ts_ring[(pic->encode_order - ctx->decode_delay) % > + (3 * ctx->output_delay + ctx->async_depth)]; > + } > + > + return 0; > +} > + > static int vaapi_encode_output(AVCodecContext *avctx, > VAAPIEncodePicture *pic, AVPacket *pkt) > { > @@ -1273,19 +1294,9 @@ int ff_vaapi_encode_receive_packet(AVCodecContext *avctx, AVPacket *pkt) > return err; > } > > - if (ctx->output_delay == 0) { > - pkt->dts = pkt->pts; > - } else if (pic->encode_order < ctx->decode_delay) { > - if (ctx->ts_ring[pic->encode_order] < INT64_MIN + ctx->dts_pts_diff) > - pkt->dts = INT64_MIN; > - else > - pkt->dts = ctx->ts_ring[pic->encode_order] - ctx->dts_pts_diff; > - } else { > - pkt->dts = ctx->ts_ring[(pic->encode_order - ctx->decode_delay) % > - (3 * ctx->output_delay + ctx->async_depth)]; > - } > - av_log(avctx, AV_LOG_DEBUG, "Output packet: pts %"PRId64" dts %"PRId64".\n", > - pkt->pts, pkt->dts); > + vaapi_encode_set_output_timestamp(avctx, pic, pkt); > + av_log(avctx, AV_LOG_DEBUG, "Output packet: pts %"PRId64", dts %"PRId64", " > + "size %u bytes.\n", pkt->pts, pkt->dts, pkt->size); Packet size is not unsigned. > > ctx->output_order = pic->encode_order; > vaapi_encode_clear_old(avctx); Seems fair to extract this to its own function, LGTM. Thanks, - Mark _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".