SlideShare a Scribd company logo
1 of 27
Download to read offline
Introduction to
 DirectShow - 1

Windows Media
Streaming Architecture


         Fast Forward Your Development   www.dsp-ip.com
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
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
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
BACKGROUND


DirectX Evolution from proprietary Codec
to Filter base architecture




    Fast Forward Your Development   www.dsp-ip.com
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
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
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
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
INTRODUCTION TO DIRECTSHOW




Hands-on DirectShow : GraphEdit




     Fast Forward Your Development   www.dsp-ip.com
GraphEdit

• Visual Interface for
  graph building and
  testing.




      Fast Forward Your Development   www.dsp-ip.com
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

More Related Content

What's hot

Escape From Amazon: Tips/Techniques for Reducing AWS Dependencies
Escape From Amazon: Tips/Techniques for Reducing AWS DependenciesEscape From Amazon: Tips/Techniques for Reducing AWS Dependencies
Escape From Amazon: Tips/Techniques for Reducing AWS DependenciesSoam Acharya
 
3 d puzzle pieces connected jigsaw stages 11 powerpoint diagrams and powerp...
3 d puzzle pieces connected  jigsaw  stages 11 powerpoint diagrams and powerp...3 d puzzle pieces connected  jigsaw  stages 11 powerpoint diagrams and powerp...
3 d puzzle pieces connected jigsaw stages 11 powerpoint diagrams and powerp...SlideTeam.net
 
Engage 2020 - panagenda Workshop: All things Notes 11!
Engage 2020 - panagenda Workshop: All things Notes 11!Engage 2020 - panagenda Workshop: All things Notes 11!
Engage 2020 - panagenda Workshop: All things Notes 11!Christoph Adler
 
Hecatonchire kvm forum_2012_benoit_hudzia
Hecatonchire kvm forum_2012_benoit_hudziaHecatonchire kvm forum_2012_benoit_hudzia
Hecatonchire kvm forum_2012_benoit_hudziaBenoit Hudzia
 
A Global In-memory Data System for MySQL
A Global In-memory Data System for MySQLA Global In-memory Data System for MySQL
A Global In-memory Data System for MySQLDaniel Austin
 
Managed Services Seminar Presentation
Managed Services Seminar PresentationManaged Services Seminar Presentation
Managed Services Seminar Presentationgerrymark
 

What's hot (7)

Escape From Amazon: Tips/Techniques for Reducing AWS Dependencies
Escape From Amazon: Tips/Techniques for Reducing AWS DependenciesEscape From Amazon: Tips/Techniques for Reducing AWS Dependencies
Escape From Amazon: Tips/Techniques for Reducing AWS Dependencies
 
3 d puzzle pieces connected jigsaw stages 11 powerpoint diagrams and powerp...
3 d puzzle pieces connected  jigsaw  stages 11 powerpoint diagrams and powerp...3 d puzzle pieces connected  jigsaw  stages 11 powerpoint diagrams and powerp...
3 d puzzle pieces connected jigsaw stages 11 powerpoint diagrams and powerp...
 
Engage 2020 - panagenda Workshop: All things Notes 11!
Engage 2020 - panagenda Workshop: All things Notes 11!Engage 2020 - panagenda Workshop: All things Notes 11!
Engage 2020 - panagenda Workshop: All things Notes 11!
 
Hecatonchire kvm forum_2012_benoit_hudzia
Hecatonchire kvm forum_2012_benoit_hudziaHecatonchire kvm forum_2012_benoit_hudzia
Hecatonchire kvm forum_2012_benoit_hudzia
 
A Global In-memory Data System for MySQL
A Global In-memory Data System for MySQLA Global In-memory Data System for MySQL
A Global In-memory Data System for MySQL
 
Managed Services Seminar Presentation
Managed Services Seminar PresentationManaged Services Seminar Presentation
Managed Services Seminar Presentation
 
Santhosh resume
Santhosh resumeSanthosh resume
Santhosh resume
 

Viewers also liked

HEVC VIDEO CODEC By Vinayagam Mariappan
HEVC VIDEO CODEC By Vinayagam MariappanHEVC VIDEO CODEC By Vinayagam Mariappan
HEVC VIDEO CODEC By Vinayagam MariappanVinayagam Mariappan
 
Introduction to HEVC
Introduction to HEVCIntroduction to HEVC
Introduction to HEVCYoss Cohen
 
