MHP sovellusten synkronoituminen videokuvaan



Samankaltaiset tiedostot
MHP sovellusten synkronoituminen videokuvaan

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Teknillinen korkeakoulu T Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Xlet

Teknillinen korkeakoulu T Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Siirtoprotokolla

Digitaalinen Televisio

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Toiminnallinen määrittely. XLet esimerkkisovellus

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Tekninen määrittely

Digi-TV:n käytettöliittymät

Valppaan asennus- ja käyttöohje

Ohjelma-ajanvälitys komponentti

Järjestelmäarkkitehtuuri (TK081702) AJAX, Asynchronous JavaScript And XML. AJAX, Asynchronous JavaScript And XML

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ

Sisältö. XML, XHTML ja CSS XML XML. XML:n ja HTML:n ero. XML kieliä XML XHTML CSS XSL. T Hypermediadokumentin laatiminen 2002

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

Teknillinen korkeakoulu T Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Koordinaattieditori

XML johdanto, uusimmat standardit ja kehitys

ARVO - verkkomateriaalien arviointiin

Pedacode Pikaopas. Web-sovelluksen luominen

Luento 12: XML ja metatieto

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

Helsingin Sanomat ipad

Testitapaukset - Siirtoprotokolla

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

Digitaalisen median tekniikat. JSP ja XML

Digitaalisen TV-verkon liikennepalvelujen kokeilut

2. PEHMEÄ XHTML XRAJAHTML

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

K-Lite Codec Pack v2.48 Asennusohje (toimii myös uusissa versioissa)

DIGI-TV:N MHP-SOVELLUSSTANDARDIN MUKAINEN SOVELLUSKEHITYS

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245


Luo mediaopas Tarinatallentimella

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

MP3 Manager Software for Sony Network Walkman

Ohje sähköiseen osallistumiseen

Project X Opas... 2 DVB-tallenteiden käsittely ProjectX-ohjelmalla... 2 Vaatimukset... 2 Javan version tarkistaminen tapa

Tilauspalveluun pääsee osoitteessa

Unix-perusteet. Tiedosto-oikeudet

Digitaalisen median tekniikat. Luento 4: JavaScript

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE:

Harjoitustyö 3: Verkkosivujen toiminnallisuus (JavaScript)

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0

Tikon Web-sovellukset

Paikkatiedot ja Web-standardit

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

Tavallisen videomainoksen sijasta Ruudussa voidaan mainostauolla esittää dynaamisia spotteja.

Kotisivuohjeet. Eteläpohjalaiset Kylät ry. Sivupohjien rakenne

Karttaselain Paikannin J2ME

DVB- ja internet-palvelut saman vastaanottimen kautta

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

Ohjelmistoarkkitehtuuri. Verkotettu multimedia. Multimedian vaikutukset. Mediavirtojen puskurointi. Ohjelmointi. Selain-ohjelmistoarkkitehtuuri

EASY Tiedostopalvelin - mobiilin käyttöopas

Ohje sähköiseen osallistumiseen

Verkkopalveluiden saavutettavuus

Navistools Standard. Navistools

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka

Korkeakoulujen prosessipalvelin: mallintajan palvelinohje Versio 0.2

Digitaalisen median tekniikat Luento 1: Intro

Harjoitus 3 Antti Hartikainen

HTML ja CSS. Tästä se lähtee: portfolio-sivusto. Sivuston pääkansio, jonka sisällä on kaikki sivustoon kuuluvat alikansiot ja tiedostot.

Purot.net Wiki. Tutkielma. Paavo Räisänen. Centria Ammattikorkeakoulu

3 Verkkosaavutettavuuden tekniset perusteet

Järjestelmäarkkitehtuuri (TK081702)

Liikennetiedotus digi-tv:ssä -pilottiprojekti

XHTML - harjoitus. Tehtävä1: Tee xhtml tiedosto käyttäen notepad (muistio) ohjelmaa. Tiedoston tallennus notepad (muistio) ohjelmassa:

Verkkosivut perinteisesti. Tanja Välisalo

