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_y4m.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_y4m.c')
-rw-r--r-- | libmpdemux/demux_y4m.c | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/libmpdemux/demux_y4m.c b/libmpdemux/demux_y4m.c index 4d2b6e5634..2fe784b4a7 100644 --- a/libmpdemux/demux_y4m.c +++ b/libmpdemux/demux_y4m.c @@ -23,7 +23,7 @@ typedef struct { int is_older; } y4m_priv_t; -int y4m_check_file(demuxer_t* demuxer){ +static int y4m_check_file(demuxer_t* demuxer){ int orig_pos = stream_tell(demuxer->stream); char buf[10]; y4m_priv_t* priv; @@ -54,14 +54,14 @@ int y4m_check_file(demuxer_t* demuxer){ stream_seek(demuxer->stream, orig_pos); - return 1; + return DEMUXER_TYPE_Y4M; } // return value: // 0 = EOF or no stream found // 1 = successfully read a packet -int demux_y4m_fill_buffer(demuxer_t *demux) { +static int demux_y4m_fill_buffer(demuxer_t *demux, demux_stream_t *dsds) { demux_stream_t *ds=demux->video; demux_packet_t *dp; y4m_priv_t *priv=demux->priv; @@ -117,7 +117,7 @@ int demux_y4m_fill_buffer(demuxer_t *demux) { return 1; } -void demux_open_y4m(demuxer_t* demuxer){ +static demuxer_t* demux_open_y4m(demuxer_t* demuxer){ y4m_priv_t* priv = demuxer->priv; y4m_ratio_t ratio; sh_video_t* sh=new_sh_video(demuxer,0); @@ -227,9 +227,11 @@ void demux_open_y4m(demuxer_t* demuxer){ mp_msg(MSGT_DEMUX, MSGL_INFO, "YUV4MPEG2 Video stream %d size: display: %dx%d, codec: %ux%u\n", demuxer->video->id, sh->disp_w, sh->disp_h, sh->bih->biWidth, sh->bih->biHeight); + + return demuxer; } -int demux_seek_y4m(demuxer_t *demuxer, float rel_seek_secs, int flags) { +static void demux_seek_y4m(demuxer_t *demuxer, float rel_seek_secs, int flags) { sh_video_t* sh = demuxer->video->sh; y4m_priv_t* priv = demuxer->priv; int rel_seek_frames = sh->fps*rel_seek_secs; @@ -254,10 +256,9 @@ int demux_seek_y4m(demuxer_t *demuxer, float rel_seek_secs, int flags) { * is disabled. */ mp_msg(MSGT_DEMUX, MSGL_WARN, "Seeking for YUV4MPEG2 not yet implemented!\n"); } - return 0; } -void demux_close_y4m(demuxer_t *demuxer) +static void demux_close_y4m(demuxer_t *demuxer) { y4m_priv_t* priv = demuxer->priv; @@ -269,3 +270,20 @@ void demux_close_y4m(demuxer_t *demuxer) free(demuxer->priv); return; } + + +demuxer_desc_t demuxer_desc_y4m = { + "YUV4MPEG2 demuxer", + "y4m", + "YUV4MPEG2", + "Rik snel", + "", + DEMUXER_TYPE_Y4M, + 1, // safe autodetect + y4m_check_file, + demux_y4m_fill_buffer, + demux_open_y4m, + demux_close_y4m, + demux_seek_y4m, + NULL +}; |