mp4.c File Reference

Include dependency graph for mp4.c:


Data Structures

struct  mp4_chunk_t
struct  mp4_track_t
struct  demux_sys_t

Defines

#define chunk   p_track->chunk[p_track->i_chunk]
#define SET(fct)
#define p_decconfig   p_esds->data.p_esds->es_descriptor.p_decConfigDescr
#define QT_V0_MAX_SAMPLES   1024

Functions

static int Open (vlc_object_t *)
 Probes and initializes.
static void Close (vlc_object_t *)
 Releases resources.
int vlc_entry__main (module_t *p_module)
const char * vlc_entry_license__main (void)
static int Demux (demux_t *)
static int DemuxRef (demux_t *p_demux)
static int Seek (demux_t *, mtime_t)
static int Control (demux_t *, int, va_list)
static void MP4_TrackCreate (demux_t *, mp4_track_t *, MP4_Box_t *, bool b_force_enable)
static void MP4_TrackDestroy (mp4_track_t *)
static int MP4_TrackSelect (demux_t *, mp4_track_t *, mtime_t)
static void MP4_TrackUnselect (demux_t *, mp4_track_t *)
static int MP4_TrackSeek (demux_t *, mp4_track_t *, mtime_t)
static uint64_t MP4_TrackGetPos (mp4_track_t *)
static int MP4_TrackSampleSize (mp4_track_t *)
static int MP4_TrackNextSample (demux_t *, mp4_track_t *)
static void MP4_TrackSetELST (demux_t *, mp4_track_t *, int64_t)
static void MP4_UpdateSeekpoint (demux_t *)
static const char * MP4_ConvertMacCode (uint16_t)
static int64_t MP4_TrackGetDTS (demux_t *p_demux, mp4_track_t *p_track)
static int64_t MP4_TrackGetPTSDelta (mp4_track_t *p_track)
static int64_t MP4_GetMoviePTS (demux_sys_t *p_sys)
static void LoadChapter (demux_t *p_demux)
static void LoadChapterGpac (demux_t *p_demux, MP4_Box_t *p_chpl)
static void LoadChapterApple (demux_t *p_demux, mp4_track_t *tk)
static int TrackCreateChunksIndex (demux_t *p_demux, mp4_track_t *p_demux_track)
static int TrackCreateSamplesIndex (demux_t *p_demux, mp4_track_t *p_demux_track)
static void TrackGetESSampleRate (unsigned *pi_num, unsigned *pi_den, const mp4_track_t *p_track, unsigned i_sd_index, unsigned i_chunk)
 It computes the sample rate for a video track using the given sample description index.
static int TrackCreateES (demux_t *p_demux, mp4_track_t *p_track, unsigned int i_chunk, es_out_id_t **pp_es)
static int TrackTimeToSampleChunk (demux_t *p_demux, mp4_track_t *p_track, int64_t i_start, uint32_t *pi_chunk, uint32_t *pi_sample)
static int TrackGotoChunkSample (demux_t *p_demux, mp4_track_t *p_track, unsigned int i_chunk, unsigned int i_sample)

Define Documentation

#define chunk   p_track->chunk[p_track->i_chunk]

#define p_decconfig   p_esds->data.p_esds->es_descriptor.p_decConfigDescr

Referenced by TrackCreateES().

#define QT_V0_MAX_SAMPLES   1024

#define SET ( fct   ) 

Value:

do { char *psz_utf = strdup( p_0xa9xxx->data.p_0xa9xxx->psz_text ? p_0xa9xxx->data.p_0xa9xxx->psz_text : "" ); \
    if( psz_utf ) { EnsureUTF8( psz_utf );  \
                    fct( p_meta, psz_utf ); free( psz_utf ); } } while(0)

Referenced by Control(), Demux(), ReadMeta(), ReadMetaFromAPE(), ReadMetaFromId3v2(), ReadMetaFromXiph(), VLCInfo::updatePanelWithItem:, and WriteMeta().


Function Documentation

static void Close ( vlc_object_t p_this  )  [static]

Releases resources.

Close the module.

Destroys the X11 window.

Disconnect from the X server.

Close a SDL video output.

It destroys an OpenGL vout display.

Terminate a vout display created by Open.

It destroyes a Direct3D vout display.

Terminate an output method created by Open.

Release the drawable.

Close a libcaca video output.

Close a aa video output method.

Close the filter.

Terminate a splitter module.

This function closes a clone video splitter module.

Common close function.

Releases allocate resources.

Close: Destructor.

Parameters:
p_this pointer to this filter object
p_this,: the filter object

static int Control ( demux_t p_demux,
int  i_query,
va_list  args 
) [static]

static int Demux ( demux_t p_demux  )  [static]

static int DemuxRef ( demux_t p_demux  )  [static]

static void LoadChapter ( demux_t p_demux  )  [static]

static void LoadChapterApple ( demux_t p_demux,
mp4_track_t tk 
) [static]

static void LoadChapterGpac ( demux_t p_demux,
MP4_Box_t p_chpl 
) [static]

static const char * MP4_ConvertMacCode ( uint16_t  i_code  )  [static]

