[MPlayer-dev-eng] wishlist round 0

rsnel at cube.dyndns.org rsnel at cube.dyndns.org
Tue Dec 10 10:14:23 CET 2002


Hello,

Some ramblings on VO_CAPABILITIES and how the -vop commands should change
and how global options (-sws x) should move to the the third(?) argument
of scale.

On Tue, 10 Dec 2002, Diego Biurrun wrote:
>  * move zoran jpeg encoder to video filters
Problems problems. The point is that the jpeg encoder needs some info
about the zoran card (max resolution etc). In the ideal world it would be
possible to query a vo device for full capabilities. If you query a DC10+
in NTSC mode, it should say something like this:

-For JPEG422_NON_INTERLACED, i can do {640,320,160}x{240,120} fullscreen,
the screen aspect ratio will be 4:3. Smaller pictures must have
width%16==0 and height%8==0. You need to pass this and that flag for this
and that fullscreen resolution (sensible defaults).

-For JPEG422_INTERLACED, I can do {640,320,160}x480 (well a vertical
resolution of 240 is possible, but it looks very bad), screen aspect 4:3.
Subpictures width%16==0, height%16==0. Flags...

I am looking for The Right Way(tm) of putting this information in a
structure. MPlayer should have helper functions to create query and
destroy these structures.

If the encoder is moved to a filter, then some -zr options will move to
vop also: -zrhdec, -zrvdec, -zrquality, -zrfd . (-zrcrop will disappear).
-zrxdoff, -zrydoff, -zrdev will move to the subdevice.

Zrcinerama cannot be implemented cleanly in this scheme, to do that, there
should be a split function (for a split function to make sense: -vo should
disppear and the vo device specification should move to the 'end' of
-vop). Example:
-vop zr=$SUBDEVICE_OPTIONS,mjpegenc=$OPTIONS,scale=$BLA,crop=$BLA2
(important is that $SUBDEVICE_OPTIONS should allow '=' signs

Example:
-vop
zr=dev=/dev/video0:hdoff=10:vdoff=40,mjpegenc=hdec=2:quality=70,scale=352:200:0

zrcinerama should look like this (original image 640:240, goal: split over
two beamers)
zr=dev=/dev/video0,mjpegenc,crop=320:240:0:0,\
split={zr=dev=/dev/video1,mpegenc,crop=320:240:320:0}

(here it is needed to have a non-global -vo, this is because we need two
instances of zr)

The easiest way to go about implementing a clean seperation of
jpeg_encoder and jpeg_output_device, would be to fork the zr driver to
zr-nt, remove all cruft, and first make a passthrough vf_ for zoran MJPEG
avi files.

Thoughts? Is such a fork acceptable in CVS?

* vop seperator hell, we now have ',' ':' '/' (-vop pp), i vote for adding
a { } scheme, -vop pp={bla:bla2={lg=1}}:crop={123:23:4:5}, much cleaner.
This allows infinite depth without adding an infinite amount of special
seperator characters.

Greetings,

Rik.

-- 
Nothing is ever a total loss; it can always serve as a bad example.



More information about the MPlayer-dev-eng mailing list