HEVC Definitions and high-level syntax
HEVC Definitions and high-level syntaxHEVC Definitions and high-level syntax
HEVC Definitions and high-level syntaxYoss Cohen
 
Computer Vision - Image Filters
Computer Vision - Image FiltersComputer Vision - Image Filters
Computer Vision - Image FiltersYoss Cohen
 
Development of a 4K H.265/ HEVC HW Encoder
Development of a 4K H.265/ HEVC HW EncoderDevelopment of a 4K H.265/ HEVC HW Encoder
Development of a 4K H.265/ HEVC HW EncoderIMTC
 
An Overview of High Efficiency Video Codec HEVC (H.265)
An Overview of High Efficiency Video Codec HEVC (H.265)An Overview of High Efficiency Video Codec HEVC (H.265)
An Overview of High Efficiency Video Codec HEVC (H.265)Varun Ravi
 
HEVC / H265 Hands-On course
HEVC / H265 Hands-On courseHEVC / H265 Hands-On course
HEVC / H265 Hands-On courseYoss Cohen
 

Viewers also liked (10)

HEVC intra coding
HEVC intra codingHEVC intra coding
HEVC intra coding
 
HEVC VIDEO CODEC By Vinayagam Mariappan
HEVC VIDEO CODEC By Vinayagam MariappanHEVC VIDEO CODEC By Vinayagam Mariappan
HEVC VIDEO CODEC By Vinayagam Mariappan
 
Introduction to HEVC
Introduction to HEVCIntroduction to HEVC
Introduction to HEVC
 
HEVC Definitions and high-level syntax
HEVC Definitions and high-level syntaxHEVC Definitions and high-level syntax
HEVC Definitions and high-level syntax
 
Computer Vision - Image Filters
Computer Vision - Image FiltersComputer Vision - Image Filters
Computer Vision - Image Filters
 
HEVC overview main
HEVC overview mainHEVC overview main
HEVC overview main
 
Development of a 4K H.265/ HEVC HW Encoder
Development of a 4K H.265/ HEVC HW EncoderDevelopment of a 4K H.265/ HEVC HW Encoder
Development of a 4K H.265/ HEVC HW Encoder
 
An Overview of High Efficiency Video Codec HEVC (H.265)
An Overview of High Efficiency Video Codec HEVC (H.265)An Overview of High Efficiency Video Codec HEVC (H.265)
An Overview of High Efficiency Video Codec HEVC (H.265)
 
HEVC / H265 Hands-On course
HEVC / H265 Hands-On courseHEVC / H265 Hands-On course
HEVC / H265 Hands-On course
 
H.264 vs HEVC
H.264 vs HEVCH.264 vs HEVC
H.264 vs HEVC
 

Similar to 1– Introduction To Direct Show

1– Introduction To Direct Show
1– Introduction To  Direct Show1– Introduction To  Direct Show
1– Introduction To Direct Showguest7973cb
 
Cerebro for vfx eng
Cerebro for vfx engCerebro for vfx eng
Cerebro for vfx engCineSoft
 
The Purpose of Cloud-technology for Video Production
The Purpose of Cloud-technology for Video ProductionThe Purpose of Cloud-technology for Video Production
The Purpose of Cloud-technology for Video ProductionMaarten Verwaest
 
Adobe HTTP Streaming
Adobe HTTP StreamingAdobe HTTP Streaming
Adobe HTTP StreamingYoss Cohen
 
Video Streaming
Video StreamingVideo Streaming
Video StreamingVideoguy
 
Chapter 7
Chapter 7 Chapter 7
Chapter 7 carnillr
 
Near real-time anomaly detection at Lyft
Near real-time anomaly detection at LyftNear real-time anomaly detection at Lyft
Near real-time anomaly detection at Lyftmarkgrover
 
Cerebro general overiew eng
Cerebro general overiew engCerebro general overiew eng
Cerebro general overiew engCineSoft
 
Application Delivery Platform Towards Edge Computing - Bukhary Ikhwan
Application Delivery Platform Towards Edge Computing - Bukhary IkhwanApplication Delivery Platform Towards Edge Computing - Bukhary Ikhwan
Application Delivery Platform Towards Edge Computing - Bukhary IkhwanOpenNebula Project
 
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...Jean Vanderdonckt
 
Experiences with Microservices at Tuenti
Experiences with Microservices at TuentiExperiences with Microservices at Tuenti
Experiences with Microservices at TuentiAndrés Viedma Peláez
 
