From d8c34022bba88f0a9318582c1ad47ab1e9ac20d2 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 15 Mar 2002 15:53:11 +0000 Subject: added get_sh_video/audio and realmedia seeking git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5085 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demuxer.c | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'libmpdemux/demuxer.c') diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index e68ee5aebf..c42bead636 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -18,6 +18,8 @@ #include "stheader.h" #include "mf.h" +#include "../libvo/fastmemcpy.h" + void free_demuxer_stream(demux_stream_t *ds){ ds_free_packs(ds); free(ds); @@ -67,8 +69,19 @@ demuxer_t* new_demuxer(stream_t *stream,int type,int a_id,int v_id,int s_id){ return d; } +sh_audio_t *get_sh_audio(demuxer_t *demuxer, int id) +{ + if(id > MAX_A_STREAMS-1 || id < 0) + { + mp_msg(MSGT_DEMUXER,MSGL_WARN,"Requested audio stream id overflow (%d > %d)\n", + id, MAX_A_STREAMS); + return NULL; + } + return demuxer->a_streams[id]; +} + sh_audio_t* new_sh_audio(demuxer_t *demuxer,int id){ - if(id > MAX_A_STREAMS-1) + if(id > MAX_A_STREAMS-1 || id < 0) { mp_msg(MSGT_DEMUXER,MSGL_WARN,"Requested audio stream id overflow (%d > %d)\n", id, MAX_A_STREAMS); @@ -91,8 +104,19 @@ void free_sh_audio(sh_audio_t* sh){ free(sh); } +sh_video_t *get_sh_video(demuxer_t *demuxer, int id) +{ + if(id > MAX_V_STREAMS-1 || id < 0) + { + mp_msg(MSGT_DEMUXER,MSGL_WARN,"Requested video stream id overflow (%d > %d)\n", + id, MAX_V_STREAMS); + return NULL; + } + return demuxer->v_streams[id]; +} + sh_video_t* new_sh_video(demuxer_t *demuxer,int id){ - if(id > MAX_V_STREAMS-1) + if(id > MAX_V_STREAMS-1 || id < 0) { mp_msg(MSGT_DEMUXER,MSGL_WARN,"Requested video stream id overflow (%d > %d)\n", id, MAX_V_STREAMS); @@ -851,6 +875,7 @@ int demux_seek_fli(demuxer_t *demuxer,float rel_seek_secs,int flags); int demux_seek_mf(demuxer_t *demuxer,float rel_seek_secs,int flags); int demux_seek_nuv(demuxer_t *demuxer,float rel_seek_secs,int flags); void demux_seek_mov(demuxer_t *demuxer,float pts,int flags); +int demux_seek_real(demuxer_t *demuxer,float rel_seek_secs,int flags); extern void demux_audio_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); extern void demux_demuxers_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); @@ -902,6 +927,9 @@ switch(demuxer->file_format){ case DEMUXER_TYPE_MOV: demux_seek_mov(demuxer,rel_seek_secs,flags); break; + case DEMUXER_TYPE_REAL: + demux_seek_real(demuxer,rel_seek_secs,flags); break; + case DEMUXER_TYPE_Y4M: demux_seek_y4m(demuxer,rel_seek_secs,flags); break; -- cgit v1.2.3