* [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding
@ 2023-05-31 15:32 Anton Khirnov
2023-05-31 15:32 ` [FFmpeg-devel] [PATCH 2/3] doc/examples/transcode: stop using decoder's AVCodecContext.time_base Anton Khirnov
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Anton Khirnov @ 2023-05-31 15:32 UTC (permalink / raw)
To: ffmpeg-devel
It is recommended for callers to set it, though not required.
---
doc/examples/transcode.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/doc/examples/transcode.c b/doc/examples/transcode.c
index 805a028ed7..7110816fe6 100644
--- a/doc/examples/transcode.c
+++ b/doc/examples/transcode.c
@@ -97,6 +97,9 @@ static int open_input_file(const char *filename)
"for stream #%u\n", i);
return ret;
}
+
+ codec_ctx->pkt_timebase = stream->time_base;
+
/* Reencode video & audio and remux subtitles etc. */
if (codec_ctx->codec_type == AVMEDIA_TYPE_VIDEO
|| codec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) {
--
2.40.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".
^ permalink raw reply [flat|nested] 8+ messages in thread
* [FFmpeg-devel] [PATCH 2/3] doc/examples/transcode: stop using decoder's AVCodecContext.time_base
2023-05-31 15:32 [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding Anton Khirnov
@ 2023-05-31 15:32 ` Anton Khirnov
2023-05-31 16:04 ` Paul B Mahol
2023-05-31 15:32 ` [FFmpeg-devel] [PATCH 3/3] doc/examples/transcode: convert timestamps between filtering and encoding Anton Khirnov
` (2 subsequent siblings)
3 siblings, 1 reply; 8+ messages in thread
From: Anton Khirnov @ 2023-05-31 15:32 UTC (permalink / raw)
To: ffmpeg-devel
The contents of this field are not defined for decoding. Use
pkt_timebase, which is the timebase of demuxed packets.
Drop a tautological av_packet_rescale_ts() call, as the stream and
decoder timebases are the same.
---
doc/examples/transcode.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/doc/examples/transcode.c b/doc/examples/transcode.c
index 7110816fe6..2e1491f432 100644
--- a/doc/examples/transcode.c
+++ b/doc/examples/transcode.c
@@ -269,7 +269,7 @@ static int init_filter(FilteringContext* fctx, AVCodecContext *dec_ctx,
snprintf(args, sizeof(args),
"video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:pixel_aspect=%d/%d",
dec_ctx->width, dec_ctx->height, dec_ctx->pix_fmt,
- dec_ctx->time_base.num, dec_ctx->time_base.den,
+ dec_ctx->pkt_timebase.num, dec_ctx->pkt_timebase.den,
dec_ctx->sample_aspect_ratio.num,
dec_ctx->sample_aspect_ratio.den);
@@ -309,7 +309,7 @@ static int init_filter(FilteringContext* fctx, AVCodecContext *dec_ctx,
av_channel_layout_describe(&dec_ctx->ch_layout, buf, sizeof(buf));
snprintf(args, sizeof(args),
"time_base=%d/%d:sample_rate=%d:sample_fmt=%s:channel_layout=%s",
- dec_ctx->time_base.num, dec_ctx->time_base.den, dec_ctx->sample_rate,
+ dec_ctx->pkt_timebase.num, dec_ctx->pkt_timebase.den, dec_ctx->sample_rate,
av_get_sample_fmt_name(dec_ctx->sample_fmt),
buf);
ret = avfilter_graph_create_filter(&buffersrc_ctx, buffersrc, "in",
@@ -547,9 +547,6 @@ int main(int argc, char **argv)
av_log(NULL, AV_LOG_DEBUG, "Going to reencode&filter the frame\n");
- av_packet_rescale_ts(packet,
- ifmt_ctx->streams[stream_index]->time_base,
- stream->dec_ctx->time_base);
ret = avcodec_send_packet(stream->dec_ctx, packet);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Decoding failed\n");
--
2.40.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".
^ permalink raw reply [flat|nested] 8+ messages in thread
* [FFmpeg-devel] [PATCH 3/3] doc/examples/transcode: convert timestamps between filtering and encoding
2023-05-31 15:32 [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding Anton Khirnov
2023-05-31 15:32 ` [FFmpeg-devel] [PATCH 2/3] doc/examples/transcode: stop using decoder's AVCodecContext.time_base Anton Khirnov
@ 2023-05-31 15:32 ` Anton Khirnov
2023-05-31 16:04 ` Paul B Mahol
2023-05-31 16:03 ` [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding Paul B Mahol
2023-05-31 19:02 ` James Almer
3 siblings, 1 reply; 8+ messages in thread
From: Anton Khirnov @ 2023-05-31 15:32 UTC (permalink / raw)
To: ffmpeg-devel
The timebases do not have to match.
---
doc/examples/transcode.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/doc/examples/transcode.c b/doc/examples/transcode.c
index 2e1491f432..ebe5ad2a42 100644
--- a/doc/examples/transcode.c
+++ b/doc/examples/transcode.c
@@ -439,6 +439,10 @@ static int encode_write_frame(unsigned int stream_index, int flush)
/* encode filtered frame */
av_packet_unref(enc_pkt);
+ if (filt_frame && filt_frame->pts != AV_NOPTS_VALUE)
+ filt_frame->pts = av_rescale_q(filt_frame->pts, filt_frame->time_base,
+ stream->enc_ctx->time_base);
+
ret = avcodec_send_frame(stream->enc_ctx, filt_frame);
if (ret < 0)
@@ -493,6 +497,7 @@ static int filter_encode_write_frame(AVFrame *frame, unsigned int stream_index)
break;
}
+ filter->filtered_frame->time_base = av_buffersink_get_time_base(filter->buffersink_ctx);;
filter->filtered_frame->pict_type = AV_PICTURE_TYPE_NONE;
ret = encode_write_frame(stream_index, 0);
av_frame_unref(filter->filtered_frame);
--
2.40.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".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding
2023-05-31 15:32 [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding Anton Khirnov
2023-05-31 15:32 ` [FFmpeg-devel] [PATCH 2/3] doc/examples/transcode: stop using decoder's AVCodecContext.time_base Anton Khirnov
2023-05-31 15:32 ` [FFmpeg-devel] [PATCH 3/3] doc/examples/transcode: convert timestamps between filtering and encoding Anton Khirnov
@ 2023-05-31 16:03 ` Paul B Mahol
2023-05-31 19:02 ` James Almer
3 siblings, 0 replies; 8+ messages in thread
From: Paul B Mahol @ 2023-05-31 16:03 UTC (permalink / raw)
To: FFmpeg development discussions and patches
LGTM
_______________________________________________
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".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/3] doc/examples/transcode: stop using decoder's AVCodecContext.time_base
2023-05-31 15:32 ` [FFmpeg-devel] [PATCH 2/3] doc/examples/transcode: stop using decoder's AVCodecContext.time_base Anton Khirnov
@ 2023-05-31 16:04 ` Paul B Mahol
0 siblings, 0 replies; 8+ messages in thread
From: Paul B Mahol @ 2023-05-31 16:04 UTC (permalink / raw)
To: FFmpeg development discussions and patches
LGTM
_______________________________________________
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".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] doc/examples/transcode: convert timestamps between filtering and encoding
2023-05-31 15:32 ` [FFmpeg-devel] [PATCH 3/3] doc/examples/transcode: convert timestamps between filtering and encoding Anton Khirnov
@ 2023-05-31 16:04 ` Paul B Mahol
0 siblings, 0 replies; 8+ messages in thread
From: Paul B Mahol @ 2023-05-31 16:04 UTC (permalink / raw)
To: FFmpeg development discussions and patches
LGTM
_______________________________________________
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".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding
2023-05-31 15:32 [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding Anton Khirnov
` (2 preceding siblings ...)
2023-05-31 16:03 ` [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding Paul B Mahol
@ 2023-05-31 19:02 ` James Almer
2023-06-04 14:29 ` Stefano Sabatini
3 siblings, 1 reply; 8+ messages in thread
From: James Almer @ 2023-05-31 19:02 UTC (permalink / raw)
To: ffmpeg-devel
On 5/31/2023 12:32 PM, Anton Khirnov wrote:
> It is recommended for callers to set it, though not required.
Add this comment to the file. It's meant to be an example for library
users to refer to for their implementations, after all.
> ---
> doc/examples/transcode.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/doc/examples/transcode.c b/doc/examples/transcode.c
> index 805a028ed7..7110816fe6 100644
> --- a/doc/examples/transcode.c
> +++ b/doc/examples/transcode.c
> @@ -97,6 +97,9 @@ static int open_input_file(const char *filename)
> "for stream #%u\n", i);
> return ret;
> }
> +
> + codec_ctx->pkt_timebase = stream->time_base;
> +
> /* Reencode video & audio and remux subtitles etc. */
> if (codec_ctx->codec_type == AVMEDIA_TYPE_VIDEO
> || codec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) {
_______________________________________________
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".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding
2023-05-31 19:02 ` James Almer
@ 2023-06-04 14:29 ` Stefano Sabatini
0 siblings, 0 replies; 8+ messages in thread
From: Stefano Sabatini @ 2023-06-04 14:29 UTC (permalink / raw)
To: FFmpeg development discussions and patches
On date Wednesday 2023-05-31 16:02:13 -0300, James Almer wrote:
> On 5/31/2023 12:32 PM, Anton Khirnov wrote:
> > It is recommended for callers to set it, though not required.
> Add this comment to the file. It's meant to be an example for library users
> to refer to for their implementations, after all.
I think we should clarify the expectations (I had a similar local
patch to fix this, but I was unsatisfied with the current status quo
and I was exploring if it would be possible to fix this at the library
level - then I was sidetracked).
_______________________________________________
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".
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-06-04 14:29 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-31 15:32 [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding Anton Khirnov
2023-05-31 15:32 ` [FFmpeg-devel] [PATCH 2/3] doc/examples/transcode: stop using decoder's AVCodecContext.time_base Anton Khirnov
2023-05-31 16:04 ` Paul B Mahol
2023-05-31 15:32 ` [FFmpeg-devel] [PATCH 3/3] doc/examples/transcode: convert timestamps between filtering and encoding Anton Khirnov
2023-05-31 16:04 ` Paul B Mahol
2023-05-31 16:03 ` [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding Paul B Mahol
2023-05-31 19:02 ` James Almer
2023-06-04 14:29 ` Stefano Sabatini
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git