avformat/matroskaenc: Use custom min timestamp

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
pull/388/head
Andreas Rheinhardt 3 years ago
parent 1a8309e954
commit bca4fef46a
  1. 1
      libavformat/matroskaenc.c
  2. 4
      libavformat/webm_chunk.c
  3. 2
      tests/fate/matroska.mak
  4. 108
      tests/ref/fate/matroska-ogg-opus-remux
  5. 130
      tests/ref/fate/matroska-opus-remux

@ -1841,6 +1841,7 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv,
track->ts_offset = av_rescale_q(par->initial_padding,
(AVRational){ 1, par->sample_rate },
st->time_base);
ffstream(st)->lowest_ts_allowed = -track->ts_offset;
}
if (par->codec_id == AV_CODEC_ID_OPUS)
put_ebml_uint(pb, MATROSKA_ID_SEEKPREROLL, OPUS_SEEK_PREROLL);

@ -127,6 +127,7 @@ fail:
ffformatcontext(s)->avoid_negative_ts_use_pts =
ffformatcontext(oc)->avoid_negative_ts_use_pts;
oc->avoid_negative_ts = AVFMT_AVOID_NEG_TS_DISABLED;
ffformatcontext(oc)->avoid_negative_ts_status = AVOID_NEGATIVE_TS_DISABLED;
return 0;
}
@ -149,10 +150,13 @@ static int webm_chunk_write_header(AVFormatContext *s)
{
WebMChunkContext *wc = s->priv_data;
AVFormatContext *oc = wc->avf;
AVStream *st = s->streams[0], *ost = oc->streams[0];
int ret;
ret = avformat_write_header(oc, NULL);
ff_format_io_close(s, &oc->pb);
ffstream(st)->lowest_ts_allowed = ffstream(ost)->lowest_ts_allowed;
ffstream(ost)->lowest_ts_allowed = 0;
wc->header_written = 1;
if (ret < 0)
return ret;

@ -166,7 +166,7 @@ fate-matroska-mpegts-remux: CMD = transcode mpegts $(TARGET_SAMPLES)/mpegts/pmtc
# Tests maintaining codec delay while remuxing from Matroska.
# For some reason, ffmpeg shifts the timestamps of the input file
# to make them zero before reaching the muxer while it does not
# for the ogg-opus-remux test.
# for the ogg-opus-remux test. -avoid_negative_ts make_zero counters this.
FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, OPUS_PARSER OPUS_DECODER) += fate-matroska-opus-remux
fate-matroska-opus-remux: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/codec_delay_opus.mkv matroska "-avoid_negative_ts make_zero -c copy" "-copyts -c copy" "-show_packets -show_entries stream=codec_name,initial_padding -read_intervals %0.05"

