Presentation is loading. Please wait.

Presentation is loading. Please wait.

DVD & DirectShow ™ Developer Days January 11-12, 1999 (presentations revised Jan 14) Intel and Microsoft present.

Similar presentations


Presentation on theme: "DVD & DirectShow ™ Developer Days January 11-12, 1999 (presentations revised Jan 14) Intel and Microsoft present."— Presentation transcript:

1

2 DVD & DirectShow ™ Developer Days January 11-12, 1999 (presentations revised Jan 14) Intel and Microsoft present

3 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Introduction & Event Overview Bill Pearson DVD Technical Marketing Intel Corporation

4 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Testing Limited Availability - First come first serve Limited Availability - First come first serve Sign up sheet at Registration Desk Sign up sheet at Registration Desk Performed by Intel “Durango” Personnel with your help Performed by Intel “Durango” Personnel with your help Your software tested on PCs provided by System Manufacturers Your software tested on PCs provided by System Manufacturers Test reports provided Test reports provided

5 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DirectShow* Lab Semi-private development environment Semi-private development environment Microsoft & Intel DirectShow experts available for questions Microsoft & Intel DirectShow experts available for questions Monitors available to rent Monitors available to rent

6 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Reference Platforms Setup in Lab Setup in Lab Available after the event (for ~2 weeks) Available after the event (for ~2 weeks) Includes DVD Players from Includes DVD Players from –Zoran –MGI –Quadrant DQUIK (DVD Qualification and Integration Kit) DQUIK (DVD Qualification and Integration Kit)

7 Forum Developer Intel DVD & DirectShow Developer Days Microsoft For More Information DVD Developer Website http://developer.intel.com/solutions/tech/dvd.htm DVD Developer Website http://developer.intel.com/solutions/tech/dvd.htm DVD Consumer Website http://www.intel.com/home/dvd DVD Consumer Website http://www.intel.com/home/dvd Industry Enabling Events Website http://developer.intel.com/solutions/tech/plugfests Industry Enabling Events Website http://developer.intel.com/solutions/tech/plugfests DVD Newsgroup http://newsgroups.intel.com DVD Newsgroup http://newsgroups.intel.com

8 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Keynote Chris Phillips Director of Business Development Microsoft

9 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Where We Have Been (Experimenters/Early Adopters) ‘98 Stats ‘98 Stats –2200+ DVD Titles –6-8M DVD-ROM drives sold on PCs New tests of Content New tests of Content –Lost in Space = PC enhanced DVD Video –Encarta = DVD video enhanced PC content Industry maturation Industry maturation –Start of volume shipments –Win98 shipped, start of CD-ROM replacement –Web volume distribution

10 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Where We Are Today (Early Adopters/Leaders) Current run rate Current run rate –PC = 1.6M drives per month –Over 10 times the volume of DVD Video players Web is key to success Web is key to success –Very high Web attach rate for DVD owners –Source of information = grab mindshare and communicate directly –news, release schedules, popularity voting, genre, ratings –Sales and rentals

11 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Where Are We Headed (Leaders/Followers) ‘99 Projections ‘99 Projections –By X’mas ‘99 80% of New Consumer PCs will have DVD-ROM –30M installed PC enhanced content will be norm PC enhanced content will be norm –Utilization of PC and Web (hybrid applications) ISV distribution on DVD (ex. MSDN) ISV distribution on DVD (ex. MSDN) Web importance will continue to grow Web importance will continue to grow –customer communication and information –e-commerce

12 Forum Developer Intel DVD & DirectShow Developer Days Microsoft MS DVD Strategy Exploit PC for value-added enhancements to A/V content Exploit PC for value-added enhancements to A/V content –Dshow - highly flexible platform for developers –WMP - a set of universal client controls Standardization of platform Standardization of platform –Content creators have reliable publishing target –Work with industry to incorporate technology advances PC DVD is the superset for content PC DVD is the superset for content –PC enhanced DVD content

13 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Windows Media Player Microsoft ActiveX control Microsoft ActiveX control –Standalone -- standardized but customizable, consumer-oriented player –Can be embedded in Internet Explorer, Netscape Navigator, PowerPoint, etc. Simple high-level interface to DirectShow API Simple high-level interface to DirectShow API –Visual Basic, VBScript, JavaScript, etc. Universal client Universal client –Eliminates needs for multiple players –Streaming audio/video DVD playback support DVD playback support –MPEG-2, DVD-Video

14 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Media Player User Interface Video panel Seek bar Go To bar Status bar Menu bar Play bar Display panel Captioning Ad banner

15 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Windows Interactive DVD PC enhancement to DVD content PC enhancement to DVD content DVD enhancements to traditional PC content DVD enhancements to traditional PC content Web technology is a key ingredient Web technology is a key ingredient –customizable faceplates and UI –dynamic data integration –easy to author –supports an endless amount of business opportunity

16 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DVD DirectShow * Training * Third-party marks and brands are the property of their respective owners. Kirk Dunsavage Diana Shea SW Engineer SW Engineer Intel Corporation

17 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DVD DirectShow * Training * Third-party marks and brands are the property of their respective owners. Jim Taylor & Kilroy Hughes DirectShow DVD SW Evangelists Microsoft

18 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Overview Training Goals: Gain an understanding of DirectShow infrastructure Gain an understanding of DirectShow infrastructure Understand the DVD and MPEG-2 support available in DirectShow Understand the DVD and MPEG-2 support available in DirectShow Discuss COM and application development with DirectShow APIs Discuss COM and application development with DirectShow APIs Author MPEG-2 video and audio streams that look/sound good on the PC Author MPEG-2 video and audio streams that look/sound good on the PC * Third-party marks and brands are the property of their respective owners.

19 Forum Developer Intel DVD & DirectShow Developer Days Microsoft 18 DirectShow Training Agenda: DVD Overview DVD Overview Why DirectShow Why DirectShow COM Overview / Basics COM Overview / Basics DirectShow Basics / Compliance DirectShow Basics / Compliance Application Development & Tools Application Development & Tools * Third-party marks and brands are the property of their respective owners. DVD-V / MPEG Support DVD-V / MPEG Support Overlay Mixer / DDraw Xcl Mode Overlay Mixer / DDraw Xcl Mode Asset Creation Asset Creation Tips & Tricks Tips & Tricks Windows Media Player Windows Media Player

20 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DVD Overview DVD-Video and DVD-ROM DVD-Video and DVD-ROM –Both are key components of now and future Windows –All Microsoft support provided by DirectShow –Goal to make Windows the best DVD player

21 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Not Just CD-ROM All Over Again Majority of DVD PCs will use DirectShow Majority of DVD PCs will use DirectShow DirectShow and Windows 98 logo guarantee compatibility and performance that CD-ROM and MCI never had DirectShow and Windows 98 logo guarantee compatibility and performance that CD-ROM and MCI never had More storage (7x to 25x) More storage (7x to 25x) High guaranteed data rates High guaranteed data rates Movie-like video and audio Movie-like video and audio Focus of DTV and digital convergence Focus of DTV and digital convergence

