[MPlayer-dev-eng] dynamic A/V sync possibility in EDL

Anders Johansson ajh at watri.uwa.edu.au
Thu Feb 13 02:30:31 CET 2003


Hi,

> 
> I've thought about doing this. Actually, with an XML format, it would
> not be hard to modify EDL to be able to perform *any* operation that
> MPlayer can do. Like change the brightness/contrast, change A/V sync,
> change volume, etc.
> 
> So... anyone up for this? :-)

I made a post about this some weeks ago, it is basically key-based
editing you are talking about and is common in advanced video
editors. I think it is a very good idea to implement it and I think it
should be implemented in a separate lib with an abstraction layer for
the actual message sending so that the two tasks can be separated to
different processes in the future. Also this cold become a remote
control and setup/save language so we could separate the player core
from the user interface and setup file reading (in 3.0 ;)

I guess you have already had a look at how to implement it but if you
haven't here are some ideas:

Almost all modules in mplayer has a control interface that looks
something like this:

control(struct instance_s, int cmd, int (void*) data)

You could create a container that looked something like this:

struct cont_s{
       void* instance;
       int cmd;
       void* data;
       float time_stamp;
       struct cont_s* next;
}

Create a linked list with commands and execute them when the playback
time passed the time_stamp. Don't forget that some modules can be
loaded and unloaded during runtime, so the instance* may be obsolete.
This could be solved by putting the instance* in a hash-table and save
only the hash key (or something like that)?

Also IMHO the XML approach is good it is the language used in
commercial video editors.

> 
> Mike
> 

//Anders



More information about the MPlayer-dev-eng mailing list