Viestinvälitysarkkitehtuurit

Järjestelmäarkkitehtuuri (TK081702) SOA, Service-oriented architecture SOA,

Kurssimateriaali. GeoGebra

Käytön aloittaminen NSZ-GS7. Verkkomediasoitin. Näyttökuvia, toimintoja ja teknisiä ominaisuuksia voidaan muuttua ilman erillistä ilmoitusta.

Home Media Server. Home Media Server -sovelluksen asentaminen tietokoneeseen. Mediatiedostojen hallinta. Home Media Server

Viestinvälitysarkkitehtuurit Lähtökohta:

Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1

DIGI-TV:N JA PAINOTUOTTEEN KONVERGENSSI KODIN MEDIAKESKUKSEN AVULLA

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

HTML5 video, audio, canvas. Mirja Jaakkola

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat

Videon tallentaminen Virtual Mapista

DigiTV Lehdistömateriaali

Prospektini. Usein kysytyt kysymykset SISÄLLYS

Digiroad-aineiston hyödyntäminen rajapintapalveluiden kautta MapInfo

SeaMonkey pikaopas - 1

TermBase NET versio (Beta)

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2

DIGI-TV-SANASTO (Koonnut Sari Walldén)

Digitaalisen median tekniikat xhtml - jatkuu

TAMPEREEN TEKNILLINEN KORKEAKOULU Tietotekniikan osasto. DVB-vastaanottimen laitteistorajapinnan Java-toteutus

MPCC-työkalua voidaan käyttää yhden laitteen valvontaan ja yhden tai useamman laitteen konfigurointiin (Modbus broadcast, osoite 0).

W3C-teknologiat ja yhteensopivuus

KODAK EIM & RIM VIParchive Ratkaisut

Transkriptio:

Esitutkimus MHP sovellusten synkronoituminen videokuvaan Versio Päiväys Tekijä Kuvaus 0.1 5.10.2001 Mika Ståhlberg Ensimmäinen luonnos 0.2 25.10.2001 Mika Ståhlberg Lisätty Xlet-kehitykseen liittyvä luku

Sisällysluettelo Taustaa...3 Multimedia Home Platform...3 Termejä...4 Objektikaruselli (Object Carousel; OC)...5 MHP synkronisointi ja objektikaruselli...7 Synkronointi...8 Triggerit...8 MHP Xletit ja niiden kehittäminen...11 Objektikaruselli ja Java...11 Käyttöliittymien luominen...12 Java ja synkronointi...12 MHP esitutkimus 2