22 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Where Did CD-ROM Go Wrong? Poor audio/video quality Poor audio/video quality Poor compatibility Poor compatibility Unclear consumer expectations outside of imitating video games and books Unclear consumer expectations outside of imitating video games and books Chaotic and competitive retail channel Chaotic and competitive retail channel

23 Forum Developer Intel DVD & DirectShow Developer Days Microsoft What Can DVD-ROM Do Right? DVD-Video brings interactivity to the movies DVD-Video brings interactivity to the movies DVD-ROM brings the movies to interactivity DVD-ROM brings the movies to interactivity High-impact, dramatic, realistic video and audio High-impact, dramatic, realistic video and audio –Better picture than TV –Better sound than CD Guaranteed level of performance Guaranteed level of performance –10 Mbps (1x), 20 Mbps (2x) –Defacto standards: MPEG-2, 5.1-channel Dolby Digital

24 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Movie-Like Multimedia Consumers expect TV quality Consumers expect TV quality PC + DVD = true A/V machine (finally!) PC + DVD = true A/V machine (finally!) –MPEG-2 video is near studio master quality –Dolby Digital is theater surround quality –Multiple languages, seamless branching Desktop MPEG-2 encoding and DVD- Video formatting is happening Desktop MPEG-2 encoding and DVD- Video formatting is happening

25 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DVD Raises the Bar Acceptable to snooty creative types Acceptable to snooty creative types Accommodates high production values Accommodates high production values Paves the way for DTV and HDTV Paves the way for DTV and HDTV Provides high sensory impact Provides high sensory impact Closely simulates reality Closely simulates reality Opens new niche markets Opens new niche markets Vast unexplored potential Vast unexplored potential

26 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Where is the DVD Market? DVD-Video players: about 700,000 DVD-Video players: about 700,000 –About 3 million by end of 1999 –About 2,500 titles DVD-ROM PCs: about 7,000,000 DVD-ROM PCs: about 7,000,000 –Over 35M by end of 1999 –About 100 titles published (most bundled) DVD-ROM 10X market, 1% competition DVD-ROM 10X market, 1% competition

27 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Microsoft DirectShow DVD Milestones Nov. ‘97 - DXM 5.1 SDK, first DVD support in DirectShow Nov. ‘97 - DXM 5.1 SDK, first DVD support in DirectShow Apr. ‘98 - DXM 5.2b SDK, PAL support and other enhancements Apr. ‘98 - DXM 5.2b SDK, PAL support and other enhancements Jun. ‘98 - Windows 98, DVD support built into Windows operating system Jun. ‘98 - Windows 98, DVD support built into Windows operating system Sep. ‘98 - DXM 6.0 SDK, MPEG-2 splitter, exclusive mode, multifile Sep. ‘98 - DXM 6.0 SDK, MPEG-2 splitter, exclusive mode, multifile

28 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Levels of Development Level Zero - Data and software; no MPEG-2 requirements Level Zero - Data and software; no MPEG-2 requirements Level One - ISO MPEG-2; no authoring required; won’t play on DVD-Video players Level One - ISO MPEG-2; no authoring required; won’t play on DVD-Video players Level Two - DVD-Video 1.0 spec and DirectShow; works in DVD-Video player and DVD-ROM PC Level Two - DVD-Video 1.0 spec and DirectShow; works in DVD-Video player and DVD-ROM PC

29 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Types of Applications Pure (DVD-V) Pure (DVD-V) Bonus (DVD-V + computer supplements) Bonus (DVD-V + computer supplements) Augmented (DVD-V+ computer enhancements) Augmented (DVD-V+ computer enhancements) Split (independent DVD-V and computer content) Split (independent DVD-V and computer content) Multimedia (DVD-ROM with audio and video) Multimedia (DVD-ROM with audio and video) Data (DVD-ROM with data or applications) Data (DVD-ROM with data or applications)

30 Forum Developer Intel DVD & DirectShow Developer Days Microsoft 29 DirectShow Training Agenda: DVD Overview DVD Overview Why DirectShow Why DirectShow COM Overview / Basics COM Overview / Basics DirectShow Basics / Compliance DirectShow Basics / Compliance Application Development & Tools Application Development & Tools * Third-party marks and brands are the property of their respective owners. DVD-V / MPEG Support DVD-V / MPEG Support Overlay Mixer / DDraw Xcl Mode Overlay Mixer / DDraw Xcl Mode Asset Creation Asset Creation Tips & Tricks Tips & Tricks Windows Media Player Windows Media Player

31 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Why DirectShow? Definition: Object-oriented, software framework designed for capturing multimedia streams from devices and playing back multimedia streams (such as video and audio) from local files or from the Internet Object-oriented, software framework designed for capturing multimedia streams from devices and playing back multimedia streams (such as video and audio) from local files or from the Internet * Third-party marks and brands are the property of their respective owners.

32 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Why DirectShow? What is it? Consists of flexible, filter-based architecture divided into source, transform, and render categories Consists of flexible, filter-based architecture divided into source, transform, and render categories Pluggable components provide maximum flexibility and ease of (re)use Pluggable components provide maximum flexibility and ease of (re)use –Can use standard filters out of the box –Or develop your own customized filters * Third-party marks and brands are the property of their respective owners.

33 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Why DirectShow? Major Benefits: Solves interoperability issues Solves interoperability issues –Provides standard APIs for DVD-Video and MPEG-2 file playback Standardized solutions for existing issues: Standardized solutions for existing issues: –DirectDraw* Exclusive Mode –DirectDraw* Instance Sharing –Aspect ratio correction * Third-party marks and brands are the property of their respective owners.

34 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Why DirectShow? What About MCI? MCI can’t provide the robustness and full feature set needed for DVD MCI can’t provide the robustness and full feature set needed for DVD SPA’s MCI API is a limited, short-term solution SPA’s MCI API is a limited, short-term solution DirectShow provides backward- compatible MCI features and API for other formats, but not DVD DirectShow provides backward- compatible MCI features and API for other formats, but not DVD * Third-party marks and brands are the property of their respective owners.

35 Forum Developer Intel DVD & DirectShow Developer Days Microsoft 34 DirectShow Training Agenda: DVD Overview DVD Overview Why DirectShow Why DirectShow COM Overview / Basics COM Overview / Basics DirectShow Basics / Compliance DirectShow Basics / Compliance Application Development & Tools Application Development & Tools * Third-party marks and brands are the property of their respective owners. DVD-V / MPEG Support DVD-V / MPEG Support Overlay Mixer / DDraw Xcl Mode Overlay Mixer / DDraw Xcl Mode Asset Creation Asset Creation Tips & Tricks Tips & Tricks Windows Media Player Windows Media Player

36 Forum Developer Intel DVD & DirectShow Developer Days Microsoft COM Overview What is COM: COM = Component Object Model COM = Component Object Model – a framework for “componentized” software with components that can be written in multiple programming languages A binary-compatibility model A binary-compatibility model – permits use of binary objects without need for source code to those objects * Third-party marks and brands are the property of their respective owners.

