Skip to content

Commit

Permalink
Merge pull request #514 from jellyfin/dont-invent-framerate-based-tim…
Browse files Browse the repository at this point in the history
…ebase

fftools/ffmpeg_mux_init: default to input timebase for streamcopy
  • Loading branch information
gnattu authored Dec 11, 2024
2 parents ecaf418 + a6686a4 commit f8c9e37
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
48 changes: 48 additions & 0 deletions debian/patches/0083-default-to-input-timebase-for-streamcopy.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
Index: FFmpeg/fftools/ffmpeg_mux_init.c
===================================================================
--- FFmpeg.orig/fftools/ffmpeg_mux_init.c
+++ FFmpeg/fftools/ffmpeg_mux_init.c
@@ -962,17 +962,12 @@ static int streamcopy_init(const Muxer *
else
ost->st->avg_frame_rate = ist->st->avg_frame_rate;

- ret = avformat_transfer_internal_stream_timing_info(mux->fc->oformat,
- ost->st, ist->st, copy_tb);
- if (ret < 0)
- goto fail;
-
// copy timebase while removing common factors
if (ost->st->time_base.num <= 0 || ost->st->time_base.den <= 0) {
if (fr.num)
ost->st->time_base = av_inv_q(fr);
else
- ost->st->time_base = av_add_q(av_stream_get_codec_timebase(ost->st), (AVRational){0, 1});
+ ost->st->time_base = av_add_q(ist->st->time_base, (AVRational){0, 1});
}

if (!ms->copy_prior_start) {
Index: FFmpeg/tests/fate/ffmpeg.mak
===================================================================
--- FFmpeg.orig/tests/fate/ffmpeg.mak
+++ FFmpeg/tests/fate/ffmpeg.mak
@@ -144,7 +144,7 @@ fate-copy-trac236: CMD = transcode mov $

FATE_STREAMCOPY-$(call TRANSCODE, RAWVIDEO MPEG2VIDEO, MXF, MPEGTS_DEMUXER MPEGVIDEO_PARSER MPEGAUDIO_PARSER MP2_DECODER ARESAMPLE_FILTER PCM_S16LE_DECODER) += fate-copy-trac4914
fate-copy-trac4914: CMD = transcode mpegts $(TARGET_SAMPLES)/mpeg2/xdcam8mp2-1s_small.ts\
- mxf "-c:a pcm_s16le -af aresample -c:v copy"
+ mxf "-c:a pcm_s16le -af aresample -c:v copy -time_base 1001/30000"

FATE_STREAMCOPY-$(call TRANSCODE, RAWVIDEO MPEG2VIDEO, AVI, MPEGTS_DEMUXER MPEGVIDEO_PARSER MPEGAUDIO_PARSER EXTRACT_EXTRADATA_BSF MP2_DECODER ARESAMPLE_FILTER) += fate-copy-trac4914-avi
fate-copy-trac4914-avi: CMD = transcode mpegts $(TARGET_SAMPLES)/mpeg2/xdcam8mp2-1s_small.ts\
Index: FFmpeg/tests/ref/fate/copy-trac4914-avi
===================================================================
--- FFmpeg.orig/tests/ref/fate/copy-trac4914-avi
+++ FFmpeg/tests/ref/fate/copy-trac4914-avi
@@ -1,5 +1,5 @@
-26e4202638bc384b82d2b5eb4d33a5f0 *tests/data/fate/copy-trac4914-avi.avi
-479494 tests/data/fate/copy-trac4914-avi.avi
+3b6f31b806ef421652a066f239536b0d *tests/data/fate/copy-trac4914-avi.avi
+492046 tests/data/fate/copy-trac4914-avi.avi
#tb 0: 1001/30000
#media_type 0: video
#codec_id 0: rawvideo
1 change: 1 addition & 0 deletions debian/patches/series
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,4 @@
0079-videotoolbox-remove-opengl-compatability.patch
0080-use-dynamic-pool-for-vpl-qsv-hwupload.patch
0081-backport-av1-videotoolbox.patch
0083-default-to-input-timebase-for-streamcopy.patch

0 comments on commit f8c9e37

Please sign in to comment.