@ -1,4 +1,4 @@
47b6b69c2ffdf5729557e90c72d241e9 *tests/data/fate/matroska-ogg-opus-remux.matroska
a3f98769fe55bc5234cf75fb1949749a *tests/data/fate/matroska-ogg-opus-remux.matroska
10200 tests/data/fate/matroska-ogg-opus-remux.matroska
#extradata 0: 19, 0x399c0471
#tb 0: 1/1000
@ -6,54 +6,54 @@
#codec_id 0: opus
#sample_rate 0: 48000
#channel_layout_name 0: stereo
0, 0, 0, 20, 402, 0x89b1c40f
0, 20, 20, 20, 216, 0x7bf97146
0, 40, 40, 20, 215, 0x6cb86d8b
0, 60, 60, 20, 218, 0x9cfd691c
0, 80, 80, 20, 218, 0xd7fe6a94
0, 100, 100, 20, 194, 0x35735de6
0, 120, 120, 20, 216, 0x3ee6705a
0, 140, 140, 20, 218, 0x67eb6cb1
0, 160, 160, 20, 218, 0x32d0700d
0, 180, 180, 20, 219, 0xcb7f6c60
0, 200, 200, 20, 218, 0x9c866b33
0, 220, 220, 20, 217, 0xfe3e6a53
0, 240, 240, 20, 218, 0x13586833
0, 260, 260, 20, 222, 0xbcb2669e
0, 280, 280, 20, 218, 0x8dfc6e33
0, 300, 300, 20, 217, 0xf5957051
0, 320, 320, 20, 210, 0xed126e6b
0, 340, 340, 20, 216, 0xbf947249
0, 360, 360, 20, 203, 0x6c7e680a
0, 380, 380, 20, 209, 0xf78f6af4
0, 400, 400, 20, 217, 0xd60c684d
0, 420, 420, 20, 218, 0x89056a7a
0, 440, 440, 20, 219, 0x0bc674ad
0, 460, 460, 20, 217, 0xb1d86d1a
0, 480, 480, 20, 220, 0x433d685a
0, 500, 500, 20, 364, 0x0c88be84
0, 520, 520, 20, 221, 0x804a733d
0, 540, 540, 20, 215, 0x6e9d6e9b
0, 560, 560, 20, 215, 0x63016a83
0, 580, 580, 20, 218, 0xf9a46fbe
0, 600, 600, 20, 216, 0xa0d66c08
0, 620, 620, 20, 216, 0xa2ca6d0a
0, 640, 640, 20, 216, 0xf50e6f1d
0, 660, 660, 20, 215, 0x6aaa70b6
0, 680, 680, 20, 219, 0x7ceb6ba0
0, 700, 700, 20, 220, 0x398d6ca9
0, 720, 720, 20, 218, 0x7bd06ed5
0, 740, 740, 20, 219, 0xe2906c62
0, 760, 760, 20, 217, 0xcf316ba1
0, 780, 780, 20, 217, 0x470b6eea
0, 800, 800, 20, 359, 0x36c2a18a, S=1, 10
0, -7, -7, 20, 402, 0x89b1c40f
0, 13, 13, 20, 216, 0x7bf97146
0, 33, 33, 20, 215, 0x6cb86d8b
0, 53, 53, 20, 218, 0x9cfd691c
0, 73, 73, 20, 218, 0xd7fe6a94
0, 93, 93, 20, 194, 0x35735de6
0, 113, 113, 20, 216, 0x3ee6705a
0, 133, 133, 20, 218, 0x67eb6cb1
0, 153, 153, 20, 218, 0x32d0700d
0, 173, 173, 20, 219, 0xcb7f6c60
0, 193, 193, 20, 218, 0x9c866b33
0, 213, 213, 20, 217, 0xfe3e6a53
0, 233, 233, 20, 218, 0x13586833
0, 253, 253, 20, 222, 0xbcb2669e
0, 273, 273, 20, 218, 0x8dfc6e33
0, 293, 293, 20, 217, 0xf5957051
0, 313, 313, 20, 210, 0xed126e6b
0, 333, 333, 20, 216, 0xbf947249
0, 353, 353, 20, 203, 0x6c7e680a
0, 373, 373, 20, 209, 0xf78f6af4
0, 393, 393, 20, 217, 0xd60c684d
0, 413, 413, 20, 218, 0x89056a7a
0, 433, 433, 20, 219, 0x0bc674ad
0, 453, 453, 20, 217, 0xb1d86d1a
0, 473, 473, 20, 220, 0x433d685a
0, 493, 493, 20, 364, 0x0c88be84
0, 513, 513, 20, 221, 0x804a733d
0, 533, 533, 20, 215, 0x6e9d6e9b
0, 553, 553, 20, 215, 0x63016a83
0, 573, 573, 20, 218, 0xf9a46fbe
0, 593, 593, 20, 216, 0xa0d66c08
0, 613, 613, 20, 216, 0xa2ca6d0a
0, 633, 633, 20, 216, 0xf50e6f1d
0, 653, 653, 20, 215, 0x6aaa70b6
0, 673, 673, 20, 219, 0x7ceb6ba0
0, 693, 693, 20, 220, 0x398d6ca9
0, 713, 713, 20, 218, 0x7bd06ed5
0, 733, 733, 20, 219, 0xe2906c62
0, 753, 753, 20, 217, 0xcf316ba1
0, 773, 773, 20, 217, 0x470b6eea
0, 793, 793, 20, 359, 0x36c2a18a, S=1, 10
[PACKET]
codec_type=audio
stream_index=0
pts=0
pts_time=0.000000
dts=0
dts_time=0.000000
pts=-7
pts_time=-0.007000
dts=-7
dts_time=-0.007000
duration=20
duration_time=0.020000
size=402
@ -63,10 +63,10 @@ flags=K_
[PACKET]
codec_type=audio
stream_index=0
pts=20
pts_time=0.020000
dts=20
dts_time=0.020000
pts=13
pts_time=0.013000
dts=13
dts_time=0.013000
duration=20
duration_time=0.020000
size=216
@ -76,10 +76,10 @@ flags=K_
[PACKET]
codec_type=audio
stream_index=0
pts=40
pts_time=0.040000
dts=40
dts_time=0.040000
pts=33
pts_time=0.033000
dts=33
dts_time=0.033000
duration=20
duration_time=0.020000
size=215

