dvd & directshow ™ developer days january 11-12, 1999 (presentations revised jan 14) intel and...

116
DVD & DVD & DirectShow DirectShow Developer Days Developer Days January 11-12, 1999 January 11-12, 1999 (presentations revised Jan 14) (presentations revised Jan 14) ntel and Microsof ntel and Microsof esent esent

Upload: clarissa-singleton

Post on 27-Dec-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

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

DVD & DVD & DirectShowDirectShow™™

Developer DaysDeveloper Days

January 11-12, 1999January 11-12, 1999

(presentations revised Jan 14)(presentations revised Jan 14)

Intel and MicrosoftIntel and Microsoftpresentpresent

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShowDeveloper DaysDeveloper Days

MicrosoftMicrosoft

Introduction & Event Introduction & Event OverviewOverview

Bill PearsonBill Pearson

DVD Technical MarketingDVD Technical Marketing

Intel CorporationIntel Corporation

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

TestingTesting

Limited Availability - First come first Limited Availability - First come first serveserve

Sign up sheet at Registration DeskSign up sheet at Registration DeskPerformed by Intel “Durango” Performed by Intel “Durango”

Personnel with your helpPersonnel with your helpYour software tested on PCs provided Your software tested on PCs provided

by System Manufacturersby System ManufacturersTest reports providedTest reports provided

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow* LabDirectShow* Lab

Semi-private development Semi-private development environmentenvironment

Microsoft & Intel DirectShow experts Microsoft & Intel DirectShow experts available for questionsavailable for questions

Monitors available to rentMonitors available to rent

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Reference PlatformsReference Platforms

Setup in LabSetup in LabAvailable after the event (for ~2 weeks)Available after the event (for ~2 weeks)Includes DVD Players fromIncludes DVD Players from

–ZoranZoran

–MGIMGI

–QuadrantQuadrant

DQUIK (DVD Qualification and DQUIK (DVD Qualification and Integration Kit)Integration Kit)

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

For More InformationFor More Information

DVD Developer Website DVD Developer Website http://developer.intel.com/solutions/tech/dvd.htmhttp://developer.intel.com/solutions/tech/dvd.htm

DVD Consumer Website DVD Consumer Website http://www.intel.com/home/dvdhttp://www.intel.com/home/dvd

Industry Enabling Events Website Industry Enabling Events Website http://developer.intel.com/solutions/tech/plugfestshttp://developer.intel.com/solutions/tech/plugfests

DVD Newsgroup DVD Newsgroup http://newsgroups.intel.comhttp://newsgroups.intel.com

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShowDeveloper DaysDeveloper Days

MicrosoftMicrosoft

KeynoteKeynote

Chris PhillipsChris Phillips

Director of Business DevelopmentDirector of Business Development

MicrosoftMicrosoft

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Where We Have BeenWhere We Have Been(Experimenters/Early Adopters)(Experimenters/Early Adopters)

‘‘98 Stats98 Stats–2200+ DVD Titles2200+ DVD Titles–6-8M DVD-ROM drives sold on PCs6-8M DVD-ROM drives sold on PCs

New tests of ContentNew tests of Content–Lost in Space = PC enhanced DVD VideoLost in Space = PC enhanced DVD Video–Encarta = DVD video enhanced PC contentEncarta = DVD video enhanced PC content

Industry maturationIndustry maturation–Start of volume shipmentsStart of volume shipments

– Win98 shipped, start of CD-ROM replacementWin98 shipped, start of CD-ROM replacement

–Web volume distributionWeb volume distribution

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Where We Are TodayWhere We Are Today(Early Adopters/Leaders)(Early Adopters/Leaders)Current run rateCurrent run rate

–PC = 1.6M drives per monthPC = 1.6M drives per month–Over 10 times the volume of DVD Video Over 10 times the volume of DVD Video

playersplayersWeb is key to successWeb is key to success

–Very high Web attach rate for DVD ownersVery high Web attach rate for DVD owners–Source of information = grab mindshare Source of information = grab mindshare

and communicate directlyand communicate directly– news, release schedules, popularity voting, news, release schedules, popularity voting,

genre, ratingsgenre, ratings–Sales and rentalsSales and rentals

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Where Are We HeadedWhere Are We Headed(Leaders/Followers)(Leaders/Followers)

‘‘99 Projections99 Projections–By X’mas ‘99 80% of New Consumer PCs will have By X’mas ‘99 80% of New Consumer PCs will have

DVD-ROMDVD-ROM–30M installed30M installed

PC enhanced content will be normPC enhanced content will be norm–Utilization of PC and Web (hybrid applications)Utilization of PC and Web (hybrid applications)

ISV distribution on DVD (ex. MSDN)ISV distribution on DVD (ex. MSDN)Web importance will continue to growWeb importance will continue to grow

–customer communication and informationcustomer communication and information–e-commercee-commerce

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

MS DVD StrategyMS DVD StrategyExploit PC for value-added Exploit PC for value-added

enhancements to A/V contentenhancements to A/V content–Dshow - highly flexible platform for Dshow - highly flexible platform for

developersdevelopers–WMP - a set of universal client controlsWMP - a set of universal client controls

Standardization of platformStandardization of platform–Content creators have reliable publishing Content creators have reliable publishing

targettarget–Work with industry to incorporate Work with industry to incorporate

technology advancestechnology advancesPC DVD is the superset for contentPC DVD is the superset for content

–PC enhanced DVD contentPC enhanced DVD content

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Windows Media PlayerWindows Media PlayerMicrosoft ActiveX controlMicrosoft ActiveX control

– Standalone -- standardized but customizable, Standalone -- standardized but customizable, consumer-oriented playerconsumer-oriented player

– Can be embedded in Internet Explorer, Netscape Can be embedded in Internet Explorer, Netscape Navigator, PowerPoint, etc.Navigator, PowerPoint, etc.

Simple high-level interface to DirectShow APISimple high-level interface to DirectShow API– Visual Basic, VBScript, JavaScript, etc.Visual Basic, VBScript, JavaScript, etc.

Universal clientUniversal client– Eliminates needs for multiple playersEliminates needs for multiple players– Streaming audio/videoStreaming audio/video

DVD playback supportDVD playback support– MPEG-2, DVD-VideoMPEG-2, DVD-Video

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Media Player User InterfaceMedia Player User Interface

Video panelVideo panel

Seek barSeek bar

Go To barGo To bar

Status barStatus bar

Menu barMenu bar

Play barPlay bar

Display panelDisplay panel

CaptioningCaptioning

Ad bannerAd banner

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Windows Interactive DVDWindows Interactive DVDPC enhancement to DVD contentPC enhancement to DVD contentDVD enhancements to traditional PC DVD enhancements to traditional PC

contentcontentWeb technology is a key ingredientWeb technology is a key ingredient

–customizable faceplates and UIcustomizable faceplates and UI–dynamic data integrationdynamic data integration–easy to authoreasy to author–supports an endless amount of business supports an endless amount of business

opportunityopportunity

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShowDeveloper DaysDeveloper Days

MicrosoftMicrosoft

DVD DirectShowDVD DirectShow** Training Training

* Third-party marks and brands are the property of their respective owners.

Kirk DunsavageKirk Dunsavage Diana Shea Diana SheaSW EngineerSW Engineer SW EngineerSW Engineer

Intel CorporationIntel Corporation

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShowDeveloper DaysDeveloper Days

MicrosoftMicrosoft

DVD DirectShowDVD DirectShow** Training Training

* Third-party marks and brands are the property of their respective owners.

Jim Taylor & Kilroy HughesJim Taylor & Kilroy HughesDirectShow DVD SW EvangelistsDirectShow DVD SW Evangelists

MicrosoftMicrosoft

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

OverviewOverviewTraining Goals:Training Goals:

Gain an understanding of DirectShow Gain an understanding of DirectShow infrastructureinfrastructure

Understand the DVD and MPEG-2 support Understand the DVD and MPEG-2 support available in DirectShowavailable in DirectShow

Discuss COM and application Discuss COM and application development with DirectShow APIsdevelopment with DirectShow APIs

Author MPEG-2 video and audio streams Author MPEG-2 video and audio streams that look/sound good on the PCthat look/sound good on the PC

* Third-party marks and brands are the property of their respective owners.

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

18

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow Training DirectShow Training Agenda:Agenda:DVD OverviewDVD OverviewWhy DirectShowWhy DirectShowCOM Overview / COM Overview /

BasicsBasicsDirectShow Basics / DirectShow Basics /

ComplianceComplianceApplication Application

Development & Development & ToolsTools

* Third-party marks and brands are the property of their respective owners.

DVD-V / MPEG DVD-V / MPEG SupportSupport

Overlay Mixer / Overlay Mixer / DDraw Xcl ModeDDraw Xcl Mode

Asset CreationAsset CreationTips & TricksTips & TricksWindows Media Windows Media

PlayerPlayer

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DVD OverviewDVD Overview

