Opened 8 years ago

Last modified 4 months ago

#10602 accepted Bug Report - General

Playback profiles do not fall back to follow-up entries should the first fail

Reported by: JYA Owned by: Mark Kendall
Priority: minor Milestone: 32.0
Component: MythTV - Video Playback Version: Master Head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

The video playback profile editor let you enter different entries according to specific video size criteria.

The choice of a playback profile works only according to those criteria. If one is automatically selected, only to later fail ; for say when the video codec isn't supported, it doesn't try another video profile.

For example, say you have a VAAPI profile, that as first entry uses VAAPI for all decoding and vaapi for deinterlacing, and a 2nd entry that uses ffmpeg for decoding and opengl for deinterlacer.

if the VAAPI/GPU doesn't support a particular codec, it only reverts to ffmpeg decoding. It should try the next entry in the playback profile. If not, as deinterlacers aren't available any longer, the video being played isn't deinterlaced and it looks awful.

Should playback profiles properly worked, a side effect would be to have for example a general "Hardware Accelerated" profile. It would first try VDPAU, then VAAPI, then CrystalHD etc... it would greatly simplify user experience

Change History (4)

comment:1 Changed 4 months ago by Stuart Auchterlonie

Owner: changed from JYA to Mark Kendall
Status: newassigned

Mark, didn't you just fix something like this?

comment:2 Changed 4 months ago by Mark Kendall

Milestone: unknown32.0
Status: assignedaccepted

The issue of deinterlacers no longer working after falling back to software decode should be fixed with the changes to the deinterlacer setup.

Falling back to an entirely different profile is something I'm aware of. It is currently complicated by the need to coordinate between the decoder and videooutput classes i.e. if hardware decoding fails, the code could fallback (fallthrough) to the next profile but it is not clear how that would be interpreted for rendering - and might produce unexpected results.

Realistically there are few situations where an alternate hardware decoder is a useful option (VDPAU to NVDEC perhaps being one exception) - although falling through to a clearly defined software decoding profile is preferable (as this will allow e.g. deinterlacing preferences to be set properly).

comment:3 Changed 4 months ago by Mark Kendall <mark.kendall@…>

In fb01cb3f4/mythtv:

AvFormatDecoder?: Fallback to alternative decoders when necessary

  • if a (hardware) decoder is not available, disallow it in the

VideoDisplayProfile? and try again

  • note - this only works when the decoder fails pre-setup checks (which

are pretty good for most decoders except MMAL, VideoToolbox? and V4L2
Codecs). A subsequent decoder failure will still fallback directly to
software decoding.

  • note - this is unlikely to be useful in the vast majority of cases;

there is often only one hardware decoder available and for those
decoders, the pre-setup checks are good.

  • it is also advisable to setup a 'catchall' fallback profile item that

ensures there are useful CPU and deinterlacer settings when hardware
decoding is not available.

comment:4 Changed 4 months ago by Mark Kendall <mark.kendall@…>

In 240038b689/mythtv:

AvFormatDecoder?: Fallback to alternative decoders when necessary

  • if a (hardware) decoder is not available, disallow it in the

VideoDisplayProfile? and try again

  • note - this only works when the decoder fails pre-setup checks (which

are pretty good for most decoders except MMAL, VideoToolbox? and V4L2
Codecs). A subsequent decoder failure will still fallback directly to
software decoding.

  • note - this is unlikely to be useful in the vast majority of cases;

there is often only one hardware decoder available and for those
decoders, the pre-setup checks are good.

  • it is also advisable to setup a 'catchall' fallback profile item that

ensures there are useful CPU and deinterlacer settings when hardware
decoding is not available.

(cherry picked from commit fb01cb3f43f0f481a35abf7cfba6b4b5ccfc70c8)

Note: See TracTickets for help on using tickets.