[vlc-devel] VLC.framework Changes/Modifications

Pierre d'Herbemont pdherbemont at free.fr
Tue Oct 9 23:00:18 CEST 2007


On Oct 9, 2007, at 1:14 AM, Enrique Osuna wrote:

> Also, I had to do a quick hack to the core's media_descriptor  
> struct.  I added a p_user_data field so that I could store, from  
> within Cocoa, a pointer referencing back the VLCMedia object it's  
> associated with.  Otherwise, we'd have to recreate that object  
> every time we wanted to manipulate a media_descriptor -- or we  
> would have to maintain a local copy of generated media descriptors.

We've talked about that on IRC. As we've seen we just need to track  
the media_descriptor's destruction.

>
>> My initial thoughts were to do that, however, I wanted to create a  
>> mechanism that allowed for other programmers to use this framework  
>> and use the VLCMediaPlayer instance for playback strictly.  I know  
>> there are a few projects out there ( e.g. centerstageproject.com)  
>> that have their own playlist manager if you will and would want to  
>> use VLC just as a playback engine versus a playlist manipulation one.
>
> True enough. Isn't
>
> [aMediaPlayer initWithMedia: aMedia];
> [aMediaPlayer setVideoView: aVideoView];
> [aMediaPlayer play];
>
> Simple enough?
>
> Yeah it is.  But if we want to go that simplistic, wouldn't we just  
> integrate the VLCMediaPlayer's methods into VLCMedia it self?
>
> [aMedia initWithURL:@"~/Movies/test.avi"];
> [aMedia setVideoView:aVideoView];
> [aMedia play]

I better like the MVC abstraction you've just wrote. But if we want  
shortcut, what about implementing the -play and -setMedia: to the  
VideoView: We can play the same VLCMedia in multiple VideoView, but  
we can't really play multiple VLCMedia in one VLCVideoView.


>> [aMediaListPlayer initWithMediaList: aMediaList];
> [aMediaListPlayer setVideoView: aVideoView];
> [aMediaPlayer play];
>
> I know we talked about this the other night, but how much different  
> would this implementation be as compared to VLCMediaControl?  If I  
> remember correctly, VLCMediaListPlayer should just be a wrapper  
> around the core's implementation?

Sure.

>>
> Private headers are stored in Headers/Internal and public are  
> stored in Headers/Public.

Nice.

> Also, I need to fix the some of the private binding categories.

What do you mean?

> The interfaces are declared in the same spot that they are  
> implemented.

Do you mean the @interface VLCxxx (Private)? They should be placed  
along with their VLCxxx.m file, as they should be really considered  
as 'private' function, belonging to that class.

> We should implement a VLCInternal header file or something of the  
> sort.

Yes, for -[VLCMedia setLength]. We may also want a  
VLCLibVLCBridging.h header.

> We need to declare the interfaces (like [VLCMedia setLength]) but  
> implement them in a public place.

I don't get the 'implement in a public place' problem. -setLenght:  
should be defined internally, and the implementation should go in  
VLCMedia.m.

Pierre.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20071009/1468aa0c/attachment.html>


More information about the vlc-devel mailing list