Selaa lähdekoodia

load vlc config parameters from an array of strings in the 'VLCParams' property in the main bundle's Info.plist

Signed-off-by: Felix Paul Kühne <fkuehne@videolan.org>
Mike Schrag 15 vuotta sitten
vanhempi
commit
8ec55bd341
1 muutettua tiedostoa jossa 23 lisäystä ja 12 poistoa
  1. 23 12
      Sources/VLCLibrary.m

+ 23 - 12
Sources/VLCLibrary.m

@@ -67,19 +67,30 @@ void __catch_exception( void * e, const char * function, const char * file, int
         libvlc_exception_t ex;
         libvlc_exception_init( &ex );
         
-        const char * lib_vlc_params[] = { 
-            "-I", "dummy",               // No interface 
-            "--no-video-title-show",     // Don't show the title on overlay when starting to play
-            "--no-sout-keep",
-            "--ignore-config",           // Don't read and write VLC config files.
-			"--opengl-provider=minimal_macosx", // Use minimal_macosx
-            "--vout=minimal_macosx",
-			"--verbose=2",               // Don't polute the log
-            "--play-and-pause"           // When ending a stream pause it instead of stopping it.
-            //, "--control=motion", "--motion-use-rotate", "--video-filter=rotate"
-        };
+        NSArray *vlcParams = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"VLCParams"];
+        if (!vlcParams) {
+            NSMutableArray *defaultParams = [NSMutableArray array];
+            [defaultParams addObject:@"-I"]; [defaultParams addObject:@"dummy"];    // No interface
+            [defaultParams addObject:@"--no-video-title-show"];                     // Don't show the title on overlay when starting to play
+            [defaultParams addObject:@"--no-sout-keep"];
+            [defaultParams addObject:@"--ignore-config"];                           // Don't read and write VLC config files
+            [defaultParams addObject:@"--opengl-provider=minimal_macosx"];          // Use minimal_macosx
+            [defaultParams addObject:@"--vout=minimal_macosx"];
+            [defaultParams addObject:@"--verbose=2"];                               // Don't polute the log
+            [defaultParams addObject:@"--vout=minimal_macosx"];
+            [defaultParams addObject:@"--play-and-pause"];                          // When ending a stream pause it instead of stopping it
+            // [defaultParams addObject:@"--control=motion"];
+            // [defaultParams addObject:@"--motion-use-rotate"];
+            // [defaultParams addObject:@"--video-filter=rotate"];
+            vlcParams = defaultParams;
+        }
         
-        instance = (void *)libvlc_new( sizeof(lib_vlc_params)/sizeof(lib_vlc_params[0]), lib_vlc_params, &ex );
+        const char *lib_vlc_params[[vlcParams count]];
+        for (int paramNum = 0; paramNum < [vlcParams count]; paramNum ++) {
+            NSString *vlcParam = [vlcParams objectAtIndex:paramNum];
+            lib_vlc_params[paramNum] = [vlcParam cStringUsingEncoding:NSASCIIStringEncoding];
+        }
+        instance = (void *)libvlc_new([vlcParams count], lib_vlc_params, &ex );
         catch_exception( &ex );
         NSAssert(instance, @"libvlc failed to initialize");