With anamorphic video (display with non-1:1 PAR, e.g. DVD), the display
size was passed using the mp_image fields w/h, which was blatantly
incorrect. w/h are the normal image dimensions, while width/height are
the "uncropped" storage size (used internally by vf.c).
Add a display_w/h, and use that for the display size. Make all VOs that
can do screenshots use it.
This removes the hack that screenshot_save() got the colorspace
information from the decoder. Instead, require the VOs to set the
colorspace information on the mp_images used to pass around the
screenshot data. This is more correct, as the image may have been
converted/modified in the video filter chain, although there's
nothing yet in the video filter chain which does this correctly.
The assumption is that JPG screenshots are more useful in general.
Lossless screenshots made from lossy videos are just a waste of space.
Increase JPEG quality a bit. There's a tradeoff between quality and
size, and since JPEG is the default now, attempt to balance the
JPEG settings to provide sane defaults for general use cases.
Although slightly less precise, this sounds less clunky.
This change also causes the --screenshot-filetype option to be renamed
to --screenshot-format.
Most of these are useless or probably even dangerous. Support them
anyway, because it's easy, and we want to replace vo_jpeg without any
disadvantages.
While the PNM formats are not that useful, supporting them helps
getting rid of vo_pnm.
This makes use of the libavcodec PNM encoder.
Compared to vo_pnm, at least PNM ASCII mode is not supported. It doesn't
look like libavcodec supports this mode for encoding.