DVD-Video and DVD-ROMDVD-Video and DVD-ROM–Both are key components of now and Both are key components of now and

future Windowsfuture Windows

–All Microsoft support provided by All Microsoft support provided by DirectShowDirectShow

–Goal to make Windows the best DVD Goal to make Windows the best DVD playerplayer

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Not Just CD-ROM All Over Not Just CD-ROM All Over AgainAgainMajority of DVD PCs will use DirectShowMajority of DVD PCs will use DirectShowDirectShow and Windows 98 logo guarantee DirectShow and Windows 98 logo guarantee

compatibility and performance that CD-ROM compatibility and performance that CD-ROM and MCI never hadand MCI never had

More storage (7x to 25x)More storage (7x to 25x)High guaranteed data ratesHigh guaranteed data ratesMovie-like video and audioMovie-like video and audioFocus of DTV and digital convergenceFocus of DTV and digital convergence

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Where Did CD-ROM Where Did CD-ROM Go Wrong?Go Wrong?Poor audio/video qualityPoor audio/video qualityPoor compatibilityPoor compatibilityUnclear consumer expectations Unclear consumer expectations

outside of imitating video games and outside of imitating video games and booksbooks

Chaotic and competitive retail channelChaotic and competitive retail channel

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

What Can DVD-ROM Do What Can DVD-ROM Do Right?Right?DVD-Video brings interactivity to the moviesDVD-Video brings interactivity to the moviesDVD-ROM brings the movies to interactivityDVD-ROM brings the movies to interactivityHigh-impact, dramatic, realistic video and High-impact, dramatic, realistic video and

audioaudio– Better picture than TVBetter picture than TV

– Better sound than CDBetter sound than CD

Guaranteed level of performanceGuaranteed level of performance– 10 Mbps (1x), 20 Mbps (2x)10 Mbps (1x), 20 Mbps (2x)

– Defacto standards: MPEG-2, 5.1-channel Dolby Defacto standards: MPEG-2, 5.1-channel Dolby DigitalDigital

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Movie-Like MultimediaMovie-Like Multimedia

Consumers expect TV qualityConsumers expect TV qualityPC + DVD = true A/V machine (finally!)PC + DVD = true A/V machine (finally!)

–MPEG-2 video is near studio master MPEG-2 video is near studio master qualityquality

–Dolby Digital is theater surround qualityDolby Digital is theater surround quality

–Multiple languages, seamless branchingMultiple languages, seamless branching

Desktop MPEG-2 encoding and DVD-Desktop MPEG-2 encoding and DVD-Video formatting is happening Video formatting is happening

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DVD Raises the BarDVD Raises the Bar

Acceptable to snooty creative typesAcceptable to snooty creative typesAccommodates high production Accommodates high production

valuesvaluesPaves the way for DTV and HDTVPaves the way for DTV and HDTVProvides high sensory impactProvides high sensory impactClosely simulates realityClosely simulates realityOpens new niche marketsOpens new niche marketsVast unexplored potentialVast unexplored potential

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Where is the DVD Market?Where is the DVD Market?

DVD-Video players: about 700,000DVD-Video players: about 700,000–About 3 million by end of 1999About 3 million by end of 1999

–About 2,500 titlesAbout 2,500 titles

DVD-ROM PCs: about 7,000,000DVD-ROM PCs: about 7,000,000–Over 35M by end of 1999Over 35M by end of 1999

–About 100 titles published (most bundled)About 100 titles published (most bundled)

DVD-ROM 10X market, 1% competitionDVD-ROM 10X market, 1% competition

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Microsoft DirectShow Microsoft DirectShow DVD MilestonesDVD MilestonesNov. ‘97 - DXM 5.1 SDK, first DVD Nov. ‘97 - DXM 5.1 SDK, first DVD

support in DirectShowsupport in DirectShowApr. ‘98 - DXM 5.2b SDK, PAL support Apr. ‘98 - DXM 5.2b SDK, PAL support

and other enhancementsand other enhancementsJun. ‘98 - Windows 98, DVD support Jun. ‘98 - Windows 98, DVD support

built into Windows operating systembuilt into Windows operating systemSep. ‘98 - DXM 6.0 SDK, MPEG-2 Sep. ‘98 - DXM 6.0 SDK, MPEG-2

splitter, exclusive mode, multifilesplitter, exclusive mode, multifile

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Levels of DevelopmentLevels of DevelopmentLevel Zero Level Zero - Data and software; no - Data and software; no

MPEG-2 requirementsMPEG-2 requirementsLevel One Level One - ISO MPEG-2; no authoring - ISO MPEG-2; no authoring

required; won’t play on DVD-Video required; won’t play on DVD-Video playersplayers

Level Two Level Two - DVD-Video 1.0 spec and - DVD-Video 1.0 spec and DirectShow; works in DVD-Video DirectShow; works in DVD-Video player and DVD-ROM PCplayer and DVD-ROM PC

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Types of ApplicationsTypes of ApplicationsPure Pure (DVD-V)(DVD-V)Bonus Bonus (DVD-V + computer supplements)(DVD-V + computer supplements)Augmented Augmented (DVD-V+ computer (DVD-V+ computer

enhancements)enhancements)Split Split (independent DVD-V and computer (independent DVD-V and computer

content)content)Multimedia Multimedia (DVD-ROM with audio and (DVD-ROM with audio and

video)video)Data Data (DVD-ROM with data or (DVD-ROM with data or

applications)applications)

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

29

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow Training DirectShow Training Agenda:Agenda:DVD OverviewDVD OverviewWhy DirectShowWhy DirectShowCOM Overview / COM Overview /

BasicsBasicsDirectShow Basics / DirectShow Basics /

ComplianceComplianceApplication Application

Development & Development & ToolsTools

* Third-party marks and brands are the property of their respective owners.

DVD-V / MPEG DVD-V / MPEG SupportSupport

Overlay Mixer / Overlay Mixer / DDraw Xcl ModeDDraw Xcl Mode

Asset CreationAsset CreationTips & TricksTips & TricksWindows Media Windows Media

PlayerPlayer

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Why DirectShow?Why DirectShow?Definition:Definition:

Object-oriented, software framework Object-oriented, software framework designed for capturing multimedia designed for capturing multimedia streams from devices and playing streams from devices and playing back multimedia streams (such as back multimedia streams (such as video and audio) from local files or video and audio) from local files or from the Internetfrom the Internet

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Why DirectShow?Why DirectShow?What is it?What is it?Consists of flexible, filter-based Consists of flexible, filter-based

architecture divided into source, architecture divided into source, transform, and render categories transform, and render categories

Pluggable components provide Pluggable components provide maximum flexibility and ease of (re)usemaximum flexibility and ease of (re)use–Can use standard filters out of the boxCan use standard filters out of the box

–Or develop your own customized filtersOr develop your own customized filters

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Why DirectShow?Why DirectShow?Major Benefits:Major Benefits:

Solves interoperability issuesSolves interoperability issues–Provides standard APIs for DVD-Video Provides standard APIs for DVD-Video

and MPEG-2 file playbackand MPEG-2 file playback

Standardized solutions for existing Standardized solutions for existing issues:issues:–DirectDraw* Exclusive ModeDirectDraw* Exclusive Mode

–DirectDraw* Instance SharingDirectDraw* Instance Sharing

–Aspect ratio correctionAspect ratio correction

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Why DirectShow?Why DirectShow?What About MCI?What About MCI? MCI can’t provide the robustness and MCI can’t provide the robustness and

full feature set needed for DVDfull feature set needed for DVDSPA’s MCI API is a limited, short-term SPA’s MCI API is a limited, short-term

solutionsolutionDirectShow provides backward-DirectShow provides backward-

compatible MCI features and API for compatible MCI features and API for other formats, but not DVDother formats, but not DVD

* Third-party marks and brands are the property of their respective owners.

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

34

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow Training DirectShow Training Agenda:Agenda:DVD OverviewDVD OverviewWhy DirectShowWhy DirectShowCOM Overview / COM Overview /

BasicsBasicsDirectShow Basics / DirectShow Basics /

ComplianceComplianceApplication Application

Development & Development & ToolsTools

* Third-party marks and brands are the property of their respective owners.

DVD-V / MPEG DVD-V / MPEG SupportSupport

Overlay Mixer / Overlay Mixer / DDraw Xcl ModeDDraw Xcl Mode

Asset CreationAsset CreationTips & TricksTips & TricksWindows Media Windows Media

PlayerPlayer

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

COM OverviewCOM OverviewWhat is COM:What is COM:COM = Component Object ModelCOM = Component Object Model

– a framework for “componentized” a framework for “componentized” software with components that can be software with components that can be written in multiple programming languageswritten in multiple programming languages

A binary-compatibility modelA binary-compatibility model– permits use of binary objects without need permits use of binary objects without need

for source code to those objectsfor source code to those objects

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

