浏览代码

macosx/framework: fixed MPEG2 exporting, updated iPod video profile (requires contribs with mp4a encoder) and added a method to stop all this

Felix Paul Kühne 15 年之前
父节点
当前提交
24210bc8aa
共有 4 个文件被更改,包括 18 次插入10 次删除
  1. 1 0
      Headers/Public/VLCStreamSession.h
  2. 1 0
      Sources/VLCMedia.m
  3. 8 7
      Sources/VLCStreamOutput.m
  4. 8 3
      Sources/VLCStreamSession.m

+ 1 - 0
Headers/Public/VLCStreamSession.h

@@ -42,4 +42,5 @@
 @property (readonly) BOOL isComplete;
 
 - (void)startStreaming;
+- (void)stopStreaming;
 @end

+ 1 - 0
Sources/VLCMedia.m

@@ -354,6 +354,7 @@ static void HandleMediaSubItemAdded(const libvlc_event_t * event, void * self)
 {
     libvlc_media_t * p_md;
     p_md = libvlc_media_duplicate( [media libVLCMediaDescriptor] );
+
     for( NSString * key in [options allKeys] )
     {
         libvlc_media_add_option(p_md, [[NSString stringWithFormat:@"%@=#%@", key, [options objectForKey:key]] UTF8String]);

+ 8 - 7
Sources/VLCStreamOutput.m

@@ -70,19 +70,20 @@
     return [self streamOutputWithOptionDictionary:[NSDictionary dictionaryWithObjectsAndKeys:
                                             [NSDictionary dictionaryWithObjectsAndKeys:
                                                 @"h264", @"videoCodec",
-                                                @"1024",  @"videoBitrate",
+                                                @"1024",  @"videoBitrate", // max by Apple: 1.5 mbps
                                                 @"mp4a", @"audioCodec",
-                                                @"192", @"audioBitrate",
+                                                @"128", @"audioBitrate", // max by Apple: 160 kbps
                                                 @"2",   @"channels",
-                                                @"320", @"width",
-                                                @"240", @"canvasHeight",
+                                                @"640", @"width", // max by Apple: do.
+                                                @"480", @"canvasHeight", // max by Apple: do.
                                                 @"Yes", @"audio-sync",
                                                 nil
                                             ], @"transcodingOptions",
                                             [NSDictionary dictionaryWithObjectsAndKeys:
                                                 @"mp4", @"muxer",
                                                 @"file", @"access",
-                                                [[filePath copy] autorelease], @"destination", nil
+                                                [[filePath copy] autorelease], @"destination", 
+                                                nil
                                             ], @"outputOptions",
                                             nil
                                             ]
@@ -128,13 +129,13 @@
                                             [NSDictionary dictionaryWithObjectsAndKeys:
                                                 @"mp2v", @"videoCodec",
                                                 @"1024", @"videoBitrate",
-                                                @"mp2a",   @"audioCodec",
+                                                @"mpga",   @"audioCodec",
                                                 @"128",   @"audioBitrate",
                                                 @"Yes",   @"audio-sync",
                                                 nil
                                             ], @"transcodingOptions",
                                             [NSDictionary dictionaryWithObjectsAndKeys:
-                                                @"mpeg", @"muxer",
+                                                @"ps", @"muxer",
                                                 @"file", @"access",
                                                 [[filePath copy] autorelease], @"destination", nil
                                             ], @"outputOptions",

+ 8 - 3
Sources/VLCStreamSession.m

@@ -57,20 +57,25 @@
 }
 
 
-- (void)startStreaming;
+- (void)startStreaming
 {
     self.isComplete = NO;
     [self play];
 }
 
-- (BOOL)play;
+- (void)stopStreaming
+{
+    self.isComplete = YES;
+    [super stop];
+}
+
+- (BOOL)play
 {
     NSString * libvlcArgs;
     if( self.drawable )
         libvlcArgs = [NSString stringWithFormat:@"duplicate{dst=display,dst=\"%@\"}",[streamOutput representedLibVLCOptions]];
     else
         libvlcArgs = [streamOutput representedLibVLCOptions];
-
     if( libvlcArgs )
     {
         [super setMedia: [VLCMedia mediaWithMedia:originalMedia andLibVLCOptions: