}
- (id)initWithURL:(NSURL *)anURL
-{
+{
if (self = [super init])
{
libvlc_exception_t ex;
libvlc_exception_init(&ex);
-
+
p_md = libvlc_media_new([VLCLibrary sharedInstance],
[[anURL absoluteString] UTF8String],
&ex);
catch_exception(&ex);
-
+
delegate = nil;
metaDictionary = [[NSMutableDictionary alloc] initWithCapacity:3];
-
+
// This value is set whenever the demuxer figures out what the length is.
// TODO: Easy way to tell the length of the movie without having to instiate the demuxer. Maybe cached info?
length = nil;
}
- (id)initAsNodeWithName:(NSString *)aName
-{
+{
if (self = [super init])
{
libvlc_exception_t ex;
libvlc_exception_init(&ex);
-
+
p_md = libvlc_media_new_as_node([VLCLibrary sharedInstance],
[aName UTF8String],
&ex);
delegate = nil;
metaDictionary = [[NSMutableDictionary alloc] initWithCapacity:3];
-
+
// This value is set whenever the demuxer figures out what the length is.
// TODO: Easy way to tell the length of the movie without having to instiate the demuxer. Maybe cached info?
length = nil;
-
+
[self initInternalMediaDescriptor];
}
return self;
- (VLCTime *)length
{
- if (!length)
+ if (!length)
{
// Try figuring out what the length is
long long duration = libvlc_media_get_duration( p_md, NULL );
- if (duration > -1)
+ if (duration > -1)
{
[self setLength:[VLCTime timeWithNumber:[NSNumber numberWithLongLong:duration]]];
return [[length retain] autorelease];
{
libvlc_media_retain( md );
p_md = md;
-
+
metaDictionary = [[NSMutableDictionary alloc] initWithCapacity:3];
[self initInternalMediaDescriptor];
}
return self;
}
-- (void *)libVLCMediaDescriptor
+- (void *)libVLCMediaDescriptor
{
return p_md;
}
// Only fetch the art if needed. (ie, create the NSImage, if it was requested before)
if (isArtFetched && [metaType isEqualToString:VLCMetaInformationArtworkURL])
{
- [NSThread detachNewThreadSelector:@selector(fetchMetaInformationForArtWorkWithURL:)
+ [NSThread detachNewThreadSelector:@selector(fetchMetaInformationForArtWorkWithURL:)
toTarget:self
withObject:newValue];
}
// Don't attempt to fetch artwork from remote. Core will do that alone
if ([artUrl isFileURL])
- art = [[[NSImage alloc] initWithContentsOfURL:artUrl] autorelease];
+ art = [[[NSImage alloc] initWithContentsOfURL:artUrl] autorelease];
}
// If anything was found, lets save it to the meta data dictionary
/* Force VLCMetaInformationTitle, that will trigger preparsing
* And all the other meta will be added through the libvlc event system */
[self fetchMetaInformationFromLibVLCWithType: VLCMetaInformationTitle];
+
}
else if( !isArtURLFetched && [keyPath hasPrefix:@"metaDictionary.artworkURL"])
{
* And all the other meta will be added through the libvlc event system */
[self fetchMetaInformationFromLibVLCWithType: VLCMetaInformationArtworkURL];
}
-
+
return [super valueForKeyPath:keyPath];
}
@end
{
if (length && value && [length compare:value] == NSOrderedSame)
return;
-
- [length release];
+
+ [length release];
length = value ? [value retain] : nil;
}