COM OverviewCOM OverviewWhy COM:Why COM:Solves “Fragile Base Classes” problemSolves “Fragile Base Classes” problem

– If change an interface in non-COM If change an interface in non-COM programming, then need to recompile programming, then need to recompile programs that use that class interface.programs that use that class interface.

– In COM, interfaces remain fixed. New In COM, interfaces remain fixed. New interfaces are added to support additional interfaces are added to support additional functionality.functionality.

Apps only obtain pointers to interfaces Apps only obtain pointers to interfaces and never actually create objectsand never actually create objects

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

COM BasicsCOM BasicsGetting Started:Getting Started:InitializationInitialization

– COM framework must be set up and COM framework must be set up and ripped down by application ripped down by application

– Call Call CoInitialize()CoInitialize() or or OleInitialize()OleInitialize() to to prepare COM libraries before useprepare COM libraries before use

– Call Call CoUninitialize()CoUninitialize() or or OleUnitialize()OleUnitialize() to to release COM resources after donerelease COM resources after done

Can’t use COM without taking these Can’t use COM without taking these “basic” steps!“basic” steps!

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

COM BasicsCOM BasicsCOM Objects/Interfaces:COM Objects/Interfaces:Creating objectsCreating objects

– Call Call CoCreateInstance()CoCreateInstance() or or CoGetClassObject()CoGetClassObject() with the desired class GUID / CLSID / UUIDwith the desired class GUID / CLSID / UUID

– Returns a pointer to Returns a pointer to requestedrequested interface for the interface for the classclass

Obtaining COM interfacesObtaining COM interfaces

– Call Call QueryInterface()QueryInterface() on created interface with on created interface with UUIDs of any other desired interfacesUUIDs of any other desired interfaces

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

COM BasicsCOM BasicsCOM Reference Counting:COM Reference Counting:

BEWARE of reference counting!!!BEWARE of reference counting!!!

– Most difficult area to deal with in COM programmingMost difficult area to deal with in COM programming

– “ “Most” interfaces follow COM rules, but some do notMost” interfaces follow COM rules, but some do not

– Usually trial-and-error is only way to tellUsually trial-and-error is only way to tell

Releasing objects/interfacesReleasing objects/interfaces– Code should be sure to use Code should be sure to use AddRef()AddRef() and and Release()Release()

properly or risk memory leaks and properly or risk memory leaks and danglingdangling referencesreferences

– It is very easy to forget to release interfaces!It is very easy to forget to release interfaces!

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

COM BasicsCOM BasicsSample Code:Sample Code:// Instantiate the Microsoft Video Renderer filter// Instantiate the Microsoft Video Renderer filter

hres = CoCreateInstance(CLSID_VideoRenderer,hres = CoCreateInstance(CLSID_VideoRenderer, // Microsoft Video Renderer Class ID// Microsoft Video Renderer Class ID

NULL,NULL, // no aggregation// no aggregation

CLSCTX_INPROC_SERVER,CLSCTX_INPROC_SERVER, // FGM is DLL not EXE// FGM is DLL not EXE

IID_IBaseFilter,IID_IBaseFilter,

(void**)&pVideoRenderer);(void**)&pVideoRenderer);

if (FAILED(hres))if (FAILED(hres))

{{

AfxMessageBox("Can't create MS video renderer for line 21 output");AfxMessageBox("Can't create MS video renderer for line 21 output");

return E_FAIL;return E_FAIL;

}}

elseelse

{{

m_pVideoRenderer2 = pVideoRenderer;m_pVideoRenderer2 = pVideoRenderer;

m_pVideoRenderer2->AddRef();m_pVideoRenderer2->AddRef();

}}

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

COM BasicsCOM BasicsSample Code:Sample Code:

hres = m_pVideoRenderer2->QueryInterface(IID_IBasicVideo, (LPVOID*)&m_pIBasicVideo);hres = m_pVideoRenderer2->QueryInterface(IID_IBasicVideo, (LPVOID*)&m_pIBasicVideo);

if(SUCCEEDED(hres))if(SUCCEEDED(hres))

{{

DbgLog((LOG_TRACE, TRACE_LVL_INFO, TEXT("Obtained IBasicVideo interface")));DbgLog((LOG_TRACE, TRACE_LVL_INFO, TEXT("Obtained IBasicVideo interface")));

long left, top, width, height;long left, top, width, height;

hres = m_pIBasicVideo->GetDestinationPosition(&left, &top, &width, &height);hres = m_pIBasicVideo->GetDestinationPosition(&left, &top, &width, &height);

if (FAILED(hres))if (FAILED(hres))

{{

DbgLog((LOG_TRACE, TRACE_LVL_CRITICAL, TEXT("Could not get target rect for video control")));DbgLog((LOG_TRACE, TRACE_LVL_CRITICAL, TEXT("Could not get target rect for video control")));

}}

elseelse

{{

DbgLog((LOG_TRACE, TRACE_LVL_INFO, TEXT("Video control target rect: left: %d, top: %d, width: %d, DbgLog((LOG_TRACE, TRACE_LVL_INFO, TEXT("Video control target rect: left: %d, top: %d, width: %d, height: %d"),left,top,width,height));height: %d"),left,top,width,height));

}}

}}

elseelse

{{

m_pIBasicVideo = NULL;m_pIBasicVideo = NULL;

DbgLog((LOG_TRACE, TRACE_LVL_CRITICAL, TEXT("Could not get IBasicVideo interface")));DbgLog((LOG_TRACE, TRACE_LVL_CRITICAL, TEXT("Could not get IBasicVideo interface")));

return E_FAIL;return E_FAIL;

}}

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

42

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow Training DirectShow Training Agenda:Agenda:DVD OverviewDVD OverviewWhy DirectShowWhy DirectShowCOM Overview / COM Overview /

BasicsBasicsDirectShow Basics / DirectShow Basics /

ComplianceComplianceApplication Application

Development & Development & ToolsTools

* Third-party marks and brands are the property of their respective owners.

DVD-V / MPEG DVD-V / MPEG SupportSupport

Overlay Mixer / Overlay Mixer / DDraw Xcl ModeDDraw Xcl Mode

Asset CreationAsset CreationTips & TricksTips & TricksWindows Media Windows Media

PlayerPlayer

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow BasicsDirectShow BasicsDirectXDirectX® ® ::OS-level compatibility for h/w and s/wOS-level compatibility for h/w and s/wHardware independenceHardware independenceDirectX FoundationDirectX Foundation

–DirectDraw, DirectSound, …DirectDraw, DirectSound, …DirectX MediaDirectX Media

–DirectShow, DirectAnimation, Direct3D, DirectShow, DirectAnimation, Direct3D, Windows Media Player, …Windows Media Player, …

–MCI and ActiveMovie replaced by MCI and ActiveMovie replaced by DirecShowDirecShow

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Hardware

DirectX FoundationDirectX Foundation

DirectX MediaDirectX Media

ApplicationApplication

DirectShow BasicsDirectShow BasicsDirectX Media:DirectX Media:

Builds on DirectX foundation for efficient Builds on DirectX foundation for efficient access to hardwareaccess to hardware– DirectDrawDirectDraw®® for hardware 2D acceleration for hardware 2D acceleration

– DirectSoundDirectSound®® for audio mixing and low-latency for audio mixing and low-latency audioaudio

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow BasicsDirectShow BasicsDirectShow:DirectShow:The streaming audio/video component of The streaming audio/video component of

DirectXDirectX® ® MediaMediaEasy-to-use architecture for Easy-to-use architecture for

controlling and processing streams of controlling and processing streams of multimedia datamultimedia data

Built into Windows 98 and Windows 2000, Built into Windows 98 and Windows 2000, can be installed on Windows 95can be installed on Windows 95– Same API for all OSesSame API for all OSes

– Third-party decodersThird-party decoders

– NT 4.0 and Win 95: no WDM driversNT 4.0 and Win 95: no WDM drivers

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow BasicsDirectShow BasicsDirectShow features:DirectShow features:Full screen, high-quality digital audio/video Full screen, high-quality digital audio/video

playbackplayback– AVI, WAV, MIDI, AIFF, AU, QuickTime™AVI, WAV, MIDI, AIFF, AU, QuickTime™– MPEG, DV, Indeo™ 5, Truemotion™MPEG, DV, Indeo™ 5, Truemotion™– DVD playback (MPEG-2, Dolby Digital)DVD playback (MPEG-2, Dolby Digital)

– DVD-Video player emulationDVD-Video player emulation

Digital audio/video captureDigital audio/video capture– AVI files, DV (IEEE 1934/FireWire)AVI files, DV (IEEE 1934/FireWire)– Video input, such as TV tunersVideo input, such as TV tuners

AccessibilityAccessibility– Closed caption, SAMIClosed caption, SAMI

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow BasicsDirectShow BasicsDirectShow API:DirectShow API:Stable, standardized API for DVD-ROM Stable, standardized API for DVD-ROM