37 Forum Developer Intel DVD & DirectShow Developer Days Microsoft COM Overview Why COM: Solves “Fragile Base Classes” problem Solves “Fragile Base Classes” problem – If change an interface in non-COM programming, then need to recompile programs that use that class interface. – In COM, interfaces remain fixed. New interfaces are added to support additional functionality. Apps only obtain pointers to interfaces and never actually create objects Apps only obtain pointers to interfaces and never actually create objects * Third-party marks and brands are the property of their respective owners.

38 Forum Developer Intel DVD & DirectShow Developer Days Microsoft COM Basics Getting Started: Initialization Initialization – COM framework must be set up and ripped down by application – Call CoInitialize() or OleInitialize() to prepare COM libraries before use – Call CoUninitialize() or OleUnitialize() to release COM resources after done Can’t use COM without taking these “basic” steps! Can’t use COM without taking these “basic” steps! * Third-party marks and brands are the property of their respective owners.

39 Forum Developer Intel DVD & DirectShow Developer Days Microsoft COM Basics COM Objects/Interfaces: Creating objects Creating objects – Call CoCreateInstance() or CoGetClassObject() with the desired class GUID / CLSID / UUID – Returns a pointer to requested interface for the class Obtaining COM interfaces Obtaining COM interfaces – Call QueryInterface() on created interface with UUIDs of any other desired interfaces * Third-party marks and brands are the property of their respective owners.

40 Forum Developer Intel DVD & DirectShow Developer Days Microsoft COM Basics COM Reference Counting: BEWARE of reference counting!!! BEWARE of reference counting!!! – Most difficult area to deal with in COM programming – “Most” interfaces follow COM rules, but some do not – Usually trial-and-error is only way to tell Releasing objects/interfaces Releasing objects/interfaces –Code should be sure to use AddRef() and Release() properly or risk memory leaks and dangling references –It is very easy to forget to release interfaces! * Third-party marks and brands are the property of their respective owners.

41 Forum Developer Intel DVD & DirectShow Developer Days Microsoft COM Basics Sample Code: // Instantiate the Microsoft Video Renderer filter hres = CoCreateInstance(CLSID_VideoRenderer,// Microsoft Video Renderer Class ID NULL,// no aggregation CLSCTX_INPROC_SERVER,// FGM is DLL not EXE IID_IBaseFilter, (void**)&pVideoRenderer); (void**)&pVideoRenderer); if (FAILED(hres)) { AfxMessageBox("Can't create MS video renderer for line 21 output"); return E_FAIL; }else{ m_pVideoRenderer2 = pVideoRenderer; m_pVideoRenderer2->AddRef();}

42 Forum Developer Intel DVD & DirectShow Developer Days Microsoft COM Basics Sample Code: hres = m_pVideoRenderer2->QueryInterface(IID_IBasicVideo, (LPVOID*)&m_pIBasicVideo); if(SUCCEEDED(hres)){ DbgLog((LOG_TRACE, TRACE_LVL_INFO, TEXT("Obtained IBasicVideo interface"))); long left, top, width, height; hres = m_pIBasicVideo->GetDestinationPosition(&left, &top, &width, &height); if (FAILED(hres)) { DbgLog((LOG_TRACE, TRACE_LVL_CRITICAL, TEXT("Could not get target rect for video control"))); }else{ DbgLog((LOG_TRACE, TRACE_LVL_INFO, TEXT("Video control target rect: left: %d, top: %d, width: %d, height: %d"),left,top,width,height)); }}else{ m_pIBasicVideo = NULL; DbgLog((LOG_TRACE, TRACE_LVL_CRITICAL, TEXT("Could not get IBasicVideo interface"))); return E_FAIL; }

43 Forum Developer Intel DVD & DirectShow Developer Days Microsoft 42 DirectShow Training Agenda: DVD Overview DVD Overview Why DirectShow Why DirectShow COM Overview / Basics COM Overview / Basics DirectShow Basics / Compliance DirectShow Basics / Compliance Application Development & Tools Application Development & Tools * Third-party marks and brands are the property of their respective owners. DVD-V / MPEG Support DVD-V / MPEG Support Overlay Mixer / DDraw Xcl Mode Overlay Mixer / DDraw Xcl Mode Asset Creation Asset Creation Tips & Tricks Tips & Tricks Windows Media Player Windows Media Player

44 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DirectShow Basics DirectX ® : OS-level compatibility for h/w and s/w OS-level compatibility for h/w and s/w Hardware independence Hardware independence DirectX Foundation DirectX Foundation –DirectDraw, DirectSound, … DirectX Media DirectX Media –DirectShow, DirectAnimation, Direct3D, Windows Media Player, … –MCI and ActiveMovie replaced by DirecShow

45 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Hardware DirectX Foundation DirectX Media Application DirectShow Basics DirectX Media: Builds on DirectX foundation for efficient access to hardware Builds on DirectX foundation for efficient access to hardware –DirectDraw ® for hardware 2D acceleration –DirectSound ® for audio mixing and low-latency audio

46 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DirectShow Basics DirectShow: The streaming audio/video component of DirectX ® Media The streaming audio/video component of DirectX ® Media Easy-to-use architecture for controlling and processing streams of multimedia data Easy-to-use architecture for controlling and processing streams of multimedia data Built into Windows 98 and Windows 2000, can be installed on Windows 95 Built into Windows 98 and Windows 2000, can be installed on Windows 95 –Same API for all OSes –Third-party decoders –NT 4.0 and Win 95: no WDM drivers

47 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DirectShow Basics DirectShow features: Full screen, high-quality digital audio/video playback Full screen, high-quality digital audio/video playback –AVI, WAV, MIDI, AIFF, AU, QuickTime™ –MPEG, DV, Indeo™ 5, Truemotion™ –DVD playback (MPEG-2, Dolby Digital) –DVD-Video player emulation Digital audio/video capture Digital audio/video capture –AVI files, DV (IEEE 1934/FireWire) –Video input, such as TV tuners Accessibility Accessibility –Closed caption, SAMI

48 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DirectShow Basics DirectShow API: Stable, standardized API for DVD-ROM programmers Stable, standardized API for DVD-ROM programmers –“Virtual machine” handles hardware/ software decode, WDM drivers, demuxing, navigation, motion comp, UDF, overlay, colorkey, VPE, CSS, APS, regions,... COM for C++ COM for C++ Windows Media Player for HTML, VB, apps, multimedia authoring, VBA, etc. Windows Media Player for HTML, VB, apps, multimedia authoring, VBA, etc.

49 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DirectShow Basics DVD support: DVD-Video navigation DVD-Video navigation MPEG-2 and Dolby Digital (AC-3) * MPEG-2 and Dolby Digital (AC-3) * Copyright protection (CSS and Macrovision) Copyright protection (CSS and Macrovision) Region management Region management Parental control Parental control UDF file system UDF file system *3 rd party decoder *3 rd party decoder

50 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DirectShow Basics DVD components: Source filter: Source filter: –DVD Navigator, Async File, Multifile, etc. Transform filter: Transform filter: –Video decoder, audio decoder, subpicture decoder, MPEG-2 splitter, audio processor, etc. Render filter: Render filter: –Overlay mixer, video renderer, audio renderer