Taustaa Multimedia Home Platform MHP on yritys adaptoida olemassaolevat Internet ja web-standardit digitaaliseen televisioon. Tavoitteena on tuottaa digitaalista sisältöä, jota voi katsoa sekä set-topboxilla ja TV :llä, että tietokoneella. MHP-sovelluksia voidaan käyttää webistä ja websisältöä MHP-sovelluksista käsin. MHP on tarkoitettu toimimaan samanlaisena sekä tavallisilla (terrestrial), kaapeli, että satelliittiyhteyksillä. MHP :n on kehittänyt eurooppalainen TV-yhtiöiden ja telehallintokeskusten yhteinen kehityselin, DVB. DVB :n standardit julkaisee Euroopan tietoliikennettä standardisoiva ETSI. MHP on monella tavalla avoin sikäli, että se käyttää monia webistä tuttuja teknologioita suoraan tai pienillä muutoksilla. Tiukimmat Linux-harrastaja (www.linuxtv.org) tuntuvat kuitenkin olevan sitä mieltä, ettei MHP ole avoin, sillä vain sen standardit ovat avoimet. Kaikki toiminta perustuu Sunin Java-moottoriin, joka ei tiukasti ottaen ole avoin. MHP-standardi tukee nykyisin sisältöä mm. seuraavissa formaateissa: PNG, JPEG, GIF, MPEG-1 ja MPEG-2. Java sovelmia (nimi MHP-maailmassa on Xlet ) voidaan tottakai myös toteuttaa, sillä MHP :n virtuaalimoottori (eli DVB-J) on itse asiassa vain hieman muokattu Java Virtual Machine. DVB-HTML on XHTML :n muunnos DigiTV käyttöön. Se sisältää kaikki eurooppalaiset merkit, mutta XHTML :n ominaisuuksia on rankasti karsittu. Tuettu skriptauskieli on JavaScriptin avoin johdannainen ECMAScript. Tyylisivuja (CSS2) voidaan käyttää XHTML :n tapaan, mutta niidenkin ilmaisuvoimaa on karsittu, tosin lisääkin on saatu. MHP mahdollistaa mm. objektien läpinäkuultavuuden, mikä on varmasti erinomaisen tärkeä ominaisuus DigiTV-sovelmissa. MHP :tä voidaan käyttää mm. sähköisiin ohjelmaoppaisiin, super-tekstitelevisioon ja turvalliseen sähköiseen kaupankäyntiin. MHP-moottori pystyy muokkaaman ja lukemaan ohjelmien tekstityksiä, mutta teksti-tv :seen ei ole MHP :llä minkäänlaista rajapintaa. Tämä on varmastikin suunniteltu estämään teksti-tv :n sisällön hyväksikäyttöä muiden palveluntarjoajien Xleteissä. Lisäksi MHP mahdollistaa synkronoinnin sovellusten ja tv-kuvan välillä. Tälle löytyy varmasti käyttöä etenkin erilaisissa visailuohjelmissa ja urheiluohjelmien informaatio pop-up ikkunoinnissa. Meidän työmme keskittyy juuri tähän synkroinoinnin hyödyntämisen toteuttamiseen, ja sikäli on erinomaisen perustavaalaatuaolevaa. MHP esitutkimus 3

Termejä AIT DAVIC DOM DSM-CC DVB Event Factory File Application Information Table; AIT on taulukko, joka siirretään karusellissa vastaanottimelle. Vastaanotinlaite tietää AIT :n perusteella, mitkä sovellukset ovat voimassa ja pystyy näin ollen puhdistamaan muististansa vanhat sovellukset ja muut tiedostot. AIT :n perusteella voidaan sovelluksia periaatteessa myös käynnistää automaattisesti. Digital Audio-Visual Council; Kahdensadan yrityksen yhdistys, joka oli mukana mm. DSM-CC :n määrittelytyössä. Davic on lopettanut toimintansa. Document Object Model; Alusta- ja kieliriippumaton rajapinta, jolla voidaan vaikuttaa dokumenttien sisältöön, rakenteeseen ja tyyliin. Digital Storage Media Command & Control: Siirtokerrosriippumaton tapa siirtää tietoa laajakaistayhteydellä. MPEG-2 ISO/IEC 13818-1 Standardi videosignaalin koodaamiseksi sisältää DSM-CC :n varhaisen version, jota käytetään objektikarusellinen luomiseen. Digital Video Broadcasting Tiedosto, jossa kuvataan, missä sovelluksen tarvitsemat Stream Event Message tiedostot sijaitsevat. Stream Event Messaget puolestaan linkittävät tapahtumien nimet ja ID :t. Lisäksi Event Factory Filessä kerrotaan, minkä nimiset tapahtumat tätä tiedostoa käyttävä sovellus tilaa. MHP esitutkimus 4