programmersprogrammers– ““Virtual machine” handles hardware/ Virtual machine” handles hardware/

software decode, WDM drivers, demuxing, software decode, WDM drivers, demuxing, navigation, motion comp, UDF, overlay, navigation, motion comp, UDF, overlay, colorkey, VPE, CSS, APS, regions, ...colorkey, VPE, CSS, APS, regions, ...

COM for C++COM for C++Windows Media Player for HTML, VB, Windows Media Player for HTML, VB,

apps, multimedia authoring, VBA, etc.apps, multimedia authoring, VBA, etc.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow BasicsDirectShow BasicsDVD support:DVD support:DVD-Video navigationDVD-Video navigationMPEG-2 and Dolby Digital (AC-3) MPEG-2 and Dolby Digital (AC-3) **Copyright protection (CSS and Copyright protection (CSS and

Macrovision)Macrovision)Region managementRegion managementParental controlParental controlUDF file systemUDF file system

*3*3rdrd party decoder party decoder

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow BasicsDirectShow BasicsDVD components:DVD components:Source filter:Source filter:

–DVD Navigator, Async File, Multifile, etc.DVD Navigator, Async File, Multifile, etc.

Transform filter:Transform filter:–Video decoder, audio decoder, subpicture Video decoder, audio decoder, subpicture

decoder, MPEG-2 splitter, audio decoder, MPEG-2 splitter, audio processor, etc.processor, etc.

Render filter:Render filter:–Overlay mixer, video renderer, audio Overlay mixer, video renderer, audio

rendererrenderer

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow BasicsDirectShow BasicsFuture directions:Future directions:Security: signed filter graphsSecurity: signed filter graphsDynamic filter graphs allow content to Dynamic filter graphs allow content to

change without rebuilding graphchange without rebuilding graphDirectShow support for DirectMusicDirectShow support for DirectMusicAdditional interactive DVD supportAdditional interactive DVD supportComplete capture and editing solutionComplete capture and editing solution

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow ComplianceDirectShow ComplianceOverview:Overview:

General rules should be followed when General rules should be followed when developing apps with DirectShow for DVD-developing apps with DirectShow for DVD-Video and MPEG-2 playbackVideo and MPEG-2 playback

Specify that certain basic DirectShow Specify that certain basic DirectShow components and interfaces should be components and interfaces should be utilized for an application to be utilized for an application to be “DirectShow-“DirectShow-compliant”compliant”

Good NewsGood News: Tools are available to help here!: Tools are available to help here!

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow ComplianceDirectShow ComplianceDVD-Video:DVD-Video:DVD-Video RequirementsDVD-Video Requirements

– MS DVD Navigator and MS Overlay Mixer MS DVD Navigator and MS Overlay Mixer standard components need to be utilizedstandard components need to be utilized

– IDVDGraphBuilder::RenderDVDVideoVolume()IDVDGraphBuilder::RenderDVDVideoVolume() intelligent graph-building needs to be supportedintelligent graph-building needs to be supported

– Do not build graph “manually”!Do not build graph “manually”!

– Doing so will be more hassle than its worthDoing so will be more hassle than its worth

– IDvdControlIDvdControl and and IDvdInfoIDvdInfo interfaces should be interfaces should be used for DVD-specific operationsused for DVD-specific operations

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow ComplianceDirectShow ComplianceMPEG-2:MPEG-2:MPEG RequirementsMPEG Requirements

– MS ISO MPEG-2 Splitter is strongly suggestedMS ISO MPEG-2 Splitter is strongly suggested– MS Overlay Mixer component needs to be utilizedMS Overlay Mixer component needs to be utilized– IGraphBuilder::RenderFile()IGraphBuilder::RenderFile() intelligent intelligent

graphbuilding mechanism needs to be supportedgraphbuilding mechanism needs to be supported– Just means correct media types need to be supported Just means correct media types need to be supported

by DirectShow filtersby DirectShow filters

– Use standard DirectShow interfaces for all Use standard DirectShow interfaces for all operationsoperations

– Private interfaces to perform operations that can be Private interfaces to perform operations that can be done via DirectShow standard interfaces should be done via DirectShow standard interfaces should be avoidedavoided

* Third-party marks and brands are the property of their respective owners.

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

54

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow Training DirectShow Training Agenda:Agenda:DVD OverviewDVD OverviewWhy DirectShowWhy DirectShowCOM Overview / COM Overview /

BasicsBasicsDirectShow Basics / DirectShow Basics /

ComplianceComplianceApplication Application

Development & Development & ToolsTools

* Third-party marks and brands are the property of their respective owners.

DVD-V / MPEG DVD-V / MPEG SupportSupport

Overlay Mixer / Overlay Mixer / DDraw Xcl ModeDDraw Xcl Mode

Asset CreationAsset CreationTips & TricksTips & TricksWindows Media Windows Media

PlayerPlayer

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Application DevelopmentApplication DevelopmentGetting Started:Getting Started:

SDKsSDKs–DirectXMedia* (DirectXMedia* (DirectShowDirectShow))

–DirectXFoundation (DirectXFoundation (DirectDraw* / DirectDraw* / DirectSound*DirectSound*))

–DirectShow compliant DVD decode DirectShow compliant DVD decode solutionsolution

–Attend DirectShow porting/testing lab!!!Attend DirectShow porting/testing lab!!!

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Application DevelopmentApplication DevelopmentBuilding the Graph (DVD-Video):Building the Graph (DVD-Video): Utilize Utilize IDVDGraphBuilder:: IDVDGraphBuilder::

RenderDVDVideoVolume()RenderDVDVideoVolume()– Simplifies hardest DShow Simplifies hardest DShow

COM-related issues for DVD COM-related issues for DVD (filtergraph construction & (filtergraph construction & destruction) destruction)

– Is an abstraction layer on top Is an abstraction layer on top of filtergraphof filtergraph

– Set filtergraph build Set filtergraph build preferences via preferences via AM_DVD_GRAPH_FLAGSAM_DVD_GRAPH_FLAGS

– Check return flags for errors Check return flags for errors via via AM_DVD_RENDERSTATUSAM_DVD_RENDERSTATUS

Other RequirementsOther Requirements– Decode filters must Decode filters must

support correct media support correct media types to perform types to perform intelligent connection intelligent connection (see DXMedia help (see DXMedia help section section “DVD Media “DVD Media Types and Formats”Types and Formats”))

– App must manually set App must manually set up event handlingup event handling

– App must capture App must capture mouse events to support mouse events to support navigationnavigation

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Application DevelopmentApplication DevelopmentBuilding the Graph (MPEG-2):Building the Graph (MPEG-2):

Use Use IGraphBuilder:: IGraphBuilder:: Renderfile()Renderfile()

– Less abstraction from Less abstraction from filtergraph details filtergraph details providedprovided

– Cannot build a filtergraph Cannot build a filtergraph without playback file without playback file chosen (not case for chosen (not case for IDVDGraphBuilderIDVDGraphBuilder))

– Check returned HRESULT Check returned HRESULT for build errorsfor build errors

– Apps should not use Apps should not use IFilterGraphIFilterGraph directly! directly!

Other RequirementsOther Requirements– Decode filters must Decode filters must

support correct media support correct media types to perform types to perform intelligent connection, intelligent connection, PES or native formats PES or native formats critical here (see critical here (see DXMedia help on this DXMedia help on this “MPEG-2 Kernel Media “MPEG-2 Kernel Media Types”Types”))

– App must manually set App must manually set up event handlingup event handling

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Application DevelopmentApplication DevelopmentSupporting Navigation:Supporting Navigation:

Applications must tie into event loop for output video Applications must tie into event loop for output video window (since video renderer initially owns output window (since video renderer initially owns output video window)video window)

– Done via Done via IVideoWindow::put_MessageDrain()IVideoWindow::put_MessageDrain()

Take ownership of window for control of window (as Take ownership of window for control of window (as in compound documents) in compound documents)

– Done via Done via IVideoWindow::put_Owner()IVideoWindow::put_Owner()

– Don’t forget Don’t forget IVideoWindow::put_Owner(NULL)IVideoWindow::put_Owner(NULL) when done when done with filtergraph!with filtergraph!

Call Call IDVDControl::MouseSelect()IDVDControl::MouseSelect() or or IDVDControl::MouseActivate()IDVDControl::MouseActivate() for mouse clicks for mouse clicks

– No coordinate transformation needed (are client-area coords)No coordinate transformation needed (are client-area coords)

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Application DevelopmentApplication DevelopmentFiltergraph EventsFiltergraph Events::

Events are an “integral” part of communication with Events are an “integral” part of communication with filtergraph (especially for DVD-Video)filtergraph (especially for DVD-Video)

– Decoupled thru queuing scheme rather than callbacks Decoupled thru queuing scheme rather than callbacks (allows worker threads to signal events when can’t safely (allows worker threads to signal events when can’t safely call back into app code)call back into app code)