Referenced by MP4_TrackCreate().

static int64_t MP4_GetMoviePTS ( demux_sys_t p_sys  )  [inline, static]

static void MP4_TrackCreate ( demux_t p_demux,
mp4_track_t p_track,
MP4_Box_t p_box_trak,
bool  b_force_enable 
) [static]

References AUDIO_ES, mp4_track_t::b_chapter, mp4_track_t::b_drms, mp4_track_t::b_enable, mp4_track_t::b_mac_encoding, mp4_track_t::b_ok, mp4_track_t::b_selected, mp4_track_t::chunk, MP4_Box_s::data, es_format_Init(), mp4_track_t::fmt, FOURCC_0xa9nam, FOURCC_sbtl, FOURCC_soun, FOURCC_subp, FOURCC_text, FOURCC_tx3g, FOURCC_vide, es_format_t::i_cat, mp4_track_t::i_chunk, mp4_track_t::i_chunk_count, mp4_track_t::i_elst, mp4_track_t::i_elst_time, MP4_Box_data_tref_generic_t::i_entry_count, MP4_Box_data_elst_s::i_entry_count, mp4_chunk_t::i_first_dts, MP4_Box_data_tkhd_s::i_flags, MP4_Box_data_hdlr_s::i_handler_type, MP4_Box_data_tkhd_s::i_height, mp4_track_t::i_height, MP4_Box_data_mdhd_s::i_language, MP4_Box_data_mdhd_s::i_language_code, MP4_Box_data_elst_s::i_media_rate_fraction, MP4_Box_data_elst_s::i_media_rate_integer, MP4_Box_data_elst_s::i_media_time, es_format_t::i_priority, mp4_track_t::i_sample, mp4_chunk_t::i_sample_count, MP4_Box_data_elst_s::i_segment_duration, demux_sys_t::i_timescale, MP4_Box_data_mdhd_s::i_timescale, mp4_track_t::i_timescale, MP4_Box_data_tref_generic_t::i_track_ID, MP4_Box_data_tkhd_s::i_track_ID, mp4_track_t::i_track_ID, MP4_Box_s::i_type, MP4_Box_data_tkhd_s::i_width, mp4_track_t::i_width, MP4_BoxGet(), MP4_ConvertMacCode(), MP4_TRACK_ENABLED, msg_Dbg, msg_Err, msg_Warn, MP4_Box_data_s::p_0xa9xxx, MP4_Box_data_sample_vide_s::p_drms, MP4_Box_data_sample_soun_s::p_drms, mp4_track_t::p_drms, MP4_Box_data_s::p_elst, mp4_track_t::p_elst, mp4_track_t::p_es, MP4_Box_s::p_first, MP4_Box_data_s::p_hdlr, MP4_Box_data_s::p_mdhd, MP4_Box_s::p_next, MP4_Box_data_s::p_sample_soun, MP4_Box_data_s::p_sample_vide, mp4_track_t::p_skcr, mp4_track_t::p_stbl, mp4_track_t::p_stsd, demux_t::p_sys, MP4_Box_data_s::p_tkhd, demux_sys_t::p_tref_chap, MP4_Box_data_s::p_tref_generic, es_format_t::psz_description, es_format_t::psz_language, MP4_Box_data_0xa9xxx_t::psz_text, SPU_ES, strdup(), TrackCreateChunksIndex(), TrackCreateES(), TrackCreateSamplesIndex(), UNKNOWN_ES, and VIDEO_ES.

static void MP4_TrackDestroy ( mp4_track_t p_track  )  [static]

static int64_t MP4_TrackGetDTS ( demux_t p_demux,
mp4_track_t p_track 
) [inline, static]

static uint64_t MP4_TrackGetPos ( mp4_track_t p_track  )  [static]

static int64_t MP4_TrackGetPTSDelta ( mp4_track_t p_track  )  [inline, static]

static int MP4_TrackNextSample ( demux_t p_demux,
mp4_track_t p_track 
) [static]

static int MP4_TrackSampleSize ( mp4_track_t p_track  )  [static]

static int MP4_TrackSeek ( demux_t p_demux,
mp4_track_t p_track,
mtime_t  i_start 
) [static]

static int MP4_TrackSelect ( demux_t p_demux,
mp4_track_t p_track,
mtime_t  i_start 
) [static]

static void MP4_TrackSetELST ( demux_t p_demux,
mp4_track_t tk,
int64_t  i_time 
) [static]

static void MP4_TrackUnselect ( demux_t p_demux,
mp4_track_t p_track 
) [static]

static void MP4_UpdateSeekpoint ( demux_t p_demux  )  [static]

static int Open ( vlc_object_t p_this  )  [static]

Probes and initializes.

Basic chorus/flanger/delay audio filter This implements a variable delay filter for VLC.