51 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DirectShow Basics Future directions: Security: signed filter graphs Security: signed filter graphs Dynamic filter graphs allow content to change without rebuilding graph Dynamic filter graphs allow content to change without rebuilding graph DirectShow support for DirectMusic DirectShow support for DirectMusic Additional interactive DVD support Additional interactive DVD support Complete capture and editing solution Complete capture and editing solution

52 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DirectShow Compliance Overview: General rules should be followed when developing apps with DirectShow for DVD- Video and MPEG-2 playback General rules should be followed when developing apps with DirectShow for DVD- Video and MPEG-2 playback Specify that certain basic DirectShow components and interfaces should be utilized for an application to be “DirectShow- compliant” Specify that certain basic DirectShow components and interfaces should be utilized for an application to be “DirectShow- compliant” Good News: Tools are available to help here! Good News: Tools are available to help here! * Third-party marks and brands are the property of their respective owners.

53 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DirectShow Compliance DVD-Video: DVD-Video Requirements DVD-Video Requirements – MS DVD Navigator and MS Overlay Mixer standard components need to be utilized –IDVDGraphBuilder::RenderDVDVideoVolume() intelligent graph-building needs to be supported –Do not build graph “manually”! –Doing so will be more hassle than its worth – IDvdControl and IDvdInfo interfaces should be used for DVD-specific operations * Third-party marks and brands are the property of their respective owners.

54 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DirectShow Compliance MPEG-2: MPEG Requirements MPEG Requirements – MS ISO MPEG-2 Splitter is strongly suggested – MS Overlay Mixer component needs to be utilized – IGraphBuilder::RenderFile() intelligent graphbuilding mechanism needs to be supported –Just means correct media types need to be supported by DirectShow filters – Use standard DirectShow interfaces for all operations –Private interfaces to perform operations that can be done via DirectShow standard interfaces should be avoided * Third-party marks and brands are the property of their respective owners.

55 Forum Developer Intel DVD & DirectShow Developer Days Microsoft 54 DirectShow Training Agenda: DVD Overview DVD Overview Why DirectShow Why DirectShow COM Overview / Basics COM Overview / Basics DirectShow Basics / Compliance DirectShow Basics / Compliance Application Development & Tools Application Development & Tools * Third-party marks and brands are the property of their respective owners. DVD-V / MPEG Support DVD-V / MPEG Support Overlay Mixer / DDraw Xcl Mode Overlay Mixer / DDraw Xcl Mode Asset Creation Asset Creation Tips & Tricks Tips & Tricks Windows Media Player Windows Media Player

56 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Application Development Getting Started: SDKs SDKs –DirectXMedia* (DirectShow) –DirectXFoundation (DirectDraw* / DirectSound*) –DirectShow compliant DVD decode solution –Attend DirectShow porting/testing lab!!! * Third-party marks and brands are the property of their respective owners.

57 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Application Development Building the Graph (DVD-Video): Utilize IDVDGraphBuilder:: RenderDVDVideoVolume() Utilize IDVDGraphBuilder:: RenderDVDVideoVolume() –Simplifies hardest DShow COM-related issues for DVD (filtergraph construction & destruction) –Is an abstraction layer on top of filtergraph –Set filtergraph build preferences via AM_DVD_GRAPH_FLAGS –Check return flags for errors via AM_DVD_RENDERSTATUS Other Requirements Other Requirements –Decode filters must support correct media types to perform intelligent connection (see DXMedia help section “DVD Media Types and Formats”) –App must manually set up event handling –App must capture mouse events to support navigation * Third-party marks and brands are the property of their respective owners.

58 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Application Development Building the Graph (MPEG-2): Use IGraphBuilder:: Renderfile() Use IGraphBuilder:: Renderfile() –Less abstraction from filtergraph details provided –Cannot build a filtergraph without playback file chosen (not case for IDVDGraphBuilder) –Check returned HRESULT for build errors –Apps should not use IFilterGraph directly! Other Requirements Other Requirements –Decode filters must support correct media types to perform intelligent connection, PES or native formats critical here (see DXMedia help on this “MPEG-2 Kernel Media Types”) –App must manually set up event handling * Third-party marks and brands are the property of their respective owners.

59 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Application Development Supporting Navigation: Applications must tie into event loop for output video window (since video renderer initially owns output video window) Applications must tie into event loop for output video window (since video renderer initially owns output video window) –Done via IVideoWindow::put_MessageDrain() Take ownership of window for control of window (as in compound documents) Take ownership of window for control of window (as in compound documents) –Done via IVideoWindow::put_Owner() –Don’t forget IVideoWindow::put_Owner(NULL) when done with filtergraph! Call IDVDControl::MouseSelect() or IDVDControl::MouseActivate() for mouse clicks Call IDVDControl::MouseSelect() or IDVDControl::MouseActivate() for mouse clicks –No coordinate transformation needed (are client-area coords) * Third-party marks and brands are the property of their respective owners.

60 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Application Development Filtergraph Events : Events are an “integral” part of communication with filtergraph (especially for DVD-Video) Events are an “integral” part of communication with filtergraph (especially for DVD-Video) –Decoupled thru queuing scheme rather than callbacks (allows worker threads to signal events when can’t safely call back into app code) IMediaEvent::GetEvent() pulls events off of queue IMediaEvent::GetEvent() pulls events off of queue –Don’t forget IMediaEvent:: FreeEventParams() when done! –Can spawn separate thread to wait on a event handle obtained from IMediaEvent::GetEventHandle() or IMediaEventEx::SetNotifyWindow() can set a window to receive signaled events from filtergraph if desired Place graph in a consistent state and handle events appropriately (be aware that filters in graph can get into differing states) Place graph in a consistent state and handle events appropriately (be aware that filters in graph can get into differing states) * Third-party marks and brands are the property of their respective owners.

61 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Application Development Combining Gaming and Video: DVD interactive games have two components: DVD interactive games have two components: –DVD playback –Game engine DVD playback & game engine use same system resources DVD playback & game engine use same system resources DirectX Foundation* Graphics/Audio HW DVD Decode Engine DVD Playback API DVD Interactive Application Game Engine Application must manage resource usage!! * Third-party marks and brands are the property of their respective owners.

62 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Application Development Combining Gaming and Video: DirectShow provides API’s to allow applications to manage DirectDraw* resources DirectShow provides API’s to allow applications to manage DirectDraw* resources – Use IDDrawExclModeVideo to: –Get/Set DirectDraw instance on DVD filtergraph –Get / Set surface pointer on DVD filtergraph –Solve DDraw Exclusive mode issues – Use IDirectDraw2:: GetAvailableVidMem() while playing back video to determine amount of local video memory required by DVD decode solution –Typically 2.5 - 3.0MB * Third-party marks and brands are the property of their respective owners.