IMediaEvent::GetEvent()IMediaEvent::GetEvent() pulls events off of queue pulls events off of queue – Don’t forget Don’t forget IMediaEvent:: FreeEventParams()IMediaEvent:: FreeEventParams() when done!when done!

– Can spawn separate thread to wait on a event handle Can spawn separate thread to wait on a event handle obtained from obtained from IMediaEvent::GetEventHandle()IMediaEvent::GetEventHandle() or or IMediaEventEx::SetNotifyWindow()IMediaEventEx::SetNotifyWindow() can set a window to can set a window to receive signaled events from filtergraph if desiredreceive signaled events from filtergraph if desired

Place graph in a consistent state and handle events Place graph in a consistent state and handle events appropriately (be aware that filters in graph can get appropriately (be aware that filters in graph can get into differing states)into differing states)

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Application DevelopmentApplication DevelopmentCombining Gaming and Video:Combining Gaming and Video:

DVD interactive games DVD interactive games have two components:have two components:– DVD playbackDVD playback

– Game engineGame engine

DVD playback & game DVD playback & game engine use same engine use same system resourcessystem resourcesDirectX Foundation*

Graphics/Audio HW

DVD DecodeEngine

DVD Playback

API

DVDInteractive Application

GameEngine

Application must manage Application must manage resource usage!!resource usage!!

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Application DevelopmentApplication DevelopmentCombining Gaming and Video:Combining Gaming and Video:

DirectShow provides API’s to allow DirectShow provides API’s to allow applications to manage DirectDraw* applications to manage DirectDraw* resourcesresources– Use Use IDDrawExclModeVideoIDDrawExclModeVideo to: to:

– Get/Set DirectDraw instance on DVD filtergraphGet/Set DirectDraw instance on DVD filtergraph

– Get / Set surface pointer on DVD filtergraphGet / Set surface pointer on DVD filtergraph

– Solve DDraw Exclusive mode issuesSolve DDraw Exclusive mode issues

– UseUse IDirectDraw2:: GetAvailableVidMem() IDirectDraw2:: GetAvailableVidMem() while while playing back video to determine amount of local playing back video to determine amount of local video memory required by DVD decode solutionvideo memory required by DVD decode solution

– Typically 2.5 - 3.0MBTypically 2.5 - 3.0MB

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Application DevelopmentApplication DevelopmentDebugging Techniques:Debugging Techniques:

Follow good programming techniquesFollow good programming techniques– Assertion checkingAssertion checking– Pointer validation (Pointer validation (ValidateReadPtr()ValidateReadPtr(), ...), ...)

Utilize debugging informationUtilize debugging information– Debug logging (Debug logging (DbgLog()DbgLog(),, DbgLogInfo() DbgLogInfo(),, ...)...)– Object Register (Object Register (DbgDumpObjectRegister()DbgDumpObjectRegister()))

Filter graph editor and sample filtersFilter graph editor and sample filtersFollow good COM programming rules!Follow good COM programming rules!

– Avoid GUID reuseAvoid GUID reuse– Release all objects/interfaces when doneRelease all objects/interfaces when done

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Application DevelopmentApplication DevelopmentTools:Tools:

GraphEditGraphEdit– Provided with DirectX*Media SDKProvided with DirectX*Media SDK

– Good for testing “raw” filtergraphs for basic Good for testing “raw” filtergraphs for basic functionalityfunctionality

– Does not support anything beyond “basic” Does not support anything beyond “basic” operations (play/stop/pause)operations (play/stop/pause)

– Helps with “first-level” debugging tasksHelps with “first-level” debugging tasks

Intel DQUIK test suiteIntel DQUIK test suite– New release contains DShowTest applicationNew release contains DShowTest application

– Helps to determine how compliant a solution isHelps to determine how compliant a solution is

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Application Development Application Development Tools:Tools:MS GraphEditMS GraphEdit

* Third-party marks and brands are the property of their respective owners.

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

65

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow Training DirectShow Training Agenda:Agenda:DVD OverviewDVD OverviewWhy DirectShowWhy DirectShowCOM Overview / COM Overview /

BasicsBasicsDirectShow Basics / DirectShow Basics /

ComplianceComplianceApplication Application

Development & Development & ToolsTools

* Third-party marks and brands are the property of their respective owners.

DVD-V / MPEG DVD-V / MPEG SupportSupport

Overlay Mixer / Overlay Mixer / DDraw Xcl ModeDDraw Xcl Mode

Asset CreationAsset CreationTips & TricksTips & TricksWindows Media Windows Media

PlayerPlayer

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DVD-Video SupportDVD-Video Support

For content authored as DVD-video For content authored as DVD-video volumesvolumes–Full support of seamless branching, Full support of seamless branching,

angles, chapters, parental levels, etc.angles, chapters, parental levels, etc.DirectShow DVD Navigator filterDirectShow DVD Navigator filterCreate with IDvdGraphBuilderCreate with IDvdGraphBuilderIDvdControl and IDvdInfo interfacesIDvdControl and IDvdInfo interfaces

–Plus a little of IMediaControlPlus a little of IMediaControlSpecific eventsSpecific events

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DVD-Video SupportDVD-Video SupportDVD-Video Filtergraph:DVD-Video Filtergraph:

CODEC VendorCODEC VendorMicrosoftMicrosoft

Content ISVContent ISV

Navigator/Navigator/StreamStreamSplitterSplitter

Video FilterVideo Filter

SubpictureSubpicture FilterFilter

Audio FilterAudio FilterVideo Video

RendererRendererAudio Audio

RendererRenderer

DSoundDSound

Overlay Overlay MixerMixer

DDrawDDraw

CCCCDecodeDecode

DirectShow FiltergraphDirectShow Filtergraph

MS DirectShow APIsMS DirectShow APIs

Movie Player or DirectShow Interactive DVD App

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DVD-Video SupportDVD-Video SupportPrimary Interfaces:Primary Interfaces:IDvdGraphBuilderIDvdGraphBuilder

–Create filtergraph Create filtergraph (RenderDvdVideoVolume)(RenderDvdVideoVolume)

IDvdControlIDvdControl–Control playbackControl playback

–Mirrors all 31 functions defined in “Annex Mirrors all 31 functions defined in “Annex J” of DVD Spec, plus additional methodsJ” of DVD Spec, plus additional methods

IDvdInfoIDvdInfo–Query media info and playback status Query media info and playback status

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DVD-Video SupportDVD-Video SupportIDvdControl Methods:IDvdControl Methods: TitlePlayTitlePlay ChapterPlayChapterPlay TimePlayTimePlay ChapterPlayAutoStopChapterPlayAutoStop GoUpGoUp TimeSearchTimeSearch ChapterSearchChapterSearch PrevPGSearchPrevPGSearch NextPGSearchNextPGSearch TopPGSearchTopPGSearch

ForwardScanForwardScan BackwardScanBackwardScan MenuCallMenuCall ResumeResume MenuLanguageSelectMenuLanguageSelect AudioStreamChangeAudioStreamChange SubpictureStreamChangeSubpictureStreamChange AngleChangeAngleChange ParentalLevelSelectParentalLevelSelect ParentalCountrySelectParentalCountrySelect

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DVD-Video SupportDVD-Video SupportPrimary IDvdControl Methods:Primary IDvdControl Methods:SetRoot()SetRoot()

–Set path to directory containing Set path to directory containing VIDEO_TS directoryVIDEO_TS directory

–Navigator automatically scans drives Navigator automatically scans drives beginning at D: if SetRoot() not calledbeginning at D: if SetRoot() not called

IMediaControl::Run()IMediaControl::Run()–Puts graph into running mode Puts graph into running mode (do first)(do first)

TitlePlay()TitlePlay()–Play a titlePlay a title

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DVD-Video SupportDVD-Video SupportPrimary IDvdControl Methods:Primary IDvdControl Methods:ChapterPlay()ChapterPlay()

– Play chapter in specified titlePlay chapter in specified title

– Also NextPGSearch() and PrevPGSearch()Also NextPGSearch() and PrevPGSearch()

ChapterPlayAutoStop()ChapterPlayAutoStop()– Play range of chapters in titlePlay range of chapters in title

TimePlay()TimePlay()– Play from timecode in specified titlePlay from timecode in specified title

– Use TimeSearch() within current titleUse TimeSearch() within current title

– To play range of time, monitor To play range of time, monitor EC_DVD_CURRENT_TIME eventEC_DVD_CURRENT_TIME event

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DVD-Video SupportDVD-Video SupportPrimary IDvdControl Methods:Primary IDvdControl Methods:ForwardScan() & BackwardScan()ForwardScan() & BackwardScan()

–Variable speed playbackVariable speed playback

–1.0 = normal, 2.0 = 2x, 0.5 = 1/2x1.0 = normal, 2.0 = 2x, 0.5 = 1/2x

–Actual speed is decoder dependent!Actual speed is decoder dependent!

