>>  My plan was to try to script some automated tests to run weekly on the 

> build server. That way we would know if any avsync regressions occurred. But 
> it 
> didn't occur to me that we might have to fix up some producers/consumers. My 
> plan was to use +/-3ms as my pass/fail criteria (hence my previous comment). 
> But 
> maybe it would make more sense to use one frame duration - at least until 
> everything gets dialed in.
>> 
> 
> I would like to develop a plan to test for regression against a
> baseline so I can try to make a change or improvement and have more
> automated testing to verify it. Starting with the avformat producer,
> we need a set of reference inputs, but we do not have them, and it
> does not make sense to produce them with the MLT avformat consumer.
> But we can use blipflash producer to generate a raw DV and verify that
> with dvthumbs.c. Then, we can use the ffmpeg command line tool to
> generate a variety of encodings. We still do not know if those are
> correct, but they do provide a best effort baseline against which we
> can measure deviations to check for regressions, analyze trends, and
> investigate the hotspots (popular or important formats that show a
> large offset).

I did some testing with ffmpeg and I'm pretty sure that much of the offset is 
comming from libav itself. For example, if you use libdv to round trip a 
blipflash through melt, you get an offset of 0. But if you use the dv output 
from melt and round trip it through ffmpeg as AVI, and then run it back through 
melt, you get an offset.

So I tested a bunch of formats and I found that the A/V offset through melt is 
never worse than one video frame. So I set one video frame as the success 
threshold.

The script is here:
https://github.com/mltframework/mlt-scripts/blob/master/test/test_avsync.sh

It will run every week along with the other autmoated tests. It tests 7 
different output formats. We can add more or refine them. Let me know what 
formats you think are the most important.

While the test won't tell us if the AV sync gets worse by a few milliseconds, 
it will tell us if there is a catostrophic AV sync error - which I think is 
probably the most important thing.

Here are the current results, FYI:
libdv: 0.0ms
avformat-avi: -23.02ms
avformat-dv: -33.38ms
avformat-mkv: 0.0ms
avformat-mov: 12.02ms
avformat-mp4: 12.02ms
avformat-mpg: -10.02ms

Of course, the audio and video codecs probably have some effect on the sync in 
addition to the container format. I didn't dig too deep into that as most of 
the tests use default codecs.

~BM

------------------------------------------------------------------------------
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
_______________________________________________
Mlt-devel mailing list
Mlt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlt-devel

Reply via email to