Your SlideShare is downloading. ×
1– Introduction To  Direct Show
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

1– Introduction To Direct Show

4,088
views

Published on

Introduction to DirectShow programming 1st of nine lessons

Introduction to DirectShow programming 1st of nine lessons

Published in: Technology, Business

1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
4,088
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
90
Comments
1
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Introduction to DirectShow - 1 Windows Media Streaming Architecture Fast Forward Your Development www.dsp-ip.com
  • 2. Intel - Motivation & Goals DirectShow is the most common architecture for: • STB and IP-STB media streaming and broadcast reception • PC Streaming Goals • Understand STB architecture, its advantages and disadvantages • Fast prototyping and application building for testing and demonstrations Fast Forward Your Development www.dsp-ip.com
  • 3. What is DirectX • DirectX is Microsoft's component based architecture for media processing. • Similar streaming architecture were designed by: ▫ Real ▫ Emblaze (RapidMedia) ▫ Linux (GStreaming) • Media processing ▫ Audio ▫ Video ▫ Transport streams ▫ text. Fast Forward Your Development www.dsp-ip.com
  • 4. DirectX – Why we need it? • Software reusability ▫ Code blocks can be reused and inherited ▫ Common Interfaces • Easy connection between 3rd party modules • Which components? ▫ Compression ▫ color conversion ▫ audio effects ▫ Transport stream handlers Fast Forward Your Development www.dsp-ip.com
  • 5. BACKGROUND DirectX Evolution from proprietary Codec to Filter base architecture Fast Forward Your Development www.dsp-ip.com
  • 6. VFW • VFW architecture – a Plug-In architecture that supported CODEC and CAPTURE Interfaces for Audio & Video stream manipulation. • Advantages – All the CODECs have the same interfaces. There is no need specific modifications for each codec IO Interfaces Capture CODEC Control Interfaces Fast Forward Your Development www.dsp-ip.com
  • 7. VFW Problems  Rigid architecture  Only three types of filters  How to add costume filters that split or mux transport stream?  Rigid interfaces creates a problem to the future progress of the architecture Fast Forward Your Development www.dsp-ip.com
  • 8. Active Movie • A Filter base architecture that support customize filters • The architecture is built using: ▫ Filters that manipulates the stream ▫ Pins that handle filter connection ▫ graph management which  Connect the filters (automatically)  Manage filters states (run, pause, stop)  Transfer messages between filters Fast Forward Your Development www.dsp-ip.com
  • 9. DirectX • Evolution of Active Movie (Audio & Video) to other aspects: ▫ DirectShow – (previously ActiveMovie) Audio/Video/Text. ▫ DirectDraw/Direct3D – Graphics. ▫ DirectSound – Sound effects and 3D sound. ▫ DirectPlay/DirectInput – Multiplayer Game tools. ▫ DirectMusic – Automatic music generation Fast Forward Your Development www.dsp-ip.com
  • 10. INTRODUCTION TO DIRECTSHOW Hands-on DirectShow : GraphEdit Fast Forward Your Development www.dsp-ip.com
  • 11. GraphEdit • Visual Interface for graph building and testing. Fast Forward Your Development www.dsp-ip.com
  • 12. GraphEdt – Rendering a file • Render a media file • The graph build is what the OS does when you double-click on a file. • File rendering options: ▫ Drag a media file to graph edit ▫ Use File->Open File ▫ Use:  graph->Insert filters use the circled button as a short cut  Select File Source Async.  Right click on output pin and select render Fast Forward Your Development www.dsp-ip.com
  • 13. GraphEdt - Play with it • Use the: Play, Pause, and Stop commands ▫ Notice the file progress bar • Use the slider to change the current play position Fast Forward Your Development www.dsp-ip.com
  • 14. GraphEdit – A bit more • Try looking at filter properties: • Use right-click on the filter and select “Filter Properties” • We will later look at the Interface that enables the communication to property pages. • Example of Source file property • This property is used only for monitoring and not for controls. Why? Fast Forward Your Development www.dsp-ip.com
  • 15. The Translator video • Lets view it using Graphedt MediaMetargemet.wmv • This video is a nice example for information processing architecture • The information is: ▫ Generated at the source (Keren) ▫ Processed and translated by a “transform unit” (Riki – translator) ▫ Rendered to the students ▫ Feedback messages are passed from the Renderer to the source via the translator Teacher Info. Source Smart Student Student “Transform” “Renderer Fast Forward Your Development www.dsp-ip.com
  • 16. DirectShow Basic ideas • Information processing is a sequential process • Each processing unit has a clear function • The Source “Push” or pump information to processing units (Blue). Data information is always Unidirectional: “Downstream” • Feedback is sent from the Renderer(s) to the source (Orange) – “Upstream” • No Information loops Source “Renderer “Transform” Fast Forward Your Development www.dsp-ip.com
  • 17. Information passing architecture • There are basically two methods: ▫ Push ▫ Pull • Those architecture differ in ▫ threading, ▫ Which filter is the active filter ▫ Where is the “Brain” of the graph Fast Forward Your Development www.dsp-ip.com
  • 18. Push Architecture • Source is active • Source generate Media Samples • information is pushed by the source • Like in the case of the “Metargemet” • Source is active, owns the “processing thread” • Used in ▫ ASF/WMA/WMV files ▫ Video capture (USB cam, video cards) ▫ BDA capture Fast Forward Your Development www.dsp-ip.com
  • 19. Pull Architecture • Information is pulled by a non-source filter • Source is passive • Does not own the “processing thread” • In most file processing schemes (AVI, MPEG2) the source is “dumb” and passive and the parser (demuxer) holds the “knowledge” of file parsing. Fast Forward Your Development www.dsp-ip.com
  • 20. Components required • Data Processing unit– used for: ▫ Media data Generation ▫ Media data manipulation/transform ▫ Media data rendering • Interfaces – Generic Interfaces between data processing units ▫ In “Metargemet” we use “Air Interface” with two basic media descriptors • Media descriptors ▫ In “Metargemet” we use two media types:  Archaic speech media between Source and Transform  “Sleng” between Transform (Riki) and Renderer (Student) • Management unit (in “Translator” – class/school) Fast Forward Your Development www.dsp-ip.com
  • 21. Naming • Data processing unit = Filter ▫ Used for data manipulation and transform. • Filter Interface = Pin ▫ Used to define the connection between filters ▫ Include information about:  Direction  Memory required  Media Type Fast Forward Your Development www.dsp-ip.com
  • 22. Naming - 2 • Media Descriptor = Media Type ▫ Include information about the media passed • Data Unit = Media Sample ▫ Include the data itself ▫ Include information about the data Fast Forward Your Development www.dsp-ip.com
  • 23. Filters • ActiveX objects ▫ (Use COM Interfaces) • Manipulates data • Have Pin as members for interfacing other filters • Three basic types: Source, Render, Transform • Identification: GUID • Control – property pages Fast Forward Your Development www.dsp-ip.com
  • 24. Pin • Filters have one or more IO Interfaces - pins • Pin is a class which basically holds interfaces to which connect processing modules (filters) • Pins could be exposed or hidden ▫ Look at Infinite Pin tee filter ▫ Dynamic creation of pins for many types of filters:  Infinite Pin T  MPEG and AVI Splitters • Two basic type: ▫ Input ▫ Output Fast Forward Your Development www.dsp-ip.com
  • 25. Graph Builder • Create a streaming process for example: ▫ Read from file ▫ Demux ▫ Decode ▫ Encode ▫ Stream to network • Tasks: ▫ Loads the filters ▫ connect Filters ▫ Change filter states ▫ Disconnect filters ▫ Remove filters from graph. • The graph is always unidirectional (No loops) • Have three basic states: Play, Pause, Stop. Fast Forward Your Development www.dsp-ip.com
  • 26. DMOs • DirectX® Media Objects (DMOs) • Create stream processing object that could operate without a graph (Filters could only work as part of a graph) • DMOs could operate inside a graph using a “DMO Wrapper” which acts as a filter • Advantage ▫ Simpler interface ▫ No need to create a graph Fast Forward Your Development www.dsp-ip.com
  • 27. DSP-IP Contact information For Course materials & lecture request contact: Adi Yakov Training and Courses Manager adi@dsp-ip.com +972-9-8651933 For projects development services contact: Alona Ashkenazi Technology Management Services : alona@dsp-ip.com +972-9-8850956 www.dsp-ip.com Mail : info@dsp-ip.com Phone: +972-9-8850956, Fax : +972-50- 8962910 Fast Forward Your Development www.dsp-ip.com