HAVi JavaTV MHP OC OCG PID TS Home Audio / Video Interoperability; Monenlaisia laitteita varten kehitetty käyttöliittymä API. Tuettuja mm. televisiot, kellot, kamerat ja videonauhurit. Käytetään MHP-Xleteissä Java AWT :n tilasta. SUNin kokoelma Java-luokkia digibokseja varten. MHP perustuu JavaTV :lle ja Personal Javalle. Multimedia Home Platform Object Carousel; Objektikaruselli, jossa tiedostot siirtyvät Set-Top boxiin. Pyörii ympäri vanhan kunnon teksti-tv :n tyyliin Object Carousel Generator; Palveluntarjoajille myytävä tuote, jolla he pystyvät valmistamaan ohjelmavirtaa, jossa on karuselli mukana. Packet ID. Objektikarusellit identifioidaan PIDin avulla. Transport Stream; siirtovuo, johon on kanavoitu sekä objektikaruselli, että MPEG-muodossa oleva kuvavirta (ja tietysti myös tekstitys yms. Kuvan lisämausteet). Objektikaruselli (Object Carousel; OC) Televisiolähetys on perusmuodossaan yksisuuntainen. Jos televisiolähetyksen mukana lähettäisiin muuta dataa (sovelluksia, kuvia, teksti-tv sivuja yms.) ainutkertaisina lähetyksinä, saattaisi tärkeää dataa jäädä saamatta televisionkäyttäjältä, joka laittaa tv :n päälle kesken ohjelman. Karusellissa tiedostot pyörivät katsojan saatavilla aina uudelleen ja uudelleen. Karusellissa pyörivät pelkkien tiedostojen lisäksi myös palvelimen hakemistorakenne, jolloin tiedostoihin voidaan viitata palvelimen hakemistopuun mukaan. Toistotiheys karusellissa voidaan määrittää tiedostokohtaisesti. Tekstitiedosto Kuvatiedosto Sovellus (Java) Hakemisto -objekti Kuva 1: Karusellin objektit MHP esitutkimus 5

Karuselli on suorituskyvyn kannalta haastava rakenne, sillä rajoitetuilla kaistanleveyksillä se pyörähtää kokonaan ympäri varsin verkkaisesti. Tästä johtuen tiedostoja täytyy priorisoida niiden tarpeiden mukaan. Osa tiedostoista on välttämättömiä sovelluksille (esim. Xlet-luokat), osa voi saapua myöhemmin (esim. koristeiksi tarkoitetut kuvat) ja osa muuttuu jatkuvasti (esim. Pop-up ikkunaan tarkoitetut tiedot formulakuskin nopeudesta tai sijoituksesta). Priorisoinnin lisäksi suorituskykyä voi kasvattaa tiedon pakkaamisella. Karuselli koostuu itse asiassa monesta sisäkkäisestä karusellista. DVB :n protokollapino selventänee tilannetta. Siitä voidaan nähdä, että MPEG-2 vuo sisältää CSM-CC karusellin, jonka päällä pyörii varsinainen digitelevision karuselli. Sovellukset DVB objekti karuselli DSM-CC objekti karuselli DSM-CC data karuselli MPEG-2 sektiot MPEG-2 Transport Stream Kuva 3: Objektikarusellia koskeva DVB protokollapino Karusellin sisältävä videovirta muodostetaan Transport Stream Builder sovelluksella, jossa jokaisesta objektista kerrotaan ainakin sen polku palvelimella ja prioriteetti, jolla se laitetaan uudelle kierrokselle. Kanavointilaitteelle (MUX) Tiedostot palvelimella TS jossa OC Transport Stream Builder UI TS soitin (yksi tai monia) XML OC kuvaus ja tiedostot Muut Transport Streamin osat OC (karuselli) kooderi Kuva 2: Objektikarusellin tiedostojen tie palvelimen kovalevyltä digitaalitelevisiolähetykseen kanavoiduksi Transport Streamiksi. TS soittimia voi olla useita, sillä ne voivat olla eri paikoissa (eri palveluntarjoajilla). MHP :n objektikaruselli on matkittu DVB- ja MHEG-maailmoista. Se kuitenkin on olennaisesti parempi, sillä siinä on mukana AIT (Application Information Table), jonka avulla vastaanottimen sovelluksia voidaan säädellä palveluntarjoajalta käsin. AIT on MHP esitutkimus 6

