360 likes | 655 Views
DVTS for Windows. Keio University, Graduate School of Media and Governance WIDE Project Kazuhiro MISHIMA <three@wide.ad.jp>. DVTS for Windows. Introduction Implementing DVTS to Windows platform Brief introduction to MSD Release notes How to use DVTS for Windows Release schedule
E N D
DVTS for Windows Keio University, Graduate School of Media and Governance WIDE Project Kazuhiro MISHIMA <three@wide.ad.jp>
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
DVTS uses these filters Managing DVTS inWindows • Using DirectShow technology • DV Capture Device Driver (MSDV) • Filters • DV Splitter Filter • DV Muxer Filter • DV Video Decoder Filter • DV Video Encoder Filter
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 input pin output pin Filter
Filter Graph • Combination of filters ex) Playing MPEG Movie output pin input pin MPEG Video Decoder output pin input pin Video Renderer output pin input pin MPEG Stream Splitter Movie File input pin MPEG Sound Decoder output pin input pin Sound Renderer output pin
Filter Graph Manager • Management of Filter Graph • Object giving instruction to all filters Applications commands notify, status Filter Graph Manager commands notify, status Filters
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
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 DV Decoder Input through IEEE1394 bus Preview DV/RTP output filter Internet 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
Send Under implementation Start sending DIF block count port number Dest. IP Addr Device selection
How to send • Send Select DV device Set destination Set port number Set DIF size Click Start Sending button
Receive Select IPv4 / IPv6 Select output Multicast configuration Click to start Video type IP ver. Output status Packet count Packet loss port number Port num. 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
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) • Find VAuxSrc (by bit operation) • Find and check 50/60 bit (by bit operation) • 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 & 0x00200000)) { m_DVDSeqCount = 10; //NTSC (if PAL = 12) } }
AAuxSrc if PAL(625-50 system) 50/60 bit is 1 STYPE bit is 00000 if NTSC(625-60 system) 50/60 bit is 0 STYPE bit is 00000
VAuxSrc if PAL(625-50 system) 50/60 bit is 1 STYPE bit is 00000 if NTSC(625-60 system) 50/60 bit is 0 STYPE bit is 00000
To do… • Lip sync • new filter implements timestamp correction • Please evaluate! REFERENCE_TIME rts = m_FrameCount * 333667; REFERENCE_TIME rte = (m_FrameCount + 1) * 333667; 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
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
TOC • about DV with Windows • DVTS inside • previous DVTS function • new DVTS function (updates) • Known issue • Release schedule