Todo:

  • Improve CDDB support (non-blocking, cache, .

Open the module.

Create an X11 window.

Probe the X server.

This function initializes SDL vout method.

It creates an OpenGL vout display.

This function allocates and initialize the DirectX vout display.

It creates a Direct3D vout display.

This function allocates and initializes a FB vout method.

Find the drawable set by libvlc application.

This function initializes libcaca vout method.

This function allocates and initializes a aa vout method.

This function allocates and initializes a Wall splitter module.

Open the filter.

This function allocates and initializes a Clone splitter module.

Open: initialize and create stuff.

Connect to the sftp server and ask for a file.

Parameters:
p_this,: the vlc_object
Returns:
VLC_SUCCESS if everything was fine
Parameters:
p_this 
p_this,: the filter object
Returns:
VLC_SUCCESS or vlc error codes

Todo:
Reinstate meta codec name

static int Seek ( demux_t p_demux,
mtime_t  i_date 
) [static]

static int TrackCreateChunksIndex ( demux_t p_demux,
mp4_track_t p_demux_track 
) [static]

static int TrackCreateES ( demux_t p_demux,
mp4_track_t p_track,
unsigned int  i_chunk,
es_out_id_t **  pp_es 
) [static]

References es_format_t::audio, AUDIO_ES, mp4_track_t::b_mac_encoding, mp4_track_t::chunk, MP4_Box_s::data, es_out_Add(), demux_sys_t::f_fps, mp4_track_t::fmt, MP4_Box_data_avcC_t::i_avcC, es_format_t::i_bitrate, MP4_Box_data_dac3_t::i_bitrate_code, video_format_t::i_bits_per_pixel, audio_format_t::i_bitspersample, audio_format_t::i_blockalign, MP4_Box_data_sample_soun_s::i_bytes_per_frame, MP4_Box_data_sample_soun_s::i_bytes_per_packet, MP4_Box_data_sample_soun_s::i_bytes_per_sample, es_format_t::i_cat, MP4_Box_data_sample_soun_s::i_channelcount, audio_format_t::i_channels, es_format_t::i_codec, MP4_Box_data_sample_vide_s::i_depth, es_format_t::i_extra, video_format_t::i_frame_rate, video_format_t::i_frame_rate_base, mp4_track_t::i_height, MP4_Box_data_sample_vide_s::i_height, video_format_t::i_height, MP4_Box_data_enda_t::i_little_endian, subs_format_t::i_original_frame_height, subs_format_t::i_original_frame_width, MP4_Box_data_sample_soun_s::i_qt_description, MP4_Box_data_sample_vide_s::i_qt_image_description, MP4_Box_data_sample_soun_s::i_qt_version, audio_format_t::i_rate, mp4_chunk_t::i_sample_description_index, MP4_Box_data_sample_soun_s::i_sample_per_packet, mp4_track_t::i_sample_size, MP4_Box_data_sample_soun_s::i_sampleratehi, MP4_Box_data_sample_soun_s::i_samplesize, video_format_t::i_sar_den, video_format_t::i_sar_num, mp4_track_t::i_timescale, mp4_track_t::i_track_ID, MP4_Box_s::i_type, MP4_Box_data_frma_t::i_type, video_format_t::i_visible_height, video_format_t::i_visible_width, mp4_track_t::i_width, MP4_Box_data_sample_vide_s::i_width, video_format_t::i_width, MP4_BoxGet(), msg_Err, msg_Warn, demux_t::out, MP4_Box_data_avcC_t::p_avcC, MP4_Box_data_s::p_avcC, MP4_Box_data_s::p_dac3, MP4_Box_data_s::p_data, p_decconfig, MP4_Box_data_s::p_enda, MP4_Box_data_s::p_esds, es_format_t::p_extra, MP4_Box_data_s::p_frma, MP4_Box_data_sample_soun_s::p_qt_description, MP4_Box_data_sample_vide_s::p_qt_image_description, mp4_track_t::p_sample, MP4_Box_data_s::p_sample_soun, MP4_Box_data_s::p_sample_vide, mp4_track_t::p_stsd, demux_t::p_sys, subs_format_t::psz_encoding, subs_format_t::spu, SPU_ES, strdup(), es_format_t::subs, TrackGetESSampleRate(), es_format_t::video, VIDEO_ES, VLC_CODEC_ALS, VLC_CODEC_F32B, VLC_CODEC_F32L, VLC_CODEC_F64B, VLC_CODEC_F64L, VLC_EGENERIC, VLC_FOURCC, and VLC_SUCCESS.

Referenced by MP4_TrackCreate(), and TrackGotoChunkSample().

static int TrackCreateSamplesIndex ( demux_t p_demux,
mp4_track_t p_demux_track 
) [static]

static void TrackGetESSampleRate ( unsigned *  pi_num,
unsigned *  pi_den,
const mp4_track_t p_track,
unsigned  i_sd_index,
unsigned  i_chunk 
) [static]

static int TrackGotoChunkSample ( demux_t p_demux,
mp4_track_t p_track,
unsigned int  i_chunk,
unsigned int  i_sample 
) [static]

static int TrackTimeToSampleChunk ( demux_t p_demux,
mp4_track_t p_track,
int64_t  i_start,
uint32_t *  pi_chunk,
uint32_t *  pi_sample 
) [static]

int vlc_entry__main ( module_t p_module  ) 

const char* vlc_entry_license__main ( void   ) 


Generated on Tue May 25 08:05:17 2010 for VLC by  doxygen 1.5.6