programska - university of novi sad · 2020. 6. 28. · dmx digital storage media (dsm-cc) xserv...
TRANSCRIPT
PROGRAMSKA
PODRŠKA U TELEVIZIJI
I OBRADI SLIKE
Primer složenog DTV softvera
Middleware
Unutrašnji mehanizmi
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 2
Arhitektura Comedia MW
Programska podrška za kontrolu DTV
Comedia
Sloj za abstrakciju fizičke arhitektureComedia Hardware Abstraction Layer - CHAL
TKEL TBOX TDAL
Comedia Core
StreamPlayer MSList Event Info
Time Date
CA
TerInstall
Sprega za abstrakciju srednjeg slojaComedia Middleware Abstraction Layer - MAL
Korisničke aplikacije
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 3
Mogućnosti Comedia Core
Comedia Core
Setup
MS List
Stream Player
Event Info
TerInstall & SatInstall
Subtitles
Timer & Reminder
Teletext
PVR
Software Update
CA MMI
MHEG Engine
Web On TVHbbTV Engine
Podešavanje / Konfiguracija DTV prijemnika
Upravljanje listom programa (Zapping)
Upravljanje audio / video prikazom
Pristup informacijama o emisijama
Upravljanje pristupom prenosnom toku
Podrška za prikaz prevoda
Podrška za zakazivanje akcija i podsetnike
Podrška za prikaz teleteksta
Podrška za PVR funkcionalnosti
Podrška za ažuriranje sistemske PP
Podrška za prikaz GUI za CA modul
Podrška za izvršavanje MHEG aplikacija
Podrška za prikaz HbbTV sadržaja
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 4
Comedia Core arhitektura
CHAL
TDAL DMD
Comedia Core
Table
Program Information Database (PIDB)
Event information
management (EIM)
TDAL DMX
Digital Storage Media
(DSM-CC)
XSERV
Stream Player
MSList
Setup
EventInfo
TerInstallSatInstallCabInstall
Timer &
Reminder
Teletext&
Subtitles
Web on TV&
HbbTV
MHEG Engine
TDAL AV
TDAL DISP
TDAL PTSM
TDAL FLA
TDAL GFX
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 5
Comedia Core moduli: Setup
CHAL
TDAL DMD
Comedia Core
Table
Program Information Database (PIDB)
Event information
management (EIM)
TDAL DMX
Digital Storage Media
(DSM-CC)
XSERV
Stream Player
MSListEventInfo
TerInstallSatInstallCabInstall
Timer &
Reminder
Teletext&
Subtitles
Web on TV&
HbbTV
MHEG Engine
TDAL AV
TDAL DISP
TDAL PTSM
TDAL FLA
TDAL GFX
Setup
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 6
Comedia core moduli: Setup
Osnovna uloga Setup modula je da omogući
čuvanje korisničkih podešavanja DTV prijemnika
(preferences), njihovo učitavanje i odgovarajuću
primenu.
Modul obuhvata skup Set/Get funkcija za
postavljanje/učitavanje odgovarajućeg parametra
konfiguracije, kao i njegovu primenu (pri Set pozivu).
Modul omogućava registraciju povratnih funkcija
(callback) posredstvom kojih se klijent obaveštava o
promeni nekog od parametara.
Setup modul omogućava podešavanja parametara
za audio, video, lokalizaciju, kontrolu pristupa
funkcijama, izgled UI, i sl.
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 7
Comedia Core moduli: Table
CHAL
TDAL DMD
Comedia Core
Program Information Database (PIDB)
Event information
management (EIM)
TDAL DMX
Digital Storage Media
(DSM-CC)
XSERV
Stream Player
MSListEventInfo
TerInstallSatInstallCabInstall
Timer &
Reminder
Teletext&
Subtitles
Web on TV&
HbbTV
MHEG Engine
TDAL AV
TDAL DISP
TDAL PTSM
TDAL FLA
TDAL GFX
Setup
Table
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 8
Comedia core moduli: Table
Osnovna uloga Table modula je da obezbedi ostalim
Comedia modulima da pristupaju tačno određenim SI i
PSI sekcijama bez potrebe za direktnim pristupom
demultiplekseru.
Modul omogućava kreiranje zahteva (request) za
dobavljanjem jedne kompletne tabele, ili jedne njene
sekcije. Aktivnost po zahtevu se može pokrenuti i
zaustaviti.
Table modul omogućava pristup sledećim tabelama:
DVB tabele: NIT, SDT, TDT, TOT, EIT
ATSC tabele: MGT, VCT, STT, RRT, EIT, ETT
PSI tabele: PAT, PMT
SCTE tabele: EAS
MHP tabele: AIT
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 9
Table modul – Registracija klijenta
Da bi započeo rad sa Table modulom, klijent se
najpre mora registrovati. Ovo se postiže korišćenjem poziva TABLE_ClientRegister.
Nakon registracije, klijentu se dodeljuje identifikator
koji koristi za dalje korišćenje Table modula:
kreiranje i brisanje zahteva, pokretanje i
zaustavljanje isporuke tabela.
Klijent ne može izvršiti funkcije Table modula bez
navođenja identifikatora.
Nakon završetka rada sa Table modulom, klijent se
odjavljuje korišćenjem poziva TABLE_ClientUnregister.
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 10
Table modul - Realizacija
Table Modul
DMX 0 task
Klijentski Task
DMX 1 task
DMX n task
Task zahteva
Task zahteva
Task zahteva
Timer task
Tdal DMX
DMX Callback
Privremeno kreiran task namenjen registrovanom klijentu, odnosno
zahtevu koji je uspostavljen.
Trajno kreirani task do poziva Table_Terminate
EIT PF Filtering Task
EIT SC Filtering Task
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 11
Table modul – Parser funkcije
Table modul omogućava parsiranje specifičnih
sekcija, odnosno njihovo spremanje u pripremljene
strukture sa definisanim poljima, za jednostavan
pristup. Ovo je omogućeno za sledeće tabele:
DVB tabele: NIT, SDT
ATSC tabele: MGT, VCT, EIT
MPEG tabele: PAT, PMT
Za ostale tabele bafer se mora parsirati na višem
nivou.
Postoji veliki broj API funkcija za parsiranje zaglavlja
i velikog broja deskriptora navedenih tabela.
Obezbeđeni su tipovi u obliku struktura za sva
podržana zaglavlja i deskriptore.
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 12
Comedia Core moduli: PIDB
CHAL
TDAL DMD
Comedia Core
Table
Event information
management (EIM)
TDAL DMX
Digital Storage Media
(DSM-CC)
XSERV
Stream Player
MSListEventInfo
TerInstallSatInstallCabInstall
Timer &
Reminder
Teletext&
Subtitles
Web on TV&
HbbTV
MHEG Engine
TDAL AV
TDAL DISP
TDAL PTSM
TDAL FLA
TDAL GFX
Setup
Program Information Database (PIDB)
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 13
Comedia core moduli: PIDB
Osnovna funkcionalnost PIDB (Program Information
Database) modula je da obezbedi spregu između
aplikacije i demultipleksera u cilju kreiranja baze
dostupnih servisa i svih informacija u vezi sa tim
servisima.
U svrhu kreiranja baze servisa PIDB je jedan od klijenata
Table modula, gde registruje filter za prijem MPEG PSI i
DVB SI sekcija. PIDB modul se obaveštava o pristiglim
sekcijama korišćenjem povratne funkcije (callback).
Klijenti se takođe prijavljuju kod PIDB modula za
obaveštenja o promenama u bazi.
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 14
PIDB modul – Mehanizam rada
Kreiranje baze servisa je složen postupak.
Za dodavanje servisa u bazu konsultuje se:
Minimalan skup uslova za dodavanje servisa zavisno od
tipa servisa (TS Satellite, TS Terrestrial, TSCable), koji
obuhvata, npr:
definisanje potrebnih tabela (npr. SDT i NIT),
definisanje potrebnih deskriptora tabela,
dvostruke provere (crosscheck) postojanja servisa npr. i u
NIT i u SDT, odnosno postojanja SDT navedenog u PAT,
izbora servisa sa boljim kvalitetom signala, ukoliko je isti
servis pronađen više puta.
Mehanizam pozicioniranja servisa (redni broj) koji se može
uskladiti sa LCN (Logical Channel Descriptor) navedenog
tipa (npr. po DBOOK, EACEM ili NORDIG standardima).
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 15
PIDB modul – Arhitektura (1/3)
PIDB Builder
Table used DVB : NIT + SDT (+ PAT)Table used ATSC : VCT (+ PAT)
PIDB ATSC MGT
ETT ServiceTable monitored ATSC : MGT / ETT_0
PIDB Miscellaneous
TABLE PARSER API
Table API
TDAL DMX TKEL OS
ST PTI 3 / 4
PIDB Information
PIDB Cursor
PI_GetServiceCursor(-)
PI_ReleaseServiceCursor(-)
PI_SeekHeadServiceCursor(-)
PI_SeekNextServiceCursor(-)
PI_SeekPreviousServiceCursor(-)
PI_SeekLastServiceCursor(-)
PI_SeekServiceCursorByServiceIndexInDB(-)
PI_SeekServiceCursorByAccessKey(-)
PI_GetMultiplexInfo(-)
PI_GetMultiplexTable(-)
PI_ReleaseMultiplexTable(-)
PI_GetServiceInfoByCursor(-)
PI_GetServiceInfoByAccessKey(-)
PI_GetServiceNumber(-)
PI_GetMultiplexNumber(-)
PI_GetServiceMapping(-)
PI_GetMultiplexMapping(-)
PI_GetGeneralServMapDescTab(-)
PI_ReleaseGeneralServMapDescTab(-)
PI_GetESServiceMapDescTab(-)
PI_ReleaseESServiceMapDescTab(-)
TABLE Module API (see TABLE Spec)
OS20 / OS21
PI_DbaseInit(-)
PI_DbaseTerminate(-)
PI_CreateInstanceClient(-)
PI_DeleteInstanceClient(-)
PI_DeleteDBase(-)
PI_EnterStandByState(-)
PI_GetRevision(-)
PI_DisplayPidbDemuxCursorCtrlScreen(-)
PI_DisplayMultiplexListDatabase(-)
PI_DisplayServiceListDatabase(-)
PI_DisplayElementaryStreamDatabase(-)
PI_DisplayDescriptorContent(-)
PI_InstallServiceList(-)
PI_InstallSpecificServiceList(-)
PI_AbortInstallServiceList(-)
PI_AddMultiplexRecord(-)
PI_DeleteMultiplexRecord(-)
PI_AddServiceRecord(-)
PI_DeleteServiceRecord(-)
PI_SignalQualityInitialisation(-)
PI_AddPrivateServiceData(-)
PI_GetPrivateServiceDataSize(-)
PI_GetPrivateServiceDataArray(-)
PI_DeletePrivateServiceData(-)
(*tPI_BuilderCallbackConversion(-)
(*tPI_NotifyServiceList(-))
(*tPI_NotifyTsInfoAvailable(-))
(*tPI_NotifyServiceMapping(-))
PI_EnableTsInformationAcquisition(-)
PI_DisableTsInformationAcquisition(-)
PI_EnableMappingServiceAcquisition(-)
PI_DisableMappingServiceAcquisition(-)
PI_RegisterMappingCallBackFunc(-)
PI_UnregisterMappingCallBackFunc(-)
PI_RegisterAtscMgtCbFunc(-)
PI_UnregisterAtscMgtCbFunc(-)
PI_RegisterAtscEttServiceCbFunc(-)
PI_UnregisterAtscEttServiceCbFunc(-)
PI_GetAtscMgtPidDatabase(-)
PI_GetAtscEttServiceInformation(-)
PI_ReleaseAtscEttServInformation(-)
(*tPI_NotifyAtscMgtAvailability(-))
(*tPI_NotifyAtscEttServiceAvailability(-))
Service List
Database
Multiplex List
DatabaseElementary Stream
Database
From VCT(only in case of ATSC)
Elementary Stream
Database
From PAT/PMT
Red : Need of PIDB Instance Client Handle
Bold : Need of Table Demux identification
x nb registred instance client
PIDB Access Key
PI_ResetAccessKey(-)
PI_CopyAccessKey(-)
PI_AccessKeyDiffer(-)
PI_HaskAccessKey(-)
PI_SerializeAccessKey(-)
PI_DeserializeAccessKey(-)
PI_AccessKeyToString(-)
PI_StringToAccessKey(-)
PI_GetMultiplexAccessKey(-)
PI_AccessKeySetPrivateValues(-)
PI_AccessKeyGetPrivateValue(-)
PI_DumpAccessKey(-)
(*tPI_ConvPrivMultiDataIntoPrimaryKey(-))
(*tPI_ComparePrivPrimaryKey(-))
PIDB ParserPIDB
ParserPIDB AK
DAE/ATAA/ANTW/...
PIDB Zapper
Table used DVB : PAT + PMTTable used ATSC : PAT + PMT + VCT
TABLE PARSER Module API (see TABLE_PARSER Spec)
MGT Pid Database (only in case of ATSC)
PIDB BACKUP & RESTORE
PI_LockPidbDatabase(-)
PI_UnlockPidbDatabase(-)
PI_GetSizeForDatabaseBackup(-)
PI_PidbDatabaseBackup(-)
PI_PidbDatabaseRestore(-)
PInfoDBase API
PIDB API
PIDB Temporal
MonitoringTable used DVB : SDTTable used ATSC : VCT
PIDB PermanentMonitoring
Table used DVB : NIT + SDT Table used ATSC : VCT
PIDB Toolbox
PI_EnablePermanentMonitoring(-)
PI_DisablePermanentMonitoring(-)
PI_NormalizeDatabase(-)
PI_ChangeStateFlagOfMultiplex(-)
PI_ChangeStateFlagOfService(-)
PI_EnableTemporalMonitoring(-)
PI_DisableTemporalMonitoring(-)
PI_RegisterMonitoringFuncForCursor(-)
PI_UnregisterMonitoringFuncForCursor(-)
PI_RemoveServicesAndMultiplex_ByTypes(-)
(*tPI_NotifyChangeForCursor(-)
(*tPI_NotifyTsMonitoringAvailable(-))
(*tPI_PermanentMonitoringCallback(-))
TBOX Module
used by all the PIDB API
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 16
PIDB modul – Arhitektura (2/3)
Baza multipleksa i Baza servisa su baze podataka o multipleksima i
servisima koje PIDB modul održava.
PIDB Builder omogućava klijentima da pokrenu postupak kreiranja
liste multipleksa i liste servisa i da manipuliše servisima i
multipleksima u bazi (CRUD operacije).
PIDB Zapper obezbeđuje podršku klijentima koji žele da
implementiraju Zapping funkcionalnost. Klijent pokreće akviziciju
PAT i PMT i biva obavešten kada se dobave potrebne informacije o
mapiranju ES kako bi klijent mogao da pokrene dekodovanje servisa
kroz Stream Player.
PIDB Temporal Monitoring omogućava klijentima da se pretplate na
praćenje promene vrednosti određenih informacija o zadatom
servisu.
PIDB Permanent Monitoring omogućava obaveštavanje o bilo kojoj
izmeni u bazi servisa i multipleksa, bilo da je ona generisana od
strane nekog klijenta, ili od strane mreže.
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 17
PIDB modul – Arhitektura (3/3)
PIDB Cursor omogućava kretanje (traversing) kroz bazu servisa (po
principu kretanja kroz listu), kao i dobavljanje servisa po indeksu ili
po pristupnom ključu.
PIDB Information omogućava klijentima da čitaju detaljne
informacije o multipleksima, servisima i mapiranju servisa na
elementarne tokove (ES).
PIDB AccessKey je skup alata za manipulaciju pristupnim
ključevima, koji koriste različiti klijenti pri korišćenju PIDB modula i
baze za pristup određenim servisima / multipleksima.
PIDB Backup and Restore omogućava čuvanje (backup) i učitavanje
(restore) kompletne baze servisa i multipleksa u jednom pozivu.
PIDB Toolbox je skup alata za pojednostavljeno manipulisanje
bazom (npr. funkcije za uklanjanje svih servisa određenog tipa,
dobavljanje svih servisa za određeni multipleks i sl).
PIDB Miscellaneous omogućava operacije najvišeg nivoa nad PIDB
modulom (inicijalizaciju i završetak rada, brisanje baze, kontrolne
ispise sadržaja baze po zadatom kriterijumu i sl).
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 18
Comedia Core moduli: MSList
CHAL
TDAL DMD
Comedia Core
Table
Program Information Database (PIDB)
Event information
management (EIM)
TDAL DMX
Digital Storage Media
(DSM-CC)
XSERV
Stream Player
EventInfo
TerInstallSatInstallCabInstall
Timer &
Reminder
Teletext&
Subtitles
Web on TV&
HbbTV
MHEG Engine
TDAL AV
TDAL DISP
TDAL PTSM
TDAL FLA
TDAL GFX
Setup
MSList
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 19
Comedia core moduli: MSList
Osnovna uloga MSList (Master Service List) modula je da
obezbedi pristup listi svih instaliranih servisa (programa)
uređenoj po broju programa.
Svaki servis sadrži sve potrebne atribute (naziv, broj kanala) i tip
(digitalni TV program, analogni TV program, radio servis, data
servis).
MSList modul omogućava podešavanje liste servisa i dobijanje
obaveštenja o promenama u listi. Numeracija servisa se obavlja
u skladu sa tipom sistema emitovanja (satelitski, kablovski,
zemaljski) i korisničkim podešavanjima.
Omogućeno je pretraživanje servisa korišćenjem kursora, čime
se omogućava enumeracija i iterativan prolazak kroz listu koja
zadovoljava zadati kriterijum (npr. lista radio programa).
Modul takođe omogućava izmenu naziva servisa.
Za pristup servisima i operacije nad njima MSList koristi PIDB
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 20
MSList modul – Pristup servisima
Klijent cmMSList
cmMSList_AllocatePersistentCursor() Klijent dobija kursor
za dodate radio
servise.
cmMSList_GetSelectedService()
Klijent ponavlja postupak dok se ne izlistaju svi servisi …
Klijent dobavlja
indeks prvog
dodatog servisa.
cmMSList_GetServiceDescription() Klijent dobavlja
opis dobijenog
servisa.
cmMSList_ReleasePersistentCursor() Klijent dealocira
kursor.
cmMSList_SelectedNextService() Klijent dobavlja
indeks sledećeg
dodatog servisa.
cmMSList_GetServiceDescription() Klijent dobavlja
opis odabranog
servisa.
cmMSList_SelectedNextService() Klijent dobija “no
next” indeks.
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 21
Comedia Core moduli: EIM
CHAL
TDAL DMD
Comedia Core
Table
Program Information Database (PIDB)
TDAL DMX
Digital Storage Media
(DSM-CC)
XSERV
Stream Player
MSListEventInfo
TerInstallSatInstallCabInstall
Timer &
Reminder
Teletext&
Subtitles
Web on TV&
HbbTV
MHEG Engine
TDAL AV
TDAL DISP
TDAL PTSM
TDAL FLA
TDAL GFX
Setup
Event information
management (EIM)
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 22
Comedia core moduli: EIM
Osnovna uloga Event Information Manager (EIM) modula je
da klijentu obezbedi mogućnost da prima detaljne informacije
o događajima (emisijama) koji se emituju na određenim
servisima.
EIM modul koristi Table modul da pristupi EIT sekcijama koje
nose informacije o događajima i da parsira njihov sadržaj.
U slučaju IP servisa, EIM modul se oslanja na IP Service
Manager pozive da dobavi informacije o događajima na
određenom IP servisu.
EIM modul omogućava dobavljanje informacija o prethodno
snimljenom sadržaju koji se gleda, korišćenjem API-ja PVR
modula.
EIM modul obavlja keširanje podataka za zadati maksimalni
vremenski period.
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 23
EIM modul – Korišćenje Window zahteva
Jedinstven način za dobavljanje događaja od strane EIM
modula je korišćenjem Window zahteva.
U okviru kreiranja zahteva (EIM_WindowRequestCreate)
zadaju se parametri:
Režim zahteva (EIT present/following, vreme početka emitovanja je
unutar zadatog intervala, emisija je potpuno ili delimično unutar
zadatog intervala ili za emisije koje se potpuno ili delimično emituju
u intervalu sa zadatim trajanjem, računato od ponoći)
Lista servisa za koje treba dobaviti događaje
Vremenski interval za koji se dobavljaju događaji, sa početnim
vremenom intervala i trajanjem intervala.
Klijent dobija EVENTS_READY notifikaciju povratnom funkcijom.
Klijent može da preuzme listu događaja korišćenjem funkcije EIM_WindowEventGet.
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 24
Comedia Core moduli: Event Info
CHAL
TDAL DMD
Comedia Core
Table
Program Information Database (PIDB)
Event information
management (EIM)
TDAL DMX
Digital Storage Media
(DSM-CC)
XSERV
Stream Player
MSListTerInstallSatInstallCabInstall
Timer &
Reminder
Teletext&
Subtitles
Web on TV&
HbbTV
MHEG Engine
TDAL AV
TDAL DISP
TDAL PTSM
TDAL FLA
TDAL GFX
Setup
EventInfo
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 25
Comedia Core moduli: Event Info
Event Info modul obezbeđuje javne mehanizme
dobavljanja informacija o događajima od strane
aplikacija.
Događaji obuhvataju:
Trenutno gledanu / sledeću emisiju
Emisije zakazane u određeno vreme
Emisije se u suštini razlikuju po tipu (digitalni TV servis,
radio servis, data servis) i žanru (vesti, film, sport i sl).
Svaki događaj je predstavljen početnim vremenom,
trajanjem, opisom (kratkim i proširenim), ocenom,
sadržajem itd.
Event Info modul enkapsulira funkcionalnosti EIM
modula
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 26
Event Info modul – Pristup događajima
Klijent cmEvtInfo
cmEvtInfo_CollectPresentFollowingEvents() Klijent počinje sa
prikupljanjem
događaja.
cmEvtInfo_NotifyFct_t() Klijent je obavešten
o napretku operacije
prikupljanja.
cmEvtInfo_GetEventList() Klijent dobavlja
listu već pristiglih
događaja.
cmEvtInfo_ReleaseEventList() Klijent oslobađa
listu događaja
cmEvtInfo_ReleaseCollectedEvents() Klijent prekida
prijem događaja.
cmEvtInfo_GetEventInformationData() Klijent dobavlja
informacije o prvom
događaju
cmEvtInfo_GetEventInformationData() Klijent dobavlja
informacije o
drugom događaju
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 27
Comedia Core moduli: Timer & Reminder
CHAL
TDAL DMD
Comedia Core
Table
Program Information Database (PIDB)
Event information
management (EIM)
TDAL DMX
Digital Storage Media
(DSM-CC)
XSERV
Stream Player
MSListTerInstallSatInstallCabInstall
Teletext&
Subtitles
Web on TV&
HbbTV
MHEG Engine
TDAL AV
TDAL DISP
TDAL PTSM
TDAL FLA
TDAL GFX
Setup
EventInfo
Timer &
Reminder
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 28
Comedia Core moduli: Timer & Reminder
Timer & Reminder modul (interni naziv Comedia Extended
Program Event Library, odnosno XPEL), omogućava kreiranje i
rukovanje vremenskim okidačima i podsetnicima.
Vremenski okidači (Timers) su čvrsto vezani za funkcionalnost
EIM modula. Moguće je podesiti okidač da počne snimanje
sadržaja određenog servisa na VCR target u trenutku kada EIT
present događaj postane jednak događaju zadatom u okidaču.
Dakle, Timeri nisu vođeni sistemskim vremenom, već
događajima sa EIM modula.
Podsetnik je obaveštenje klijentu kada se promeni stanje
vremenskog okidača. Klijent zadaje povratnu funkciju pri
registraciji kod XPEL modula.
XPEL modul obezbeđuje još i:
Otkrivanje okidača koji nisu uspešno izvršeni.
Otkrivanje okidača u konfliktu (npr. više istovremenih zakazanih
snimanja) i rešavanje konflikta.
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 29
Comedia Core moduli: XSERV
CHAL
TDAL DMD
Comedia Core
Table
Program Information Database (PIDB)
Event information
management (EIM)
TDAL DMX
Digital Storage Media
(DSM-CC)
Stream Player
MSListEventInfo
TerInstallSatInstallCabInstall
Timer &
Reminder
Teletext&
Subtitles
Web on TV&
HbbTV
MHEG Engine
TDAL AV
TDAL DISP
TDAL PTSM
TDAL FLA
TDAL GFX
Setup
XSERV
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 30
Comedia core moduli: XSERV
Osnovna uloga XSERV modula je da omogući
reprodukciju servisa DTV prijemnika (video, audio,
teletekst, subtitle i sl).
XSERV modul je u čvrstoj vezi sa PIDB modulom, od
koga dobavlja sve podatke o trenutno dostupnim
servisima. PIDB modulu se iz aplikacije može pristupati
posredstvom XSERV modula.
XSERV modul upravlja TDAL blokovima (TDAL DMD,
TDAL TS, TDAL DISP, TDAL AV, TDAL OUTPUT) da
omogući dekoderima da dekoduju odgovarajući PES i
prikaže rezultat na ekranu / reprodukuje zvuk.
Sa stanovišta korišćenja, upravljanje reprodukcijom
servisa obavlja se korišćenjem PIDB pristupnog ključa.
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 31
XSERV modul mehanizmi rada (1/2)
Kreira se jedna instanca XSERV modula(XSERV_CreateInstance). Identifikator instance
se prosleđuje svim narednim XSERV pozivima.
Instanca se može kreirati u tri režima:
Režim za prikaz / reprodukciju
Režim za snimanje (ako je podržana PVR
funkcionalnost)
Režim za baferovanje (za podršku timeshift opciji)
Nakon inicijalizacije modula, pristupa se kursoru
za enumeraciju servisa iz PIDB baze (XSERV_InitPIDBAccess, XSERV_GetPIDBAccess).
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 32
XSERV modul mehanizmi rada (2/2)
Korišćenjem PIDB kursora, pronalazi se željeni servis za
reprodukciju.
Obavlja se povezivanje na pronađeni servis na osnovu
pristupnog ključa (access key) korišćenjem poziva XSERV_ConnectSource.
Reprodukcija / prikaz se započinje pozivom XSERV_Start, a zaustavlja pozivom XSERV_Stop.
XSERV modul omogućava i sledeće funkcionalnosti:
Aktiviranje timeshift funkcionalnosti, posredstvom dve XSERV
instance (jedna za prikaz a druga za baferovanje) –XSERV_StartTimeshift
Privremeno zaustavljanje reprodukcije (XSERV_TogglePause)
Izmena brzine, odnosno trick režima (XSERV_SetSpeed)
Izmena pozicije u trenutno reprodukovanom mediju(XSERV_SetPosition)
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 33
Comedia Core moduli: Stream Player
CHAL
TDAL DMD
Comedia Core
Table
Program Information Database (PIDB)
Event information
management (EIM)
TDAL DMX
Digital Storage Media
(DSM-CC)
MSListEventInfo
TerInstallSatInstallCabInstall
Timer &
Reminder
Teletext&
Subtitles
Web on TV&
HbbTV
MHEG Engine
TDAL AV
TDAL DISP
TDAL PTSM
TDAL FLA
TDAL GFX
Setup
XSERV
Stream Player
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 34
Comedia core moduli: Stream Player
Stream Player modul enkapsulira XSERV za i
omogućava upravljanje reprodukcijom u okviru
Comedia MW.
Stream Player omogućava dobavljanje informacija o
komponentama koje se reprodukuju, na
jednostavniji i aplikaciji prilagođeniji način.
Ulazni tok (stream) koji se reprodukuje može biti
“živi” emitovani tok ili prethodno snimljeni tok.
Audio/Video izlaz može da bude osnovni izlaz
(ekran ili izlazna sprega) ili uređaj za snimanje.
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 35
Stream Player modul - Funkcionalnosti
Stream Player modul omogućava sledeće konkretne
funkcionalnosti:
Pokretanje i zaustavljanje reprodukcije ulaznih tokova
Pokretanje i zaustavljanje reprodukcije pojedinih
komponenti ulaznih tokova (višejezični audio, video,
teletekst, prevod)
Izbor komponenti u toku koje će biti uključene u
reprodukciju
Zamrzavanje slike
Izmena brzine reprodukcije (trick mode)
Promena formata (skaliranje) i pozicije izlazne slike.
Pozadinska boja izlazne slike
Upravljanje A/V izlazima
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 36
Stream Player modul - Događaji
Stream Player omogućava registrovanje za prijem događaja
koji se tiču izmene stanja reprodukcije, detekcije
komponenti u toku, promene SDT/PMT informacija i sl.
Klijent cmSPlayer
cmSPlayer_SubscribeEvent() Klijent se prijavljuje
za prijem događaja.
cmSPlayer_UnsubscribeEvent()
…
Klijent se odjavljuje.
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 37
Stream Player modul - Playback Klijent cmSPlayer
cmSPlayer_Start() Klijent započinje
reprodukciju toka
notif(eCM_SPLAYER_STATE, eCM_SPLAYER_STARTED)
cmSPlayer_StartComponents(…AUDIO|…VIDEO) Klijent počinje
reprodukciju audio i
video komponente
notif(eCM_SPLAYER_STATE, eCM_SPLAYER_STARTING)
Obaveštenje o početku
reprodukcije
cmSPlayer_StartComponents(…SUBTILTLES) Klijent aktivira
prikaz tekstova
prevoda.
cmSPlayer_GetStreamComponents()
Klijent dobija sve
moguće komponente
toka notif(eCM_SPLAYER_STREAM_COMPONENTS, …)
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 38
Comedia Core moduli: TerInstall
CHAL
TDAL DMD
Comedia Core
Table
Program Information Database (PIDB)
Event information
management (EIM)
TDAL DMX
Digital Storage Media
(DSM-CC)
MSListEventInfo
Timer &
Reminder
Teletext&
Subtitles
Web on TV&
HbbTV
MHEG Engine
TDAL AV
TDAL DISP
TDAL PTSM
TDAL FLA
TDAL GFX
Setup
XSERV
Stream Player
TerInstallSatInstallCabInstall
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 39
Comedia Core moduli: TerInstall
Osnovna uloga TerInstall modula je da omogući
instalaciju kanala zemaljskih standarda digitalnog TV
emitovanja (DVB-T, DVB-T2).
TerInstall modul je čvrsto povezan sa PIDB modulom, i u
sprezi sa njim obavlja popunjavanje baze servisa. U
nadležnosti samog TerInstall modula je pozicioniranje na
određenu frekvenciju sa zadatim modulacionim
parametrima i isporuka prenosnog toka. Za filtriranje
informacija iz SI sekcija i popunjavanje baze TerInstall
koristi PIDB.
Dodatno, TerInstall omogućava:
Upravljanje spiskom transpondera i skeniranje po listi
transpondera
Pozicioniranje na zadati testni signal
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 40
Arhitektura Comedia MW - MAL
Programska podrška za kontrolu DTV
Comedia
Sloj za abstrakciju fizičke arhitektureComedia Hardware Abstraction Layer - CHAL
TKEL TBOX TDAL
Comedia Core
StreamPlayer MSList Event Info
Time Date
CA
TerInstall
Sprega za abstrakciju srednjeg slojaComedia Middleware Abstraction Layer - MAL
Korisničke aplikacije
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 41
Comedia Middleware Abstraction Layer
Uloge MAL sprežnog sloja su:
Enkapsulacija svih funkcionalnosti srednjeg sloja u jedan API
Omogućavanje aplikacijama da koriste funkcionalnosti srednjeg
sloja bez poznavanja unutrašnjih detalja realizacije
Omogućavanje jednostavne izmene srednjeg sloja u slučaju
različite realizacije srednjeg sloja, bez potreba za izmenama u
TV aplikacijama
MAL je “tanak” sloj iznad već opisanih Comedia blokova
API je prilagođeniji konkretnim zahtevima korisničkih
aplikacija i slučajevima korišćenja
MAL kao parametre koristi proste tipove, kako bi se
omogućila laka integracija sa slojevima višeg nivoa,
realizovanim kao Java ili Javascript/HTML aplikacije.
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 42
MAL API – Grupisanje funkcionalnosti (1/2)
MAL API je podeljen u grupe funkcija:
MAL Init – Inicijalizacija i završetak rada sa MAL
MAL Tuner – Upravljanje mrežnim sprežnim modulom
MAL Route – Podešavanje putanja
MAL Audio/Video – Audio/Video funkcionalnosti
MAL Picture – Upravljanje izlaznom obradom slike
MAL Sound – Upravljanje režimom izlaznog zvuka i
jačinom zvuka
MAL Input/Output – Upravljanje U/I spregama
MAL Graphics – Razmena grafičkih bafera
MAL Stream Component – Upravljanje prikazom
komponenti prenosnog toka (npr. teletekst, MHEG)
MAL Service Zapper – Upravljanje listom servisa
Programska podrška u televiziji i obradi slike (E1) – 2015/2016 43
MAL API – Grupisanje funkcionalnosti (2/2)
MAL API je podeljen u grupe funkcija:
MAL EPG – Elektronski programski vodič
MAL PVR – Funkcionalnosti PVR
MAL Reminder – Funkcionalnosti podsetnika
MAL Parental Control – Upravljanje zaključavanjem od
strane roditelja
MAL Common Interface – DVB CI funkcionalnosti
MAL Software Update – Upravljanje verzijama SW i
ažuriranjem sotfvera
MAL System Manager – Upravljanje pripravnim režimom
(standby)
MAL User Settings – Konfiguracija DTV prijemnika