@ -1,4 +1,4 @@
2ab987ba7bad94b27fae427cdff57723 *tests/data/fate/matroska-opus-remux.matroska
551e45142f0989b281e837a3a86f0218 *tests/data/fate/matroska-opus-remux.matroska
9355 tests/data/fate/matroska-opus-remux.matroska
#extradata 0: 19, 0x3a04048f
#tb 0: 1/1000
@ -6,65 +6,65 @@
#codec_id 0: opus
#sample_rate 0: 48000
#channel_layout_name 0: mono
0, 0, 0, 20, 320, 0x58b9a88d
0, 21, 21, 20, 159, 0x6c9c4b4c
0, 41, 41, 20, 148, 0x0caf4b5d
0, 61, 61, 20, 139, 0xc5624226
0, 81, 81, 20, 146, 0x633c4937
0, 101, 101, 20, 153, 0x3d0b4f93
0, 121, 121, 20, 158, 0xe5c55641
0, 141, 141, 20, 156, 0xf2fd50ef
0, 161, 161, 20, 158, 0x93b15410
0, 181, 181, 20, 157, 0xb6f74f5f
0, 201, 201, 20, 159, 0x9aff4957
0, 221, 221, 20, 153, 0xfc5f4aba
0, 241, 241, 20, 158, 0x01e44f70
0, 261, 261, 20, 153, 0x227149cf
0, 281, 281, 20, 155, 0x312f4cf6
0, 301, 301, 20, 155, 0xafc54bae
0, 321, 321, 20, 151, 0x7b4252b3
0, 341, 341, 20, 155, 0x29074a75
0, 361, 361, 20, 149, 0x82c44bcd
0, 381, 381, 20, 150, 0x55c24eb5
0, 401, 401, 20, 156, 0xf71d4f33
0, 421, 421, 20, 153, 0x9b6c4ae5
0, 441, 441, 20, 156, 0x75954e51
0, 461, 461, 20, 155, 0x28ff4ff3
0, 481, 481, 20, 153, 0xc4424969
0, 501, 501, 20, 154, 0xfbf94cc8
0, 521, 521, 20, 155, 0x52c549af
0, 541, 541, 20, 150, 0x6f1e4b7a
0, 561, 561, 20, 158, 0xabb45566
0, 581, 581, 20, 157, 0xe61d4a99
0, 601, 601, 20, 159, 0xf45d4fac
0, 621, 621, 20, 159, 0xcd0553a5
0, 641, 641, 20, 156, 0xdb244e63
0, 661, 661, 20, 154, 0x78654c52
0, 681, 681, 20, 154, 0x9f804cc8
0, 701, 701, 20, 150, 0x1fdf4c80
0, 721, 721, 20, 155, 0x1adc4f89
0, 741, 741, 20, 155, 0x4b53511c
0, 761, 761, 20, 151, 0x8ff2546d
0, 781, 781, 20, 158, 0xb7e34f1b
0, 801, 801, 20, 154, 0x4d98474b
0, 821, 821, 20, 154, 0x14924ea8
0, 841, 841, 20, 153, 0x8d4752bf
0, 861, 861, 20, 149, 0x74785066
0, 881, 881, 20, 151, 0x36c94a4c
0, 901, 901, 20, 155, 0x82904f3b
0, 921, 921, 20, 154, 0xd76b4a45
0, 941, 941, 20, 159, 0x9fec548d
0, 961, 961, 20, 154, 0x9a084dcd
0, 981, 981, 20, 155, 0x90a54ac8
0, 1001, 1001, 20, 324, 0x8e34a2f5
0, 1021, 1021, 20, 268, 0x10f37203, S=1, 10
0, -7, -7, 20, 320, 0x58b9a88d
0, 14, 14, 20, 159, 0x6c9c4b4c
0, 34, 34, 20, 148, 0x0caf4b5d
0, 54, 54, 20, 139, 0xc5624226
0, 74, 74, 20, 146, 0x633c4937
0, 94, 94, 20, 153, 0x3d0b4f93
0, 114, 114, 20, 158, 0xe5c55641
0, 134, 134, 20, 156, 0xf2fd50ef
0, 154, 154, 20, 158, 0x93b15410
0, 174, 174, 20, 157, 0xb6f74f5f
0, 194, 194, 20, 159, 0x9aff4957
0, 214, 214, 20, 153, 0xfc5f4aba
0, 234, 234, 20, 158, 0x01e44f70
0, 254, 254, 20, 153, 0x227149cf
0, 274, 274, 20, 155, 0x312f4cf6
0, 294, 294, 20, 155, 0xafc54bae
0, 314, 314, 20, 151, 0x7b4252b3
0, 334, 334, 20, 155, 0x29074a75
0, 354, 354, 20, 149, 0x82c44bcd
0, 374, 374, 20, 150, 0x55c24eb5
0, 394, 394, 20, 156, 0xf71d4f33
0, 414, 414, 20, 153, 0x9b6c4ae5
0, 434, 434, 20, 156, 0x75954e51
0, 454, 454, 20, 155, 0x28ff4ff3
0, 474, 474, 20, 153, 0xc4424969
0, 494, 494, 20, 154, 0xfbf94cc8
0, 514, 514, 20, 155, 0x52c549af
0, 534, 534, 20, 150, 0x6f1e4b7a
0, 554, 554, 20, 158, 0xabb45566
0, 574, 574, 20, 157, 0xe61d4a99
0, 594, 594, 20, 159, 0xf45d4fac
0, 614, 614, 20, 159, 0xcd0553a5
0, 634, 634, 20, 156, 0xdb244e63
0, 654, 654, 20, 154, 0x78654c52
0, 674, 674, 20, 154, 0x9f804cc8
0, 694, 694, 20, 150, 0x1fdf4c80
0, 714, 714, 20, 155, 0x1adc4f89
0, 734, 734, 20, 155, 0x4b53511c
0, 754, 754, 20, 151, 0x8ff2546d
0, 774, 774, 20, 158, 0xb7e34f1b
0, 794, 794, 20, 154, 0x4d98474b
0, 814, 814, 20, 154, 0x14924ea8
0, 834, 834, 20, 153, 0x8d4752bf
0, 854, 854, 20, 149, 0x74785066
0, 874, 874, 20, 151, 0x36c94a4c
0, 894, 894, 20, 155, 0x82904f3b
0, 914, 914, 20, 154, 0xd76b4a45
0, 934, 934, 20, 159, 0x9fec548d
0, 954, 954, 20, 154, 0x9a084dcd
0, 974, 974, 20, 155, 0x90a54ac8
0, 994, 994, 20, 324, 0x8e34a2f5
0, 1014, 1014, 20, 268, 0x10f37203, S=1, 10
[PACKET]
codec_type=audio
stream_index=0
pts=0
pts_time=0.000000
dts=0
dts_time=0.000000
pts=-7
pts_time=-0.007000
dts=-7
dts_time=-0.007000
duration=20
duration_time=0.020000
size=320
@ -74,10 +74,10 @@ flags=K_
[PACKET]
codec_type=audio
stream_index=0
pts=21
pts_time=0.021000
dts=21
dts_time=0.021000
pts=14
pts_time=0.014000
dts=14
dts_time=0.014000
duration=20
duration_time=0.020000
size=159
@ -87,10 +87,10 @@ flags=K_
[PACKET]
codec_type=audio
stream_index=0
pts=41
pts_time=0.041000
dts=41
dts_time=0.041000
pts=34
pts_time=0.034000
dts=34
dts_time=0.034000
duration=20
duration_time=0.020000
size=148

Loading…
Cancel
Save