Opened 18 years ago
Closed 16 years ago
#2406 closed enhancement (wontfix)
Patch and new files to use Mac OS X System DVD Playback Framework.
Reported by: | Owned by: | Nigel | |
---|---|---|---|
Priority: | minor | Milestone: | unknown |
Component: | mythdvd | Version: | 0.20 |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
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)
Change History (10)
Changed 18 years ago by
Attachment: | mythdvd.diff added |
---|
Changed 18 years ago by
Attachment: | MacOSXDVDPlayer.cpp added |
---|
Changed 18 years ago by
Attachment: | MacOSXDVDPlayer.h added |
---|
comment:1 Changed 18 years ago by
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 18 years ago by
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 18 years ago by
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 http://developer.apple.com/documentation/GraphicsImaging/Reference/DVDPlaybackRef/index.html. 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 18 years ago by
Attachment: | mythdvd.2.diff added |
---|
Launch Mac OS X playback if setting is dvdplaybackframework rather than internal
comment:4 Changed 18 years ago by
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 18 years ago by
Owner: | changed from Anduin Withers to Nigel |
---|
comment:6 Changed 16 years ago by
Resolution: | → wontfix |
---|---|
Status: | new → closed |
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.
Diffs to main.cpp and mythdvd.pro