63 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Application Development Debugging Techniques: Follow good programming techniques Follow good programming techniques –Assertion checking –Pointer validation (ValidateReadPtr(),...) Utilize debugging information Utilize debugging information –Debug logging (DbgLog(), DbgLogInfo(),...) –Object Register (DbgDumpObjectRegister()) Filter graph editor and sample filters Filter graph editor and sample filters Follow good COM programming rules! Follow good COM programming rules! – Avoid GUID reuse – Release all objects/interfaces when done * Third-party marks and brands are the property of their respective owners.

64 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Application Development Tools: GraphEdit GraphEdit –Provided with DirectX*Media SDK –Good for testing “raw” filtergraphs for basic functionality –Does not support anything beyond “basic” operations (play/stop/pause) –Helps with “first-level” debugging tasks Intel DQUIK test suite Intel DQUIK test suite –New release contains DShowTest application –Helps to determine how compliant a solution is * Third-party marks and brands are the property of their respective owners.

65 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Application Development Tools: MS GraphEdit MS GraphEdit * Third-party marks and brands are the property of their respective owners.

66 Forum Developer Intel DVD & DirectShow Developer Days Microsoft 65 DirectShow Training Agenda: DVD Overview DVD Overview Why DirectShow Why DirectShow COM Overview / Basics COM Overview / Basics DirectShow Basics / Compliance DirectShow Basics / Compliance Application Development & Tools Application Development & Tools * Third-party marks and brands are the property of their respective owners. DVD-V / MPEG Support DVD-V / MPEG Support Overlay Mixer / DDraw Xcl Mode Overlay Mixer / DDraw Xcl Mode Asset Creation Asset Creation Tips & Tricks Tips & Tricks Windows Media Player Windows Media Player

67 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DVD-Video Support For content authored as DVD-video volumes For content authored as DVD-video volumes –Full support of seamless branching, angles, chapters, parental levels, etc. DirectShow DVD Navigator filter DirectShow DVD Navigator filter Create with IDvdGraphBuilder Create with IDvdGraphBuilder IDvdControl and IDvdInfo interfaces IDvdControl and IDvdInfo interfaces –Plus a little of IMediaControl Specific events Specific events

68 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DVD-Video Support DVD-Video Filtergraph: CODEC Vendor Microsoft Content ISV Navigator/StreamSplitter Video Filter Subpicture Filter Filter Audio Filter VideoRendererAudioRenderer DSound OverlayMixer DDraw CCDecode DirectShow Filtergraph MS DirectShow APIs Movie Player or DirectShow Interactive DVD App

69 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DVD-Video Support Primary Interfaces: IDvdGraphBuilder IDvdGraphBuilder –Create filtergraph (RenderDvdVideoVolume) IDvdControl IDvdControl –Control playback –Mirrors all 31 functions defined in “Annex J” of DVD Spec, plus additional methods IDvdInfo IDvdInfo –Query media info and playback status

70 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DVD-Video Support IDvdControl Methods: TitlePlay TitlePlay ChapterPlay ChapterPlay TimePlay TimePlay ChapterPlayAutoStop ChapterPlayAutoStop GoUp GoUp TimeSearch TimeSearch ChapterSearch ChapterSearch PrevPGSearch PrevPGSearch NextPGSearch NextPGSearch TopPGSearch TopPGSearch ForwardScan ForwardScan BackwardScan BackwardScan MenuCall MenuCall Resume Resume MenuLanguageSelect MenuLanguageSelect AudioStreamChange AudioStreamChange SubpictureStreamChange SubpictureStreamChange AngleChange AngleChange ParentalLevelSelect ParentalLevelSelect ParentalCountrySelect ParentalCountrySelect

71 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DVD-Video Support Primary IDvdControl Methods: SetRoot() SetRoot() –Set path to directory containing VIDEO_TS directory –Navigator automatically scans drives beginning at D: if SetRoot() not called IMediaControl::Run() IMediaControl::Run() –Puts graph into running mode (do first) TitlePlay() TitlePlay() –Play a title

72 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DVD-Video Support Primary IDvdControl Methods: ChapterPlay() ChapterPlay() –Play chapter in specified title –Also NextPGSearch() and PrevPGSearch() ChapterPlayAutoStop() ChapterPlayAutoStop() –Play range of chapters in title TimePlay() TimePlay() –Play from timecode in specified title –Use TimeSearch() within current title –To play range of time, monitor EC_DVD_CURRENT_TIME event

73 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DVD-Video Support Primary IDvdControl Methods: ForwardScan() & BackwardScan() ForwardScan() & BackwardScan() –Variable speed playback –1.0 = normal, 2.0 = 2x, 0.5 = 1/2x –Actual speed is decoder dependent! Don’t use PauseOn, PauseOff, StopForResume Don’t use PauseOn, PauseOff, StopForResume –Instead, use IMediaControl::Pause, IMediaControl::Stop

74 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DVD-Video Support IMixerPinConfig Methods: GetColorKey() GetColorKey() –Find colorkey for graphic overlay SetAspectRatioMode() SetAspectRatioMode() –Set to AM_ARMODE_LETTER_BOX to maintain proper aspect ratio –A PC should act like a widescreen TV

75 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DVD-Video Support IDvdInfo Methods: GetCurrentDomain GetCurrentDomain GetCurrentLocation GetCurrentLocation GetTotalTitleTime GetTotalTitleTime GetCurrentButton GetCurrentButton GetCurrentAngle GetCurrentAngle GetCurrentAudio GetCurrentAudio GetCurrentSubpicture GetCurrentSubpicture GetCurrentUOPS GetCurrentUOPS GetAllSPRMs GetAllSPRMs GetAllGPRMs GetAllGPRMs GetAudioLanguage GetAudioLanguage GetSubpictureLanguage GetSubpictureLanguage GetTitleAttributes GetTitleAttributes GetVMGAttributes GetVMGAttributes GetCurrentVideoAttributes GetCurrentVideoAttributes GetCurrentAudioAttributes GetCurrentAudioAttributes GetCurrentSubpictureAttributes GetCurrentSubpictureAttributes GetCurrentVolumeInfo GetCurrentVolumeInfo GetDVDTextInfo GetDVDTextInfo GetPlayerParentalLevel GetPlayerParentalLevel GetNumberOfChapters GetNumberOfChapters GetTitleParentalLevels GetTitleParentalLevels GetRoot GetRoot

76 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DVD-Video Support Events: (IMediaEvent::GetEvent, EC_DVD_…) CHAPTER_START CHAPTER_START CURRENT_TIME CURRENT_TIME CHAPTER_AUTOSTOP CHAPTER_AUTOSTOP PLAYBACK_STOPPED * PLAYBACK_STOPPED * ANGLES_AVAILABLE * ANGLES_AVAILABLE * ANGLE_CHANGE ANGLE_CHANGE AUDIO_STREAM_CHANGE AUDIO_STREAM_CHANGE SUBPICTURE_STREAM _CHANGE SUBPICTURE_STREAM _CHANGE TITLE_CHANGE TITLE_CHANGE DOMAIN_CHANGE DOMAIN_CHANGE BUTTON_CHANGE BUTTON_CHANGE VALID_UOPS_CHANGE VALID_UOPS_CHANGE PARENTAL_LEVEL_CHANGE PARENTAL_LEVEL_CHANGE PLAYBACK_RATE_CHANGE PLAYBACK_RATE_CHANGE STILL_OFF STILL_OFF STILL_ON STILL_ON NO_FP_PGC NO_FP_PGC ERROR ERROR WARNING WARNING * Not fully functional in DShow 6.0 and earlier

