[vlc-devel] encoder modules should be initialized as if full transcode filters were instanciated

ed.gomez at free.fr ed.gomez at free.fr
Tue Nov 25 11:34:38 CET 2008


Hello,

I'm hitting a problem with 0.9.6 that never happened with 0.8.6.

Basically I'm stuck with a codec that only supports frames that are multiple of 16x16. It's a personal prototype of a MPEG class codec, just for the fun of understanding how these beasts work. So don't worry about the unknown fourcc mpgl="mpeg like". I'm proting it to 0.9.6 because your homepage says 0.8.6 isn't supported anymore.

On 0.9.6:
#transcode{vcodec=mpgl,acodec=mpga,venc=mpgl_enc{config=my.cfg},width=426,height=240,vfilter=croppadd{cropright=53,cropleft=53}}:standard{access=file,mux=avi,dst=test.avi}

On 0.8.6:
#transcode{vcodec=mpgl,acodec=mpga,venc=mpgl_enc{config=my.cfg},width=320,height=240,cropright=160,cropleft=160}:standard{access=file,mux=avi,dst=test.avi}

So, on 0.9.6, the transcode does the following:
 1280x720 footage -> 426x240 -> 320x240

Where as the 0.8.6, the transcode does the following:
 1280x720 footage -> 960x720 -> 320x240

So I see two problems with current VLC:
 - It scales pixels that are not necessary because the crop and scaling operations have been swapped in the pipeline.
 - encoding modules are loaded/tested with width=,height= values from the transcode settings, thus my codec experiment sees an input frame of w=426 and bails out. But if i ignore that first load which is done just for testing purpose by vlccore, then i get the correct w=320 in the second load.

I have no idea how to fix that:
 - I saw no way to swap scaling and crop on 0.9.x (or 1.0)
 - Even if i could swap them, it seems vlccore ignores format changes that will be operated by its filters, so it opens the encoder with mistaken values.

Any advice is more than welcome, as this lets me no choice but to stay on 0.8.6 which lacks so many "video filter2" filters :-(

-- 
Edouard Gomez



More information about the vlc-devel mailing list