[mythtv-commits] Ticket #3139: Resolution-based autodetection of transcoding profiles
MythTV
mythtv at cvs.mythtv.org
Sun Feb 25 22:31:05 UTC 2007
#3139: Resolution-based autodetection of transcoding profiles
---------------------------------------------------+------------------------
Reporter: Garrick James <mythtv at jamesplace.org> | Owner: ijr
Type: patch | Status: new
Priority: minor | Milestone: unknown
Component: mythtv | Version: 0.20
Severity: medium |
---------------------------------------------------+------------------------
MythTV currently (as of 0.20) has a very simple detection process for
automatically selecting a transcoding profile. The selection is based on
the encoding type of the source content. If the source content is MPEG2,
then the "MPEG2" transcoding profile is used. If the source content is
RTjpeg or MPEG4, then the "RTjpeg/MPEG4" profile is used.
This is very limiting for systems which have a digital tuner card such as
the pcHDTV series of tuners. Such cards often output content of a uniform
encoding type (MPEG2 in the case of the pcHDTV), but with different
resolutions specific to the recorded program (e.g. standard def. over QAM
DTV channels, standard def. re-cast over ATSC/QAM HDTV channels, and
various native HDTV formats). Given that all output is (often) of a
uniform encoding type, all recordings would be funneled through a single
transcoding profile under the current logic.
Attached is a patch that expands the detection logic. It adds the ability
to automatically select a transcoding profile based on the vertical
resolution of the source content and whether the content is interlaced or
progressive. Horizontal resolution is not used in the detection logic, as
it can vary quite a bit for a given vertical resolution in both the
standard def. and high def. worlds.
The interlaced/progressive detection logic is very strict to the PAL and
NTSC standards. If the frame/field rate of the source content rounds to
either 25 or 30 Hz, the source is considered to be interlaced and an "i"
is suffixed onto the vertical resolution. If the rate rounds to either 50
or 60 Hz, the source is considered to be progressive and a "p" is suffixed
onto the vertical resolution. If the rate is something else entirely, the
interlaced/progressive quality is considered to be unknown and is not used
in the selection of a transcoding profile (i.e. no suffix is added to the
vertical resolution).
The new logic looks for a transcoding profile using the following name
format:
Autodetect from %1
where "%1" is replaced with the vertical resolution of the source content
(including the interlaced/progressive qualifier, if any). Note that a
vertical resolution of 1088 is considered to actually be 1080 (why, oh
why, did "they" make 1080i and 1080p HDTV signals actually 1088 in
vertical resolution? why didn't they call it 1088i and 1088p?). Note that
the string "Autodetect from %1" is actually looked up in the UI
translation files.
Some (possibly unrealistic) examples (assuming english translations):
o If the source content were 1280x720 (HxV) and the frame/field rate
were 59.94 Hz, the logic would look for a transcoding profile named
"Autodetect from 720p".
o If the source content were 960x720 (HxV) and the frame/field rate
were 59.94 Hz, the logic would also look for a profile named "Autodetect
from 720p".
o If the source content were 1280x720 (HxV) and the frame/field rate
were 29.97 Hz, the logic would look for a profile named "Autodetect from
720i".
o If the source content were 1280x720 (HxV) and the frame/field rate
were 31.23 Hz, the logic would look for a profile named "Autodetect from
720".
o If the source content were 1920x1088 (HxV) and the frame/field rate
were 29.97 Hz, the logic would look for a profile named "Autodetect from
1080i".
If a transcoding profile is found that matches, it will be used for the
transcoding. If no matching profile is found, the code falls back to the
old detection logic that uses encoding format detection (MPEG2 vs.
RTjpeg/MPEG4).
Currently, there is no way to add new transcoding profiles via the UI.
Either existing profiles need to be renamed or a bit of SQL is needed to
add new entries.
Can someone fold this into the mainline? It doesn't change or interfere
with the existing auto-detection logic when the new, specially named
transcoding profiles do not exist.
Also, is there anyone that can give me some pointers on how to get the UI
to allow adding transcoding profiles? I've played around with
uncommenting the line that adds "(Create new profile)" to the lists of
recording profiles in the setup dialogs, but that doesn't work right. It
lets one add a profile, but it doesn't allow the profile to be given a
name and it always sets the profilegroup id to 0. :-(
Thanks,
Garrick James <mythtv at jamesplace.org>
--
Ticket URL: <http://svn.mythtv.org/trac/ticket/3139>
MythTV <http://www.mythtv.org/>
MythTV
More information about the mythtv-commits
mailing list