diff options
author | rtognimp <rtognimp@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-08-05 19:57:47 +0000 |
---|---|---|
committer | rtognimp <rtognimp@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-08-05 19:57:47 +0000 |
commit | cd68e1618b17b525bd49757b2f5e245a6cb1a495 (patch) | |
tree | c67656ff189654b818ade76a8f5bd0b7d1bf7f91 /libmpdemux/demux_ty.c | |
parent | adfe956dc385d6588eb2ab74828f9a905821adf4 (diff) | |
download | mpv-cd68e1618b17b525bd49757b2f5e245a6cb1a495.tar.bz2 mpv-cd68e1618b17b525bd49757b2f5e245a6cb1a495.tar.xz |
Demuxer modularization
Demuxer selection by name with -demuxer command (bakward compatible)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16176 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_ty.c')
-rw-r--r-- | libmpdemux/demux_ty.c | 47 |
1 files changed, 44 insertions, 3 deletions
diff --git a/libmpdemux/demux_ty.c b/libmpdemux/demux_ty.c index 0b2b82ec6c..6abcd33211 100644 --- a/libmpdemux/demux_ty.c +++ b/libmpdemux/demux_ty.c @@ -585,7 +585,7 @@ static unsigned char ty_VideoPacket[] = { 0x00, 0x00, 0x01, 0xe0 }; static unsigned char ty_MPEGAudioPacket[] = { 0x00, 0x00, 0x01, 0xc0 }; static unsigned char ty_AC3AudioPacket[] = { 0x00, 0x00, 0x01, 0xbd }; -int demux_ty_fill_buffer( demuxer_t *demux ) +static int demux_ty_fill_buffer( demuxer_t *demux, demux_stream_t *dsds ) { int invalidType = 0; int errorHeader = 0; @@ -1238,7 +1238,7 @@ int demux_ty_fill_buffer( demuxer_t *demux ) return( 1 ); } -void demux_seek_ty( demuxer_t *demuxer, float rel_seek_secs, int flags ) +static void demux_seek_ty( demuxer_t *demuxer, float rel_seek_secs, int flags ) { demux_stream_t *d_audio = demuxer->audio; demux_stream_t *d_video = demuxer->video; @@ -1362,7 +1362,7 @@ int demux_ty_control( demuxer_t *demuxer,int cmd, void *arg ) } -int demux_close_ty( demuxer_t *demux ) +static int demux_close_ty( demuxer_t *demux ) { TiVoInfo *tivo = 0; @@ -1377,3 +1377,44 @@ int demux_close_ty( demuxer_t *demux ) } +static int ty_check_file(demuxer_t* demuxer) +{ + return ds_fill_buffer(demuxer->video) ? DEMUXER_TYPE_MPEG_TY : 0; +} + + +static demuxer_t* demux_open_ty(demuxer_t* demuxer) +{ + sh_audio_t *sh_audio=NULL; + sh_video_t *sh_video=NULL; + + sh_video=demuxer->video->sh;sh_video->ds=demuxer->video; + + if(demuxer->audio->id!=-2) { + if(!ds_fill_buffer(demuxer->audio)){ + mp_msg(MSGT_DEMUXER,MSGL_INFO,"MPEG: " MSGTR_MissingAudioStream); + demuxer->audio->sh=NULL; + } else { + sh_audio=demuxer->audio->sh;sh_audio->ds=demuxer->audio; + } + } + + return demuxer; +} + + +demuxer_desc_t demuxer_desc_mpeg_ty = { + "TiVo demuxer", + "tivo", + "TiVo", + "Christopher R. Wingert", + "Demux streams from TiVo", + DEMUXER_TYPE_MPEG_TY, + 0, // unsafe autodetect + ty_check_file, + demux_ty_fill_buffer, + demux_open_ty, + demux_close_ty, + demux_seek_ty, + demux_ty_control +}; |