Don’t use PauseOn, PauseOff, Don’t use PauseOn, PauseOff, StopForResumeStopForResume– Instead, use IMediaControl::Pause, Instead, use IMediaControl::Pause,

IMediaControl::StopIMediaControl::Stop

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DVD-Video SupportDVD-Video SupportIMixerPinConfig Methods:IMixerPinConfig Methods:GetColorKey()GetColorKey()

–Find colorkey for graphic overlayFind colorkey for graphic overlay

SetAspectRatioMode()SetAspectRatioMode()–Set to AM_ARMODE_LETTER_BOX to Set to AM_ARMODE_LETTER_BOX to

maintain proper aspect ratiomaintain proper aspect ratio

–A PC should act like a widescreen TVA PC should act like a widescreen TV

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DVD-Video SupportDVD-Video SupportIDvdInfo Methods:IDvdInfo Methods: GetCurrentDomainGetCurrentDomain GetCurrentLocationGetCurrentLocation GetTotalTitleTimeGetTotalTitleTime GetCurrentButtonGetCurrentButton GetCurrentAngleGetCurrentAngle GetCurrentAudioGetCurrentAudio GetCurrentSubpictureGetCurrentSubpicture GetCurrentUOPSGetCurrentUOPS GetAllSPRMsGetAllSPRMs GetAllGPRMsGetAllGPRMs GetAudioLanguageGetAudioLanguage GetSubpictureLanguageGetSubpictureLanguage

GetTitleAttributesGetTitleAttributes GetVMGAttributesGetVMGAttributes GetCurrentVideoAttributesGetCurrentVideoAttributes GetCurrentAudioAttributesGetCurrentAudioAttributes GetCurrentSubpictureAttributesGetCurrentSubpictureAttributes GetCurrentVolumeInfoGetCurrentVolumeInfo GetDVDTextInfoGetDVDTextInfo GetPlayerParentalLevelGetPlayerParentalLevel GetNumberOfChaptersGetNumberOfChapters GetTitleParentalLevelsGetTitleParentalLevels GetRootGetRoot

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DVD-Video SupportDVD-Video SupportEvents: Events: (IMediaEvent::GetEvent, EC_DVD_…)(IMediaEvent::GetEvent, EC_DVD_…)

CHAPTER_STARTCHAPTER_START CURRENT_TIMECURRENT_TIME CHAPTER_AUTOSTOPCHAPTER_AUTOSTOP PLAYBACK_STOPPED PLAYBACK_STOPPED ** ANGLES_AVAILABLEANGLES_AVAILABLE ** ANGLE_CHANGEANGLE_CHANGE AUDIO_STREAM_CHANGEAUDIO_STREAM_CHANGE SUBPICTURE_STREAMSUBPICTURE_STREAM

_CHANGE_CHANGE TITLE_CHANGETITLE_CHANGE DOMAIN_CHANGEDOMAIN_CHANGE

BUTTON_CHANGEBUTTON_CHANGE VALID_UOPS_CHANGE VALID_UOPS_CHANGE PARENTAL_LEVEL_CHANGEPARENTAL_LEVEL_CHANGE PLAYBACK_RATE_CHANGEPLAYBACK_RATE_CHANGE STILL_OFFSTILL_OFF STILL_ONSTILL_ON NO_FP_PGC NO_FP_PGC ERRORERROR WARNINGWARNING

* Not fully functional in DShow 6.0 and earlier* Not fully functional in DShow 6.0 and earlier

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

MPEG SupportMPEG Support

For content authored as MPEG filesFor content authored as MPEG filesAsync source filter or Multifile source Async source filter or Multifile source

filterfilterMPEG-2 Splitter filterMPEG-2 Splitter filterCreate with Create with

IGraphBuilder::RenderFile()IGraphBuilder::RenderFile()IMediaControl, IMediaSeeking, and IMediaControl, IMediaSeeking, and

IMediaInfo interfacesIMediaInfo interfaces

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

MPEG-2 File SupportMPEG-2 File SupportMPEG-2 Filtergraph:MPEG-2 Filtergraph:

CODEC VendorCODEC VendorMicrosoftMicrosoft

Content ISVContent ISV DSoundDSound DDrawDDraw

MS DirectShow APIsMS DirectShow APIs

DirectShow DirectShow Interactive DVD AppInteractive DVD App

Async orAsync orMultifileMultifileSourceSource Video Video

RendererRendererAudio Audio

RendererRenderer

Overlay Overlay MixerMixer

DirectShow FiltergraphDirectShow Filtergraph

VideoVideoFilterFilter

AudioAudioFilterFilter

MPEG-2 MPEG-2 SplitterSplitter

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

MPEG File SupportMPEG File Support

VOB files can be played through VOB files can be played through MPEG-2 splitterMPEG-2 splitter–Can select audio tracksCan select audio tracks

But…But…–Won’t work if CSS encryptedWon’t work if CSS encrypted

–Angles play sequentiallyAngles play sequentially

–Seamless jumps may be out of orderSeamless jumps may be out of order

–No chapter access or eventsNo chapter access or events

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Advantages of MPEG-2 Advantages of MPEG-2 File PlaybackFile PlaybackEasy to premaster; encode and you’re Easy to premaster; encode and you’re

donedoneEasy to test; just double clickEasy to test; just double clickEasy to author; just embed Windows Easy to author; just embed Windows

Media Player in an OLE appMedia Player in an OLE appEasy to name; any name or directory Easy to name; any name or directory

structurestructureSupport for AC-3, PCM, multi-streamSupport for AC-3, PCM, multi-stream

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Disadvantages of Disadvantages of MPEG-2 File PlaybackMPEG-2 File PlaybackNot all hardware decoders support Not all hardware decoders support

PES (Packetized Elementary Stream) PES (Packetized Elementary Stream) decoding requireddecoding required

Won’t play on DVD-Video player Won’t play on DVD-Video player appliancesappliances

Can’t use DVD-Video features like Can’t use DVD-Video features like multiangle, CSS, region management multiangle, CSS, region management (menus, subpictures, seamless (menus, subpictures, seamless branching are done better by PC)branching are done better by PC)

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

MPEG-2 ApplicationsMPEG-2 Applications

Quick PowerPoint presentations with Quick PowerPoint presentations with embedded video; no DVD-V authoringembedded 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 Using the MPEG-2 splitter filter for

interactive video branchinginteractive video branchingDynamic database of video filesDynamic database of video filesNetwork distributed video filesNetwork distributed video filesRecord/play applications with MPEG-2Record/play applications with MPEG-2

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

82

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow Training DirectShow Training Agenda:Agenda:DVD OverviewDVD OverviewWhy DirectShowWhy DirectShowCOM Overview / COM Overview /

BasicsBasicsDirectShow Basics / DirectShow Basics /

ComplianceComplianceApplication Application

Development & Development & ToolsTools

* Third-party marks and brands are the property of their respective owners.

DVD-V / MPEG DVD-V / MPEG SupportSupport

Overlay Mixer / Overlay Mixer / DDraw Xcl ModeDDraw Xcl Mode

Asset CreationAsset CreationTips & TricksTips & TricksWindows Media Windows Media

PlayerPlayer

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Overlay MixerOverlay Mixer What it is:What it is:Standard DirectShow filterStandard DirectShow filterUses DirectDraw* to improve on Uses DirectDraw* to improve on

standard video rendering capabilitiesstandard video rendering capabilitiesFits in graph between video transform Fits in graph between video transform

filter (such as a decoder) and the filter (such as a decoder) and the standard video rendererstandard video renderer

Guarantees use of destination color-Guarantees use of destination color-keyed DDraw hardware overlay for keyed DDraw hardware overlay for video input to its first pinvideo input to its first pin

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Overlay MixerOverlay Mixer What it is:What it is:Mixes secondary video inputs into its Mixes secondary video inputs into its

color-keyed surfacecolor-keyed surfaceAllows use of video port video Allows use of video port video

sources when connected to WDM sources when connected to WDM Stream Class driver via proxy filterStream Class driver via proxy filter

Enables video playback and DDraw Enables video playback and DDraw Exclusive Mode to co-existExclusive Mode to co-exist

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Overlay MixerOverlay Mixer Special features:Special features:

De-interlacingDe-interlacing–Set dwInterlaceFlags in Set dwInterlaceFlags in

VIDEOINFOHEADER2 to indicate VIDEOINFOHEADER2 to indicate interlaced stream and bob/weave optionsinterlaced stream and bob/weave options

–Set each frame’s properties (field? frame? Set each frame’s properties (field? frame? bob? weave?) using IMediaSample2 bob? weave?) using IMediaSample2 (AM_SAMPLE2_PROPERTIES)(AM_SAMPLE2_PROPERTIES)

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Overlay MixerOverlay Mixer Special features:Special features:

Aspect Ratio Correction Aspect Ratio Correction –handles non-square pixel ratioshandles non-square pixel ratios

–Set dwPictAspectRatioX and YSet dwPictAspectRatioX and Y

