Opened 14 years ago

Closed 14 years ago

#1737 closed defect (fixed)

Update mtd to build and run on Mac OS X

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

Description

mtd needs to some small updates to build and run on Mac OS X.

libmythdvdnav also needs a small update to correctly the load the CSS library if it exists too.

Attachments (2)

dvdprobe.cpp.patch (12.4 KB) - added by awk@… 14 years ago.
Patch to mythdvd/mtd/dvdprobe.cpp supports DVD media detection and changes.
dvd_input.c.patch (400 bytes) - added by awk@… 14 years ago.
Patch to libs/libmythdvdnav/dvd_input.c loads CSS library if present on DYLD_LIBRARY_PATH on Mac OS X

Download all attachments as: .zip

Change History (10)

Changed 14 years ago by awk@…

Attachment: dvdprobe.cpp.patch added

Patch to mythdvd/mtd/dvdprobe.cpp supports DVD media detection and changes.

Changed 14 years ago by awk@…

Attachment: dvd_input.c.patch added

Patch to libs/libmythdvdnav/dvd_input.c loads CSS library if present on DYLD_LIBRARY_PATH on Mac OS X

comment:1 Changed 14 years ago by anonymous

With the attached patches and setting the DVD Device to /dev/rdisk1 I can rip VOBs and also transcode to other forrmats (using standard transcode settings and build per mythdvd instructions). Ripping to ISO image appears to still be broken however.

comment:2 Changed 14 years ago by Anduin Withers

Owner: changed from Isaac Richards to Anduin Withers

comment:3 Changed 14 years ago by Nigel

Andrew, this looks good (although I haven't actually tested it yet :-) Some minor thoughts:


  1. It should probably be dependant on #ifdef Q_OS_MACX instead of Q_WS_MACX - IOKit is an OS feature, and if anyone builds an X11 MythTV on Darwin, we want the to use your code too.
  2. I think it might be a little cleaner if this Darwin/Mach?-specific stuff goes into a separate file. Maybe somewhere in libmyth, so that other programs (like mfd/mfe?) could use it.
  3. I have been meaning to implement libmyth/mythcdrom-darwin.cpp for a year or so. Do you know anything about the Disk Arbitration framework?

comment:4 Changed 14 years ago by Nigel

  1. Having to set the DVD Device manually seems very un-Mac-like, and will be wrong if there are extra disks on the Mac. I wonder if we could have an auto-fillin on this the first time the mythdvd plugin loads, or maybe auto-detect a mounted DVD if a particular device isn't specified

comment:5 Changed 14 years ago by anonymous

I'm in conversation with Anduin to clean up the patch to get it to fit style guidelines etc. etc.

I'm not personally familiar with the Disk Arbitration framework - but I've been writing Mac software for a long time, I don't expect it would take long to 'work it out'. I'll take a look at what libmyth does/needs with removable media and see what help I may be able to give.

I agree about improving the UI to autodetect the device - the code in the patch can be used to find a mounted DVD and I'll probably change the patch to reflect that an empty device path in the call to probe will find the first mounted DVD (there's no real way from the UI to choose between multiple mounted DVDs). However the current default value for that field is /dev/dvdrom and I don't know how to change that from the UI perspective only on Mac OS.

comment:6 Changed 14 years ago by Nigel

(In [9828]) Mac OS X dvdcss library name. See #1737

comment:7 Changed 14 years ago by Nigel

(In [9834]) Linux/FreeBSD ifdefs around unix specific code. This now compiles and runs on Mac OS X, but can't detect if there is a disk in the drive yet. See #1737 In preparation for Mac OS X fix.

comment:8 Changed 14 years ago by Nigel

Resolution: fixed
Status: newclosed

Since mtd does compile and run, I will close this ticket. Future OS X improvements deserve their own ticket (like #1753). Setting the DVD device to /dev/rdisk1 or /dev/rdisk2 means that mtd finds the partitions, and the default (biggest?) one is displayed in the mythdvd screens.

Note: See TracTickets for help on using tickets.