]> git.sesse.net Git - vlc/blobdiff - src/interface/main.c
. version 0.2.50 for the Linux Expo
[vlc] / src / interface / main.c
index adec47184e588b34ca7babce7c7e9be0d26d21bd..f53e80ac12eb091a56a4c3e18773526fbb14d18b 100644 (file)
 /* 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
@@ -122,8 +125,11 @@ static const struct option longopts[] =
     {   "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' },
@@ -191,14 +197,25 @@ int main( int i_argc, char *ppsz_argv[], char *ppsz_env[] )
     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
@@ -551,13 +568,21 @@ static int GetConfiguration( int i_argc, char *ppsz_argv[], char *ppsz_env[] )
         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;
@@ -571,10 +596,10 @@ static int GetConfiguration( int i_argc, char *ppsz_argv[], char *ppsz_env[] )
                 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) );
@@ -659,6 +684,7 @@ static void Usage( int i_fashion )
               "\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"
@@ -703,9 +729,13 @@ static void Usage( int i_fashion )
               "\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:"