Permalink
Browse files

ffmpeg: use av_rescale_delta() on the audio filter input

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
  • Loading branch information...
michaelni committed Oct 26, 2012
1 parent 8766ad9 commit a9d97e1b0af676c82abbf2673c7fdf7e557a363c
Showing with 497 additions and 492 deletions.
  1. +3 −3 ffmpeg.c
  2. +3 −0 ffmpeg.h
  3. +2 −0 ffmpeg_opt.c
  4. +155 −155 tests/ref/fate/adpcm-ima-amv
  5. +333 −333 tests/ref/fate/adpcm-ima-smjpeg
  6. +1 −1 tests/ref/lavf/mxf
View
@@ -1525,9 +1525,9 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output)
decoded_frame_tb = AV_TIME_BASE_Q;
}
if (decoded_frame->pts != AV_NOPTS_VALUE)
- decoded_frame->pts = av_rescale_q(decoded_frame->pts,
- decoded_frame_tb,
- (AVRational){1, ist->st->codec->sample_rate});
+ decoded_frame->pts = av_rescale_delta(decoded_frame_tb, decoded_frame->pts,
+ (AVRational){1, ist->st->codec->sample_rate}, decoded_frame->nb_samples, &ist->filter_in_rescale_delta_last,
+ (AVRational){1, ist->st->codec->sample_rate});
for (i = 0; i < ist->nb_filters; i++)
av_buffersrc_add_frame(ist->filters[i]->filter, decoded_frame,
AV_BUFFERSRC_FLAG_PUSH);
View
@@ -217,6 +217,9 @@ typedef struct InputStream {
int64_t next_pts; ///< synthetic pts for the next decode frame (in AV_TIME_BASE units)
int64_t pts; ///< current pts of the decoded frame (in AV_TIME_BASE units)
int wrap_correction_done;
+
+ int64_t filter_in_rescale_delta_last;
+
double ts_scale;
int is_start; /* is 1 at the start and after a discontinuity */
int saw_first_ts;
View
@@ -586,6 +586,8 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
ist->reinit_filters = -1;
MATCH_PER_STREAM_OPT(reinit_filters, i, ist->reinit_filters, ic, st);
+ ist->filter_in_rescale_delta_last = AV_NOPTS_VALUE;
+
switch (dec->codec_type) {
case AVMEDIA_TYPE_VIDEO:
if(!ist->dec)
@@ -3,159 +3,159 @@
0, 1378, 1378, 1378, 2756, 0x8462443f
0, 2756, 2756, 1378, 2756, 0x9f493ba6
0, 4134, 4134, 1378, 2756, 0x634e5f06
-0, 5513, 5513, 1380, 2760, 0x51f35cd4
-0, 6891, 6891, 1378, 2756, 0x011c51e5
-0, 8269, 8269, 1378, 2756, 0x8c2c198c
-0, 9647, 9647, 1378, 2756, 0x2b4a3397
-0, 11025, 11025, 1378, 2756, 0x63794f22
-0, 12403, 12403, 1378, 2756, 0xfc363898
-0, 13781, 13781, 1378, 2756, 0x0da5486e
-0, 15159, 15159, 1378, 2756, 0xbae17a5f
+0, 5512, 5512, 1380, 2760, 0x51f35cd4
+0, 6892, 6892, 1378, 2756, 0x011c51e5
+0, 8270, 8270, 1378, 2756, 0x8c2c198c
+0, 9648, 9648, 1378, 2756, 0x2b4a3397
+0, 11026, 11026, 1378, 2756, 0x63794f22
+0, 12404, 12404, 1378, 2756, 0xfc363898
+0, 13782, 13782, 1378, 2756, 0x0da5486e
+0, 15160, 15160, 1378, 2756, 0xbae17a5f
0, 16538, 16538, 1380, 2760, 0xba266e1b
-0, 17916, 17916, 1378, 2756, 0xdfb61002
-0, 19294, 19294, 1378, 2756, 0x15d029da
-0, 20672, 20672, 1378, 2756, 0x7bc82012
-0, 22050, 22050, 1378, 2756, 0x002e6999
-0, 23428, 23428, 1378, 2756, 0x96346ba6
-0, 24806, 24806, 1378, 2756, 0x3d54543b
-0, 26184, 26184, 1380, 2760, 0x601786e1
-0, 27563, 27563, 1378, 2756, 0xf22a5793
-0, 28941, 28941, 1378, 2756, 0x21f54d49
-0, 30319, 30319, 1378, 2756, 0x0c6d4399
-0, 31697, 31697, 1378, 2756, 0x17282f8e
-0, 33075, 33075, 1378, 2756, 0xeb698f75
-0, 34453, 34453, 1378, 2756, 0x935e1de2
-0, 35831, 35831, 1380, 2760, 0xb6fb4293
-0, 37209, 37209, 1378, 2756, 0x485053dc
-0, 38588, 38588, 1378, 2756, 0x24c35027
-0, 39966, 39966, 1378, 2756, 0x09f323ee
-0, 41344, 41344, 1378, 2756, 0xbc7d58d5
-0, 42722, 42722, 1378, 2756, 0xaefd487c
-0, 44100, 44100, 1378, 2756, 0xaca16cc0
-0, 45478, 45478, 1380, 2760, 0x98a76091
-0, 46856, 46856, 1378, 2756, 0x5d357141
-0, 48234, 48234, 1378, 2756, 0x65ea2657
-0, 49613, 49613, 1378, 2756, 0xb5e1334a
-0, 50991, 50991, 1378, 2756, 0x32cd5d91
-0, 52369, 52369, 1378, 2756, 0xdc23722b
-0, 53747, 53747, 1378, 2756, 0x2ba34684
-0, 55125, 55125, 1378, 2756, 0xf9755ba8
-0, 56503, 56503, 1380, 2760, 0x24221ddb
-0, 57881, 57881, 1378, 2756, 0xef843aa4
-0, 59259, 59259, 1378, 2756, 0x420442fe
-0, 60638, 60638, 1378, 2756, 0x5a0933cb
-0, 62016, 62016, 1378, 2756, 0xef5f6d61
-0, 63394, 63394, 1378, 2756, 0xe57e6dc0
-0, 64772, 64772, 1378, 2756, 0xc0f0495a
-0, 66150, 66150, 1380, 2760, 0x2c3b55df
-0, 67528, 67528, 1378, 2756, 0x39c2586c
-0, 68906, 68906, 1378, 2756, 0x7ffc46e5
-0, 70284, 70284, 1378, 2756, 0xa2766664
-0, 71663, 71663, 1378, 2756, 0xacb50c6c
-0, 73041, 73041, 1378, 2756, 0x7f659084
-0, 74419, 74419, 1378, 2756, 0xc72e6a12
-0, 75797, 75797, 1380, 2760, 0xdb6944df
-0, 77175, 77175, 1378, 2756, 0x954f45c1
-0, 78553, 78553, 1378, 2756, 0xa9484240
-0, 79931, 79931, 1378, 2756, 0x1d595349
-0, 81309, 81309, 1378, 2756, 0xcf2a565e
-0, 82688, 82688, 1378, 2756, 0x391028d5
-0, 84066, 84066, 1378, 2756, 0x348db7ad
-0, 85444, 85444, 1380, 2760, 0xb69b5e3a
-0, 86822, 86822, 1378, 2756, 0xe3635fbe
-0, 88200, 88200, 1378, 2756, 0xdcad3654
-0, 89578, 89578, 1378, 2756, 0x5c17abef
-0, 90956, 90956, 1378, 2756, 0xb3235184
-0, 92334, 92334, 1378, 2756, 0xdabb64a6
-0, 93713, 93713, 1378, 2756, 0xa95dc58d
-0, 95091, 95091, 1380, 2760, 0x8e7ac9eb
-0, 96469, 96469, 1378, 2756, 0x492b658e
-0, 97847, 97847, 1378, 2756, 0x377483ab
-0, 99225, 99225, 1378, 2756, 0x2c250279
-0, 100603, 100603, 1378, 2756, 0x704dbdb3
-0, 101981, 101981, 1378, 2756, 0x800d7da2
-0, 103359, 103359, 1378, 2756, 0x872aa32e
-0, 104738, 104738, 1378, 2756, 0x2d4837fe
-0, 106116, 106116, 1380, 2760, 0xc89ea57e
-0, 107494, 107494, 1378, 2756, 0x6447d7ef
-0, 108872, 108872, 1378, 2756, 0x144f59cc
-0, 110250, 110250, 1378, 2756, 0xc667154e
-0, 111628, 111628, 1378, 2756, 0xf0de66ae
-0, 113006, 113006, 1378, 2756, 0xeabf3c32
-0, 114384, 114384, 1378, 2756, 0xe98e81d1
-0, 115763, 115763, 1380, 2760, 0x56aa5889
-0, 117141, 117141, 1378, 2756, 0x4fd34c0e
-0, 118519, 118519, 1378, 2756, 0x67cf6912
-0, 119897, 119897, 1378, 2756, 0xfa944def
-0, 121275, 121275, 1378, 2756, 0xc12f23b2
-0, 122653, 122653, 1378, 2756, 0x5ea325a2
-0, 124031, 124031, 1378, 2756, 0x2b245824
-0, 125409, 125409, 1380, 2760, 0x90ac533e
-0, 126788, 126788, 1378, 2756, 0xcca34d26
-0, 128166, 128166, 1378, 2756, 0xb5f820d0
-0, 129544, 129544, 1378, 2756, 0x27f24335
-0, 130922, 130922, 1378, 2756, 0x4a9e87b7
-0, 132300, 132300, 1378, 2756, 0xbd076129
-0, 133678, 133678, 1378, 2756, 0x2e0e3f2e
-0, 135056, 135056, 1380, 2760, 0xdf534478
-0, 136434, 136434, 1378, 2756, 0xca000a2e
-0, 137813, 137813, 1378, 2756, 0x87472df3
-0, 139191, 139191, 1378, 2756, 0x16733810
-0, 140569, 140569, 1378, 2756, 0xfa0734b4
-0, 141947, 141947, 1378, 2756, 0x5eff3fc4
-0, 143325, 143325, 1378, 2756, 0xf35346bd
-0, 144703, 144703, 1378, 2756, 0xac6411c5
-0, 146081, 146081, 1380, 2760, 0x478c3c56
-0, 147459, 147459, 1378, 2756, 0xebd30bdd
-0, 148838, 148838, 1378, 2756, 0xaef95a31
-0, 150216, 150216, 1378, 2756, 0x8aad29d1
-0, 151594, 151594, 1378, 2756, 0x626863f0
-0, 152972, 152972, 1378, 2756, 0x68c05707
-0, 154350, 154350, 1378, 2756, 0x437c5e8d
-0, 155728, 155728, 1380, 2760, 0x8eca4bdb
-0, 157106, 157106, 1378, 2756, 0x62bd4162
-0, 158484, 158484, 1378, 2756, 0x9f744aa4
-0, 159863, 159863, 1378, 2756, 0x0f3f6409
-0, 161241, 161241, 1378, 2756, 0x3fee827a
-0, 162619, 162619, 1378, 2756, 0x48a0ac19
-0, 163997, 163997, 1378, 2756, 0x8e4ce0d0
-0, 165375, 165375, 1380, 2760, 0xcda82236
-0, 166753, 166753, 1378, 2756, 0x0e523255
-0, 168131, 168131, 1378, 2756, 0x84103d30
-0, 169509, 169509, 1378, 2756, 0x13941cde
-0, 170888, 170888, 1378, 2756, 0x9fc834c5
-0, 172266, 172266, 1378, 2756, 0xc0217a77
-0, 173644, 173644, 1378, 2756, 0x3f643659
-0, 175022, 175022, 1380, 2760, 0x9dbd6002
-0, 176400, 176400, 1378, 2756, 0x94f046fb
-0, 177778, 177778, 1378, 2756, 0xab01fb12
-0, 179156, 179156, 1378, 2756, 0x04cffe5c
-0, 180534, 180534, 1378, 2756, 0xef661c5e
-0, 181913, 181913, 1378, 2756, 0x094c5fc5
-0, 183291, 183291, 1378, 2756, 0xe0c1486a
-0, 184669, 184669, 1380, 2760, 0x8c3535b7
-0, 186047, 186047, 1378, 2756, 0x594934aa
-0, 187425, 187425, 1378, 2756, 0x74007238
-0, 188803, 188803, 1378, 2756, 0x61f1394d
-0, 190181, 190181, 1378, 2756, 0x72584f07
-0, 191559, 191559, 1378, 2756, 0xced9acf9
-0, 192938, 192938, 1378, 2756, 0x7d2e3ea1
-0, 194316, 194316, 1378, 2756, 0x56c06897
-0, 195694, 195694, 1380, 2760, 0x19983bbf
-0, 197072, 197072, 1378, 2756, 0x4f884f27
-0, 198450, 198450, 1378, 2756, 0x81ab2f63
-0, 199828, 199828, 1378, 2756, 0x448e681d
-0, 201206, 201206, 1378, 2756, 0x0ba9826e
-0, 202584, 202584, 1378, 2756, 0x049f36fa
-0, 203963, 203963, 1378, 2756, 0x096a2b62
-0, 205341, 205341, 1380, 2760, 0x579e2035
-0, 206719, 206719, 1378, 2756, 0xd13e30e1
-0, 208097, 208097, 1378, 2756, 0x30b6412b
-0, 209475, 209475, 1378, 2756, 0xbb1c3268
-0, 210853, 210853, 1378, 2756, 0xbc175b6a
-0, 212231, 212231, 1378, 2756, 0xf8d160e2
-0, 213609, 213609, 1378, 2756, 0xc1048154
-0, 214988, 214988, 1380, 2760, 0xb83548f4
-0, 216366, 216366, 1378, 2756, 0x22647962
-0, 217744, 217744, 1378, 2756, 0x14ca54d3
-0, 219122, 219122, 1378, 2756, 0x58754b3a
+0, 17918, 17918, 1378, 2756, 0xdfb61002
+0, 19296, 19296, 1378, 2756, 0x15d029da
+0, 20674, 20674, 1378, 2756, 0x7bc82012
+0, 22052, 22052, 1378, 2756, 0x002e6999
+0, 23430, 23430, 1378, 2756, 0x96346ba6
+0, 24808, 24808, 1378, 2756, 0x3d54543b
+0, 26186, 26186, 1380, 2760, 0x601786e1
+0, 27566, 27566, 1378, 2756, 0xf22a5793
+0, 28944, 28944, 1378, 2756, 0x21f54d49
+0, 30322, 30322, 1378, 2756, 0x0c6d4399
+0, 31700, 31700, 1378, 2756, 0x17282f8e
+0, 33078, 33078, 1378, 2756, 0xeb698f75
+0, 34456, 34456, 1378, 2756, 0x935e1de2
+0, 35834, 35834, 1380, 2760, 0xb6fb4293
+0, 37214, 37214, 1378, 2756, 0x485053dc
+0, 38592, 38592, 1378, 2756, 0x24c35027
+0, 39970, 39970, 1378, 2756, 0x09f323ee
+0, 41348, 41348, 1378, 2756, 0xbc7d58d5
+0, 42726, 42726, 1378, 2756, 0xaefd487c
+0, 44104, 44104, 1378, 2756, 0xaca16cc0
+0, 45482, 45482, 1380, 2760, 0x98a76091
+0, 46862, 46862, 1378, 2756, 0x5d357141
+0, 48240, 48240, 1378, 2756, 0x65ea2657
+0, 49618, 49618, 1378, 2756, 0xb5e1334a
+0, 50996, 50996, 1378, 2756, 0x32cd5d91
+0, 52374, 52374, 1378, 2756, 0xdc23722b
+0, 53752, 53752, 1378, 2756, 0x2ba34684
+0, 55130, 55130, 1378, 2756, 0xf9755ba8
+0, 56508, 56508, 1380, 2760, 0x24221ddb
+0, 57888, 57888, 1378, 2756, 0xef843aa4
+0, 59266, 59266, 1378, 2756, 0x420442fe
+0, 60644, 60644, 1378, 2756, 0x5a0933cb
+0, 62022, 62022, 1378, 2756, 0xef5f6d61
+0, 63400, 63400, 1378, 2756, 0xe57e6dc0
+0, 64778, 64778, 1378, 2756, 0xc0f0495a
+0, 66156, 66156, 1380, 2760, 0x2c3b55df
+0, 67536, 67536, 1378, 2756, 0x39c2586c
+0, 68914, 68914, 1378, 2756, 0x7ffc46e5
+0, 70292, 70292, 1378, 2756, 0xa2766664
+0, 71670, 71670, 1378, 2756, 0xacb50c6c
+0, 73048, 73048, 1378, 2756, 0x7f659084
+0, 74426, 74426, 1378, 2756, 0xc72e6a12
+0, 75804, 75804, 1380, 2760, 0xdb6944df
+0, 77184, 77184, 1378, 2756, 0x954f45c1
+0, 78562, 78562, 1378, 2756, 0xa9484240
+0, 79940, 79940, 1378, 2756, 0x1d595349
+0, 81318, 81318, 1378, 2756, 0xcf2a565e
+0, 82696, 82696, 1378, 2756, 0x391028d5
+0, 84074, 84074, 1378, 2756, 0x348db7ad
+0, 85452, 85452, 1380, 2760, 0xb69b5e3a
+0, 86832, 86832, 1378, 2756, 0xe3635fbe
+0, 88210, 88210, 1378, 2756, 0xdcad3654
+0, 89588, 89588, 1378, 2756, 0x5c17abef
+0, 90966, 90966, 1378, 2756, 0xb3235184
+0, 92344, 92344, 1378, 2756, 0xdabb64a6
+0, 93722, 93722, 1378, 2756, 0xa95dc58d
+0, 95100, 95100, 1380, 2760, 0x8e7ac9eb
+0, 96480, 96480, 1378, 2756, 0x492b658e
+0, 97858, 97858, 1378, 2756, 0x377483ab
+0, 99236, 99236, 1378, 2756, 0x2c250279
+0, 100614, 100614, 1378, 2756, 0x704dbdb3
+0, 101992, 101992, 1378, 2756, 0x800d7da2
+0, 103370, 103370, 1378, 2756, 0x872aa32e
+0, 104748, 104748, 1378, 2756, 0x2d4837fe
+0, 106126, 106126, 1380, 2760, 0xc89ea57e
+0, 107506, 107506, 1378, 2756, 0x6447d7ef
+0, 108884, 108884, 1378, 2756, 0x144f59cc
+0, 110262, 110262, 1378, 2756, 0xc667154e
+0, 111640, 111640, 1378, 2756, 0xf0de66ae
+0, 113018, 113018, 1378, 2756, 0xeabf3c32
+0, 114396, 114396, 1378, 2756, 0xe98e81d1
+0, 115774, 115774, 1380, 2760, 0x56aa5889
+0, 117154, 117154, 1378, 2756, 0x4fd34c0e
+0, 118532, 118532, 1378, 2756, 0x67cf6912
+0, 119910, 119910, 1378, 2756, 0xfa944def
+0, 121288, 121288, 1378, 2756, 0xc12f23b2
+0, 122666, 122666, 1378, 2756, 0x5ea325a2
+0, 124044, 124044, 1378, 2756, 0x2b245824
+0, 125422, 125422, 1380, 2760, 0x90ac533e
+0, 126802, 126802, 1378, 2756, 0xcca34d26
+0, 128180, 128180, 1378, 2756, 0xb5f820d0
+0, 129558, 129558, 1378, 2756, 0x27f24335
+0, 130936, 130936, 1378, 2756, 0x4a9e87b7
+0, 132314, 132314, 1378, 2756, 0xbd076129
+0, 133692, 133692, 1378, 2756, 0x2e0e3f2e
+0, 135070, 135070, 1380, 2760, 0xdf534478
+0, 136450, 136450, 1378, 2756, 0xca000a2e
+0, 137828, 137828, 1378, 2756, 0x87472df3
+0, 139206, 139206, 1378, 2756, 0x16733810
+0, 140584, 140584, 1378, 2756, 0xfa0734b4
+0, 141962, 141962, 1378, 2756, 0x5eff3fc4
+0, 143340, 143340, 1378, 2756, 0xf35346bd
+0, 144718, 144718, 1378, 2756, 0xac6411c5
+0, 146096, 146096, 1380, 2760, 0x478c3c56
+0, 147476, 147476, 1378, 2756, 0xebd30bdd
+0, 148854, 148854, 1378, 2756, 0xaef95a31
+0, 150232, 150232, 1378, 2756, 0x8aad29d1
+0, 151610, 151610, 1378, 2756, 0x626863f0
+0, 152988, 152988, 1378, 2756, 0x68c05707
+0, 154366, 154366, 1378, 2756, 0x437c5e8d
+0, 155744, 155744, 1380, 2760, 0x8eca4bdb
+0, 157124, 157124, 1378, 2756, 0x62bd4162
+0, 158502, 158502, 1378, 2756, 0x9f744aa4
+0, 159880, 159880, 1378, 2756, 0x0f3f6409
+0, 161258, 161258, 1378, 2756, 0x3fee827a
+0, 162636, 162636, 1378, 2756, 0x48a0ac19
+0, 164014, 164014, 1378, 2756, 0x8e4ce0d0
+0, 165392, 165392, 1380, 2760, 0xcda82236
+0, 166772, 166772, 1378, 2756, 0x0e523255
+0, 168150, 168150, 1378, 2756, 0x84103d30
+0, 169528, 169528, 1378, 2756, 0x13941cde
+0, 170906, 170906, 1378, 2756, 0x9fc834c5
+0, 172284, 172284, 1378, 2756, 0xc0217a77
+0, 173662, 173662, 1378, 2756, 0x3f643659
+0, 175040, 175040, 1380, 2760, 0x9dbd6002
+0, 176420, 176420, 1378, 2756, 0x94f046fb
+0, 177798, 177798, 1378, 2756, 0xab01fb12
+0, 179176, 179176, 1378, 2756, 0x04cffe5c
+0, 180554, 180554, 1378, 2756, 0xef661c5e
+0, 181932, 181932, 1378, 2756, 0x094c5fc5
+0, 183310, 183310, 1378, 2756, 0xe0c1486a
+0, 184688, 184688, 1380, 2760, 0x8c3535b7
+0, 186068, 186068, 1378, 2756, 0x594934aa
+0, 187446, 187446, 1378, 2756, 0x74007238
+0, 188824, 188824, 1378, 2756, 0x61f1394d
+0, 190202, 190202, 1378, 2756, 0x72584f07
+0, 191580, 191580, 1378, 2756, 0xced9acf9
+0, 192958, 192958, 1378, 2756, 0x7d2e3ea1
+0, 194336, 194336, 1378, 2756, 0x56c06897
+0, 195714, 195714, 1380, 2760, 0x19983bbf
+0, 197094, 197094, 1378, 2756, 0x4f884f27
+0, 198472, 198472, 1378, 2756, 0x81ab2f63
+0, 199850, 199850, 1378, 2756, 0x448e681d
+0, 201228, 201228, 1378, 2756, 0x0ba9826e
+0, 202606, 202606, 1378, 2756, 0x049f36fa
+0, 203984, 203984, 1378, 2756, 0x096a2b62
+0, 205362, 205362, 1380, 2760, 0x579e2035
+0, 206742, 206742, 1378, 2756, 0xd13e30e1
+0, 208120, 208120, 1378, 2756, 0x30b6412b
+0, 209498, 209498, 1378, 2756, 0xbb1c3268
+0, 210876, 210876, 1378, 2756, 0xbc175b6a
+0, 212254, 212254, 1378, 2756, 0xf8d160e2
+0, 213632, 213632, 1378, 2756, 0xc1048154
+0, 215010, 215010, 1380, 2760, 0xb83548f4
+0, 216390, 216390, 1378, 2756, 0x22647962
+0, 217768, 217768, 1378, 2756, 0x14ca54d3
+0, 219146, 219146, 1378, 2756, 0x58754b3a
Oops, something went wrong.

0 comments on commit a9d97e1

Please sign in to comment.