DVTS for Windows Keio University, Graduate School of Media and Governance WIDE Project Kazuhiro MISHIMA
DVTS for Windows Introduction –Implementing DVTS to Windows platform Brief introduction to MSD –Release notes –How to use DVTS for Windows Release schedule –What ’ s new in next release –Known bugs, issues
Managing DVTS in Windows Using DirectShow technology –DV Capture Device Driver (MSDV) –Filters DV Splitter Filter DV Muxer Filter DV Video Decoder Filter DV Video Encoder Filter DVTS uses these filters
What is DirectShow? DirectX technology –Media streaming architecture for Windows –Supports high quality capture and playback of multimedia stream Based on COM (Component Object Model) –Pre-defined COM Filter and filter graph –Modular mechanism
Filter DirectShow uses multiple object for transactions –One object = Filter (COM) –Filter has input/output pins –Source data source –Encoder, Decoder, Splitter converting, multiplexing –Renderer output device Filter input pin output pin
Filter Graph Combination of filters ex) Playing MPEG Movie Movie File MPEG Stream Splitter input pin MPEG Sound Decoder MPEG Video Decoder output pin Sound Renderer Video Renderer input pin output pin input pin output pin input pin output pin input pin output pin
Filter Graph Manager Management of Filter Graph –Object giving instruction to all filters Applications Filter Graph Manager Filters commands notify, status
DVTS Release notes
Previous DVTS Supports –NTSC only –Receive IPv4/v6 unicast IPv4/v6 multicast Monitors packet losses –Send IPv4/v6 unicast IPv4/v6 multicast DV preview window NTSC only = 12 DIF count set Multicast TTL fixed = 1
Windows XP New Version
New DVTS is HERE!!! Supporting –PAL (Video Type probing and re-connection) –Receive Selectable IEEE1394 device Selectable receive interface IEEE1394 output support –Send Selectable IEEE1394 device Selectable send interface DIF block count configurable TTL on multicast configurable –All functions supported on previous version PLUS
Internal Architecture dvsend IEEE1394 Input Device Preview DV/RTP output filter DV Decoder Internet Input through IEEE1394 bus RTP Packetize
Internal Architecture dvrecv DV/RTP input filter DV Decoder Internet RTP de-Packetize Decoding Output to Monitor/ Speaker
Implementation update New DV/RTP receive filter –Replace: DV/RTP input filter (dvrtpin.dll) DV/RTP send filter –Replace: DV/RTP output filter (dvrtpout.dll) New GUI application –Dialog previous DVTS uses SDI
How to use DVTS for Windows
GUI Application
Send Under implementation Device selection Dest. IP Addr port number DIF block count Start sending
How to send Send Select DV device Set destination Set port number Set DIF size Click Start Sending button
Receive port number Select IPv4 / IPv6 Select output Multicast configuration Click to start IP ver. Port num. Output status Packet count Packet loss Video type status bar
How to receive Receive –Just click Start Receiving button –Output IEEE1394 device Check IEEE1394 output checkbox Select IEEE1394 device Click Start Receiving button –Additional configuration Restart receiving after reconfiguration –port number –IP version –Multicast configuration
HACKS …
Little hacks on NTSC/PAL Hacks using reconnect –Video type detection (NTSC or PAL?) Detected by VAUX and AAUX field –disconnect all filters –re-connect all filters Reconnection requirements –behavior of DV Splitter on GraphBuilder replaced by Video Type
Detection Method in DVTS Check VAUX (VAuxSrc) 1.Find VAuxSrc (by bit operation) 2.Find and check 50/60 bit (by bit operation) 3.if TRUE -> NTSC (DV Sequence count = 10) if FALSE -> PAL (DV Sequence count = 12) if ((m_DVInfo.dwDVVAuxSrc == 0) && (*ptr == 0x60)) { CopyMemory(&m_DVInfo.dwDVVAuxSrc, ptr + 1, sizeof(DWORD)); if(!(m_DVInfo.dwDVVAuxSrc & 0x )) { m_DVDSeqCount = 10; //NTSC (if PAL = 12) }
AAuxSrc PC PC1LF1AF SIZE PC2SMCHNPAAUDIO MODE PC31ML 50/60 STYPE PC4EFTCSMPQU if NTSC( system) 50/60 bit is 0 STYPE bit is if PAL( system) 50/60 bit is 1 STYPE bit is 00000
VAuxSrc PC PC1TENS OF TV CHAN.UNITS OF TV CHAN. PC2 B/W ENCLF HUNDREDS OF TV CHAN. PC3 SOURCE CODE 50/60 STYPE PC4TUNER CATEGORY if NTSC( system) 50/60 bit is 0 STYPE bit is if PAL( system) 50/60 bit is 1 STYPE bit is 00000
To do … Lip sync –new filter implements timestamp correction –Please evaluate! REFERENCE_TIME rts = m_FrameCount * ; REFERENCE_TIME rte = (m_FrameCount + 1) * ; pSamp->SetTime(&rts, &rte); pSamp->SetMediaTime(&m_FrameCount, &m_FrameCount); pSamp->SetSyncPoint(TRUE);
Release Schedule Receive filter –Status: 85% Send filter –Status: 15% Beta in October – November New GUI –Status: 65%
before reconnect not connected
after reconnect
AAuxSrcCtrl in AAUX
AAuxSrcCtrl PC PC1CGMSISRCMPSS PC2 REC ST REC END REC MODEINSERT CH PC3DRFSPEED PC41GENRE CATEGORY
AAuxSrc in AAUX describe a Audio Source Type –Audio System Type (PAL/NTSC) –Audio Type –Audio Channels etc … AAuxSrc can find on –1st(odd) or 4th(even) Audio pack –Pack Header: 50h
VAuxSrc in VAUX describe a Video Source Type –Video System Type (PAL/NTSC) –Video Type –Tuner Type –Tuner Channel Number etc … VAuxSrc can find on –1st(odd) or 40th(even) Video pack –Pack Header: 60h
VAuxSrcCtrl in VAUX
VAuxSrcCtrl PC PC1CGMSISRCMPSS PC2 REC ST 1 REC MODE 1DISP PC3FFFSFCILSTSCBCSYS PC41GENRE CATEGORY
TOC about DV with Windows DVTS inside previous DVTS function new DVTS function (updates) Known issue Release schedule