Modify
Warning Please read the Ticket HowTo before creating or commenting on a ticket. Failure to do so may cause your ticket to be rejected or result in a slower response.

Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#10340 closed Bug Report - General (fixed)

Play Optical Disc entry has no effect

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

Description (last modified by wagnerrp)

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@… 2 years ago.
Hack to make BD playback work from menu
patches-10340-quilt.tgz (2.0 KB) - added by jyavenard 2 years ago.
Quilt stack
patches-10340-2-quilt.tgz (2.7 KB) - added by jyavenard 2 years ago.
Proper fix

Download all attachments as: .zip

Change History (9)

comment:1 Changed 2 years ago by wagnerrp

  • Description modified (diff)

Changed 2 years ago by gregorio.gervasio@…

Hack to make BD playback work from menu

comment:2 Changed 2 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 2 years ago by jyavenard

Quilt stack

comment:3 Changed 2 years ago by jyavenard

  • Owner set to jyavenard
  • Priority changed from minor to major
  • Status changed from new to assigned

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 2 years ago by jyavenard

Proper fix

comment:4 Changed 2 years ago by jyavenard

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 2 years ago by Github

  • Milestone changed from unknown to 0.25
  • Resolution set to fixed
  • Status changed from assigned to closed

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 2 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

Add Comment

Modify Ticket

Action
as closed .
The resolution will be deleted. Next status will be 'new'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.