77 Forum Developer Intel DVD & DirectShow Developer Days Microsoft MPEG Support For content authored as MPEG files For content authored as MPEG files Async source filter or Multifile source filter Async source filter or Multifile source filter MPEG-2 Splitter filter MPEG-2 Splitter filter Create with IGraphBuilder::RenderFile() Create with IGraphBuilder::RenderFile() IMediaControl, IMediaSeeking, and IMediaInfo interfaces IMediaControl, IMediaSeeking, and IMediaInfo interfaces

78 Forum Developer Intel DVD & DirectShow Developer Days Microsoft MPEG-2 File Support MPEG-2 Filtergraph: CODEC Vendor Microsoft Content ISV DSoundDDraw MS DirectShow APIs DirectShow Interactive DVD App Async or MultifileSource VideoRendererAudioRenderer OverlayMixer DirectShow Filtergraph VideoFilter AudioFilter MPEG-2 MPEG-2Splitter

79 Forum Developer Intel DVD & DirectShow Developer Days Microsoft MPEG File Support VOB files can be played through MPEG-2 splitter VOB files can be played through MPEG-2 splitter –Can select audio tracks But… But… –Won’t work if CSS encrypted –Angles play sequentially –Seamless jumps may be out of order –No chapter access or events

80 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Advantages of MPEG-2 File Playback Easy to premaster; encode and you’re done Easy to premaster; encode and you’re done Easy to test; just double click Easy to test; just double click Easy to author; just embed Windows Media Player in an OLE app Easy to author; just embed Windows Media Player in an OLE app Easy to name; any name or directory structure Easy to name; any name or directory structure Support for AC-3, PCM, multi-stream Support for AC-3, PCM, multi-stream

81 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Disadvantages of MPEG-2 File Playback Not all hardware decoders support PES (Packetized Elementary Stream) decoding required Not all hardware decoders support PES (Packetized Elementary Stream) decoding required Won’t play on DVD-Video player appliances Won’t play on DVD-Video player appliances Can’t use DVD-Video features like multiangle, CSS, region management (menus, subpictures, seamless branching are done better by PC) Can’t use DVD-Video features like multiangle, CSS, region management (menus, subpictures, seamless branching are done better by PC)

82 Forum Developer Intel DVD & DirectShow Developer Days Microsoft MPEG-2 Applications Quick PowerPoint presentations with embedded video; no DVD-V authoring Quick PowerPoint presentations with embedded video; no DVD-V authoring Preview of VOB content prior to auth. Preview of VOB content prior to auth. Using the MPEG-2 splitter filter for interactive video branching Using the MPEG-2 splitter filter for interactive video branching Dynamic database of video files Dynamic database of video files Network distributed video files Network distributed video files Record/play applications with MPEG-2 Record/play applications with MPEG-2

83 Forum Developer Intel DVD & DirectShow Developer Days Microsoft 82 DirectShow Training Agenda: DVD Overview DVD Overview Why DirectShow Why DirectShow COM Overview / Basics COM Overview / Basics DirectShow Basics / Compliance DirectShow Basics / Compliance Application Development & Tools Application Development & Tools * Third-party marks and brands are the property of their respective owners. DVD-V / MPEG Support DVD-V / MPEG Support Overlay Mixer / DDraw Xcl Mode Overlay Mixer / DDraw Xcl Mode Asset Creation Asset Creation Tips & Tricks Tips & Tricks Windows Media Player Windows Media Player

84 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Overlay Mixer What it is: Standard DirectShow filter Standard DirectShow filter Uses DirectDraw* to improve on standard video rendering capabilities Uses DirectDraw* to improve on standard video rendering capabilities Fits in graph between video transform filter (such as a decoder) and the standard video renderer Fits in graph between video transform filter (such as a decoder) and the standard video renderer Guarantees use of destination color- keyed DDraw hardware overlay for video input to its first pin Guarantees use of destination color- keyed DDraw hardware overlay for video input to its first pin * Third-party marks and brands are the property of their respective owners.

85 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Overlay Mixer What it is: Mixes secondary video inputs into its color-keyed surface Mixes secondary video inputs into its color-keyed surface Allows use of video port video sources when connected to WDM Stream Class driver via proxy filter Allows use of video port video sources when connected to WDM Stream Class driver via proxy filter Enables video playback and DDraw Exclusive Mode to co-exist Enables video playback and DDraw Exclusive Mode to co-exist * Third-party marks and brands are the property of their respective owners.

86 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Overlay Mixer Special features: De-interlacing De-interlacing –Set dwInterlaceFlags in VIDEOINFOHEADER2 to indicate interlaced stream and bob/weave options –Set each frame’s properties (field? frame? bob? weave?) using IMediaSample2 (AM_SAMPLE2_PROPERTIES) * Third-party marks and brands are the property of their respective owners.

87 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Overlay Mixer Special features: Aspect Ratio Correction Aspect Ratio Correction –handles non-square pixel ratios –Set dwPictAspectRatioX and Y Copy Protection Copy Protection –Set dwCopyProtectFlags to indicate stream duplication permissions * Third-party marks and brands are the property of their respective owners.

88 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Overlay Mixer Special features: Frame Re-ordering Frame Re-ordering –Needed for formats such as MPEG-2 where decode order and display order differ –Use IDirectDrawMediaSample to save decoded frames until needed for display (can unlock sample without losing ref) * Third-party marks and brands are the property of their respective owners.

89 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Overlay Mixer Note: There are two overlay mixer filters in SDK - Overlay Mixer and Overlay Mixer2 There are two overlay mixer filters in SDK - Overlay Mixer and Overlay Mixer2 Differ in format blocks accepted Differ in format blocks accepted Mixer2 only accepts VIDEOINFOHEADER2 Mixer2 only accepts VIDEOINFOHEADER2 Mixer Classic accepts VIDEOINFOHEADER on secondary pins - primarily intended for DVD Mixer Classic accepts VIDEOINFOHEADER on secondary pins - primarily intended for DVD * Third-party marks and brands are the property of their respective owners.

90 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DirectDraw* Exclusive Mode DirectDraw* Exclusive Mode Enables video playback while in DirectDraw* exclusive full-screen mode Enables video playback while in DirectDraw* exclusive full-screen mode IDDrawExclModeVideo and IDDrawExclModeVideoCallback IDDrawExclModeVideo and IDDrawExclModeVideoCallback –implemented in overlay mixer –pass in primary surface and DDraw object See DDrawXcl sample in SDK See DDrawXcl sample in SDK * Third-party marks and brands are the property of their respective owners.