talukko, jossa on kuvaus sovelluksista ja muista tiedostoista, joiden kuuluisi olla käynnissä tai muistissa. MHP synkronisointi ja objektikaruselli DVB-järjestelmissä synkronisointi on erinomaisen tärkeää, sillä kuvan, äänen, tekstityksen ja objektikarusellin täytyy toimia jollakin tarkkuudella synkroonissa. MHP :ssä synkronointi on toteutettu lähes samalla tavalla kuin XML :n SMIL-kielessä (Syncronized Multimedia Integration Language), ja onkin ihmetelty, miksei MHP tue SMIL-formaattia suoraan. Audio-video-vuon aikaan liittyviä suoritteita siirretään Stream Event -tapahtumina, jotka lähetetään (broadcast) karusellissa. Sovellukset tilaavat näitä OC :lla pyöriviä tapahtumailmoituksia voidakseen synkronoitua kuvan tai vaikkapa muiden sovellusten kanssa. Kanavointilaitteelle (MUX) Tiedostot palvelimella TS jossa OC Transport Stream Builder UI TS soitin (yksi tai monia) XML OC kuvaus ja tiedostot Muut Transport Streamin osat OC (karuselli) kooderi Kanavointilaitteelta MPEG-videon aika Sovelluksen aika Kuva 4: Tapahtumailmoitusten (Stream Event) integrointi lähetykseen (TS) MHP esitutkimus 7

Synkronointi Triggerit Triggerit tarjoavat keinon, jolla sovellusten tarjoaja voi vaikuttaa sovellukseen, joka pyörii tv-katsojan set-top-boxissa. Triggerit ovat pieniä sanomia, jotka lähetetään tvlähetyksen tapahtumailmoituksina (Stream Events). Ne sisältävät yleensä ajan, jolloin ne pitäisi lähettää ja pienen määrän dataa, jota sovellukset voivat tilata. Aika tapahtumissa tarkoittaa aikaa median alusta, eli esimerkiksi kehyksiä tai sekunteja tv-ohjelman alkamisesta. Tapahtumille annetaan nimi, sovellukset tilaavat tietyn nimisen tapahtumailmoituksen ja tapahtumailmoitus lähetetään OC :lla kun määrätty aika ( ajanlaskun alusta) on kulunut. Tapahtuman nimi Aika Alku 00:00:00.00 Mainoskatko 00:13:34.20 Loppu 00:28:55.00 Taulukko 1: Yksinkertainen esimerkki tapahtumailmoitusten nimeämisestä ja aikautuksesta. Seuraavassa on esitetty Stream Event-ympäristö, niinkuin se on esitettynä MHP spesifikaation luonnoksessa v.1.1 (toukokuu 2001). Virallinen spesifikaatio (v1.0) ei kuvaa Stram Eventien sisältöä tai muuta niihin liittyvää kovinkaan tarkasti, joten sen perusteella eivät laitevalmistajatkaan todennäköisesti pysty laitteitaan suunnittelemaan. Set-top-boxissa pyörii jatkuvasti jonkinlainen daemon-tyyppinen User Agent, joka vastaanottaa kaikki tapahtumat. Agentti muuttaa DSM-CC Stream Eventit (TS :n tapahtumailmoitukset) DOM (Document Object Model) tapahtumiksi, joita sovellukset tilaavat. Sovellukseen liittyy event factory -tiedosto (XML :n DTD-formaatissa), jossa kerrotaan, mitä tapahtumia User Agent etsii sovellusta varten karusellista. Jos event factory -tiedosto puuttuu, käytetään oletustiedostoa. MHP esitutkimus 8

