HNTF/Home Network TF Discussions/HomeNetworkUA MediaPlayer

From Web and TV IG
Jump to: navigation, search

Use Case: Home Network Enabled User-Agent - Network Media Player

Submitter(s): Samsung Electronics (Russell Berkoff)

Description:

  • Enable a User-Agent to act as a Home Network Media Player

Need/justification:

  • Existing Home Network interfaces do not (by scope/tradition) standardize user interface control. However, the combination of HTML markup and Javascript allow both access to Home Network devices functions and access to very capable user interface resources.

Scenarios

  • The User-Agent acts as a Home Network Media Player device. For example:
  1. List available Home Network Media Server devices. Steps
  2. List available content on a Home Network Media Server. Steps
  3. List available content on a Home Network Media Server matching specified metadata criteria. Steps
  4. Determine capabilities of User-Agent playback facilities provided to Home Network Media Player.
    Ex: supported content formats, # of streams, supported resolution(s).
  5. Play content from a Home Network Media Server. Steps
  6. View EPG data from a Home Network Media Server. Steps
  7. Tune and play live programs from a Home Network Media Server capable of streaming live content.
  8. Select and play recorded content from a Home Network Recording device.
  • Why were you not able to use only existing standards to accomplish this?
    • HTML User-Agents do not provided the abstractions necessary for Javascript to issue discover and issue commands to home network devices.
    • Basic access methods to home network devices need to be standardized so that developers can implement pages to control Home Network devices using Javascript/HTML.
  • What might you suggest could be standardized?
    • Provide generic access methods to enable a User-Agent to discover and command home network devices.
    • Provide extensions to HTML5 <video>, <audio> elements to allow HTML5 to comply with Home Network Media Transport Requirements (mainly transport protocol specific headers). Also, provide backward-compatible extensions to previous HTML versions to support similar functionality (presumably as browser-plugins).
    • Provide access and privacy controls for untrusted pages accessing home network devices.
    • Allow pages to control future Home Network device classes where the comand sets are not currently known.
    • Allow pages to discover functional differences (optional functionality) that may be implemented in some but not all Home Network ecosystem devices.

Steps:

  • The User-Agent acts as a Home Network Media Player device.
    1. List available Home Network Media Server devices.
      1. Web page issues a method to discover home network devices
      2. User-Agent gets an event indicating the list is ready.
      3. User-Agent retrieves a list of handles representing the discovered devices
      4. Web page issues a method to get information about each discovered device
      5. Web page retains handles for devices of the appropriate type.
      6. Web page displays available devices to end-user.
      7. End-User selects one of the displayed devices.
      8. Web page issues method to access the device.
      9. User-Agent responds that a password is required.
      10. Web page obtains the password from the end-user (or secure password store) and issues method to provide the password to the User-Agent
      11. Web page can now access the device.
    2. List available content on a Home Network Media Server.
      1. Web page formats an action request to browse the Home Network device metadata store.
      2. Web page issues method to send action request to selected Home Network device
      3. User-Agent sends request to Home Network Media Server device.
      4. User-Agent generates event when Home Network device responds (or times-out)
      5. Web page gets response (XML document) from Home Network Media Server device.
      6. Web page displays containers and items as indicated in XML document
        This depends on the data representation of Home Network Media Server content metadata.
      7. Web page displays the information in the Home Media Server response.
    3. List available content on a Home Network Media Server matching specified metadata criteria.
      1. Web page formats an action request to determine searchable metadata on the selected Home Network device metadata store.
      2. Web page issues method to send action request to selected Home Network device.
      3. Web page formats an action request to search the Home Network device metadata store.
      4. Web page issues method to send action request to selected Home Network device
      5. User-Agent sends request to Home Network Media Server device.
      6. User-Agent generates event when Home Network device responds (or times-out)
      7. Web page gets response (XML document) from Home Network Media Server device.
      8. Web page displays containers and items as indicated in XML document
    4. Play content from a Home Network Media Server.
      1. End-user select displayed Home Network Media Server item for playback.
      2. Web page formats an action request to browse metadata for selected item.
      3. User-Agent sends request to Home Network Media Server device.
      4. User-Agent generates event when Home Network device responds (or times-out)
      5. Web page gets response (XML document) from Home Network Media Server device.
      6. Web page selects media binary format that is compatible with User-Agent.
      7. Web page displays Media Player using HTML5 <video> element.
      8. Web page transfers item URL to <video> element @src (or creates

        Invalid language.

        You need to specify a language like this: <source lang="html4strict">...</source>

        Supported languages for syntax highlighting:

        4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, arm, asm, asp, asymptote, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcl, dcpu16, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, freeswitch, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, haxe, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, ldif, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, octave, oobas, oorexx, oracle11, oracle8, oxygene, oz, parasail, parigp, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, pys60, python, q, qbasic, rails, rebol, reg, rexx, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, upc, urbi, uscript, vala, vb, vbnet, vedit, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


         element as child-element)
        
*#<span id="DMS-EPGView"></span>View EPG data from a Home Network Media Server. *##Web page formats an action request to determine <i>root container(s)</i> for EPG data on the selected Home Network device metadata store. *##Web page issues method to send action request to selected Home Network device. *##Web page formats an action request to <i>search</i> the Home Network device metadata store. *##Web page issues method to send action request to selected Home Network device *##User-Agent sends request to Home Network Media Server device. *##User-Agent generates event when Home Network device responds (or times-out) *##Web page gets response (XML document) from Home Network Media Server device. *##Web page displays EPG containers and EPG items as indicated in XML document *#<span id="DMS-Tune"></span>Tune and play live programs from a Home Network Media Server capable of streaming live content. *## *## *#<span id="DMS-PlayRecord"></span>Select and play recorded content from a Home Network Recording device. *## *## '''Dependencies:''' * This use-case provides the basic framework for generic access to home network devices. It is "agnostic" towards the underlying functionality of the devices being controlled.