Opened 15 years ago

Closed 13 years ago

#2406 closed enhancement (wontfix)

Patch and new files to use Mac OS X System DVD Playback Framework.

Reported by: awk@… Owned by: Nigel
Priority: minor Milestone: unknown
Component: mythdvd Version: 0.20
Severity: medium Keywords:
Cc: Ticket locked: no


Whilst the Internal player works 'OK' on Mac OS X Frontends - I've had some problems with menu drawing and handling.

The attached patch and two new source files use the Apple supplied DVD Playback framwork on Mac OS X to play a DVD. This is much more reliable and potentially has better performance since it has access to the system internals for MPEG-2 accelerated decompression too. If the user preference is for 'internal' DVD Player and this patch is in place then the DVD Playback Framework is used - it's probably a small matter to change things to recognize 'DVDPlaybackFramework' or somesuch as a preference if that is preferred over assuming the 'Internal' preference.

The DVD Playback framework also supports extracting camera angle info, title & chapter info, subtitling and bookmarks too and in time I'd like to add those features into this code. In short everything that the Mac OS X DVD Player app does is done with this framework (with the exception of the UI).

Attachments (4)

mythdvd.diff (1.1 KB) - added by awk@… 15 years ago.
Diffs to main.cpp and
MacOSXDVDPlayer.cpp (13.6 KB) - added by awk@… 15 years ago.
MacOSXDVDPlayer.h (1.3 KB) - added by awk@… 15 years ago.
mythdvd.2.diff (1.2 KB) - added by awk@… 15 years ago.
Launch Mac OS X playback if setting is dvdplaybackframework rather than internal

Download all attachments as: .zip

Change History (10)

Changed 15 years ago by awk@…

Attachment: mythdvd.diff added

Diffs to main.cpp and

Changed 15 years ago by awk@…

Attachment: MacOSXDVDPlayer.cpp added

Changed 15 years ago by awk@…

Attachment: MacOSXDVDPlayer.h added

comment:1 Changed 15 years ago by awk@…

I should add that for this to work well you'll need the recent patches from Ticket #1753 in order for DVD Detection and the Media Monitor to work correctly on OS X

comment:2 Changed 15 years ago by Isaac Richards

While there isn't much impact on existing code, I don't really like the idea of this usurping 'Internal'. The point of the internal player is to have a unified UI/OSD/control scheme for all video playback..

comment:3 Changed 15 years ago by awk@…

I can certainly change this to use an alternate string instead of 'Internal' to switch into - that way there's still a choice. I'll make that change and upload a revised patch.

I wasn't aware of any existing UI for the Internal DVD player like a 'onscreen remote control' ? Or did you mean something else ? The Mac OS X framework doesn't provide any UI of it's own, it's all up to the application to provide that. There's a reference for the API at Basically it's just about displaying and rendering the stream - so long as it's in 'VIDEO_TS' layout (which means it can't be used as an alternate MPEG-2 decoder - it only does DVD's).

I'd love to be able to adopt what ever else is being done for UI and On screen displays - but at this early stage the focus seemed to be more on 'just making it work' with the wide range of DVD's out there. Ideally an end user wouldn't be able to tell from visual appearance if they're using the Internal player or something else.

Changed 15 years ago by awk@…

Attachment: mythdvd.2.diff added

Launch Mac OS X playback if setting is dvdplaybackframework rather than internal

comment:4 Changed 15 years ago by awk@…

After some further examination it seems that the DVD Playback framework doesn't actually provide a way to composite other graphics into the playback window over the top of the video stream :-( There probably is a way to achieve something using overlay/transparent windows but I've never had good experiences in the past with such approaches.

I think this patch could still be useful to some people who have problematic DVD's and want to play them - it's a better alternative than launching a wholly external player app. However if it doesn't 'pass' the ticket should probably just be closed

comment:5 Changed 15 years ago by Anduin Withers

Owner: changed from Anduin Withers to Nigel

comment:6 Changed 13 years ago by Nigel

Resolution: wontfix
Status: newclosed

I agree with Isaac that there should only be one, consistent, internal player. I also think the internal player is now good enough. Sorry Andrew. It was nice code, but MythTV won't be using it.

Note: See TracTickets for help on using tickets.