Feature Wishlist (Frontend Addons)

From MythTV Official Wiki
Revision as of 13:22, 29 September 2006 by Steveadeff (talk | contribs) (LiveTV / View Recording: - OSD width/height/offset)

Jump to: navigation, search

This articles represents a subsection of the Feature Wishlist.

Frontend Addons

General

  • Be able to configure the frontend to "know" about multiple backend servers, and switch between which one you want to connect to. Would be *extremely* useful for us laptop owners who have friends that also have MythTV servers!
  • Move configuration settings for each frontend out of the backend server database and into a config file on the frontend side. IMO, only backend settings should be stored in the backend database.
Not gonna happen. But you can get what I assume you want (multiple configurations per frontend). Create a copy of your ~/.mythtv directory, and change the "LocalHostName" in the mysql.txt configuration file in the new directory. Now just run "cd ~/new_directory" before running mythfrontend. -- dtk
How does this work with Remotes?
Try pressing "1" on your remote
I'm planning on tackling this as my first bit of mythdev :) --DavidGreaves
  • Add default ifconfig output to the System Status area of the Information Center
Why? -- dtk
  • Add ability to change the OSD theme from mythfrontend (using the same appearance setup area as current theme picker)
  • Change LiveTV so that when you select record while watching a program the contents of the LiveTV buffer back to the start of the program is added to the start of the recording, thus giving you a potentially complete program
  • When changing channels in live tv on a multiple recorder system, if a free recorder is available continue to record previous channel for a customisable period thus allowing revert to the previous channel while keeping the live tv buffer.
  • A more robust system of handling errors in menu XML files (IE, damaged item doesn't appear, or an error screen pops up, instead of simply crashing).
  • internal player could show information about the stream in the Info OSD - picture dimensions and bitrate and also sound frequency and bitrate. Something like "544x576 2.6 Mbps, 48 kHz 192 kbps". Would be helpful since some DVB-S/T are really trying to save the bandwidth and one wonders why the picture is so noisy/blocking and sound so poor.
  • Framework for front-end components/add-ons to print menu display and status information to a LCD/VFD panel. This would be especially helpful for components such as MythMusic, because users may want to control audio playback without turning on or even owning a TV/display. As such, a MythTV unit could take the role of a Sqeezebox and similar products.
Already exists in MythTV.
  • Multiple Network Control Servers or Perl bindings - The idea is this, if I receive an e-mail while watching tv, I would like to see the from line and subject line scroll across the bottom of the screen (which I can do using mythtvosd). However, if I'm not actively in a playback mode, the OSD is not shown. As a result I used the network control server to query the location (to get the current mode). This disconnects any other network control clients I have and is not an ideal solution. As such proper perl bindings to the front end, or multiple network control consoles would facilitate a much better solution.
  • When searching for upcoming recordings, there is currently the ability to search by a single category at a time. It would be nice to have the option to save your favorite categories, and then be able to search all your favorite categories at once.
  • Ability to add viewers to mythtv along with a popup at the end of the recording to mark a recordings as viewed by any number of users. This way recordings can be deleted once all viewers have watched it. Possibly an addition to recording schedules to mark users who want to view that show. This will help multiuser households to manage old recordings and recording storage, especially on systems with many tuners.

Decoding Hardware

  • support for the Amino AmiNET124 IPTV set-top box. If you throw an MPEG transport stream on a multicast address/UDP port, the AmiNET124 renders it to a TV (supports at least MPEG2, H.264 and AAC, probably MPEG audio layer 2 and AC3 as well). The AmiNET124 also claims to have a JVM inside, so theoretically it could run a limited mythfrontend to display menus and handle pause/skip/rewind.

http://www.aminocom.com/products/ipstb/aminet124.html

This is a task better handled by VLC... -- dtk
  • Implement a way to stream shows over the internet or other low-bandwidth connections - similar to the Slingbox. This would allow the ability to watch on a Linux laptop if you're at work. Or, even the possiblity of a truly remote mythfrontend - like one hooked up at a friend's apartment, which uses the storage and tuner of a backend elsewhere.
This is a task better handled by VLC... -- dtk
  • Support the Sigma Designs HD decoder. It can do MPEG2 and MPEG4 decoding, making the CPU requirements on the frontend extremely low. There is a project to reverse engineer Linux drivers for the MyHD line of cards, based on the Teralogic Janus design, which includes an HD MPEG2 decoder. Theoretically, it would behave just like a PVR-350, but with full HD support.
Until there is a driver for MythTV to use, this isn't really a MythTV feature request.. -- dtk

Menu Mode

  • A LAN based Video Intercom System (MythVideoCom?) - This would allow users to call up any Mythfrontend box from any other Mythfrontend box on the same LAN and have a video chat using webcam and microphone. Why is this a good idea? Well if I am in my office working and my wife is in the kitchen and needs to ask me something, she can just use mythfrontend to do it. Embedding the whole thing within Myth would simply add continuity as opposed to just having a menu button which opens a 3rd party application. This would make a very useful plugin. I would propose it has its own menu screen with a list of nodes (each one being a mythfrontend box) and a setup screen to add the nodes based on IP.
  • A clock in the menu system (Maybe available with 0.20 when the new UI is used which allow animations...)
  • a clock in the corner of the menus (maybe I just have the wrong theme)
  • X10 Home Automation, or you could read this as a request to add a basic menu editing GUI, to add program start buttons for example
  • Draw a line to seperate days in recording menus
  • Some new hotkeys in recording menus
  • add "smooth scroll" option to OSD Program Guide for horizontal and vertical scroll
  • Include the free DejaVu fonts in MythTV (same as previously suggested Vera fonts but with a wider range of characters)
  • Display channel number/name under preview window when in menu mode. Currently, the live channel being displayed and the highlighted square in the menu have no relation to each other, so you have to pretty much guess what channel you're seeing. (This is more important with the option to go to menu mode when entering LiveTV set.)
  • breadcrumbs on menu display so end users don't get lost in menu system eg Main Menu->Manage recordings...
  • Add BACK and MAIN MENU buttons for touchscreen access.
  • a summary of HDD free (approx hh:mm or size/GB or %free) on main menu or top of every menu.
  • Sounds in the menus when you move around or select somthing. (pings and pongs)
  • Adjust Volume in the menus
  • Make more menu items viewable on the screen at one time instead of having to scroll up or down to see all the options.
  • View count, especially useful if stored per user, to see if everyone has already seen the recording - would be nice to have an addition to options menu for "mark as seen by:" with submenu for defined viewers. This would really help in determining when shows can be deleted. Also see this suggestion for some further refinements. If programs are flagged with who wants to see them, if you tell myth who is in the room, myth can present a list of programs those people want to see, ordered by the number of people present who want to see it.
  • a 'digest' button that will bring up a scene index, possibly automated by grabbing a frame every X minutes, or by a framedump tool similar to the commercial cutter.
  • Show what recording profile were used to record a show, record profiles can change over time, so maybe this should fall back to displaying just the settings used.
This exists to some extent you can see what profile was used but not what the settings are. Select "edit recording schedule" from the menu in the view recordings screen
  • A simple DVD slowdown menu thingie (hdparm -E x /dev/dvd coupled to some remote button or something). When playing ordinary dvd's all is well but when i input a data-DVD mounted by subfs xine (or mplayer) does not know that it is possible to slowdown the dvd. This also goes for playing audio. Using "hdparm -E x /dev/dvd" fixes the problem but just running this on bootup is insufficient because then we're locked to this speed. This speed should be adaptable, i.e. when i know i don't need maximum speed i should only have to push my remote and choose the speed i want.
This could easily be done as a script executed via irexec. -- dtk
  • An on-screen icon/flag showing whether an episode of a series recording is set to be preserved. Such a flag exists for the auto-expire setting, but not for the preserve setting (used to make an episode not count against the recording limit).
  • add the ability to attach a short note to a recording that is displayed near/under/above the recording's description.
  • In the info center, it would be nice to be able to reorder the job queue with pgup/pgdown or +/-
  • A unified Watch Recordings/Videos screen, and perhaps even for DVDs too. One of the cited advantages of a *nix filesystem is that devices are mounted at certain points in the tree, but it's all just one tree so the user does not have to see or worry about the devices. e.g. My home directory might be on a local hard drive, it might be on a network drive, but it will be transparent to me in everyday use. Similarly, I think a single "Watch Stuff" screen would be a sensible abstraction. I have Scrubs Season 1 on DVD, and I have every episode of Season 2 recorded from TV. Let's say that I also have Season 3 ripped to my videos directory. All I care about from day to day is that I want to watch an episode of Scrubs. Why should I, as a user, have to worry about which format it's in, and navigate the menus accordingly? Ideally I should be able to navigate the menus thusly: "Watch Stuff --> Scrubs --> Season X --> Ep. Y - My ZZZ". N.B. I said 'perhaps' to DVDs because clearly you have that issue of physically inserting the disc -- you have to remember its format. Neex
  • Add a setting to change the duration of the crossfading between screens when using OpenGl

LiveTV / View Recording

  • provide opengl output to make it work with xgl (it is possible with NO_XV=1 but it is slow)
If you use the latest nVidia drivers XVideo has been fixed to work with the composite extension in Xorg 7.1. -- dtk
  • Videotext/Teletext with analog TV-Cards
  • Make OSD Scrollable, so that longer Descriptions are also visible (Maybe autoscroll or with a key)
  • options to adjust video hue, contrast, color, brightness via OSD example screen from ChrisTV
  • Automatically turn on CC / subtitles when LiveTV is muted, sometimes called QuickCaps apparently.
  • LiveTV should also have a 'recording' priority, so you can queue shows that won't record when you are watching something else on LiveTV
  • implement opengl photo transition effects as effects to be selected for channel change in LiveTV
  • alarm clock feature - start playing liveTV from a given channel for a set period of time on given days of the week (i.e. weekdays, weekends)
  • LiveTV multichannel preview mode - show a snapshot of each channel on a 3x3 or 4x4 matrix. Allow arrow keys and ff/rw to scroll through channels and enter to select channel
  • For users of HDTV's, would it be possible to tile multiple standard definition tv recordings together into one tiled display? To create a poorman's videowall, where, if you had an HDTV and multiple standard def tuner cards, you could watch two or three TV shows at once. I guess this would be a feature enhancement to the picture in picture support that MythTV already has. However I've not yet seen this capability to comment on how close it can be made to a true multi signal "videowall".
  • change behavior going to LiveTV or attempting to change channels when all tuners are in use to provide a menu allowing the user to cancel a currently-running recording job and delete the recording.
  • Provide a setting for maximum time on LiveTV or "Watch Recordings" screen with active mini preview video without any user event (i.e. no remote signal, no keypress, no channel change). When time reached, kick MythTV back out to main screen. This will prevent unnecessary ringbuffer disk I/O after set time. A reasonable default time for this may be 6 hours.
This is in SVN for release in 0.20, the default is 8 hours.
  • Automatic fine tuning, using signal strength it will scan a few kHz in each direction until it locks on the strongest signal then updates the database for that channel.
  • Fine tuning with preview or while watching LiveTV, many channels are out of tune on my system and a small adjustment or two make a huge difference.
  • Implement an automatic volume leveling algorithm that is common in many TVs, such as Magnavox's "Smart Sound." This attempts to eliminate drastic volume spikes that commonly occur in commercials.
  • Ability to take a snapshot of the current frame, maybe to press R whilst paused to take a snapshot of the current frame.
  • Enable browsing channels across tuners.
has this been done in 0.19?
No, This requires additional code, currently you can change to a channel on another tuner by entering the channel number, but you can not browse across tuners (except in the EPG). Code is required to check if the other recorders are in use so we only display the channels on recorders that are currently available. -- dtk
  • Display the recording and/or original air date in the OSD when viewing a recording.
  • Make editing out of commercials easier. In addition to buttons for forward, backward, shorter jump, longer jump, etc., have a button for "this frame is part of the program" and one for "this frame is a commercial." The editor would automatically do a kind of binary search, using the key presses to decide whether to move foreward or backward, and where to place the cut points. The basic algorithm: the editor shows the first frame of the recording. If the user says it's commercial, place a start cut point and keep moving forward by the (configurable) minimum commercial break length until the user says it's not a commercial. At that point, move backward by half the minimum commercial break length. If that frame is also a commercial, move forward by a quarter of the break length; otherwise move that distance backward, and so on. When the distance to move gets to a single frame, mark the end point of the cut and move forward by the (configurable) minimum time between commercials plus the minimum commercial break length. As long as the user indicates it is a program frame, keep moving forward by the minimum break length, until a commercial frame is found, and then use a similar binary search to find the start of the commercial. Repeat util finished. Comm flagging could be used as a hint for where to start looking for the cut points.
You can load the commercial map into the editor using the 'Z' key. -- dtk
  • Jump to quote from closed captioning, so you can for example have a search for 'weather' and jump to the weather forecast in today's news broadcast.
  • Display usage statistics : total hours recorded / total hours viewed by months and weeks. Optionally display warnings when daily/weekly usage becomes higher than a defined amount.
  • Allow filtering of profanity - An audio filter that would blank out profanity when it is detected. For the detection, use a combination of closed captioning, audio levels (to detect what word the audio stream is on), and/or voice recognition (hardest, CPU intensive). Many of the configuration settings would be similar to commercial detection, except just the audio stream. Make movies kid and in-law safe.
  • Allow access to the Program Guide from within recordings. This would be helpful in scheduling recordings of new programs that I often see commercials for when watching a recording, but quickly forget about. This would eliminate having to exit the recording and going to drilling through the menus to the program guide, and then back again. This used to be possible with the Old Live TV.
This is already available in LiveTV. You can enable similar when watching recordings, by defining a Jump Point for the EPG. Pressing the mapped key will then save a bookmark in your recording and goto the EPG. To get back, you'd have to navigate appropriately to the Recordings screen and then continue watching your recording.
  • Have a minimum time limit to save a LiveTV recording (in minutes ?). Thus "channel surfing" would not produce hundreds of LiveTV recordings.
Impossible, you must save the recording in order to be able to show it. If the recording is less than a couple minutes it is automatically deleted to avoid producing too many LiveTV recordings. Changing the recording group will hide all these recordings as well. -- dtk
  • When selecting a channel from the program guide which is already being recorded, jump into the recorded stream at the most recent point rather than tying up another tuner recording the same stream. This would also enable eg rewinding to before the start of the LiveTV selection.
  • Matroska chapter support (jump to next, prev chapter) with 'Internal' player
  • MythVideo + Internal player remembers playback position
  • Ability to customize OSD menu through OSD themes. So that e.g. unnecessary OSD menu items can be easily removed or hidden.
  • use of ffmpeg's new swscaler to scale DVD's/SD recordings/random MythVideo files to HDTV resolutions (720p/1080p).
  • For HDTV, instead of modifying the video playback overscan (ruining 1:1 mapping of the source), allow for defining the width/height/offset for the OSD's so they can properly fit on the screen.

UPnP (Universal Plug and Play) server and client features

All UPnP AV (UPnP = Universal Plug and Play Protocol, and AV = Audio/Video) connectivity and communication protocols to make MythTV be fully UPnP compliant on both the back-end (server) side and the front-end (client) side. So that both MythTV's back-end and front-end is intercooperative with other UPnP servers and clients, (then especially other HTPC applications, both open sourced ones and closed source commersial ones, thus the end-user can choose the best 'back-end' and the best 'front-end' which suits their needs, like a MediaPortal back-end, or a XBMC front-end togther with MythTV). For more information see MythTV developers notes on UPnP.

Note! UPnP could be implemented one or more native feature(s) or one or more plugin(s):
  • UPnP AV MediaServer - which is the UPnP-server (a 'slave' device) that share/stream media-data (like audio/video/picture/files) to UPnP-clients on the network). Now a UPnP AV MediaServer has already been implemented into MythTV back-end but the code classes could be updated according to the v2.0 specifications to be UPnP v2 compliant.
  • UPnP SSDP Discovery Service in both MythTV back-end and front-end to make the MythTV and MythTV auto-discover each other. If not into to both then at least into the MythTV front-end to let it (and other UPnP-clients) auto-detect the MythTV back-end over a local-network.
  • UPnP Remote User Interface (RUI) server/client (in MythTV back-end and front-end respectivly) - which recieves/sends control-commands beween the UPnP-server and UPnP-client over network, (like record, schedule, play, pause, stop, etc.). With UPnP RUI in both MythTV back-end and front-end, the front-end can control/command the back-end via UPnP, and since UPnP is a standard other 'front-ends' which also feature UPnP RUI can also control/command the MythTV back-end, and the MythTV front-end can control/command other 'back-ends' if they feature UPnP RUI.
  • UPnP MediaServer ControlPoint - which is the UPnP-client (a 'master' device) that can auto-detect UPnP-servers on the network to browse and stream media/data-files from them. Should be implemented into
  • UPnP MediaRenderer DCP - which is a 'slave' device that can render content.
  • UPnP RenderingControl DCP - control MediaRenderer settings; volume, brightness, RGB, sharpness...).