Stream Event sanoma (sijainti löytyy Event Factory-tiedostosta) Nimi1? ID1 Nimi2? ID2 ID, media stream User Agent tilaa tapahtuman nimeltä X Stream Event Descr. Saapuu karusellista? ID, aika, payload User Agent muuntaa tapahtuman nimen, ID :n ja datan (payload) DOM event tyypiksi ja attribuuteiksi DOM Event DVB-HTML dokumentti Media Stream (MPEG) Aika (Now Playing Time; NPT) Event Factory File Sovellus tiedostot Kuva 5: Tapahtumamekanismin kuvaus DVB-HTML-dokumentti voi tilata DOM Eventin joko Xletin tai ECMA skriptin kautta. Tilaaminen tapahtuu addeventlistener()-kutsun avulla. Sovellus tilaa jonkunnimisen tapahtuman ja tapahtumat tulevat karusellista lyhyellä ID-tunnuksella varustettuina. Stream Event-sanomassa (tai oikeammin, tiedostossa) kerrotaan, mikä nimi kuvautuu miksikin ID :ksi. User Agent kerää tapahtumat (ID :n perusteella) karusellista ja lähettää ne DOM Eventteinä sovellukselle kun tapahtumakuvauksessa (Event Description) kerrottu NPT-aika koittaa. Joissakin tapahtumissa aika on muotoa nyt heti, jolloin User Agent muodostaa ja toimittaa DOM Eventin välittömästi. Stream Event Description, eli varsinainen tapahtumaviesti voi sisältää jotakin dataa (payload). User Agent lukee tämän datan ja jäsentää sen Event Factory definitiontiedostossa olevan säännöllisen lausekkeen (regexp) avulla. Jäsennetty data laitetaan DOM Eventin mukaan ja toimitetaan sovellukselle. <?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//DVB//DTD XHTML DVB HTML 1.0//EN" "http://www.dvb.org/mhp/dtd/dvbhtml-1-0.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:dvbhtml="http://www.dvb.org/mhp"> <head> <script type="text/ecmascript"> // event listener declaration function handleevent(evt) { /* Handle the event */ } // the listener is positioned on the document root node, // i.e. the html node function setupeventlisteners () { var htmlnode = document.documentelement; htmlnode.addeventlistener("mytriggerevent", handleevent, true); } </script> </head> MHP esitutkimus 9

<body dvbhtml:onload="setupeventlisteners()"> </body> </html> Esimerkki 1: DVB-HTML-tiedosto, jossa tilataan tapahtuma. Event Factory tiedosto linkitetään HTML-tiedoston kanssa laittamalla samaan hakemistoon saman niminen.lnk tiedosto esim. Index.html? index.lnk. Event Linkage tiedosto (*.lnk) on XML-tiedosto, jossa on kerrottuna mitkä Event Factorytiedostot liittyvät mihinkin DVB-HTML-dokumenttiin. Huomattavaa on, että yksi sovellus voi koostua monesta HTML-dokumentista, ja jokaisella näistä voi olla yksi tai useampi linkitystiedosto. Document Object Model (DOM) on rajapinta (API), jolla Java ja ECMAScript sovellukset voivat vaikuttaa dokumenttien sisältöön, rakenteeseen ja ulkoasuun. DVB- HTML tukee tapahtumamodulia, joka on kuvattuna DOM Level 2 Events Spesifikaatiossa. MHP esitutkimus 10

