Playback profiles are a way for MythTV to set individual playback settings for various types of media through the internal media player.
Six "default" Playback Profile Groups are automatically available in MythTV. These profile groups have the names Slim, Normal, High Quality, CPU--, CPU+, and CPU++. While you may edit these default profile groups, generally it's better to think of them purely as examples and either use them without modification or create your own playback profile group if you wish to edit and modify settings. Doing so will help to prevent miscommunications when describing your configuration, for example when asking for help or when helping others. Creating your own playback profile group also has the benefit of allowing you to start with a simple configuration (i.e. if rez > 0 0 -> ffmpeg & XVideo) and experiment by changing items (OSD renderer, OSD fade, deinterlacers, ...) individually and seeing how the change affects playback quality and performance. Then, as you determine how the settings affect your system, you can add complexity to get exactly the behavior you want for each type of video you use.
If you have not yet modified your playback profile configuration, the "Normal" playback profile group will be selected by default. To use a profile group that is similar to the software-rendered (no XvMC/no PVR-350 decoder) settings in versions before 0.21, choose "Slim." To use a profile group that is similar to the "accelerated" (XvMC) settings in versions before 0.21, choose "CPU--."
Each playback profile group consists of multiple profiles that are applied according to priority and match criteria (currently matching the recording's source resolution to some specified resolution). The profiles will be evaluated in order of priority, then by matching resolutions, but will only be used if the decoder is supported on the current hardware/configuration. In other words, if you have ivtv specified as the decoder, but don't have a PVR-350 configured, the ivtv profile will be skipped in favor of the next matching profile. Likewise, XvMC only supports MPEG-2 streams, so if you wish to use XvMC profiles, they should be higher priority than Xv profiles (which can be used with both MPEG-2 and MPEG-4), so MPEG-4 recordings will fail through the XvMC proflies but MPEG-2 streams will be caught by the higher priority XvMC profile.
What options you have for each setting is defined by your configuration options as well as which development packages you have installed on your computer. The available settings are briefly as follows:
- These settings define the source resolutions for which this profile will be applied.
- This defines what library MythTV will use to decode the video, be it software (nuppeldecoder, ffmpeg, libmpeg2), or hardware assisted (ivtv/pvr350, xvmc, mac, via-xvmc).
- Video Renderer
- This controls how the video is actually drawn to the screen. If you choose a renderer that's not supported by the current hardware/software configuration, MythTV will fall back to a working renderer.
- OSD Renderer
- This defines how the On-Screen Display is overlaid on the video. If you choose a renderer that's not supported by the current hardware/software configuration, MythTV will fall back to a working renderer.
- OSD Fade
- This specifies whether the OSD fades away or simply vanishes when it times out.
- This specifies the method used to deinterlace interlaced video for display.
- Secondary Deinterlacer
- This specifies the deinterlacer used if the primary deinterlacer cannot be used. For example, if the framerate is too slow for double-framerate deinterlacers.
- This specifies the filters to apply.
Default profile groups
Note: If you manage to muck up your playback profile groups and want the defaults back: First, copy down information you want to "save" from your current Playback Profile Group configuration (unless you want to just start over). Then, start deleting all the Playback Profile Groups. Go to the "Delete" button next to "Current Video Playback Profile" and hit it until there's no name left in the drop-down box next to "Current Video Playback Profile" (it should be blank). At this point, the Playback Profile Entries may look messed up (there may be some seemingly random number of them that may or may not be filled out), but don't worry about that. Then, select the Next button to "save" your settings. Finally, go back through TV Setting->Playback until you get to the "Playback Profiles (3/9)" page, where you'll see all the defaults. Then, add a new playback profile group and edit to your content.
High Quality default settings
High Quality is a profile group designed for machines capable of software rendering with enough extra resources to handle processor-intensive deinterlacing for SDTV resolutions. If the display is running at twice the frame rate of the video for SDTV resolutions, a very high quality deinterlacer is used.
|High Quality||Profile 1||Profile 2||Profile 3||Profile 4|
|Description||Good deinterlacer for 1080i||High quality deint for (noisier) SDTV||Good deinterlacer for 1080i||High quality deint for (noisier) SDTV|
|Resolution||>= 1920 1080||> 0 0||>= 1920 1080||> 0 0|
Normal default settings
Normal is a profile group designed for machines capable of software rendering with enough extra resources to handle processor-intensive deinterlacing for SDTV resolutions. It is the default selected profile group. The deinterlacer used for SDTV requires fewer resources than the one used for the High Quality profile group and supports a fallback to a single-rate deinterlacer for displays running at less than twice the frame rate of the video. OSD Fade is disabled for high-definition.
|Normal||Profile 1||Profile 2||Profile 3||Profile 4|
|Description||Good deinterlacer for HDTV||High quality deint for (noisier) SDTV||Good deinterlacer for HDTV||High quality deint for (noisier) SDTV|
|Resolution||>= 1280 720||> 0 0||>= 1280 720||> 0 0|
Slim default settings
Slim is a profile group designed for machines capable of software rendering. The deinterlacers used for all resolutions require few resources and do not require displays running at twice the frame rate of the video. OSD Fade is disabled for high-definition.
|Slim||Profile 1||Profile 2||Profile 3||Profile 4|
|Description||Simple deinterlacer for HDTV||Simple, slightly better, deinterlacer for SDTV||Simple deinterlacer for HDTV||Simple, slightly better, deinterlacer for SDTV|
|Resolution||>= 1280 720||> 0 0||>= 1280 720||> 0 0|
CPU++ default settings
CPU++ is a profile group designed for systems capable of software rendering. It does not take advantage of XvMC for MPEG-2 decoding.
|CPU ++||Profile 1||Profile 2|
|Description||ffmpeg with xv-blit||ffmpeg with quartz-blit|
|Resolution||> 0 0||> 0 0|
CPU+ default settings
CPU+ is a profile group designed to offload some decoding from the CPU, taking advantage of XvMC for MPEG-2 decoding.
|CPU +||Profile 1||Profile 2||Profile 3||Profile 4||Profile 5|
|Description||ffmpeg||XvMC for high resolution||libmpeg2 fallback for high resolution||XvMC for mpeg2||libmpeg2 fallback for mpeg2|
|Resolution||<= 720 576 and > 0 0||<= 1280 720 and > 720 576||<= 1280 720 and > 720 576||> 0 0||> 0 0|
CPU-- default settings
CPU-- is a profile group designed to offload as much as possible from the CPU, taking advantage of the PVR-350 decoder (if available) or XvMC.
|CPU --||Profile 1||Profile 2||Profile 3||Profile 4||Profile 5|
|Description||ivtv (PVR-350) if available||XvMC for lower resolutions||XvMC for higher resolutions||XvMC for mpeg-2||libmpeg2 fallback|
|Resolution||<= 720 576 and > 0 0||<= 720 576 and > 0 0||<= 1280 720 and > 720 576||> 0 0||> 0 0|
A note about deinterlacers
Time stretching and time compression during playback affect the efficacy of some deinterlacers, namely those which process video from more than two fields (e.g. greedy or yadif). A symptom of using the 'wrong' deinterlacer for those playback methods is an apparent reduction in framerate coupled with lots of messages in a '-v playback' log similar to this:
NVP: Video is 7.02403 frames behind audio (too slow), dropping frame to catch up.
NVP: Video is 7.67555 frames behind audio (too slow), dropping frame to catch up.
NVP: Video is 7.92416 frames behind audio (too slow), dropping frame to catch up.
NVP: Video is 7.87064 frames behind audio (too slow), dropping frame to catch up.
The solution of course is to ensure that the secondary deinterlacer is one which does not process more than two fields of video - namely 'onefield', 'discard' etc - or just leave the secondary deinterlacer preference as its default value.
There is a python script available for comparing deinterlacers.