Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#10340 closed Bug Report - General (fixed)

Play Optical Disc entry has no effect

Reported by: JYA Owned by: JYA
Priority: major Milestone: 0.25
Component: MythTV - General Version: Master Head
Severity: medium Keywords:
Cc: Ticket locked: no

Description (last modified by Raymond Wagner)

In the Optical Disks entry, selecting Play Optical Disk has no effect

In the log there is:

012-02-16 00:46:10.363585 I [8070/8070] CoreContext tv_play.cpp:984 (TV) - TV: Creating TV object
2012-02-16 00:46:10.365761 I [8070/8070] CoreContext tv_play.cpp:1203 (Init) - TV: Created TvPlayWindow.
2012-02-16 00:46:10.370222 I [8070/8070] CoreContext tv_play.cpp:2118 (HandleStateChange) - TV: Attempting to change from None to WatchingBD
2012-02-16 00:46:10.370436 I [8070/8070] CoreContext programinfo.cpp:2153 (QueryBasename) - QueryBasename found no entry for 0 @ 2012-02-16T00:45:10
2012-02-16 00:46:10.370488 E [8070/8070] CoreContext fileringbuffer.cpp:342 (OpenFile) - FileRingBuf(): RingBuffer::RingBuffer(): Failed to open remote file ()
2012-02-16 00:46:10.432900 I [8070/8070] CoreContext tv_play.cpp:2446 (HandleStateChange) - TV: Main UI disabled.
2012-02-16 00:46:10.432906 I [8070/8070] CoreContext tv_play.cpp:376 (StartTV) - TV: Entering main playback loop.
2012-02-16 00:46:10.433369 I [8070/8070] CoreContext tv_play.cpp:378 (StartTV) - TV: Exiting main playback loop.

device is /dev/sr0 and is configured as such a DVD player device is mounted on /data/bluray

mythavtest bd:///data/bluray play the disk as expected

Attachments (3)

bd_play.patch (608 bytes) - added by gregorio.gervasio@… 9 years ago.
Hack to make BD playback work from menu
patches-10340-quilt.tgz (2.0 KB) - added by JYA 9 years ago.
Quilt stack
patches-10340-2-quilt.tgz (2.7 KB) - added by JYA 9 years ago.
Proper fix

Download all attachments as: .zip

Change History (9)

comment:1 Changed 9 years ago by Raymond Wagner

Description: modified (diff)

Changed 9 years ago by gregorio.gervasio@…

Attachment: bd_play.patch added

Hack to make BD playback work from menu

comment:2 Changed 9 years ago by gregorio.gervasio@…

The attached patch makes BD playback work for me. The proper fix should probably involve making the URL parsing more tolerant?

Changed 9 years ago by JYA

Attachment: patches-10340-quilt.tgz added

Quilt stack

comment:3 Changed 9 years ago by JYA

Owner: set to JYA
Priority: minormajor
Status: newassigned

Here is an attempt at properly fixing this one. 1- The simplest solution is to remove the / at the end of the URL. However this is only a workaround, if the path defined in the video settings contains a / it will not work. The issue lie quite deep in ProgramInfo::GetPlaybackURL() and GetBasename?(). if the path contains a trailing '/' then it ends up trying to play an empty filename.

2-the BD player only works if you provide the actual path where the disk is physically mounted. Symbolic link to it do not work. This patch attempt to determine the real path before trying to play the BD disk

3- Allow launching the BD playback to an external player, sharing the same settings as DVD playback. The %d argument is replaced by bd:///path/to/mount (note use of a standard URI schema: name:// ; with patch # 2 extra path at the top are ignored anyway.

To come: fix the trailing / issue. This has unexpected consequences and is rather large.

Ultimately, transform the URI to use standard scheme, rather than just dvd: or dvd:/

# 1 and # 2 are in queue for 0.25 freeze.

# 3 and other later

Changed 9 years ago by JYA

Attachment: patches-10340-2-quilt.tgz added

Proper fix

comment:4 Changed 9 years ago by JYA

In the new quilt patch archive: it now contains the proper fix for handling URI with trailing /

So even if the mounting point itself contains a / it will work also things like mythavtest bd:/mount/bluray/ will now play properly

patch 2: fix_symlink_bdmount.patch determine the real physical path of a path for bluray playback

path 3: fix BD and DVD playback when using a relative path.

so with patch 2 and 3, you can now do: mythavtest bd:./test where test is a link in the local directory to /media/bluray

patch 4: bd_external_player.patch , simplify the code for calling the external player on DVD and add support for external playback for BD (so for example, you can call a script that will unencrypt the disk with AnyDVD before playing it with mythavtest)

Note that bd: and dvd: path should really be bd:// and dvd:// and this will be fixed later as discussed on IRC

comment:5 Changed 9 years ago by Github

Milestone: unknown0.25
Resolution: fixed
Status: assignedclosed

Fix bluray playback when path to bluray mountpoint contains a trailing /

Bluray playback started from either mythfrontend or mythavtest would fail if the path provided contained a trailing / (such as /media/cdrom0/). Issue lied with ProgramInfo::GetPlaybackURL() trying to find if the file was local. Now do not attempt any file path processing if the URI is for DVD or BD playback

Fixes #10340 (Part 1)

Branch: master Changeset: 2fa00e745deff33d2a342fca367ba15bdc62fa96

comment:6 Changed 9 years ago by Github

Fix bluray playback if mounting path is a symbolic link

Some distributions (such as Ubuntu) symlink /media/cdrom0 to /media/cdrom. Decryption would fail if trying to play bd:/media/cdrom. We know determine the actual canonical path

Fix #10340 (part 2)

Branch: master Changeset: 93d3631223b4d3a2c8bcfb3b503deab67ab4dfc7

Note: See TracTickets for help on using tickets.