91 Forum Developer Intel DVD & DirectShow Developer Days Microsoft 90 DirectShow Training Agenda: DVD Overview DVD Overview Why DirectShow Why DirectShow COM Overview / Basics COM Overview / Basics DirectShow Basics / Compliance DirectShow Basics / Compliance Application Development & Tools Application Development & Tools * Third-party marks and brands are the property of their respective owners. DVD-V / MPEG Support DVD-V / MPEG Support Overlay Mixer / DDraw Xcl Mode Overlay Mixer / DDraw Xcl Mode Asset Creation Asset Creation Tips & Tricks Tips & Tricks Windows Media Player Windows Media Player

92 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Asset Creation - Production Path Content capture or render Content capture or render MPEG-2 encode or transcode, AC-3 encode, subpictures, line 21 MPEG-2 encode or transcode, AC-3 encode, subpictures, line 21 DVD-V author and VOB Multiplex DVD-V author and VOB Multiplex Simulation test Simulation test Premaster an image in UDF/ISO 9660 Bridge Format Premaster an image in UDF/ISO 9660 Bridge Format Burn a DVD-R or CD-R(W), or DDP 2.0 premaster tape for pressing Burn a DVD-R or CD-R(W), or DDP 2.0 premaster tape for pressing Verify pressed discs Verify pressed discs

93 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Animation Avoid too much detail Avoid too much detail –Low-pass filter for interlaced display Render at 720x540 Render at 720x540 –Scaled down to 720x480, then back to 540 –Or render with “D1” pixels (not square) Render at 24 fps or “30” fps Render at 24 fps or “30” fps –Encode for 29.97 fps (telecine) Antialias stills, motion blur Antialias stills, motion blur Layoff to tape, or transcode in PC Layoff to tape, or transcode in PC

94 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Graphics for TV Create at 720x540 (square pixels) Create at 720x540 (square pixels) –Scale down to 720x480 –Action-safe: 5% border for overscan –Title-safe: 10% border for overscan Antialias, filter, and blur Antialias, filter, and blur –Lines at least 3 pixels wide, especially horizontal NTSC colors, don’t saturate, especially red NTSC colors, don’t saturate, especially red Large text Large text –14-point, bold minimum –Avoid serifs

95 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DVD-Video Format Physical format: starts with sequential and contiguous DVD-V Zone, then “Other Zone” Physical format: starts with sequential and contiguous DVD-V Zone, then “Other Zone” Directories: Must have \VIDEO_TS, and Directories: Must have \VIDEO_TS, and Files: VTS_01_0.IFO, VTS_01_0.BUP, VTS_01_0.VOB, VTS_01_1.VOB, etc. Files: VTS_01_0.IFO, VTS_01_0.BUP, VTS_01_0.VOB, VTS_01_1.VOB, etc. Physical: VTS, VOB, Cell, VOBU (GOP) Physical: VTS, VOB, Cell, VOBU (GOP) Logical Access: Title, Chapter (PTT), time Logical Access: Title, Chapter (PTT), time Presentation: Title, Program Chain (PGC), Program, Cell, VMGR, Title Menu Presentation: Title, Program Chain (PGC), Program, Cell, VMGR, Title Menu

96 Forum Developer Intel DVD & DirectShow Developer Days Microsoft MPEG-2 Video Format If files and the directory are not DVD-Video playback compliant, don’t name *.VOB --Name MPEG files *.MPG If files and the directory are not DVD-Video playback compliant, don’t name *.VOB --Name MPEG files *.MPG Consider Constant bit rate for time access = byte offset into file Consider Constant bit rate for time access = byte offset into file Can still use AC-3 and PCM audio types, multichannel, and multistream Can still use AC-3 and PCM audio types, multichannel, and multistream Multi-angle doesn’t work, other DVD-V features, subpictures, menus, etc. ignored Multi-angle doesn’t work, other DVD-V features, subpictures, menus, etc. ignored Can play DVD-V VOB’s as volume or file Can play DVD-V VOB’s as volume or file

97 Forum Developer Intel DVD & DirectShow Developer Days Microsoft MPEG Encode and Decode for Progressive Displays PC decoders can play film with 480 line progressive pictures at 72 Hz refresh PC decoders can play film with 480 line progressive pictures at 72 Hz refresh But, telecine, encode and decode must all do the frame/field/frame conversion right But, telecine, encode and decode must all do the frame/field/frame conversion right Film mode uses progressive_frame=1 and repeat_first_field flags to encode 24 field pairs in 3-2 pattern for 60i playback Film mode uses progressive_frame=1 and repeat_first_field flags to encode 24 field pairs in 3-2 pattern for 60i playback Adaptive bob and weave deinterlacing required, with “prefer bob” logic Adaptive bob and weave deinterlacing required, with “prefer bob” logic SMPTE M21.21 and MPEG WG 11 considering changes to support proscan SMPTE M21.21 and MPEG WG 11 considering changes to support proscan

98 Forum Developer Intel DVD & DirectShow Developer Days Microsoft DVD-V Title Design Use one_sequential_pgc_title format for time and full operation of other events Use one_sequential_pgc_title format for time and full operation of other events Must be same VOB parameters for entire VTS (stream number, content type, etc.) Must be same VOB parameters for entire VTS (stream number, content type, etc.) PC uses filename, not physical access PC uses filename, not physical access PC can use SetRoot for multiple DVD-V directories not named \VIDEO_TS PC can use SetRoot for multiple DVD-V directories not named \VIDEO_TS For file play, each *.VOB is a file, 9 VOB’s per VTS max, 99 VTS’s max For file play, each *.VOB is a file, 9 VOB’s per VTS max, 99 VTS’s max

99 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Content Testing DVD-R read errors prevent binary verify, such as Windiff DVD-R read errors prevent binary verify, such as Windiff DVD-R won’t hold 4.7 billion bytes DVD-R won’t hold 4.7 billion bytes DVD-R doesn’t have two layers DVD-R doesn’t have two layers Need good emulation, Windiff each transfer Need good emulation, Windiff each transfer Simulate autorun and install Simulate autorun and install Watch ISO and UDF filenames, character sets, lengths (Romeo & Joliet) Watch ISO and UDF filenames, character sets, lengths (Romeo & Joliet) Test pressed discs against source tree Test pressed discs against source tree

100 Forum Developer Intel DVD & DirectShow Developer Days Microsoft 99 DirectShow Training Agenda: DVD Overview DVD Overview Why DirectShow Why DirectShow COM Overview / Basics COM Overview / Basics DirectShow Basics / Compliance DirectShow Basics / Compliance Application Development & Tools Application Development & Tools * Third-party marks and brands are the property of their respective owners. DVD-V / MPEG Support DVD-V / MPEG Support Overlay Mixer / DDraw Xcl Mode Overlay Mixer / DDraw Xcl Mode Asset Creation Asset Creation Tips & Tricks Tips & Tricks Windows Media Player Windows Media Player

101 Forum Developer Intel DVD & DirectShow Developer Days Microsoft * Third-party marks and brands are the property of their respective owners. Tips and Tricks Check out the samples! They can often be modified to suit your needs. Check out the samples! They can often be modified to suit your needs. Documentation is not always complete. You may end up using the SDK code (base classes and samples) as doc. Documentation is not always complete. You may end up using the SDK code (base classes and samples) as doc. Watch out for COM gotchas like un- released references to input samples or interfaces. Watch out for COM gotchas like un- released references to input samples or interfaces.

