[mythtv-users] Yet another wishlist, this time HDTV oriented

Brad Templeton brad+myth at templetons.com
Fri Dec 3 22:23:08 UTC 2004

Well, we all have our PVR wishlists, and less time to code them up
than we would like.  Since our prime focus at EFF is on DTV and HDTV
(fighting the broadcast flag) I wrote down my thoughts of various
future improvements, some major, most minor, which relate to support
of HDTV.

They're in my blog at:

However, I will reproduce them here in a plainer text form.

                          Myth HDTV Wishlist:

I have been building an HDTV PVR with MythTV and the pcHDTV tuner card.
It's been a major adventure, not yet ready for prime time, but it's
lead me to have some thoughts about things you want to think about in a
PVR that particularly relate to HDTV.

Suggesting new features is of course a somewhat futile activity.  In
open source, the usually and appropriate answer is "why don't you go
code up this feature and add it?"  In commercial products, most people
feel even the Tivo is too complex and they are correctly loathe to add
new features that complicate the user interface.  So I make a priority
note on all of these.

If you are not familiar with certain linux video issues, some of this
will sound like gibberish.

	Tolerate HDTV tuning problems

pcHDTV users are probably the only folks using MythTV with an over the
air antenna.  In this case, signals can come in and out, you might not
be able to tune a channel and later you can.

Right now, failure to tune aborts a recording, and makes it hard to
restart.  I think it's fixed now but for a while turning to an empty
channel crashed mythfrontend.

Priority:  Fairly high, this is a bug fix really.

	Smart Transcode

You have different transcoding desires based on the resolution at which
you recorded a program.  You may wish to transcode your 480i to one
resolution, your 480p to another, your 720p to another and so on.
However, since almost all available HDTVs only display 1280x720
resolution, you may definitely want to scale 1080i shows down to that
size (possibly with some deinterlace).

HDTV shows are big and you are keen to preserve space but you also love
quality.  So it really becomes worthwhile to offer "transcode to save
space instead of delete" function, which predicts space needs and
transcodes down programs -- perhaps even in stages -- before needing to
delete them.  Watch it quickly and it's in full resolution, later it's
lower.  Or just do it by time, based on the class of recording.  Ie.
transcode down to a lower level after a few days, further after a week.