Copy ProtectionCopy Protection–Set dwCopyProtectFlags to indicate Set dwCopyProtectFlags to indicate

stream duplication permissionsstream duplication permissions

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Overlay MixerOverlay Mixer Special features:Special features:

Frame Re-orderingFrame Re-ordering–Needed for formats such as MPEG-2 Needed for formats such as MPEG-2

where decode order and display order where decode order and display order differdiffer

–Use IDirectDrawMediaSample to save Use IDirectDrawMediaSample to save decoded frames until needed for display decoded frames until needed for display (can unlock sample without losing ref)(can unlock sample without losing ref)

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Overlay MixerOverlay Mixer Note:Note:There are two overlay mixer filters in There are two overlay mixer filters in

SDK - Overlay Mixer and Overlay Mixer2SDK - Overlay Mixer and Overlay Mixer2Differ in format blocks acceptedDiffer in format blocks acceptedMixer2 only accepts Mixer2 only accepts

VIDEOINFOHEADER2VIDEOINFOHEADER2Mixer Classic accepts Mixer Classic accepts

VIDEOINFOHEADER on secondary pins VIDEOINFOHEADER on secondary pins - primarily intended for DVD- primarily intended for DVD

* Third-party marks and brands are the property of their respective owners.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectDraw* Exclusive ModeDirectDraw* Exclusive Mode Enables video playback while in Enables video playback while in

DirectDraw* exclusive full-screen DirectDraw* exclusive full-screen modemode

IDDrawExclModeVideo and IDDrawExclModeVideo and IDDrawExclModeVideoCallbackIDDrawExclModeVideoCallback– implemented in overlay mixerimplemented in overlay mixer

–pass in primary surface and DDraw objectpass in primary surface and DDraw object

See DDrawXcl sample in SDKSee DDrawXcl sample in SDK

* Third-party marks and brands are the property of their respective owners.

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

90

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow Training DirectShow Training Agenda:Agenda:DVD OverviewDVD OverviewWhy DirectShowWhy DirectShowCOM Overview / COM Overview /

BasicsBasicsDirectShow Basics / DirectShow Basics /

ComplianceComplianceApplication Application

Development & Development & ToolsTools

* Third-party marks and brands are the property of their respective owners.

DVD-V / MPEG DVD-V / MPEG SupportSupport

Overlay Mixer / Overlay Mixer / DDraw Xcl ModeDDraw Xcl Mode

Asset CreationAsset CreationTips & TricksTips & TricksWindows Media Windows Media

PlayerPlayer

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Asset Creation - Asset Creation - Production PathProduction PathContent capture or renderContent capture or renderMPEG-2 encode or transcode, AC-3 MPEG-2 encode or transcode, AC-3

encode, subpictures, line 21encode, subpictures, line 21DVD-V author and VOB MultiplexDVD-V author and VOB MultiplexSimulation testSimulation testPremaster an image in UDF/ISO 9660 Premaster an image in UDF/ISO 9660

Bridge FormatBridge FormatBurn a DVD-R or CD-R(W), or DDP 2.0 Burn a DVD-R or CD-R(W), or DDP 2.0

premaster tape for pressingpremaster tape for pressingVerify pressed discsVerify pressed discs

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

AnimationAnimationAvoid too much detailAvoid too much detail

–Low-pass filter for interlaced displayLow-pass filter for interlaced displayRender at 720x540Render at 720x540

–Scaled down to 720x480, then back to 540Scaled down to 720x480, then back to 540–Or render with “D1” pixels (not square)Or render with “D1” pixels (not square)

Render at 24 fps or “30” fpsRender at 24 fps or “30” fps–Encode for 29.97 fps (telecine) Encode for 29.97 fps (telecine)

Antialias stills, motion blurAntialias stills, motion blurLayoff to tape, or transcode in PCLayoff to tape, or transcode in PC

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Graphics for TVGraphics for TVCreate at 720x540 (square pixels)Create at 720x540 (square pixels)

– Scale down to 720x480 Scale down to 720x480

– Action-safe: 5% border for overscanAction-safe: 5% border for overscan

– Title-safe: 10% border for overscanTitle-safe: 10% border for overscan

Antialias, filter, and blurAntialias, filter, and blur– Lines at least 3 pixels wide, especially horizontalLines at least 3 pixels wide, especially horizontal

NTSC colors, don’t saturate, especially redNTSC colors, don’t saturate, especially redLarge textLarge text

– 14-point, bold minimum14-point, bold minimum

– Avoid serifsAvoid serifs

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DVD-Video FormatDVD-Video Format

Physical format: starts with sequential and Physical format: starts with sequential and contiguous DVD-V Zone, then “Other Zone”contiguous DVD-V Zone, then “Other Zone”

Directories: Must have \VIDEO_TS, andDirectories: Must have \VIDEO_TS, andFiles: VTS_01_0.IFO, VTS_01_0.BUP, Files: VTS_01_0.IFO, VTS_01_0.BUP,

VTS_01_0.VOB, VTS_01_1.VOB, etc.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), timeLogical Access: Title, Chapter (PTT), timePresentation: Title, Program Chain (PGC), Presentation: Title, Program Chain (PGC),

Program, Cell, VMGR, Title MenuProgram, Cell, VMGR, Title Menu

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

MPEG-2 Video FormatMPEG-2 Video Format

If files and the directory are not DVD-Video If files and the directory are not DVD-Video playback compliant, don’t name *.VOBplayback compliant, don’t name *.VOB--Name MPEG files *.MPG--Name MPEG files *.MPG

Consider Constant bit rate for time access = Consider Constant bit rate for time access = byte offset into filebyte offset into file

Can still use AC-3 and PCM audio types, Can still use AC-3 and PCM audio types, multichannel, and multistreammultichannel, and multistream

Multi-angle doesn’t work, other DVD-V Multi-angle doesn’t work, other DVD-V features, subpictures, menus, etc. ignoredfeatures, subpictures, menus, etc. ignored

Can play DVD-V VOB’s as volume or fileCan play DVD-V VOB’s as volume or file

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

MPEG Encode and Decode MPEG Encode and Decode for Progressive Displaysfor Progressive DisplaysPC decoders can play film with 480 line PC decoders can play film with 480 line

progressive pictures at 72 Hz refresh progressive pictures at 72 Hz refresh But, telecine, encode and decode must all But, telecine, encode and decode must all

do the frame/field/frame conversion right do the frame/field/frame conversion right Film mode uses progressive_frame=1 and Film mode uses progressive_frame=1 and

repeat_first_field flags to encode 24 field repeat_first_field flags to encode 24 field pairs in 3-2 pattern for 60i playback pairs in 3-2 pattern for 60i playback

Adaptive bob and weave deinterlacing Adaptive bob and weave deinterlacing required, with “prefer bob” logicrequired, with “prefer bob” logic

SMPTE M21.21 and MPEG WG 11 SMPTE M21.21 and MPEG WG 11 considering changes to support proscanconsidering changes to support proscan

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DVD-V Title DesignDVD-V Title Design

Use one_sequential_pgc_title format for Use one_sequential_pgc_title format for time and full operation of other eventstime and full operation of other events

Must be same VOB parameters for entire Must be same VOB parameters for entire VTS (stream number, content type, etc.)VTS (stream number, content type, etc.)

PC uses filename, not physical accessPC uses filename, not physical accessPC can use SetRoot for multiple DVD-V PC can use SetRoot for multiple DVD-V

directories not named \VIDEO_TSdirectories not named \VIDEO_TSFor file play, each *.VOB is a file, 9 VOB’s For file play, each *.VOB is a file, 9 VOB’s

per VTS max, 99 VTS’s maxper VTS max, 99 VTS’s max

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Content TestingContent Testing

DVD-R read errors prevent binary verify, DVD-R read errors prevent binary verify, such as Windiffsuch as Windiff

DVD-R won’t hold 4.7 billion bytesDVD-R won’t hold 4.7 billion bytesDVD-R doesn’t have two layersDVD-R doesn’t have two layersNeed good emulation, Windiff each transferNeed good emulation, Windiff each transferSimulate autorun and installSimulate autorun and installWatch ISO and UDF filenames, character Watch ISO and UDF filenames, character

sets, lengths (Romeo & Joliet)sets, lengths (Romeo & Joliet)Test pressed discs against source treeTest pressed discs against source tree

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

99

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow Training DirectShow Training Agenda:Agenda:DVD OverviewDVD OverviewWhy DirectShowWhy DirectShowCOM Overview / COM Overview /

BasicsBasicsDirectShow Basics / DirectShow Basics /

ComplianceComplianceApplication Application

Development & Development & ToolsTools

* Third-party marks and brands are the property of their respective owners.

DVD-V / MPEG DVD-V / MPEG SupportSupport

Overlay Mixer / Overlay Mixer / DDraw Xcl ModeDDraw Xcl Mode

Asset CreationAsset CreationTips & TricksTips & TricksWindows Media Windows Media