102 Forum Developer Intel DVD & DirectShow Developer Days Microsoft * Third-party marks and brands are the property of their respective owners. Tips and Tricks Pay attention to what kind of time you are using - DShow has its own version (REFERENCE_TIME measured in 100ns units). Pay attention to what kind of time you are using - DShow has its own version (REFERENCE_TIME measured in 100ns units). When trying to connect two filters, make sure you fill out the format blocks associated with the media type fully and correctly. When trying to connect two filters, make sure you fill out the format blocks associated with the media type fully and correctly.

103 Forum Developer Intel DVD & DirectShow Developer Days Microsoft * Third-party marks and brands are the property of their respective owners. Tips and Tricks Watch out for dynamic format changes - they can happen at any time. Watch out for dynamic format changes - they can happen at any time. See Debugging section in C/C++ Reference of SDK for helpful tips. See Debugging section in C/C++ Reference of SDK for helpful tips. Test filter combination with Graphedt before trying to make it work in an app. Test filter combination with Graphedt before trying to make it work in an app.

104 Forum Developer Intel DVD & DirectShow Developer Days Microsoft * Third-party marks and brands are the property of their respective owners. Tips and Tricks For DVD-ROM volume, use “Boilerplate video” for better compatibility with settop players For DVD-ROM volume, use “Boilerplate video” for better compatibility with settop players –Puts up “runs on DVD-ROM PC” message –Included in DXMedia SDK (\samples)

105 Forum Developer Intel DVD & DirectShow Developer Days Microsoft * Third-party marks and brands are the property of their respective owners. Tips and Tricks Use SetRoot() to simulate DVD-Video volume on hard drive Use SetRoot() to simulate DVD-Video volume on hard drive Watch out for VIDEO_TS directory in root of hard drive volumes: will preempt DVD drive Watch out for VIDEO_TS directory in root of hard drive volumes: will preempt DVD drive Don’t trust DVD-R for bit level testing Don’t trust DVD-R for bit level testing Use WHQL-approved PC for testing Use WHQL-approved PC for testing –Just because it plays movies doesn’t mean it’s DirectShow compliant

106 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Tips and Tricks Use the right interfaces for the right filter (Navigator vs. Splitter). Use the right interfaces for the right filter (Navigator vs. Splitter). Don’t throw away those IFO files! Don’t throw away those IFO files! Don’t count on capturing pixels; hardware overlay and acceleration bypass video memory. Don’t count on capturing pixels; hardware overlay and acceleration bypass video memory.

107 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Tips and Tricks DDraw Xcl mode interfaces don’t require exclusive mode – use for graphic overlay. DDraw Xcl mode interfaces don’t require exclusive mode – use for graphic overlay. Alpha blending not supported yet – use colorkey (via Overlay Mixer). Alpha blending not supported yet – use colorkey (via Overlay Mixer). Decoders may display previous pictures held in buffers on next playback; encode black or mask Decoders may display previous pictures held in buffers on next playback; encode black or mask

108 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Tips and Tricks For DVD-Video: For DVD-Video: –Be aware of time and data discontinuities –All content is not authored the same! –Some content does not conform to DVD spec and must be handled carefully –Don’t expect timecode access and events to work if not one_sequential_PGC –Don’t expect all decoders to support PES and file playback of MPEG-2

109 Forum Developer Intel DVD & DirectShow Developer Days Microsoft 108 DirectShow Training Agenda: DVD Overview DVD Overview Why DirectShow Why DirectShow COM Overview / Basics COM Overview / Basics DirectShow Basics / Compliance DirectShow Basics / Compliance Application Development & Tools Application Development & Tools * Third-party marks and brands are the property of their respective owners. DVD-V / MPEG Support DVD-V / MPEG Support Overlay Mixer / DDraw Xcl Mode Overlay Mixer / DDraw Xcl Mode Asset Creation Asset Creation Tips & Tricks Tips & Tricks Windows Media Player Windows Media Player

110 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Interactive DVD with the Windows ® Media Player Kilroy Hughes DirectShow DVD SW Evangelist Ryan Watkins Multimedia Content Program Manager Microsoft

111 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Windows Media Player New version to be included with IE5 New version to be included with IE5 Features: Features: –OCX for embedded playback of DVD-V, AudioCD, and most media types –HTA, HTML Applications, run HTML based applications like executables –Add media playback capability to all ActiveX compatible applications Makes PC enhancement of DVD-V easy Makes PC enhancement of DVD-V easy

112 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Windows Media Player Web enhanced DVD, enabled by Windows Media Player Web enhanced DVD, enabled by Windows Media Player Features: Features: –Combines the best of the Web with the audio and video quality of DVD-Video –Benefits from business models of DVD- Video publishing and Web entertainment, marketing, and commerce –GUI and functionality updatable via the net

113 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Windows Media Player DVD-V Capabilities: DVD-V Capabilities: –Full operation of DVD-Video menus, subpictures, closed captions, angles, regions, CSS, etc. –Video access by Title, Chapter, time, angle, audio channel, etc. –Scriptable event handling based on video time, chapter, Web events, and user events –Web enhanced DVD-V’s have full backward compatibility with settop players

114 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Windows Media Player Windows Interactive DVD Tool Kit: Windows Interactive DVD Tool Kit: –Contains full development and playback environment for Web enhanced DVD’s –Includes Windows Media Player SDK with sample applications and documentation –Includes Windows 98 Service Pack 1 beta, with IE5 and Windows Media Player –Includes DXFoundation 6.1 beta and DXMedia 6.0 –Includes DVD-V titles and HTML samples

115 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Windows Media Player Introduction to the Windows Interactive DVD Tool Kit Introduction to the Windows Interactive DVD Tool Kit Installation sequence Installation sequence System requirements System requirements Documentation Documentation Sample applications Sample applications

116 Forum Developer Intel DVD & DirectShow Developer Days Microsoft Windows Media Player Ryan Watkins takes an in depth walk through of a DVD-Video application in HTML using Windows Media Player (An interactive presentation - Your questions are welcome) Ryan Watkins takes an in depth walk through of a DVD-Video application in HTML using Windows Media Player (An interactive presentation - Your questions are welcome)

117 Forum Developer Intel DVD & DirectShow Developer Days Microsoft What Next? Get the Interactive DVD Toolkit Get the Interactive DVD Toolkit Sign up to DirectX Media beta program for the SDK and subsequent releases Sign up to DirectX Media beta program for the SDK and subsequent releases Contact DVD@Microsoft.com for assistance Contact DVD@Microsoft.com for assistance Send us your titles for testing on hardware and software not yet released Send us your titles for testing on hardware and software not yet released Visit the DirectShow DVD Porting Lab Visit the DirectShow DVD Porting Lab


Download ppt "DVD & DirectShow ™ Developer Days January 11-12, 1999 (presentations revised Jan 14) Intel and Microsoft present."

Similar presentations


Ads by Google