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 1645A4024F for ; Sun, 19 Mar 2023 18:18:07 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4509768C3C1; Sun, 19 Mar 2023 20:18:03 +0200 (EET) Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6087F68C3C0 for ; Sun, 19 Mar 2023 20:17:56 +0200 (EET) Received: by mail-wm1-f42.google.com with SMTP id p13-20020a05600c358d00b003ed346d4522so6219175wmq.2 for ; Sun, 19 Mar 2023 11:17:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679249875; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=4VRl5VpF4NJdH0OWE/NyNXKohcMg6+uskyX1LR74vUU=; b=hjmZxg3UYNaAgGxTW/I9z6JFOPDAJYtXxev/HhiIYaexs5CIZxY46VwHxuiQRWgDRU dvCNzmxCVk+yAc1UaahvQeiZjJT6MrwcsApL9xfBG1ZzkC0mwEsX5NMLDuDXKFF9tUY8 fSzu998pMiBUjazxBYoPnh+x/mB4/tzvHCKfKLPjFi84odHlgfRJSNuTD1BOcUMVEwlg PdjlZ1Eu+3adeHql9PsSDtnXxREx2QUxdtUsoGccj0oPWZ3DeqVJjNpBDGsLczIyfcNa Xp4gzdVpwnxTJOz0YTEX66q6/xAAFJ6H6LqI1pr8tKFZA81T2IG/Qkwk2gynBDOcwFW1 JEnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679249875; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=4VRl5VpF4NJdH0OWE/NyNXKohcMg6+uskyX1LR74vUU=; b=iPJAJEn+4nQ9Sfbhwr+Ax6Pjs6RPuTn8WiuBFiXYcJToLclSemoWpSz56ucLW3Ah3F m63gtdY86STH3ZQ/i6KOAushAdKlirqnEI4RC83ukVg9lOIi8fWIeXh+Iq901faEOL8S JtUOGMr0zHm8rfsfG1MdVFzcCoWkv6W194f/KUMSyoPffnzRQ4ouIFIAp9cw3vWq86tk KvQfhwnv53eCF7MYrqD1bhHdGVRYMXFQhW+GwNq/FNRdue8WdJwiNgrW6XVvt2aFa3uw R0fLl5DFEbajJ/d8WiWDeKvl3MAuti41Y1oph6vwZu4M4wozqXHnaiZL2pciWsQDcpEM n5aA== X-Gm-Message-State: AO0yUKV+MPBPel3R+qmkpod0BttxLyCJhfa51YPIXTEF06aeQ99XMimN uTtMvljHcZdNlQnARrbVP11w6+ZN9sM= X-Google-Smtp-Source: AK7set/XfUc2S7onv0+luDEgXm4Jo9ekkK+hVXJxR0rn5dahA0N7k8FXtKxep85+xcbrSHhAaa0vQQ== X-Received: by 2002:a7b:c8c6:0:b0:3ed:da74:ab13 with SMTP id f6-20020a7bc8c6000000b003edda74ab13mr2126069wml.9.1679249875044; Sun, 19 Mar 2023 11:17:55 -0700 (PDT) Received: from mariano (dynamic-adsl-62-10-90-114.clienti.tiscali.it. [62.10.90.114]) by smtp.gmail.com with ESMTPSA id bg7-20020a05600c3c8700b003eb2e33f327sm24585654wmb.2.2023.03.19.11.17.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 11:17:54 -0700 (PDT) Received: by mariano (Postfix, from userid 1000) id C1F29BFB73; Sun, 19 Mar 2023 19:17:53 +0100 (CET) From: Stefano Sabatini To: FFmpeg development discussions and patches Date: Sun, 19 Mar 2023 19:17:53 +0100 Message-Id: <20230319181753.121233-1-stefasab@gmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] doc/examples/transcode: introduce timestamp logging 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 Cc: Stefano Sabatini Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --- doc/examples/transcode.c | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/doc/examples/transcode.c b/doc/examples/transcode.c index 3bc85dce85..a7398db3d9 100644 --- a/doc/examples/transcode.c +++ b/doc/examples/transcode.c @@ -37,6 +37,7 @@ #include #include #include +#include static AVFormatContext *ifmt_ctx; static AVFormatContext *ofmt_ctx; @@ -432,6 +433,28 @@ static int init_filters(void) return 0; } +static void log_packet(AVPacket *pkt, const AVFormatContext *fmt_ctx, const char *tag) +{ + AVRational *time_base = &fmt_ctx->streams[pkt->stream_index]->time_base; + + av_log(NULL, AV_LOG_INFO, + "%s [pkt] stream:%d pts_time:%s dts_time:%s\n", + tag, pkt->stream_index, + av_ts2timestr(pkt->pts, time_base), + av_ts2timestr(pkt->dts, time_base)); +} + +static void log_frame(AVFrame *frame, int stream_index, const char *tag) +{ + AVRational *time_base = &frame->time_base; + + av_log(NULL, AV_LOG_INFO, + "%s [frame] stream:%d pts_time:%s dts_time:%s\n", + tag, stream_index, + av_ts2timestr(frame->pts, time_base), + av_ts2timestr(frame->pkt_dts, time_base)); +} + static int encode_write_frame(unsigned int stream_index, int flush) { StreamContext *stream = &stream_ctx[stream_index]; @@ -440,7 +463,6 @@ static int encode_write_frame(unsigned int stream_index, int flush) AVPacket *enc_pkt = filter->enc_pkt; int ret; - av_log(NULL, AV_LOG_INFO, "Encoding frame\n"); /* encode filtered frame */ av_packet_unref(enc_pkt); @@ -451,9 +473,10 @@ static int encode_write_frame(unsigned int stream_index, int flush) filt_frame->pkt_dts = av_rescale_q(filt_frame->pkt_dts, filt_frame->time_base, stream->enc_ctx->time_base); filt_frame->time_base = stream->enc_ctx->time_base; + log_frame(filt_frame, stream_index, "encoder <-"); } - ret = avcodec_send_frame(stream->enc_ctx, filt_frame); + ret = avcodec_send_frame(stream->enc_ctx, filt_frame); if (ret < 0) return ret; @@ -469,8 +492,8 @@ static int encode_write_frame(unsigned int stream_index, int flush) stream->enc_ctx->time_base, ofmt_ctx->streams[stream_index]->time_base); - av_log(NULL, AV_LOG_DEBUG, "Muxing frame\n"); /* mux encoded frame */ + log_packet(enc_pkt, ofmt_ctx, "muxer <-"); ret = av_interleaved_write_frame(ofmt_ctx, enc_pkt); } @@ -482,8 +505,11 @@ static int filter_encode_write_frame(AVFrame *frame, unsigned int stream_index) FilteringContext *filter = &filter_ctx[stream_index]; int ret; - av_log(NULL, AV_LOG_INFO, "Pushing decoded frame to filters\n"); /* push the decoded frame into the filtergraph */ + if (frame) { + log_frame(frame, stream_index, "filters <-"); + } + ret = av_buffersrc_add_frame(filter->buffersrc_ctx, frame); if (ret < 0) { av_log(NULL, AV_LOG_ERROR, "Error while feeding the filtergraph\n"); @@ -492,7 +518,6 @@ static int filter_encode_write_frame(AVFrame *frame, unsigned int stream_index) /* pull filtered frames from the filtergraph */ while (1) { - av_log(NULL, AV_LOG_INFO, "Pulling filtered frame from filters\n"); ret = av_buffersink_get_frame(filter->buffersink_ctx, filter->filtered_frame); if (ret < 0) { /* if no more frames for output - returns AVERROR(EAGAIN) @@ -505,6 +530,8 @@ static int filter_encode_write_frame(AVFrame *frame, unsigned int stream_index) } filter->filtered_frame->pict_type = AV_PICTURE_TYPE_NONE; + + log_frame(filter->filtered_frame, stream_index, "filters ->"); ret = encode_write_frame(stream_index, 0); av_frame_unref(filter->filtered_frame); if (ret < 0) @@ -550,6 +577,7 @@ int main(int argc, char **argv) break; stream_index = packet->stream_index; av_log(NULL, AV_LOG_DEBUG, "Demuxer gave frame of stream_index %u\n", stream_index); + log_packet(packet, ifmt_ctx, "demuxer ->"); if (filter_ctx[stream_index].filter_graph) { StreamContext *stream = &stream_ctx[stream_index]; @@ -584,6 +612,7 @@ int main(int argc, char **argv) ifmt_ctx->streams[stream_index]->time_base, ofmt_ctx->streams[stream_index]->time_base); + log_packet(packet, ofmt_ctx, "muxer <-"); ret = av_interleaved_write_frame(ofmt_ctx, packet); if (ret < 0) goto end; -- 2.25.1 _______________________________________________ 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".