PlayerPlayer

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

* Third-party marks and brands are the property of their respective owners.

Tips and TricksTips and Tricks

Check out the samples! They can Check out the samples! They can often be modified to suit your needs.often be modified to suit your needs.

Documentation is not always Documentation is not always complete. You may end up using the complete. You may end up using the SDK code (base classes and samples) SDK code (base classes and samples) as doc.as doc.

Watch out for COM gotchas like un-Watch out for COM gotchas like un-released references to input samples released references to input samples or interfaces.or interfaces.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

* Third-party marks and brands are the property of their respective owners.

Tips and TricksTips and Tricks

Pay attention to what kind of time you Pay attention to what kind of time you are using - DShow has its own version are using - DShow has its own version (REFERENCE_TIME measured in (REFERENCE_TIME measured in 100ns units).100ns units).

When trying to connect two filters, When trying to connect two filters, make sure you fill out the format make sure you fill out the format blocks associated with the media type blocks associated with the media type fully and correctly.fully and correctly.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

* Third-party marks and brands are the property of their respective owners.

Tips and TricksTips and Tricks

Watch out for dynamic format Watch out for dynamic format changes - they can happen at any changes - they can happen at any time.time.

See Debugging section in C/C++ See Debugging section in C/C++ Reference of SDK for helpful tips.Reference of SDK for helpful tips.

Test filter combination with Graphedt Test filter combination with Graphedt before trying to make it work in an before trying to make it work in an app.app.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

* Third-party marks and brands are the property of their respective owners.

Tips and TricksTips and Tricks

For DVD-ROM volume, use For DVD-ROM volume, use “Boilerplate video” for better “Boilerplate video” for better compatibility with settop playerscompatibility with settop players–Puts up “runs on DVD-ROM PC” messagePuts up “runs on DVD-ROM PC” message

– Included in DXMedia SDK (\samples)Included in DXMedia SDK (\samples)

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

* Third-party marks and brands are the property of their respective owners.

Tips and TricksTips and Tricks

Use SetRoot() to simulate DVD-Video Use SetRoot() to simulate DVD-Video volume on hard drivevolume on hard drive

Watch out for VIDEO_TS directory in Watch out for VIDEO_TS directory in root of hard drive volumes: will root of hard drive volumes: will preempt DVD drivepreempt DVD drive

Don’t trust DVD-R for bit level testingDon’t trust DVD-R for bit level testingUse WHQL-approved PC for testingUse WHQL-approved PC for testing

–Just because it plays movies doesn’t Just because it plays movies doesn’t mean it’s DirectShow compliantmean it’s DirectShow compliant

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Tips and TricksTips and Tricks

Use the right interfaces for the right Use the right interfaces for the right filter (Navigator vs. Splitter).filter (Navigator vs. Splitter).

Don’t throw away those IFO files!Don’t throw away those IFO files!Don’t count on capturing pixels; Don’t count on capturing pixels;

hardware overlay and acceleration hardware overlay and acceleration bypass video memory.bypass video memory.

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Tips and TricksTips and Tricks

DDraw Xcl mode interfaces don’t DDraw Xcl mode interfaces don’t require exclusive mode – use for require exclusive mode – use for graphic overlay.graphic overlay.

Alpha blending not supported yet – Alpha blending not supported yet – use colorkey (via Overlay Mixer).use colorkey (via Overlay Mixer).

Decoders may display previous Decoders may display previous pictures held in buffers on next pictures held in buffers on next playback; encode black or maskplayback; encode black or mask

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Tips and TricksTips and Tricks

For DVD-Video:For DVD-Video:–Be aware of time and data discontinuitiesBe aware of time and data discontinuities

–All content is not authored the same!All content is not authored the same!

–Some content does not conform to DVD Some content does not conform to DVD spec and must be handled carefullyspec and must be handled carefully

–Don’t expect timecode access and events Don’t expect timecode access and events to work if not one_sequential_PGC to work if not one_sequential_PGC

–Don’t expect all decoders to support PES Don’t expect all decoders to support PES and file playback of MPEG-2and file playback of MPEG-2

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

108

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

DirectShow Training DirectShow Training Agenda:Agenda:DVD OverviewDVD OverviewWhy DirectShowWhy DirectShowCOM Overview / COM Overview /

BasicsBasicsDirectShow Basics / DirectShow Basics /

ComplianceComplianceApplication Application

Development & Development & ToolsTools

* Third-party marks and brands are the property of their respective owners.

DVD-V / MPEG DVD-V / MPEG SupportSupport

Overlay Mixer / Overlay Mixer / DDraw Xcl ModeDDraw Xcl Mode

Asset CreationAsset CreationTips & TricksTips & TricksWindows Media Windows Media

PlayerPlayer

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShowDeveloper DaysDeveloper Days

MicrosoftMicrosoft

Interactive DVD with the Interactive DVD with the WindowsWindows®® Media Player Media Player

Kilroy HughesKilroy HughesDirectShow DVD SW EvangelistDirectShow DVD SW Evangelist

Ryan WatkinsRyan WatkinsMultimedia Content Program ManagerMultimedia Content Program Manager

MicrosoftMicrosoft

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Windows Media PlayerWindows Media PlayerNew version to be included with IE5New version to be included with IE5Features: Features:

–OCX for embedded playback of DVD-V, OCX for embedded playback of DVD-V, AudioCD, and most media typesAudioCD, and most media types

–HTA, HTML Applications, run HTML based HTA, HTML Applications, run HTML based applications like executablesapplications like executables

–Add media playback capability to all ActiveX Add media playback capability to all ActiveX compatible applicationscompatible applications

Makes PC enhancement of DVD-V easyMakes PC enhancement of DVD-V easy

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Windows Media PlayerWindows Media PlayerWeb enhanced DVD, enabled by Web enhanced DVD, enabled by

Windows Media PlayerWindows Media PlayerFeatures: Features:

–Combines the best of the Web with the Combines the best of the Web with the audio and video quality of DVD-Videoaudio and video quality of DVD-Video

–Benefits from business models of DVD-Benefits from business models of DVD-Video publishing and Web entertainment, Video publishing and Web entertainment, marketing, and commercemarketing, and commerce

–GUI and functionality updatable via the netGUI and functionality updatable via the net

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Windows Media PlayerWindows Media PlayerDVD-V Capabilities: DVD-V Capabilities:

–Full operation of DVD-Video menus, Full operation of DVD-Video menus, subpictures, closed captions, angles, subpictures, closed captions, angles, regions, CSS, etc.regions, CSS, etc.

–Video access by Title, Chapter, time, angle, Video access by Title, Chapter, time, angle, audio channel, etc.audio channel, etc.

–Scriptable event handling based on video Scriptable event handling based on video time, chapter, Web events, and user eventstime, chapter, Web events, and user events

–Web enhanced DVD-V’s have full backward Web enhanced DVD-V’s have full backward compatibility with settop playerscompatibility with settop players

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Windows Media PlayerWindows Media PlayerWindows Interactive DVD Tool Kit: Windows Interactive DVD Tool Kit:

–Contains full development and playback Contains full development and playback environment for Web enhanced DVD’senvironment for Web enhanced DVD’s

– Includes Windows Media Player SDK with Includes Windows Media Player SDK with sample applications and documentationsample applications and documentation

– Includes Windows 98 Service Pack 1 beta, Includes Windows 98 Service Pack 1 beta, with IE5 and Windows Media Playerwith IE5 and Windows Media Player

– Includes DXFoundation 6.1 beta and Includes DXFoundation 6.1 beta and DXMedia 6.0DXMedia 6.0

– Includes DVD-V titles and HTML samplesIncludes DVD-V titles and HTML samples

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Windows Media PlayerWindows Media PlayerIntroduction to the Introduction to the

Windows Interactive DVD Tool KitWindows Interactive DVD Tool KitInstallation sequenceInstallation sequenceSystem requirementsSystem requirementsDocumentationDocumentationSample applications Sample applications

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

Windows Media PlayerWindows Media PlayerRyan Watkins takes an in depth walk Ryan Watkins takes an in depth walk

through of a DVD-Video application in through of a DVD-Video application in HTML using Windows Media PlayerHTML using Windows Media Player (An interactive presentation -(An interactive presentation -

Your questions are welcome)Your questions are welcome)

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

ForumForumDeveloperDeveloper

IntelIntel

DVD &DVD &DirectShowDirectShow

Developer DaysDeveloper Days

MicrosoftMicrosoft

What Next?What Next?Get the Interactive DVD ToolkitGet the Interactive DVD ToolkitSign up to DirectX Media beta program Sign up to DirectX Media beta program

for the SDK and subsequent releasesfor the SDK and subsequent releasesContact [email protected] [email protected]

for assistancefor assistanceSend us your titles for testing on Send us your titles for testing on

hardware and software not yet hardware and software not yet releasedreleased

Visit the DirectShow DVD Porting LabVisit the DirectShow DVD Porting Lab