mxfdec: set audio timebase to 1/samplerate
Fixes sync in some samples (e.g. bugs 7581 and 8374 in VLC). Based on a commit by Matthieu Bouron <matthieu.bouron@gmail.com> Reported-by: Jean-Baptiste Kempf <jb@videolan.org> CC: libav-stable@libav.org
This commit is contained in:
parent
ff07ec143e
commit
93370d1216
@ -1528,8 +1528,16 @@ static int mxf_parse_structural_metadata(MXFContext *mxf)
|
|||||||
st->codec->channels = descriptor->channels;
|
st->codec->channels = descriptor->channels;
|
||||||
st->codec->bits_per_coded_sample = descriptor->bits_per_sample;
|
st->codec->bits_per_coded_sample = descriptor->bits_per_sample;
|
||||||
|
|
||||||
if (descriptor->sample_rate.den > 0)
|
if (descriptor->sample_rate.den > 0) {
|
||||||
st->codec->sample_rate = descriptor->sample_rate.num / descriptor->sample_rate.den;
|
st->codec->sample_rate = descriptor->sample_rate.num / descriptor->sample_rate.den;
|
||||||
|
avpriv_set_pts_info(st, 64, descriptor->sample_rate.den, descriptor->sample_rate.num);
|
||||||
|
} else {
|
||||||
|
av_log(mxf->fc, AV_LOG_WARNING, "invalid sample rate (%d/%d) "
|
||||||
|
"found for stream #%, time base forced to 1/48000\n",
|
||||||
|
descriptor->sample_rate.num, descriptor->sample_rate.den,
|
||||||
|
st->index);
|
||||||
|
avpriv_set_pts_info(st, 64, 1, 48000);
|
||||||
|
}
|
||||||
|
|
||||||
/* TODO: implement AV_CODEC_ID_RAWAUDIO */
|
/* TODO: implement AV_CODEC_ID_RAWAUDIO */
|
||||||
if (st->codec->codec_id == AV_CODEC_ID_PCM_S16LE) {
|
if (st->codec->codec_id == AV_CODEC_ID_PCM_S16LE) {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#tb 0: 1/25
|
#tb 0: 1/25
|
||||||
#tb 1: 1/25
|
#tb 1: 1/8000
|
||||||
0, 0, -9223372036854775808, 1, 8468, 0xc0855553
|
0, 0, -9223372036854775808, 1, 8468, 0xc0855553
|
||||||
1, 0, 0, 50, 32000, 0x479155e6
|
1, 0, 0, 16000, 32000, 0x479155e6
|
||||||
0, 1, -9223372036854775808, 1, 3814, 0xa10783b4
|
0, 1, -9223372036854775808, 1, 3814, 0xa10783b4
|
||||||
0, 2, -9223372036854775808, 1, 3747, 0xb7bf6973
|
0, 2, -9223372036854775808, 1, 3747, 0xb7bf6973
|
||||||
0, 3, -9223372036854775808, 1, 3705, 0x5462a600
|
0, 3, -9223372036854775808, 1, 3705, 0x5462a600
|
||||||
@ -52,7 +52,7 @@
|
|||||||
0, 48, -9223372036854775808, 1, 3688, 0x1db45852
|
0, 48, -9223372036854775808, 1, 3688, 0x1db45852
|
||||||
0, 49, -9223372036854775808, 1, 38412, 0x2ee26a63
|
0, 49, -9223372036854775808, 1, 38412, 0x2ee26a63
|
||||||
0, 50, -9223372036854775808, 1, 8385, 0x0bc20a27
|
0, 50, -9223372036854775808, 1, 8385, 0x0bc20a27
|
||||||
1, 50, 50, 50, 32000, 0x8f7e5009
|
1, 16000, 16000, 16000, 32000, 0x8f7e5009
|
||||||
0, 51, -9223372036854775808, 1, 3733, 0xa3e2a9a0
|
0, 51, -9223372036854775808, 1, 3733, 0xa3e2a9a0
|
||||||
0, 52, -9223372036854775808, 1, 3773, 0x27769caa
|
0, 52, -9223372036854775808, 1, 3773, 0x27769caa
|
||||||
0, 53, -9223372036854775808, 1, 3670, 0xc8335e98
|
0, 53, -9223372036854775808, 1, 3670, 0xc8335e98
|
||||||
|
@ -7,8 +7,8 @@ ret: 0 st: 0 flags:0 ts: 0.800000
|
|||||||
ret: 0 st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
|
ret: 0 st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
|
||||||
ret: 0 st: 0 flags:1 ts:-0.320000
|
ret: 0 st: 0 flags:1 ts:-0.320000
|
||||||
ret: 0 st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos: 6144 size: 24801
|
ret: 0 st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos: 6144 size: 24801
|
||||||
ret:-1 st: 1 flags:0 ts: 2.560000
|
ret:-1 st: 1 flags:0 ts: 2.576667
|
||||||
ret: 0 st: 1 flags:1 ts: 1.480000
|
ret: 0 st: 1 flags:1 ts: 1.470833
|
||||||
ret: 0 st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
|
ret: 0 st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
|
||||||
ret: 0 st:-1 flags:0 ts: 0.365002
|
ret: 0 st:-1 flags:0 ts: 0.365002
|
||||||
ret: 0 st: 0 flags:1 dts: 0.360000 pts: 0.480000 pos: 211968 size: 24787
|
ret: 0 st: 0 flags:1 dts: 0.360000 pts: 0.480000 pos: 211968 size: 24787
|
||||||
@ -17,9 +17,9 @@ ret: 0 st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos: 6144 size: 24801
|
|||||||
ret:-1 st: 0 flags:0 ts: 2.160000
|
ret:-1 st: 0 flags:0 ts: 2.160000
|
||||||
ret: 0 st: 0 flags:1 ts: 1.040000
|
ret: 0 st: 0 flags:1 ts: 1.040000
|
||||||
ret: 0 st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
|
ret: 0 st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
|
||||||
ret: 0 st: 1 flags:0 ts:-0.040000
|
ret: 0 st: 1 flags:0 ts:-0.058333
|
||||||
ret: 0 st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos: 6144 size: 24801
|
ret: 0 st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos: 6144 size: 24801
|
||||||
ret: 0 st: 1 flags:1 ts: 2.840000
|
ret: 0 st: 1 flags:1 ts: 2.835833
|
||||||
ret: 0 st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
|
ret: 0 st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
|
||||||
ret:-1 st:-1 flags:0 ts: 1.730004
|
ret:-1 st:-1 flags:0 ts: 1.730004
|
||||||
ret: 0 st:-1 flags:1 ts: 0.624171
|
ret: 0 st:-1 flags:1 ts: 0.624171
|
||||||
@ -28,9 +28,9 @@ ret: 0 st: 0 flags:0 ts:-0.480000
|
|||||||
ret: 0 st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos: 6144 size: 24801
|
ret: 0 st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos: 6144 size: 24801
|
||||||
ret: 0 st: 0 flags:1 ts: 2.400000
|
ret: 0 st: 0 flags:1 ts: 2.400000
|
||||||
ret: 0 st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
|
ret: 0 st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
|
||||||
ret:-1 st: 1 flags:0 ts: 1.320000
|
ret:-1 st: 1 flags:0 ts: 1.306667
|
||||||
ret: 0 st: 1 flags:1 ts: 0.200000
|
ret: 0 st: 1 flags:1 ts: 0.200833
|
||||||
ret: 0 st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos: 6144 size: 24801
|
ret: 0 st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
|
||||||
ret: 0 st:-1 flags:0 ts:-0.904994
|
ret: 0 st:-1 flags:0 ts:-0.904994
|
||||||
ret: 0 st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos: 6144 size: 24801
|
ret: 0 st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos: 6144 size: 24801
|
||||||
ret: 0 st:-1 flags:1 ts: 1.989173
|
ret: 0 st:-1 flags:1 ts: 1.989173
|
||||||
@ -39,8 +39,8 @@ ret: 0 st: 0 flags:0 ts: 0.880000
|
|||||||
ret: 0 st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
|
ret: 0 st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
|
||||||
ret: 0 st: 0 flags:1 ts:-0.240000
|
ret: 0 st: 0 flags:1 ts:-0.240000
|
||||||
ret: 0 st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos: 6144 size: 24801
|
ret: 0 st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos: 6144 size: 24801
|
||||||
ret:-1 st: 1 flags:0 ts: 2.680000
|
ret:-1 st: 1 flags:0 ts: 2.671667
|
||||||
ret: 0 st: 1 flags:1 ts: 1.560000
|
ret: 0 st: 1 flags:1 ts: 1.565833
|
||||||
ret: 0 st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
|
ret: 0 st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
|
||||||
ret: 0 st:-1 flags:0 ts: 0.460008
|
ret: 0 st:-1 flags:0 ts: 0.460008
|
||||||
ret: 0 st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
|
ret: 0 st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
|
||||||
|
@ -7,10 +7,10 @@ ret: 0 st: 0 flags:0 ts: 0.800000
|
|||||||
ret: 0 st: 0 flags:1 dts: 0.800000 pts: 0.800000 pos:4265984 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.800000 pts: 0.800000 pos:4265984 size:150000
|
||||||
ret: 0 st: 0 flags:1 ts:-0.320000
|
ret: 0 st: 0 flags:1 ts:-0.320000
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 6144 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 6144 size:150000
|
||||||
ret: 0 st: 1 flags:0 ts: 2.560000
|
ret: 0 st: 1 flags:0 ts: 2.576667
|
||||||
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:5117952 size:150000
|
||||||
ret: 0 st: 1 flags:1 ts: 1.480000
|
ret: 0 st: 1 flags:1 ts: 1.470833
|
||||||
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:5117952 size:150000
|
||||||
ret: 0 st:-1 flags:0 ts: 0.365002
|
ret: 0 st:-1 flags:0 ts: 0.365002
|
||||||
ret: 0 st: 0 flags:1 dts: 0.360000 pts: 0.360000 pos:1923072 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.360000 pts: 0.360000 pos:1923072 size:150000
|
||||||
ret: 0 st:-1 flags:1 ts:-0.740831
|
ret: 0 st:-1 flags:1 ts:-0.740831
|
||||||
@ -19,10 +19,10 @@ ret: 0 st: 0 flags:0 ts: 2.160000
|
|||||||
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
|
||||||
ret: 0 st: 0 flags:1 ts: 1.040000
|
ret: 0 st: 0 flags:1 ts: 1.040000
|
||||||
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
|
||||||
ret: 0 st: 1 flags:0 ts:-0.040000
|
ret: 0 st: 1 flags:0 ts:-0.058333
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 6144 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 6144 size:150000
|
||||||
ret: 0 st: 1 flags:1 ts: 2.840000
|
ret: 0 st: 1 flags:1 ts: 2.835833
|
||||||
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:5117952 size:150000
|
||||||
ret: 0 st:-1 flags:0 ts: 1.730004
|
ret: 0 st:-1 flags:0 ts: 1.730004
|
||||||
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
|
||||||
ret: 0 st:-1 flags:1 ts: 0.624171
|
ret: 0 st:-1 flags:1 ts: 0.624171
|
||||||
@ -31,10 +31,10 @@ ret: 0 st: 0 flags:0 ts:-0.480000
|
|||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 6144 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 6144 size:150000
|
||||||
ret: 0 st: 0 flags:1 ts: 2.400000
|
ret: 0 st: 0 flags:1 ts: 2.400000
|
||||||
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
|
||||||
ret: 0 st: 1 flags:0 ts: 1.320000
|
ret: 0 st: 1 flags:0 ts: 1.306667
|
||||||
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:5117952 size:150000
|
||||||
ret: 0 st: 1 flags:1 ts: 0.200000
|
ret: 0 st: 1 flags:1 ts: 0.200833
|
||||||
ret: 0 st: 0 flags:1 dts: 0.200000 pts: 0.200000 pos:1071104 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:5117952 size:150000
|
||||||
ret: 0 st:-1 flags:0 ts:-0.904994
|
ret: 0 st:-1 flags:0 ts:-0.904994
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 6144 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 6144 size:150000
|
||||||
ret: 0 st:-1 flags:1 ts: 1.989173
|
ret: 0 st:-1 flags:1 ts: 1.989173
|
||||||
@ -43,10 +43,10 @@ ret: 0 st: 0 flags:0 ts: 0.880000
|
|||||||
ret: 0 st: 0 flags:1 dts: 0.880000 pts: 0.880000 pos:4691968 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.880000 pts: 0.880000 pos:4691968 size:150000
|
||||||
ret: 0 st: 0 flags:1 ts:-0.240000
|
ret: 0 st: 0 flags:1 ts:-0.240000
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 6144 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 6144 size:150000
|
||||||
ret: 0 st: 1 flags:0 ts: 2.680000
|
ret: 0 st: 1 flags:0 ts: 2.671667
|
||||||
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:5117952 size:150000
|
||||||
ret: 0 st: 1 flags:1 ts: 1.560000
|
ret: 0 st: 1 flags:1 ts: 1.565833
|
||||||
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:5117952 size:150000
|
||||||
ret: 0 st:-1 flags:0 ts: 0.460008
|
ret: 0 st:-1 flags:0 ts: 0.460008
|
||||||
ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos:2562048 size:150000
|
ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos:2562048 size:150000
|
||||||
ret: 0 st:-1 flags:1 ts:-0.645825
|
ret: 0 st:-1 flags:1 ts:-0.645825
|
||||||
|
Loading…
Reference in New Issue
Block a user