Hi there! One of historical deficiences of transcode is the lack of proper, real synchronization code: if the A/V are out of sync, with the only exception of a different start time, handled by -D, there is few or none chances to recover and to have a properly synchronized stream in output, and no guarantees at all. It's all dependent to luck.
Given this situation, some transcode paths (= combination of import modules) take each one its own approach with mixed results and increased enthropy. To make a few examples, we have tcdemux in the import_vob path, which does some magic inspecting MPEG (p)ts of stream, again with mixed results; we have also the import_v4l2 path, with has its internal counters and try to recover A/V sync by dropping/cloning A/V frames. It's time to start cleaning up this mess. As nice side effect, doing this also allow us/me to start porting import modules to NMS, which is good. I already started working on this by moving the v4l2 sync code in a real code module, because such code looked more promising (= extendable) and much cleaner. I'd like to merge the code mentioned above into official CVS, but we face a logistic problem. This task is absolutely out of scope for 1.1.x, so it can be merged into HEAD; But this is a potentially long task, and I don't want slow down too much the 1.2.x because this (I'll really like to have a shorter cycle for 1.2.x). So, adding a branch seems the obvious choice, and this will done in a few days. 'Til now, I'll add a work-in-progress snapshot tarball on fromani.exit1.org, for preview purposes. Thoughts? -- Francesco Romani // Ikitt [ Out of memory. ~ We wish to hold the whole sky, ~ But we never will. ]