mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avformat/matroskaenc: Use custom min timestamp
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
parent
1a8309e954
commit
bca4fef46a
@ -1841,6 +1841,7 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv,
|
|||||||
track->ts_offset = av_rescale_q(par->initial_padding,
|
track->ts_offset = av_rescale_q(par->initial_padding,
|
||||||
(AVRational){ 1, par->sample_rate },
|
(AVRational){ 1, par->sample_rate },
|
||||||
st->time_base);
|
st->time_base);
|
||||||
|
ffstream(st)->lowest_ts_allowed = -track->ts_offset;
|
||||||
}
|
}
|
||||||
if (par->codec_id == AV_CODEC_ID_OPUS)
|
if (par->codec_id == AV_CODEC_ID_OPUS)
|
||||||
put_ebml_uint(pb, MATROSKA_ID_SEEKPREROLL, OPUS_SEEK_PREROLL);
|
put_ebml_uint(pb, MATROSKA_ID_SEEKPREROLL, OPUS_SEEK_PREROLL);
|
||||||
|
@ -127,6 +127,7 @@ fail:
|
|||||||
ffformatcontext(s)->avoid_negative_ts_use_pts =
|
ffformatcontext(s)->avoid_negative_ts_use_pts =
|
||||||
ffformatcontext(oc)->avoid_negative_ts_use_pts;
|
ffformatcontext(oc)->avoid_negative_ts_use_pts;
|
||||||
oc->avoid_negative_ts = AVFMT_AVOID_NEG_TS_DISABLED;
|
oc->avoid_negative_ts = AVFMT_AVOID_NEG_TS_DISABLED;
|
||||||
|
ffformatcontext(oc)->avoid_negative_ts_status = AVOID_NEGATIVE_TS_DISABLED;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -149,10 +150,13 @@ static int webm_chunk_write_header(AVFormatContext *s)
|
|||||||
{
|
{
|
||||||
WebMChunkContext *wc = s->priv_data;
|
WebMChunkContext *wc = s->priv_data;
|
||||||
AVFormatContext *oc = wc->avf;
|
AVFormatContext *oc = wc->avf;
|
||||||
|
AVStream *st = s->streams[0], *ost = oc->streams[0];
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = avformat_write_header(oc, NULL);
|
ret = avformat_write_header(oc, NULL);
|
||||||
ff_format_io_close(s, &oc->pb);
|
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;
|
wc->header_written = 1;
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
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.
|
# Tests maintaining codec delay while remuxing from Matroska.
|
||||||
# For some reason, ffmpeg shifts the timestamps of the input file
|
# For some reason, ffmpeg shifts the timestamps of the input file
|
||||||
# to make them zero before reaching the muxer while it does not
|
# 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_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"
|
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
|
10200 tests/data/fate/matroska-ogg-opus-remux.matroska
|
||||||
#extradata 0: 19, 0x399c0471
|
#extradata 0: 19, 0x399c0471
|
||||||
#tb 0: 1/1000
|
#tb 0: 1/1000
|
||||||
@ -6,54 +6,54 @@
|
|||||||
#codec_id 0: opus
|
#codec_id 0: opus
|
||||||
#sample_rate 0: 48000
|
#sample_rate 0: 48000
|
||||||
#channel_layout_name 0: stereo
|
#channel_layout_name 0: stereo
|
||||||
0, 0, 0, 20, 402, 0x89b1c40f
|
0, -7, -7, 20, 402, 0x89b1c40f
|
||||||
0, 20, 20, 20, 216, 0x7bf97146
|
0, 13, 13, 20, 216, 0x7bf97146
|
||||||
0, 40, 40, 20, 215, 0x6cb86d8b
|
0, 33, 33, 20, 215, 0x6cb86d8b
|
||||||
0, 60, 60, 20, 218, 0x9cfd691c
|
0, 53, 53, 20, 218, 0x9cfd691c
|
||||||
0, 80, 80, 20, 218, 0xd7fe6a94
|
0, 73, 73, 20, 218, 0xd7fe6a94
|
||||||
0, 100, 100, 20, 194, 0x35735de6
|
0, 93, 93, 20, 194, 0x35735de6
|
||||||
0, 120, 120, 20, 216, 0x3ee6705a
|
0, 113, 113, 20, 216, 0x3ee6705a
|
||||||
0, 140, 140, 20, 218, 0x67eb6cb1
|
0, 133, 133, 20, 218, 0x67eb6cb1
|
||||||
0, 160, 160, 20, 218, 0x32d0700d
|
0, 153, 153, 20, 218, 0x32d0700d
|
||||||
0, 180, 180, 20, 219, 0xcb7f6c60
|
0, 173, 173, 20, 219, 0xcb7f6c60
|
||||||
0, 200, 200, 20, 218, 0x9c866b33
|
0, 193, 193, 20, 218, 0x9c866b33
|
||||||
0, 220, 220, 20, 217, 0xfe3e6a53
|
0, 213, 213, 20, 217, 0xfe3e6a53
|
||||||
0, 240, 240, 20, 218, 0x13586833
|
0, 233, 233, 20, 218, 0x13586833
|
||||||
0, 260, 260, 20, 222, 0xbcb2669e
|
0, 253, 253, 20, 222, 0xbcb2669e
|
||||||
0, 280, 280, 20, 218, 0x8dfc6e33
|
0, 273, 273, 20, 218, 0x8dfc6e33
|
||||||
0, 300, 300, 20, 217, 0xf5957051
|
0, 293, 293, 20, 217, 0xf5957051
|
||||||
0, 320, 320, 20, 210, 0xed126e6b
|
0, 313, 313, 20, 210, 0xed126e6b
|
||||||
0, 340, 340, 20, 216, 0xbf947249
|
0, 333, 333, 20, 216, 0xbf947249
|
||||||
0, 360, 360, 20, 203, 0x6c7e680a
|
0, 353, 353, 20, 203, 0x6c7e680a
|
||||||
0, 380, 380, 20, 209, 0xf78f6af4
|
0, 373, 373, 20, 209, 0xf78f6af4
|
||||||
0, 400, 400, 20, 217, 0xd60c684d
|
0, 393, 393, 20, 217, 0xd60c684d
|
||||||
0, 420, 420, 20, 218, 0x89056a7a
|
0, 413, 413, 20, 218, 0x89056a7a
|
||||||
0, 440, 440, 20, 219, 0x0bc674ad
|
0, 433, 433, 20, 219, 0x0bc674ad
|
||||||
0, 460, 460, 20, 217, 0xb1d86d1a
|
0, 453, 453, 20, 217, 0xb1d86d1a
|
||||||
0, 480, 480, 20, 220, 0x433d685a
|
0, 473, 473, 20, 220, 0x433d685a
|
||||||
0, 500, 500, 20, 364, 0x0c88be84
|
0, 493, 493, 20, 364, 0x0c88be84
|
||||||
0, 520, 520, 20, 221, 0x804a733d
|
0, 513, 513, 20, 221, 0x804a733d
|
||||||
0, 540, 540, 20, 215, 0x6e9d6e9b
|
0, 533, 533, 20, 215, 0x6e9d6e9b
|
||||||
0, 560, 560, 20, 215, 0x63016a83
|
0, 553, 553, 20, 215, 0x63016a83
|
||||||
0, 580, 580, 20, 218, 0xf9a46fbe
|
0, 573, 573, 20, 218, 0xf9a46fbe
|
||||||
0, 600, 600, 20, 216, 0xa0d66c08
|
0, 593, 593, 20, 216, 0xa0d66c08
|
||||||
0, 620, 620, 20, 216, 0xa2ca6d0a
|
0, 613, 613, 20, 216, 0xa2ca6d0a
|
||||||
0, 640, 640, 20, 216, 0xf50e6f1d
|
0, 633, 633, 20, 216, 0xf50e6f1d
|
||||||
0, 660, 660, 20, 215, 0x6aaa70b6
|
0, 653, 653, 20, 215, 0x6aaa70b6
|
||||||
0, 680, 680, 20, 219, 0x7ceb6ba0
|
0, 673, 673, 20, 219, 0x7ceb6ba0
|
||||||
0, 700, 700, 20, 220, 0x398d6ca9
|
0, 693, 693, 20, 220, 0x398d6ca9
|
||||||
0, 720, 720, 20, 218, 0x7bd06ed5
|
0, 713, 713, 20, 218, 0x7bd06ed5
|
||||||
0, 740, 740, 20, 219, 0xe2906c62
|
0, 733, 733, 20, 219, 0xe2906c62
|
||||||
0, 760, 760, 20, 217, 0xcf316ba1
|
0, 753, 753, 20, 217, 0xcf316ba1
|
||||||
0, 780, 780, 20, 217, 0x470b6eea
|
0, 773, 773, 20, 217, 0x470b6eea
|
||||||
0, 800, 800, 20, 359, 0x36c2a18a, S=1, 10
|
0, 793, 793, 20, 359, 0x36c2a18a, S=1, 10
|
||||||
[PACKET]
|
[PACKET]
|
||||||
codec_type=audio
|
codec_type=audio
|
||||||
stream_index=0
|
stream_index=0
|
||||||
pts=0
|
pts=-7
|
||||||
pts_time=0.000000
|
pts_time=-0.007000
|
||||||
dts=0
|
dts=-7
|
||||||
dts_time=0.000000
|
dts_time=-0.007000
|
||||||
duration=20
|
duration=20
|
||||||
duration_time=0.020000
|
duration_time=0.020000
|
||||||
size=402
|
size=402
|
||||||
@ -63,10 +63,10 @@ flags=K_
|
|||||||
[PACKET]
|
[PACKET]
|
||||||
codec_type=audio
|
codec_type=audio
|
||||||
stream_index=0
|
stream_index=0
|
||||||
pts=20
|
pts=13
|
||||||
pts_time=0.020000
|
pts_time=0.013000
|
||||||
dts=20
|
dts=13
|
||||||
dts_time=0.020000
|
dts_time=0.013000
|
||||||
duration=20
|
duration=20
|
||||||
duration_time=0.020000
|
duration_time=0.020000
|
||||||
size=216
|
size=216
|
||||||
@ -76,10 +76,10 @@ flags=K_
|
|||||||
[PACKET]
|
[PACKET]
|
||||||
codec_type=audio
|
codec_type=audio
|
||||||
stream_index=0
|
stream_index=0
|
||||||
pts=40
|
pts=33
|
||||||
pts_time=0.040000
|
pts_time=0.033000
|
||||||
dts=40
|
dts=33
|
||||||
dts_time=0.040000
|
dts_time=0.033000
|
||||||
duration=20
|
duration=20
|
||||||
duration_time=0.020000
|
duration_time=0.020000
|
||||||
size=215
|
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
|
9355 tests/data/fate/matroska-opus-remux.matroska
|
||||||
#extradata 0: 19, 0x3a04048f
|
#extradata 0: 19, 0x3a04048f
|
||||||
#tb 0: 1/1000
|
#tb 0: 1/1000
|
||||||
@ -6,65 +6,65 @@
|
|||||||
#codec_id 0: opus
|
#codec_id 0: opus
|
||||||
#sample_rate 0: 48000
|
#sample_rate 0: 48000
|
||||||
#channel_layout_name 0: mono
|
#channel_layout_name 0: mono
|
||||||
0, 0, 0, 20, 320, 0x58b9a88d
|
0, -7, -7, 20, 320, 0x58b9a88d
|
||||||
0, 21, 21, 20, 159, 0x6c9c4b4c
|
0, 14, 14, 20, 159, 0x6c9c4b4c
|
||||||
0, 41, 41, 20, 148, 0x0caf4b5d
|
0, 34, 34, 20, 148, 0x0caf4b5d
|
||||||
0, 61, 61, 20, 139, 0xc5624226
|
0, 54, 54, 20, 139, 0xc5624226
|
||||||
0, 81, 81, 20, 146, 0x633c4937
|
0, 74, 74, 20, 146, 0x633c4937
|
||||||
0, 101, 101, 20, 153, 0x3d0b4f93
|
0, 94, 94, 20, 153, 0x3d0b4f93
|
||||||
0, 121, 121, 20, 158, 0xe5c55641
|
0, 114, 114, 20, 158, 0xe5c55641
|
||||||
0, 141, 141, 20, 156, 0xf2fd50ef
|
0, 134, 134, 20, 156, 0xf2fd50ef
|
||||||
0, 161, 161, 20, 158, 0x93b15410
|
0, 154, 154, 20, 158, 0x93b15410
|
||||||
0, 181, 181, 20, 157, 0xb6f74f5f
|
0, 174, 174, 20, 157, 0xb6f74f5f
|
||||||
0, 201, 201, 20, 159, 0x9aff4957
|
0, 194, 194, 20, 159, 0x9aff4957
|
||||||
0, 221, 221, 20, 153, 0xfc5f4aba
|
0, 214, 214, 20, 153, 0xfc5f4aba
|
||||||
0, 241, 241, 20, 158, 0x01e44f70
|
0, 234, 234, 20, 158, 0x01e44f70
|
||||||
0, 261, 261, 20, 153, 0x227149cf
|
0, 254, 254, 20, 153, 0x227149cf
|
||||||
0, 281, 281, 20, 155, 0x312f4cf6
|
0, 274, 274, 20, 155, 0x312f4cf6
|
||||||
0, 301, 301, 20, 155, 0xafc54bae
|
0, 294, 294, 20, 155, 0xafc54bae
|
||||||
0, 321, 321, 20, 151, 0x7b4252b3
|
0, 314, 314, 20, 151, 0x7b4252b3
|
||||||
0, 341, 341, 20, 155, 0x29074a75
|
0, 334, 334, 20, 155, 0x29074a75
|
||||||
0, 361, 361, 20, 149, 0x82c44bcd
|
0, 354, 354, 20, 149, 0x82c44bcd
|
||||||
0, 381, 381, 20, 150, 0x55c24eb5
|
0, 374, 374, 20, 150, 0x55c24eb5
|
||||||
0, 401, 401, 20, 156, 0xf71d4f33
|
0, 394, 394, 20, 156, 0xf71d4f33
|
||||||
0, 421, 421, 20, 153, 0x9b6c4ae5
|
0, 414, 414, 20, 153, 0x9b6c4ae5
|
||||||
0, 441, 441, 20, 156, 0x75954e51
|
0, 434, 434, 20, 156, 0x75954e51
|
||||||
0, 461, 461, 20, 155, 0x28ff4ff3
|
0, 454, 454, 20, 155, 0x28ff4ff3
|
||||||
0, 481, 481, 20, 153, 0xc4424969
|
0, 474, 474, 20, 153, 0xc4424969
|
||||||
0, 501, 501, 20, 154, 0xfbf94cc8
|
0, 494, 494, 20, 154, 0xfbf94cc8
|
||||||
0, 521, 521, 20, 155, 0x52c549af
|
0, 514, 514, 20, 155, 0x52c549af
|
||||||
0, 541, 541, 20, 150, 0x6f1e4b7a
|
0, 534, 534, 20, 150, 0x6f1e4b7a
|
||||||
0, 561, 561, 20, 158, 0xabb45566
|
0, 554, 554, 20, 158, 0xabb45566
|
||||||
0, 581, 581, 20, 157, 0xe61d4a99
|
0, 574, 574, 20, 157, 0xe61d4a99
|
||||||
0, 601, 601, 20, 159, 0xf45d4fac
|
0, 594, 594, 20, 159, 0xf45d4fac
|
||||||
0, 621, 621, 20, 159, 0xcd0553a5
|
0, 614, 614, 20, 159, 0xcd0553a5
|
||||||
0, 641, 641, 20, 156, 0xdb244e63
|
0, 634, 634, 20, 156, 0xdb244e63
|
||||||
0, 661, 661, 20, 154, 0x78654c52
|
0, 654, 654, 20, 154, 0x78654c52
|
||||||
0, 681, 681, 20, 154, 0x9f804cc8
|
0, 674, 674, 20, 154, 0x9f804cc8
|
||||||
0, 701, 701, 20, 150, 0x1fdf4c80
|
0, 694, 694, 20, 150, 0x1fdf4c80
|
||||||
0, 721, 721, 20, 155, 0x1adc4f89
|
0, 714, 714, 20, 155, 0x1adc4f89
|
||||||
0, 741, 741, 20, 155, 0x4b53511c
|
0, 734, 734, 20, 155, 0x4b53511c
|
||||||
0, 761, 761, 20, 151, 0x8ff2546d
|
0, 754, 754, 20, 151, 0x8ff2546d
|
||||||
0, 781, 781, 20, 158, 0xb7e34f1b
|
0, 774, 774, 20, 158, 0xb7e34f1b
|
||||||
0, 801, 801, 20, 154, 0x4d98474b
|
0, 794, 794, 20, 154, 0x4d98474b
|
||||||
0, 821, 821, 20, 154, 0x14924ea8
|
0, 814, 814, 20, 154, 0x14924ea8
|
||||||
0, 841, 841, 20, 153, 0x8d4752bf
|
0, 834, 834, 20, 153, 0x8d4752bf
|
||||||
0, 861, 861, 20, 149, 0x74785066
|
0, 854, 854, 20, 149, 0x74785066
|
||||||
0, 881, 881, 20, 151, 0x36c94a4c
|
0, 874, 874, 20, 151, 0x36c94a4c
|
||||||
0, 901, 901, 20, 155, 0x82904f3b
|
0, 894, 894, 20, 155, 0x82904f3b
|
||||||
0, 921, 921, 20, 154, 0xd76b4a45
|
0, 914, 914, 20, 154, 0xd76b4a45
|
||||||
0, 941, 941, 20, 159, 0x9fec548d
|
0, 934, 934, 20, 159, 0x9fec548d
|
||||||
0, 961, 961, 20, 154, 0x9a084dcd
|
0, 954, 954, 20, 154, 0x9a084dcd
|
||||||
0, 981, 981, 20, 155, 0x90a54ac8
|
0, 974, 974, 20, 155, 0x90a54ac8
|
||||||
0, 1001, 1001, 20, 324, 0x8e34a2f5
|
0, 994, 994, 20, 324, 0x8e34a2f5
|
||||||
0, 1021, 1021, 20, 268, 0x10f37203, S=1, 10
|
0, 1014, 1014, 20, 268, 0x10f37203, S=1, 10
|
||||||
[PACKET]
|
[PACKET]
|
||||||
codec_type=audio
|
codec_type=audio
|
||||||
stream_index=0
|
stream_index=0
|
||||||
pts=0
|
pts=-7
|
||||||
pts_time=0.000000
|
pts_time=-0.007000
|
||||||
dts=0
|
dts=-7
|
||||||
dts_time=0.000000
|
dts_time=-0.007000
|
||||||
duration=20
|
duration=20
|
||||||
duration_time=0.020000
|
duration_time=0.020000
|
||||||
size=320
|
size=320
|
||||||
@ -74,10 +74,10 @@ flags=K_
|
|||||||
[PACKET]
|
[PACKET]
|
||||||
codec_type=audio
|
codec_type=audio
|
||||||
stream_index=0
|
stream_index=0
|
||||||
pts=21
|
pts=14
|
||||||
pts_time=0.021000
|
pts_time=0.014000
|
||||||
dts=21
|
dts=14
|
||||||
dts_time=0.021000
|
dts_time=0.014000
|
||||||
duration=20
|
duration=20
|
||||||
duration_time=0.020000
|
duration_time=0.020000
|
||||||
size=159
|
size=159
|
||||||
@ -87,10 +87,10 @@ flags=K_
|
|||||||
[PACKET]
|
[PACKET]
|
||||||
codec_type=audio
|
codec_type=audio
|
||||||
stream_index=0
|
stream_index=0
|
||||||
pts=41
|
pts=34
|
||||||
pts_time=0.041000
|
pts_time=0.034000
|
||||||
dts=41
|
dts=34
|
||||||
dts_time=0.041000
|
dts_time=0.034000
|
||||||
duration=20
|
duration=20
|
||||||
duration_time=0.020000
|
duration_time=0.020000
|
||||||
size=148
|
size=148
|
||||||
|
Loading…
Reference in New Issue
Block a user