MHP Xletit ja niiden kehittäminen Xlettien kehittämistä pitää ajatella aivan tavallisena Java applettien koodaamisena. Ainoa ero on MHP :n tarjoaminen kirjastojen aiheuttamat rajoitukset ja digiboksin suhteellisen pieni suorituskyky tavalliseen tehotyöasemaan verrattuna. Televisioruudun kuvasuhde, värierot ja pikselien lomittaminen aiheuttavat ongelmia Xletkehittäjälle. Mm. lomittamisen takia ei yhden pikselin paksuisia viivoja kannata käyttöö Xleteissä. Xlettien kehittämisen voi tehdä aivan tavallisessa JDK-ympäristössä, jossa on muutama MHP-luokka asennettuna. MHP spesifikaatio (ETSI TS 101 812 v1.1.1 heinäkuu 2000, luku 11.3 s. 87? ) luettelee ne Javan perusprimitiivit, joita MHP :ssä ei ole toteutettu ja ne paketit, joita MHP tukee peruspakettien lisäksi. Testaaminen todellisella käyttöliittymällä ei kuitenkaan näin onnistu, vaan tarvitaan joko MHPdigiboksi tai esim AltiComposer-sovellus. Lisäksi todellisen funktionaalisuuden testaamiseen tarvitaan DSM-CC Object Carousel Builder ja MPEG-kanavointilaite. MHP sovellusten täytyy määrittää luokka, joka käyttää (implements) javax.tv.xlet.xlet rajapintaa. Kyseinen rajapinta ei eroa java.applet.appletista kovin paljoa, mutta on yksinkertaisempi. Alustamiseen MHP kutsuu seuraavia metodeja seuraavassa järjestyksessä: initxlet(), startxlet() ja Xletin sammuessa destroyxlet(). Objektikaruselli ja Java Objektikaruselli näkyy Xletille (read only) tiedostojärjestelmänä. Classpath määräytyy jo Xletin käynnistyessä, joten tiedostoja voidaan lukea karusellista Java applicationin tapaan. Appletin tapa hakea tiedostoja URLin perusteella ei toimi. Esimerkiksi seuraavanlaisia komentoja voidaan käyttää muiden tiedostojen lukemiseen: new java.iofileinputstream( foo.bar ) tai Toolkit.getImage( MaedchenInternaat.jpg ) org.dvb.dsmcc paketti laajentaa java.io komentoja. Sen avulla voidaan toimia asynkronisesti objektikarusellin kanssa (org.dvb.dsmcc.dsmccobject.asynchronousload()), jolloin esimerkiksi kuvien latautumista ei tarvitse odottaa ennen sovelluksen toimimista. MHP esitutkimus 11

Käyttöliittymien luominen Käyttöliittymässä voidaan käyttää perinteistä java.awt pakettia ja Java 1.1 tapahtumakäsittelyä. Eroina digiboksien ja tietokoneen välillä käyttöliittymässä joitain, mm. ikkunat eivät väälttämättä voi olla päällekkäin. Television näyttötapaa kompensoimaan käytetään org.dvb luokkia: org.dvb.ui.dvbcolor Mahdollistavat läpikuultavuuden (ns. Alpha) org.dvb.ui.dvbgraphics käyttöliittymäkomponenteille org.dvb.ui.dvbbufferedimage Kaksoispuskuroinnin käyttö sovelmissa. Estää välkettä. org.dvb.ui.dvbtextlayoutmanager Tekstin kirjoittaminen ruudulle Myös org.havi käyttöliittymäpakettia voidaan käyttää Xletien kehittämisessä. Esim. org.havi.ui.event.hrcevent auttaa kaukosäätimen tapahtumien käsittelyssä. Huomattava on, ettei digiboksissa aluksi ole hallintalaitteena minkäänlaista hiirtä, vaan ainoastaan muutama kaukosäätimen nappi. Varsinaiset käyttöliittymäkomponentit voidaan piirtää käyttäen java.awt.graphics primitiivejä tai HAVi widgettejä. Ylin Container-olio saadaan selville javax.tv.tvcontainer.getrootcontainer JavaTV-metodilla tai HAVi-metodilla org.havi.ui.hscenefactory Videokuvan ja äänen soittamista varten MHP sisältää Java Media Frameworkin toiminnallisuuden. org.davic.net.dvb.dvblocator primitiivillä voidaan hakea mediavirtaa karusellista, kunhan tiedetään Transport Stream ja Service ID (SI). Videokuvan skaalaamiseen voidaan käyttää javax.tv.media.awtvideosizecontrol tai org.dvb.media.backroundvideopresentationcontrol primitiivejä. Java ja synkronointi Median kanssa voidaan synkronoitua Stream Eventeillä: org.dvb.dsmcc.dsmccstreamevent.subscribe() tai org.davic.media.streameventcontrol.subscribestreamevent() ja NPT :n lukemiseen voidaan käyttää primitiiviä org.davic.media.mediatimeeventcontrol tosin myös org.dvb.dsmcc.dsmccstream.getnpt() mahdollistanee DVB Streamin ajan selvittämisen. Ylipäätänsäkin voidaan sanoa, että kaikki Stream Eventeihin liittyvä löytyy org.davic ja org.dvb.dsmcc.dsmccstream paketeista. MHP esitutkimus 12