/* Long options return values - note that values corresponding to short options
* chars, and in general any regular char, should be avoided */
#define OPT_NOAUDIO 150
-#define OPT_AOUT 151
-#define OPT_STEREO 152
-#define OPT_MONO 153
+#define OPT_STEREO 151
+#define OPT_MONO 152
#define OPT_NOVIDEO 160
-#define OPT_VOUT 161
-#define OPT_DISPLAY 162
-#define OPT_WIDTH 163
-#define OPT_HEIGHT 164
-#define OPT_COLOR 165
-#define OPT_IDCT 166
-#define OPT_YUV 167
+#define OPT_DISPLAY 161
+#define OPT_WIDTH 162
+#define OPT_HEIGHT 163
+#define OPT_COLOR 164
+#define OPT_FULLSCREEN 165
+#define OPT_OVERLAY 166
#define OPT_VLANS 170
#define OPT_SERVER 171
#define OPT_BROADCAST 173
#define OPT_DVD 174
-#define OPT_SYNCHRO 180
+#define OPT_AOUT 180
+#define OPT_VOUT 181
+#define OPT_MOTION 182
+#define OPT_IDCT 183
+#define OPT_YUV 184
-#define OPT_WARNING 190
+#define OPT_SYNCHRO 190
+#define OPT_WARNING 191
/* Usage fashion */
#define USAGE 0
{ "height", 1, 0, OPT_HEIGHT },
{ "grayscale", 0, 0, 'g' },
{ "color", 0, 0, OPT_COLOR },
+ { "motion", 1, 0, OPT_MOTION },
{ "idct", 1, 0, OPT_IDCT },
{ "yuv", 1, 0, OPT_YUV },
+ { "fullscreen", 0, 0, OPT_FULLSCREEN },
+ { "overlay", 0, 0, OPT_OVERLAY },
/* DVD options */
{ "dvdaudio", 1, 0, 'a' },
beos_Create();
#endif
+ p_main->i_cpu_capabilities = CPUCapabilities();
+
/*
* Test if our code is likely to run on this CPU
*/
+#if defined( __pentium__ ) || defined( __pentiumpro__ )
+ if( ! TestCPU( CPU_CAPABILITY_586 ) )
+ {
+ fprintf( stderr, "Sorry, this program needs a Pentium CPU.\n"
+ "Please try a version without Pentium support.\n" );
+ return( 1 );
+ }
+#endif
+
#ifdef HAVE_MMX
- if( !( TestCPU() & CPU_CAPABILITY_MMX ) )
+ if( ! TestCPU( CPU_CAPABILITY_MMX ) )
{
- fprintf( stderr, "Sorry, this program needs an MMX processor. "
- "Please run the non-MMX version.\n" );
+ fprintf( stderr, "Sorry, this program needs MMX extensions.\n"
+ "Please try a version without MMX support.\n" );
return( 1 );
}
#endif
case OPT_HEIGHT: /* --height */
main_PutPszVariable( VOUT_HEIGHT_VAR, optarg );
break;
-
case 'g': /* -g, --grayscale */
main_PutIntVariable( VOUT_GRAYSCALE_VAR, 1 );
break;
case OPT_COLOR: /* --color */
main_PutIntVariable( VOUT_GRAYSCALE_VAR, 0 );
break;
+ case OPT_FULLSCREEN: /* --fullscreen */
+ main_PutIntVariable( VOUT_FULLSCREEN_VAR, 1 );
+ break;
+ case OPT_OVERLAY: /* --overlay */
+ main_PutIntVariable( VOUT_OVERLAY_VAR, 1 );
+ break;
+ case OPT_MOTION: /* --motion */
+ main_PutPszVariable( MOTION_METHOD_VAR, optarg );
+ break;
case OPT_IDCT: /* --idct */
main_PutPszVariable( IDCT_METHOD_VAR, optarg );
break;
main_PutIntVariable( INPUT_DVD_AUDIO_VAR, REQUESTED_AC3 );
else if ( ! strcmp(optarg, "lpcm") )
main_PutIntVariable( INPUT_DVD_AUDIO_VAR, REQUESTED_LPCM );
- else if ( ! strcmp(optarg, "off") )
- main_PutIntVariable( INPUT_DVD_AUDIO_VAR, REQUESTED_NOAUDIO );
- else
+ else if ( ! strcmp(optarg, "mpeg") )
main_PutIntVariable( INPUT_DVD_AUDIO_VAR, REQUESTED_MPEG );
+ else
+ main_PutIntVariable( INPUT_DVD_AUDIO_VAR, REQUESTED_NOAUDIO );
break;
case 'c':
main_PutIntVariable( INPUT_DVD_CHANNEL_VAR, atoi(optarg) );
"\n --width <w>, --height <h> \tdisplay dimensions"
"\n -g, --grayscale \tgrayscale output"
"\n --color \tcolor output"
+ "\n --motion <module> \tmotion compensation method"
"\n --idct <module> \tIDCT method"
"\n --yuv <module> \tYUV method"
"\n --synchro <type> \tforce synchro algorithm"
"\n " VOUT_HEIGHT_VAR "=<height> \tdislay height"
"\n " VOUT_FB_DEV_VAR "=<filename> \tframebuffer device path"
"\n " VOUT_GRAYSCALE_VAR "={1|0} \tgrayscale or color output"
+ "\n " VOUT_FULLSCREEN_VAR "={1|0} \tfullscreen"
+ "\n " VOUT_OVERLAY_VAR "={1|0} \toverlay"
+ "\n " MOTION_METHOD_VAR "=<method name> \tmotion compensation method"
"\n " IDCT_METHOD_VAR "=<method name> \tIDCT method"
"\n " YUV_METHOD_VAR "=<method name> \tYUV method"
- "\n " VPAR_SYNCHRO_VAR "={I|I+|IP|IP+|IPB} \tsynchro algorithm" );
+ "\n " VPAR_SYNCHRO_VAR "={I|I+|IP|IP+|IPB} \tsynchro algorithm"
+ );
/* DVD parameters */
intf_Msg( "\nDVD parameters:"