Download presentation
Presentation is loading. Please wait.
1
DTV Software Infrastructure Milton Chen
2
Outline MPEG-2 Transport Stream Client Headend Examples
3
MPEG-2 Transport Stream Packet –188 bytes (header plus payload) –13 bit packet ID (pid) –1 bit priority Filename ends in.ts (our convention) Which MPEG are you talking about ?
4
Client Stack receiver carddisk emulationdemanddriver DTV API DTV_MPEG APIDTV_Object API hardware operation system application
5
DTV API int DTVInit( int channel, char *tsfname, bool loop, double bitrate ); int DTVClose();
6
DTV API (2) class DTVConn { DTVConn( int pid, int raw ); int RetrieveBuffer( DTVappbuf ** buf, int wait ); int ReturnBuffer( DTVappbuf * buf ) int Flush(); }
7
DTV API (3) typedef struct { int filledsize; unsigned char * data; } DTVappbuf;
8
DTV_MPEG API Set a dozen global variables –playbacklevel, texture size, etc. MyDtvDecoder() unsigned char RGBarray[]
9
DTV_Object API class DtvObjStream { DtvObjStream( int pid ); int GetObj( char * objname, int waittime, dtvobject * obj ); int CloseObj( dtvobject *obj ); }
10
DTV_Object API (2) typedef struct { char name[256]; FILE * data; } dtvobject;
11
Client Environment 1. Win 95 2. DirectX 5 3. ATI Rage Pro or Intel 740 Graphics Card Live reception requires 1 MPEG decoder requires 2, 3 Link with multi-threaded library in VC++
12
Headend - Video 1. Camera -> 2. Video Capture Card -> 3. capture.exe (.ppm ) -> 4. MPEG2 Encoder (.m2v ) -> 5. pespacketizer.exe (.pes ) -> 6. dynamux.exe (.ts ) Step 4, 5, and 6 are not real-time tools to manipulate.m2v files (clip, cat, …)
13
Headend - Object Object Parameter File #file obj. name insert time magicid obj1.exeobj10.01 obj2.zipobj20.52 obj3.htmlobj31.03 Run dynamux.exe
14
Headend - Arbitrary data Write it to a file Run dynamux.exe
15
Headend - Multiplexer dynamux.exe Convert video, audio, object, and arbitrary data from different sources into one transport stream
16
Examples MyDtvReceiver(DTV API) –count the number of bytes received MyDtvApp(DTV_MPEG API) –one thread decode to shared memory –one thread display the decoded frames with OpenGL texture mapping MyDtvWeb(DTV_Object API) –receive one html file and launch netscape to display that file
17
Source Tree C:\Dtv_public –content –headend –receiver bin include lib sample
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.