Docker:- Application Delivery Platform Towards Edge Computing
Docker:- Application Delivery Platform Towards Edge ComputingDocker:- Application Delivery Platform Towards Edge Computing
Docker:- Application Delivery Platform Towards Edge ComputingBukhary Ikhwan Ismail
 
Android - Application Framework
Android - Application FrameworkAndroid - Application Framework
Android - Application FrameworkYong Heui Cho
 
Multimedia on the web by Sania Nisar
Multimedia on the web by Sania NisarMultimedia on the web by Sania Nisar
Multimedia on the web by Sania NisarSania Nisar
 
Silverlight Wireshark Analysis
Silverlight Wireshark AnalysisSilverlight Wireshark Analysis
Silverlight Wireshark AnalysisYoss Cohen
 
.NET per la Data Science e oltre
.NET per la Data Science e oltre.NET per la Data Science e oltre
.NET per la Data Science e oltreMarco Parenzan
 
Introduction to Java Part-2
Introduction to Java Part-2Introduction to Java Part-2
Introduction to Java Part-2RatnaJava
 
Edward King SPEDDEXES 2014
Edward King SPEDDEXES 2014Edward King SPEDDEXES 2014
Edward King SPEDDEXES 2014aceas13tern
 

Similar to 1– Introduction To Direct Show (20)

1– Introduction To Direct Show
1– Introduction To  Direct Show1– Introduction To  Direct Show
1– Introduction To Direct Show
 
Cerebro for vfx eng
Cerebro for vfx engCerebro for vfx eng
Cerebro for vfx eng
 
The Purpose of Cloud-technology for Video Production
The Purpose of Cloud-technology for Video ProductionThe Purpose of Cloud-technology for Video Production
The Purpose of Cloud-technology for Video Production
 
Adobe HTTP Streaming
Adobe HTTP StreamingAdobe HTTP Streaming
Adobe HTTP Streaming
 
Video Streaming
Video StreamingVideo Streaming
Video Streaming
 
Chapter 7
Chapter 7 Chapter 7
Chapter 7
 
Near real-time anomaly detection at Lyft
Near real-time anomaly detection at LyftNear real-time anomaly detection at Lyft
Near real-time anomaly detection at Lyft
 
Cerebro general overiew eng
Cerebro general overiew engCerebro general overiew eng
Cerebro general overiew eng
 
Application Delivery Platform Towards Edge Computing - Bukhary Ikhwan
Application Delivery Platform Towards Edge Computing - Bukhary IkhwanApplication Delivery Platform Towards Edge Computing - Bukhary Ikhwan
Application Delivery Platform Towards Edge Computing - Bukhary Ikhwan
 
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
 
Experiences with Microservices at Tuenti
Experiences with Microservices at TuentiExperiences with Microservices at Tuenti
Experiences with Microservices at Tuenti
 
Docker:- Application Delivery Platform Towards Edge Computing
Docker:- Application Delivery Platform Towards Edge ComputingDocker:- Application Delivery Platform Towards Edge Computing
Docker:- Application Delivery Platform Towards Edge Computing
 
Android - Application Framework
Android - Application FrameworkAndroid - Application Framework
Android - Application Framework
 
Multimedia on the web by Sania Nisar
Multimedia on the web by Sania NisarMultimedia on the web by Sania Nisar
Multimedia on the web by Sania Nisar
 
Silverlight Wireshark Analysis
Silverlight Wireshark AnalysisSilverlight Wireshark Analysis
Silverlight Wireshark Analysis
 
.NET per la Data Science e oltre
.NET per la Data Science e oltre.NET per la Data Science e oltre
.NET per la Data Science e oltre
 
Introduction to Java Part-2
Introduction to Java Part-2Introduction to Java Part-2
Introduction to Java Part-2
 
Edward King SPEDDEXES 2014
Edward King SPEDDEXES 2014Edward King SPEDDEXES 2014
Edward King SPEDDEXES 2014
 
Explore Android Internals
Explore Android InternalsExplore Android Internals
Explore Android Internals
 
Digital Library Software
Digital Library SoftwareDigital Library Software
Digital Library Software
 

More from Yoss Cohen

Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
open platform for swarm training
open platform for swarm training open platform for swarm training
open platform for swarm training Yoss Cohen
 