Priority:  Some of this can be done with minimal UI, so is good.  Some
UI is needed because transcode with fixed resolution is not very useful
on an HD system (though at a basic level you can pretty simply put in a
check never to transcode to a larger resolution if that's not already

	Realize CPU limitations

Decoding HDTV is intensive and can suck up a 3ghz level machine almost
entirely.  Thus better XvMC support is in high demand.  However, some
other features can be tuned to realize the CPU problems.  For example,
de-interlacing and other filters should turn themselves off automatically
if they notice very high CPU usage -- or simply if they notice the
playback getting behind at all.  In general, if the system notices
playback getting behind, or dropping lots of frames, it should take
whatever steps it can to stop this.  Even dropping quality, if it can
be done adaptively (ie.  when CPU becomes available again or we get
into a section that is easy to decode because it is EDTV, turn things
back on.)

Priority:  Medium.  No UI needed here, but sometimes it's a simpler
answer to just let Moore's law fix it.

	HDTV aware commercial detection

The fact that the screen switches from full widescreen to having two
fixed bars on the sides during commercials is, at least for now, a
major, major clue in detecting commercials.  It's not 100% effective,
so you can't use it exclusively, but it's close.

(Letterbox detection might also help for all TV but more and more ads
are being letterboxed.)

Priority:  Zero UI needed, but not a crushing problem.

	Be aware of aspect ratio mis-fits and use them.

Often these days there are black bars on the screen.  Either L and R
for viewing SDTV on a widescreen, or top and bottom for letterbox.  If
you see this happening, use that real estate for on screen displays,
including control, captions, subtitles etc.  Consider a mode for an
always-on OSD with basic info (but unobtrusive, a very neutral gray bar
along the side showing position, channel, time etc.

Priority:  Minimal UI needed (Just "do you want permanent OSD where
screen real estate permits it" checkbox) but not a crushing problem.

	Pass necessary screen and aspect ratio to mplayer for DVD playback

In mythdvd, the aspect ratio information on the TV doesn't seem to be
always making it to mplayer.  Also if you invoke mythfrontend -display
:0.1, this parameter is not inherited.  (I guess you can do export

Priority:  Minor Bugfix

	Consider Two screen operation.

Today screens and multi-head video cards are cheap, and this makes
extra sense with an HDTV.  Consider what you can do with two screens.
Video on the HDTV of course, but permanent OSD on the other screen?  Or

Priority:  Hard to say

	Support DTVLink/1394

New HDTVs are coming with firewire/1394 links, what is called DTVLink.
You can stream mpeg2 to the TV over the firewire, or Camcorder DV
format.  Talk about ideal -- no need for even a video card in the PC,
and you can now do an HDPVR with an old, slow machine.  Of course,
doing the menus etc.  is something I'm not as sure about with firewire
video.  Thus a 2nd screen until it is easy to do that.  This of course
will generate the highest quality image possible, you are feeding the
delayed bits to the TV it would have tuned if you had watched live.

Another 2nd screen option would be to take advantage of the fact that
DTVLink is a smart input -- the link is able switch viewing from
another input to the DTV stream and back again.  So you can do menus on
one "screen" (going into the TV via ordinary inputs) and switch to
streamed mpeg.  No OSD though.

To me this is the "pure" DVR.  It records the digital stream, and plays
it back, and the decoding is done at the last step before viewing.
Though DVI is fairly close but not if you do things like resolution
changes etc.  Add an ability to merge text on top of the video and you
have the pure PVR.

Priority:  Higher as more TVs with 1394 come on the market.

	Pay attention to AC-3 (6 channel audio) issues

Some of this stuff isn't as well tested and documented because most
people don't encounter it until they tune HDTV (or perhaps some
satellite boxes.)

	Record _all the time_.

One of the important features of the Tivo is that it is recording into
the live buffer or a program's file all the time.  It never, ever
stops.  No matter what you do (other than change channel) you can
always go back to your live program.  When you sit down to first turn
it on, you can go back into the buffer of the channel it happened to be

With a DTV tuner (or a hardware mpeg encoder like wintv-pvr-x50) there
is almost no CPU cost to recording.

Plus it means if somebody says "watch live TV" it starts almost right
away, instead of waiting about 5 seconds.

And unlike the Tivo, don't erase the buffer just because I change
channels.  Hey, why not let me go back in time to the prior channel?
Possibly pop up a warning about it based on a flag in the stream.  Then
you can possibly change the nature of the warning on channel change
when behind in the buffer.  (BTW that warning should not be issued if
you are only a few seconds behind in the buffer.)

Priority:  High -- this is a major function of the Tivo (to which you
will always be compared) which is missing.  It's way to easy to screw
up your watching now and lose a program.

	Realize that you can record 2 sub-channels of the same HD
	or QAM master channel.

OK, I admit this one isn't likely to be easy, but an HD tuner card is
always receiving all the sub-channels of a DTV station.  Where I live
PBS runs 4 different channels at once.

So I have to admit, a fancy tuner allocator able to make use of his may
be more work than it's worth.  But you can improve live TV channel
change quite a bit here, make it close to instantaneous, among the
sub-channels at least.  (Yes, even though you are playing 3 seconds
behind real time you can still make it instantaneous.)

Priority:  low

	Realize that programs air in different qualities.

Yes, you can make one tuner more important than another, but if a show
airs twice either on different tuners or just on different channels
(such as the HD and SD versions of the same channel) unless you say
otherwise you would be disappointed if the scheduler picked up the SD
version and decided not to get the HD one because it found the SD one.

Priority:  low to medium

	Show HD programs in the guide with a special colour or icon

Nice to quickly see this while browsing.

Priority:  medium, because it's trivial

More information about the mythtv-users mailing list