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 2DD8E44163 for ; Sun, 27 Nov 2022 20:18:57 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 99C2D68B752; Sun, 27 Nov 2022 22:18:54 +0200 (EET) Received: from mail-oi1-f170.google.com (mail-oi1-f170.google.com [209.85.167.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 81A6F68B5E3 for ; Sun, 27 Nov 2022 22:18:47 +0200 (EET) Received: by mail-oi1-f170.google.com with SMTP id n205so9695626oib.1 for ; Sun, 27 Nov 2022 12:18:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=J+pl6tP58T/wrk1YCRslc7W+p7NTL79Hiq2BH9vnUQU=; b=cQSatm860T5sBvPj5rY+pCUC6dtN9CpHzkgJb2w6dZ6I+r47tlcLRPXugTuSDzH/1h k566YDJZMvLnvd9/JJM8my5a/7yLX15AAvajN3s1QWGi7sdUsEPUuNtYMulPSezJkKzi PeHW4q9luK+Nx1oYeV0r82KW9IhLZ/Qm/w3ODl3dyB9kmT2mFivRnQZRDjzJSMz4zGCu 4C2XFQl3leNfu7/JEF4Z+7HlmjD6M2Bg/IOjBpCKZ6dbkIN2u95tm+0a+CuplP8QWA7p N2FxZ/g5IveV6J3EHeMURHpVgYnjAyjFws8ZLiWOXzYnR5KtRdMTyMBtx9xC8npK1Hv/ +HvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=J+pl6tP58T/wrk1YCRslc7W+p7NTL79Hiq2BH9vnUQU=; b=4roVy20vNyaeXFC3dCHFTI86hRFqBJVBtbgOiCONTSLqjaC8Jl23UkaUf5BZXCF5RP YdYXfR9JDV3C5g4mOkUUI/GQaSdLbhcTZFGDL0Xp9sUjKYm0aSA0yj4Bz5ab5s5MO2YH UMot+tCXSKxMou7a2SPKtrHaVvAOCEWLwBL4Jhca/+SgIy7gBJCuWR3WLIr3ki6edv4/ ofBBA2YR/YUd3g8e3d+0dlEJB6H+ti2ALW8oc2BCzt7vfLQdyb1XM8cVTkXR+rX3ugd6 6IDPMqdQs9L5dAMG/EcicGP5v/Oyb0MeN0L0K3DYrDRfH8lNXsFy4Pgi5FIM3i3yZCoq h7KA== X-Gm-Message-State: ANoB5pkNHq/ieEu7sxVV7NKDO/N8874aepo+QKIWFErHyfvB1UAf/izp CG430tIFRqXAgoCTzq4Zs/9pD4gn5AQ= X-Google-Smtp-Source: AA0mqf7oJTC5IR1Ax47eYr0vAirpw0obtsqzXTLP3khIKHKg+ySlHJAUjybk+y2AIQmFJCws0YU3sA== X-Received: by 2002:a05:6808:189e:b0:35a:2a69:3372 with SMTP id bi30-20020a056808189e00b0035a2a693372mr13236439oib.49.1669580325639; Sun, 27 Nov 2022 12:18:45 -0800 (PST) Received: from [192.168.0.15] ([181.85.72.69]) by smtp.gmail.com with ESMTPSA id fq39-20020a0568710b2700b0013b92b3ac64sm4994788oab.3.2022.11.27.12.18.44 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 27 Nov 2022 12:18:45 -0800 (PST) Message-ID: Date: Sun, 27 Nov 2022 17:19:33 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20221127170351.11477-1-anton@khirnov.net> <20221127170351.11477-30-anton@khirnov.net> From: James Almer In-Reply-To: <20221127170351.11477-30-anton@khirnov.net> Subject: Re: [FFmpeg-devel] [PATCH 30/30] lavc/libaomenc: pass through frame durations to encoded packets 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 11/27/2022 2:03 PM, Anton Khirnov wrote: > --- > libavcodec/libaomenc.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c > index bd576fdd3a..c117ca4ee6 100644 > --- a/libavcodec/libaomenc.c > +++ b/libavcodec/libaomenc.c > @@ -1094,6 +1094,7 @@ static int storeframe(AVCodecContext *avctx, struct FrameListData *cx_frame, > } > memcpy(pkt->data, cx_frame->buf, pkt->size); > pkt->pts = pkt->dts = cx_frame->pts; > + pkt->duration = cx_frame->duration; > > if (!!(cx_frame->flags & AOM_FRAME_IS_KEY)) { > pkt->flags |= AV_PKT_FLAG_KEY; > @@ -1275,6 +1276,7 @@ static int aom_encode(AVCodecContext *avctx, AVPacket *pkt, > AOMContext *ctx = avctx->priv_data; > struct aom_image *rawimg = NULL; > int64_t timestamp = 0; > + unsigned long duration = 0; Why does aom_codec_encode() take an unsigned long as argument for this when timestamp is int64_t... > int res, coded_size; > aom_enc_frame_flags_t flags = 0; > > @@ -1287,6 +1289,8 @@ static int aom_encode(AVCodecContext *avctx, AVPacket *pkt, > rawimg->stride[AOM_PLANE_U] = frame->linesize[1]; > rawimg->stride[AOM_PLANE_V] = frame->linesize[2]; > timestamp = frame->pts; > + duration = frame->duration ? frame->duration : > + avctx->ticks_per_frame; Extremely unlikely, but on 32bit targets and Win64 this could end up in a truncated value. > switch (frame->color_range) { > case AVCOL_RANGE_MPEG: > rawimg->range = AOM_CR_STUDIO_RANGE; > @@ -1300,8 +1304,7 @@ static int aom_encode(AVCodecContext *avctx, AVPacket *pkt, > flags |= AOM_EFLAG_FORCE_KF; > } > > - res = aom_codec_encode(&ctx->encoder, rawimg, timestamp, > - avctx->ticks_per_frame, flags); > + res = aom_codec_encode(&ctx->encoder, rawimg, timestamp, duration, flags); > if (res != AOM_CODEC_OK) { > log_encoder_error(avctx, "Error encoding frame"); > return AVERROR_INVALIDDATA; _______________________________________________ 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".