Deep Learning - system view
Deep Learning - system viewDeep Learning - system view
Deep Learning - system viewYoss Cohen
 
Dspip deep learning syllabus
Dspip deep learning syllabusDspip deep learning syllabus
Dspip deep learning syllabusYoss Cohen
 
IoT consideration selection
IoT consideration selectionIoT consideration selection
IoT consideration selectionYoss Cohen
 
Nvidia jetson nano bringup
Nvidia jetson nano bringupNvidia jetson nano bringup
Nvidia jetson nano bringupYoss Cohen
 
Autonomous car teleportation architecture
Autonomous car teleportation architectureAutonomous car teleportation architecture
Autonomous car teleportation architectureYoss Cohen
 
Motion estimation overview
Motion estimation overviewMotion estimation overview
Motion estimation overviewYoss Cohen
 
Intro to machine learning with scikit learn
Intro to machine learning with scikit learnIntro to machine learning with scikit learn
Intro to machine learning with scikit learnYoss Cohen
 
DASH and HTTP2.0
DASH and HTTP2.0DASH and HTTP2.0
DASH and HTTP2.0Yoss Cohen
 
FFMPEG on android
FFMPEG on androidFFMPEG on android
FFMPEG on androidYoss Cohen
 
Hands-on Video Course - "RAW Video"
Hands-on Video Course - "RAW Video" Hands-on Video Course - "RAW Video"
Hands-on Video Course - "RAW Video" Yoss Cohen
 
Video quality testing
Video quality testingVideo quality testing
Video quality testingYoss Cohen
 
Web video standards
Web video standardsWeb video standards
Web video standardsYoss Cohen
 
Product wise computer vision development
Product wise computer vision developmentProduct wise computer vision development
Product wise computer vision developmentYoss Cohen
 
3D Video Programming for Android
3D Video Programming for Android3D Video Programming for Android
3D Video Programming for AndroidYoss Cohen
 
Video optimization for android - Part I
Video optimization for android - Part IVideo optimization for android - Part I
Video optimization for android - Part IYoss Cohen
 

More from Yoss Cohen (20)

Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
open platform for swarm training
open platform for swarm training open platform for swarm training
open platform for swarm training
 
Deep Learning - system view
Deep Learning - system viewDeep Learning - system view
Deep Learning - system view
 
Dspip deep learning syllabus
Dspip deep learning syllabusDspip deep learning syllabus
Dspip deep learning syllabus
 
IoT consideration selection
IoT consideration selectionIoT consideration selection
IoT consideration selection
 
IoT evolution
IoT evolutionIoT evolution
IoT evolution
 
Nvidia jetson nano bringup
Nvidia jetson nano bringupNvidia jetson nano bringup
Nvidia jetson nano bringup
 
Autonomous car teleportation architecture
Autonomous car teleportation architectureAutonomous car teleportation architecture
Autonomous car teleportation architecture
 
Motion estimation overview
Motion estimation overviewMotion estimation overview
Motion estimation overview
 
Intro to machine learning with scikit learn
Intro to machine learning with scikit learnIntro to machine learning with scikit learn
Intro to machine learning with scikit learn
 
DASH and HTTP2.0
DASH and HTTP2.0DASH and HTTP2.0
DASH and HTTP2.0
 
FFMPEG on android
FFMPEG on androidFFMPEG on android
FFMPEG on android
 
Hands-on Video Course - "RAW Video"
Hands-on Video Course - "RAW Video" Hands-on Video Course - "RAW Video"
Hands-on Video Course - "RAW Video"
 
Video quality testing
Video quality testingVideo quality testing
Video quality testing
 
Web video standards
Web video standardsWeb video standards
Web video standards
 
Product wise computer vision development
Product wise computer vision developmentProduct wise computer vision development
Product wise computer vision development
 
3D Video Programming for Android
3D Video Programming for Android3D Video Programming for Android
3D Video Programming for Android
 
Analog Video
Analog Video Analog Video
Analog Video
 
WiFi Display
WiFi DisplayWiFi Display
WiFi Display
 
Video optimization for android - Part I
Video optimization for android - Part IVideo optimization for android - Part I
Video optimization for android - Part I
 

Recently uploaded

2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialJoão Esperancinha
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
QMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdfQMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdfROWELL MARQUINA
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneUiPathCommunity
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 

Recently uploaded (20)

2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorial
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
QMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdfQMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdf
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyone
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 

1– Introduction To Direct Show

  • 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