Implementation of vo_png suboption parser with subopt-helper and removal

of -z command line option.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14452 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
ivo 2005-01-10 15:51:55 +00:00
parent 853007980b
commit 5e2a0b316e
3 changed files with 26 additions and 20 deletions

View File

@ -2272,11 +2272,6 @@ In Xinerama configurations (i.e.\& a single desktop that spans across multiple
displays) this option tells MPlayer which screen to display movie on. displays) this option tells MPlayer which screen to display movie on.
. .
.TP .TP
.B \-z <0\-9> (\-vo png only)
Specifies the compression level of the png video output driver.
0 is no compression, 9 is the maximum compression.
.
.TP
.B \-zrbw (\-vo zr only) .B \-zrbw (\-vo zr only)
Display in black and white. Display in black and white.
For optimal performance, this can be combined with '\-lavdopts gray'. For optimal performance, this can be combined with '\-lavdopts gray'.
@ -2977,10 +2972,17 @@ Must be equal to or larger than 1 (default: 1000).
.PD 1 .PD 1
. .
.TP .TP
.B png (also see \-z) .B png\ \
Output each frame into a PNG file in the current directory. Output each frame into a PNG file in the current directory.
Each file takes the frame number padded with leading zeros as name. Each file takes the frame number padded with leading zeros as name.
24bpp RGB and BGR formats are supported. 24bpp RGB and BGR formats are supported.
.PD 0
.RSs
.IPs z=<0-9>
Specifies the compression level.
0 is no compression, 9 is maximum compression.
.RE
.PD 1
. .
.TP .TP
.B tga\ \ \ \ .B tga\ \ \ \

View File

@ -189,7 +189,7 @@ m_option_t mplayer_opts[]={
// -vo png only: // -vo png only:
#ifdef HAVE_PNG #ifdef HAVE_PNG
{"z", &z_compression, CONF_TYPE_INT, CONF_RANGE, 0, 9, NULL}, {"z", "-z is replaced by -vo png:z=<0-9>\n", CONF_TYPE_PRINT, 0, 0, 0, NULL},
#endif #endif
// -vo jpeg only: // -vo jpeg only:
#ifdef HAVE_JPEG #ifdef HAVE_JPEG

View File

@ -17,6 +17,7 @@
#include "config.h" #include "config.h"
#include "video_out.h" #include "video_out.h"
#include "video_out_internal.h" #include "video_out_internal.h"
#include "subopt-helper.h"
static vo_info_t info = static vo_info_t info =
{ {
@ -43,19 +44,11 @@ static uint32_t
config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format) config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format)
{ {
if((z_compression >= 0) && (z_compression <= 9)) {
if(z_compression == 0) { if(z_compression == 0) {
printf("PNG Warning: compression level set to 0, compression disabled!\n"); printf("PNG Warning: compression level set to 0, compression disabled!\n");
printf("PNG Info: Use the -z <n> switch to set compression level from 0 to 9.\n"); printf("PNG Info: Use -vo png:z=<n> to set compression level from 0 to 9.\n");
printf("PNG Info: (0 = no compression, 1 = fastest, lowest - 9 best, slowest compression)\n"); printf("PNG Info: (0 = no compression, 1 = fastest, lowest - 9 best, slowest compression)\n");
} }
}
else {
printf("PNG Warning: compression level out of range setting to 1!\n");
printf("PNG Info: Use the -z <n> switch to set compression level from 0 to 9.\n");
printf("PNG Info: (0 = no compression, 1 = fastest, lowest - 9 best, slowest compression)\n");
z_compression = Z_BEST_SPEED;
}
if(verbose) printf("PNG Compression level %i\n", z_compression); if(verbose) printf("PNG Compression level %i\n", z_compression);
@ -206,12 +199,23 @@ static void uninit(void){}
static void check_events(void){} static void check_events(void){}
static int int_zero_to_nine(int *sh)
{
if ( (*sh < 0) || (*sh > 9) )
return 0;
return 1;
}
static opt_t subopts[] = {
{"z", OPT_ARG_INT, &z_compression, (opt_test_f)int_zero_to_nine},
{NULL}
};
static uint32_t preinit(const char *arg) static uint32_t preinit(const char *arg)
{ {
if(arg) z_compression = 0;
{ if (subopt_parse(arg, subopts) != 0) {
printf("PNG Unknown subdevice: %s\n",arg); return -1;
return ENOSYS;
} }
return 0; return 0;
} }