Difference between revisions of "Hacker Guide/Demux"

From VideoLAN Wiki
Jump to navigation Jump to search
(Created page with "== Description == The modules of ''''demux'''' capability are designed to handle the different "file" formats. They usually come after the access in the modules chain. Example…")
 
Line 14: Line 14:
 
  set_category( CAT_INPUT )                                                                                                                                                                                   
 
  set_category( CAT_INPUT )                                                                                                                                                                                   
 
  set_subcategory( SUBCAT_INPUT_DEMUX )
 
  set_subcategory( SUBCAT_INPUT_DEMUX )
 +
 +
 +
== Functions to implement  ==
 +
 +
After implementing Open() and Close() functions, you will need to implement a few majors features that will be implemented by your functions.
 +
 +
As you can see {{VLCSourceFile|name=include/vlc_demux.h}}, you should define:
 +
 +
*Seek, as in pf_seek
 +
*Control, as in pf_control
 +
*Read or Block, depending on your module type
 +
 +
After implementing those functions, you should assign them to the corresponding pf_ function.

Revision as of 00:06, 12 November 2010

Description

The modules of 'demux' capability are designed to handle the different "file" formats. They usually come after the access in the modules chain.

Examples of demuxers are WMV/ASF, Ogg or Mkv.

Write an demuxer module

To write an demuxer module, read the introduction to module writing.

Then, you should specify your module of being of demux type:

set_capability( "demux", 60 )  
set_category( CAT_INPUT )                                                                                                                                                                                  
set_subcategory( SUBCAT_INPUT_DEMUX )


Functions to implement

After implementing Open() and Close() functions, you will need to implement a few majors features that will be implemented by your functions.

As you can see include/vlc_demux.h, you should define:

  • Seek, as in pf_seek
  • Control, as in pf_control
  • Read or Block, depending on your module type

After implementing those functions, you should assign them to the corresponding pf_ function.