123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- //
- // VLCStreamSession.m
- // VLCKit
- //
- // Created by Pierre d'Herbemont on 1/12/08.
- // Copyright 2008 __MyCompanyName__. All rights reserved.
- //
- #import "VLCStreamSession.h"
- #import "VLCLibVLCBridging.h"
- @implementation VLCStreamSession
- @synthesize media=originalMedia;
- @synthesize streamOutput;
- + (id)streamSession
- {
- return [[[self alloc] init] autorelease];
- }
- - (void)startStreaming;
- {
- [self play];
- }
- - (void)play;
- {
- NSString * libvlcArgs;
- if( self.drawable )
- {
- libvlcArgs = [NSString stringWithFormat:@"duplicate{dst=display,dst=\"%@\"}",[streamOutput representedLibVLCOptions]];
- }
- else
- {
- libvlcArgs = [streamOutput representedLibVLCOptions];
- }
- [super setMedia: [VLCMedia mediaWithMedia:originalMedia andLibVLCOptions:
- [NSDictionary dictionaryWithObject: libvlcArgs
- forKey: @"sout"]]];
- [super play];
- }
- + (NSSet *)keyPathsForValuesAffectingDescription
- {
- return [NSSet setWithObjects:@"isCompleted", @"state", nil];
- }
- - (NSString *)description
- {
- if([self isComplete])
- return @"Done.";
- else if([self state] == VLCMediaPlayerStateError)
- return @"Error while Converting. Open Console.app to diagnose.";
- else
- return @"Converting...";
- }
- + (NSSet *)keyPathsForValuesAffectingIsComplete
- {
- return [NSSet setWithObjects:@"playing", @"state", @"position", nil];
- }
- - (BOOL)isComplete
- {
- return ([self position] == 1.0 || [self state] == VLCMediaPlayerStateEnded || ([self state] == VLCMediaPlayerStateStopped && self.media));
- }
- @end
|