[FFmpeg-devel] [PATCH] ALSA: fix timefilter divergence

Nicolas George nicolas.george at normalesup.org
Thu Feb 16 20:34:14 CET 2012


L'octidi 28 pluviôse, an CCXX, Michael Niedermayer a écrit :
> could you post a list of input values to the filter that cause the
> current timefiler to fail?

My sound card just produced the following samples:

ff_timefilter_new(20.833333, 0.568689, 0.161704)
ff_timefilter_update(       469,     0) = 469.000000
ff_timefilter_update(       638,     8) = 636.993608
ff_timefilter_update(      1448,    39) = 1449.437554
ff_timefilter_update(     11665,   488) = 11650.928986
ff_timefilter_update(     21836,   488) = 21837.355609
ff_timefilter_update(     32008,   488) = 32015.358763
ff_timefilter_update(     42160,   488) = 42177.384271
ff_timefilter_update(     52322,   488) = 52336.584173
ff_timefilter_update(     62524,   488) = 62517.765708
ff_timefilter_update(     72671,   488) = 72680.516687
ff_timefilter_update(     82860,   488) = 82856.656313
ff_timefilter_update(     93049,   488) = 93040.650179
ff_timefilter_update(    103209,   488) = 103212.349193
ff_timefilter_update(    113380,   488) = 113383.109109
ff_timefilter_update(    123444,   488) = 123492.653079
ff_timefilter_update(    123940,     8) = 123818.860236
ff_timefilter_update(    133668,   480) = 134903.634561
ff_timefilter_update(    133796,     8) = 134361.799455
ff_timefilter_update(    143962,   488) = 139612.262444
ff_timefilter_update(    154232,   488) = 148420.649212
ff_timefilter_update(    164306,   488) = 158888.492658
ff_timefilter_update(    164486,     8) = 162109.603263
ff_timefilter_update(    174668,   488) = 195002.061054
ff_timefilter_update(    184888,   488) = 211712.850286
ff_timefilter_update(    194952,   488) = 220306.008670
ff_timefilter_update(    195164,     8) = 206237.943110
ff_timefilter_update(    205364,   488) = 110533.493181
ff_timefilter_update(    215560,   488) = 90387.900126
ff_timefilter_update(    225623,   488) = 107662.381115
ff_timefilter_update(    225913,     8) = 174245.330886
ff_timefilter_update(    235807,   480) = 670652.957243
ff_timefilter_update(    235970,     8) = 429971.567734
ff_timefilter_update(    246251,   488) = -1190524.090912
ff_timefilter_update(    256323,   489) = -1654032.629836
ff_timefilter_update(    256474,     8) = -583538.730819
ff_timefilter_update(    266619,   487) = 7195369.812186
ff_timefilter_update(    276833,   488) = 9448582.891278
ff_timefilter_update(    286961,   488) = 8943073.161717
ff_timefilter_update(    287162,     8) = 4074729.912698
ff_timefilter_update(    297331,   488) = -32128820.859982
ff_timefilter_update(    307526,   488) = -42494586.738962
ff_timefilter_update(    317736,   488) = -40038393.450799
ff_timefilter_update(    327798,   488) = -32447556.804088
ff_timefilter_update(    328080,     8) = -13973413.473818
ff_timefilter_update(    337973,   480) = 123021413.420661
ff_timefilter_update(    338255,     8) = 55069811.181781
ff_timefilter_update(    348152,   480) = -398049425.718612
ff_timefilter_update(    348333,     8) = -177444618.109880
ff_timefilter_update(    358532,   488) = 1313868509.154909

> Iam quite interrested to see it failing, also heres some simple change
> that vastly improves the timefilters performance in its selftest

> maybe its also fixing the problem you see with alsa ?
> note, the variable names in the patch below are not very good, dont
> be mislead by them
> note2: the feedback factors change in meaning, especially the 
> feedback3_factor so tests (with alsa) would likely need new values
> for them. And i havnt really thought about what value would be
> appropriate.

My time for now is running out, I will look at this patch when I have time
again.

But I am not sure it may do anything else than hide the problem: this
timefilter was designed for small constant intervals, while ALSA can have
big (with dsnoop plugin) and variable intervals (with non-blocking mode).

Regards,

-- 
  Nicolas George
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20120216/0674c05a/attachment.asc>


More information about the ffmpeg-devel mailing list