Opened 7 years ago

Last modified 4 years ago

#10370 assigned Bug Report - General

DVD playback fail with default settings on MacOS X

Reported by: JYA Owned by: JYA
Priority: minor Milestone: unknown
Component: Ports - OSX Version: Unspecified
Severity: medium Keywords:
Cc: Ticket locked: no


Using MacOS 10.7 (or 10.6)

MythFrontend will fail to play any DVD

When selecting the play DVD option in the Optical Menu ; in the log you get:

libdvdread: Using libdvdcss version 1.2.9 for DVD access
libdvdread: Can't stat /dev/r/dev/disk1
No such file or directory
libdvdread: Could not open /dev/r/dev/disk1
libdvdnav: vm: failed to open/read the DVD
2012-02-22 21:33:51.365260 I  MediaMonitor::selectDrivePopup(Select a DVD drive) - No suitable devices
2012-02-22 21:33:51.366886 I  DVDInfo: Trying dvd://dev/r/dev/disk1
2012-02-22 21:33:51.369193 E  DVDInfo: Failed to open device at /dev/r/dev/disk1
2012-02-22 21:33:51.369200 I  DVDInfo: Finishing.

programs/mythfrontend/main.cpp automatically prefix the device name with /dev/r

Yet, the default device name it isn't defined by the user is /dev/disk1 (defined in libs/libmyth/mediamonitor_darwin.h

The documentation in the settings statea: "This device must exist, and the user playing the DVD needs to have read permission on the device. 'default' will let the MediaMonitor? choose a device"

using "default" does nothing, it uses /dev/disk1 unless defined in the settings, and default is /dev/disk1 which myth try to play as /dev/r/dev/disk1 which will *always* be an invalid device

The log also shows: MediaMonitor::selectDrivePopup(Select a DVD drive) - No suitable devices

No such popup ever appears...

MythFrontend should either automatically determine what the right DVD device is, not prepend /dev/r to any path name or properly display the selectDrivePopup

Change History (7)

comment:1 Changed 7 years ago by Nigel

Owner: set to Nigel
Status: newassigned

If there is no DVD mounted, selectDrivePopup() tries to return a default like /dev/dvd on Linux, or D: on Windows. On OS X, it should default to disk1, not /dev/disk1. I will commit a change in mediamonitor-darwin.h. There are other problems for playing DVDs, though - will try to spend some time investigating.
All this code was my poorely-designed kludge to support multiple drives. selectDrivePopup() could return NULL if there is no suitable device containing suitable media, but that sort of assumes the user has to have the MediaMonitor? enabled. The hard-coded default was for users who don't want the extra process/DBus/uDev/DiskArbitration overhead, and turned off the MediaMonitor?

comment:2 Changed 7 years ago by Github

Better default device (when MediaMonitor? disabled) on OS X. Refs #10370

OS X uses both the BSD and raw device paths, so the MediaMonitor? supplies names like disk1 instead of /dev/disk1.

Branch: master Changeset: d7c8dfb8b3e0460b7253bbefe30ff956601a4838

comment:3 Changed 7 years ago by JYA

Owner: changed from Nigel to JYA

comment:4 Changed 7 years ago by Github

OS X setSpeed() - use correct drive path. Refs #10370

After d7c8dfb8b3e, -v media reports: 2012-03-07 11:53:45.522063 E MythCDROMDarwin:setSpeed() can't open drive /dev/rdev/rdisk1 because both main.cpp's playDisc() and setSpeed() were prepending the raw bit

Branch: master Changeset: ede2706164115ae22d306a8de57bcae60fc69da5

comment:5 Changed 7 years ago by Github

Fix OS X default for ejectOpticalDisc(), improve verbose output. Refs #10370

Branch: master Changeset: 1d8fcdeafffcd75d319c4e4dffab8b3a869c8302

comment:6 Changed 7 years ago by beirdo

Milestone: 0.25unknown

comment:7 Changed 4 years ago by paulh

Component: MythTV - GeneralPorts - OSX
Note: See TracTickets for help on using tickets.