Update of /cvsroot/xine/xine-lib/src/demuxers In directory usw-pr-cvs1:/tmp/cvs-serv28525/src/demuxers Modified Files: demux.h demux_aiff.c demux_asf.c demux_avi.c demux_cda.c demux_eawve.c demux_elem.c demux_film.c demux_fli.c demux_idcin.c demux_mpeg.c demux_mpeg_block.c demux_mpgaudio.c demux_ogg.c demux_pes.c demux_qt.c demux_real.c demux_realaudio.c demux_roq.c demux_smjpeg.c demux_snd.c demux_ts.c demux_voc.c demux_vqa.c demux_wav.c demux_wc3movie.c demux_yuv4mpeg2.c Log Message: beginnings of the get_video/audio_frame api Index: demux.h =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux.h,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- demux.h 1 Nov 2002 17:41:02 -0000 1.23 +++ demux.h 9 Nov 2002 23:22:32 -0000 1.24 @@ -24,6 +24,7 @@ #define HAVE_DEMUX_H #include "buffer.h" +#include "video_out.h" #include "xine_internal.h" #if defined(XINE_COMPILE) #include "input/input_plugin.h" @@ -31,7 +32,7 @@ #include "input_plugin.h" #endif -#define DEMUXER_PLUGIN_IFACE_VERSION 15 +#define DEMUXER_PLUGIN_IFACE_VERSION 16 #define DEMUX_OK 0 #define DEMUX_FINISHED 1 @@ -148,6 +149,23 @@ int (*get_stream_length) (demux_plugin_t *this); + /* + * get audio/video frames + * + * experimental, function pointers can be NULL for now. + */ + + int (*get_video_frame) (demux_plugin_t *this, + int timestamp, /* msec */ + int *width, int *height, + int *ratio_code, + int *duration, /* msec */ + int *format, + uint8_t *img) ; + + /* called by video_out for every frame it receives */ + void (*got_video_frame_cb) (demux_plugin_t *this, + vo_frame_t *frame); /* * "backwards" link to plugin class Index: demux_aiff.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_aiff.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- demux_aiff.c 1 Nov 2002 17:41:03 -0000 1.15 +++ demux_aiff.c 9 Nov 2002 23:22:32 -0000 1.16 @@ -343,6 +343,8 @@ this->demux_plugin.dispose = demux_aiff_dispose; this->demux_plugin.get_status = demux_aiff_get_status; this->demux_plugin.get_stream_length = demux_aiff_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -454,6 +456,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "aiff", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "aiff", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_asf.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_asf.c,v retrieving revision 1.76 retrieving revision 1.77 diff -u -r1.76 -r1.77 --- demux_asf.c 3 Nov 2002 20:41:55 -0000 1.76 +++ demux_asf.c 9 Nov 2002 23:22:32 -0000 1.77 @@ -1379,6 +1379,8 @@ this->demux_plugin.dispose = demux_asf_dispose; this->demux_plugin.get_status = demux_asf_get_status; this->demux_plugin.get_stream_length = demux_asf_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -1435,6 +1437,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "asf", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_DEMUX, 16, "asf", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_avi.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_avi.c,v retrieving revision 1.131 retrieving revision 1.132 diff -u -r1.131 -r1.132 --- demux_avi.c 1 Nov 2002 17:41:04 -0000 1.131 +++ demux_avi.c 9 Nov 2002 23:22:32 -0000 1.132 @@ -1491,6 +1491,8 @@ this->demux_plugin.dispose = demux_avi_dispose; this->demux_plugin.get_status = demux_avi_get_status; this->demux_plugin.get_stream_length = demux_avi_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -1613,6 +1615,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "avi", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_DEMUX, 16, "avi", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_cda.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_cda.c,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- demux_cda.c 2 Nov 2002 12:50:14 -0000 1.32 +++ demux_cda.c 9 Nov 2002 23:22:32 -0000 1.33 @@ -190,6 +190,8 @@ this->demux_plugin.dispose = demux_cda_dispose; this->demux_plugin.get_status = demux_cda_get_status; this->demux_plugin.get_stream_length = demux_cda_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -281,6 +283,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "cda", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "cda", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_eawve.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_eawve.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- demux_eawve.c 3 Nov 2002 21:08:42 -0000 1.5 +++ demux_eawve.c 9 Nov 2002 23:22:32 -0000 1.6 @@ -390,6 +390,8 @@ this->demux_plugin.dispose = (void*)demux_eawve_dispose; this->demux_plugin.get_status = (void*)demux_eawve_get_status; this->demux_plugin.get_stream_length = (void*)demux_eawve_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -486,6 +488,6 @@ } plugin_info_t xine_plugin_info[] = { - { PLUGIN_DEMUX, 15, "wve", XINE_VERSION_CODE, NULL, (void*)init_plugin}, + { PLUGIN_DEMUX, 16, "wve", XINE_VERSION_CODE, NULL, (void*)init_plugin}, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_elem.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_elem.c,v retrieving revision 1.59 retrieving revision 1.60 diff -u -r1.59 -r1.60 --- demux_elem.c 1 Nov 2002 17:41:06 -0000 1.59 +++ demux_elem.c 9 Nov 2002 23:22:32 -0000 1.60 @@ -198,6 +198,8 @@ this->demux_plugin.dispose = demux_mpeg_elem_dispose; this->demux_plugin.get_status = demux_mpeg_elem_get_status; this->demux_plugin.get_stream_length = demux_mpeg_elem_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -335,6 +337,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "elem", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "elem", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_film.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_film.c,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- demux_film.c 1 Nov 2002 17:41:08 -0000 1.42 +++ demux_film.c 9 Nov 2002 23:22:32 -0000 1.43 @@ -660,6 +660,8 @@ this->demux_plugin.dispose = demux_film_dispose; this->demux_plugin.get_status = demux_film_get_status; this->demux_plugin.get_stream_length = demux_film_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -788,6 +790,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "film", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "film", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_fli.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_fli.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- demux_fli.c 1 Nov 2002 17:41:11 -0000 1.25 +++ demux_fli.c 9 Nov 2002 23:22:32 -0000 1.26 @@ -290,6 +290,8 @@ this->demux_plugin.dispose = demux_fli_dispose; this->demux_plugin.get_status = demux_fli_get_status; this->demux_plugin.get_stream_length = demux_fli_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -403,6 +405,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "fli", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "fli", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_idcin.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_idcin.c,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- demux_idcin.c 1 Nov 2002 17:41:13 -0000 1.26 +++ demux_idcin.c 9 Nov 2002 23:22:32 -0000 1.27 @@ -465,6 +465,8 @@ this->demux_plugin.dispose = demux_idcin_dispose; this->demux_plugin.get_status = demux_idcin_get_status; this->demux_plugin.get_stream_length = demux_idcin_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -577,6 +579,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "idcin", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "idcin", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_mpeg.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_mpeg.c,v retrieving revision 1.94 retrieving revision 1.95 diff -u -r1.94 -r1.95 --- demux_mpeg.c 1 Nov 2002 17:41:13 -0000 1.94 +++ demux_mpeg.c 9 Nov 2002 23:22:32 -0000 1.95 @@ -897,6 +897,8 @@ this->demux_plugin.dispose = demux_mpeg_dispose; this->demux_plugin.get_status = demux_mpeg_get_status; this->demux_plugin.get_stream_length = demux_mpeg_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -1128,6 +1130,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "mpeg", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "mpeg", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_mpeg_block.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_mpeg_block.c,v retrieving revision 1.135 retrieving revision 1.136 diff -u -r1.135 -r1.136 --- demux_mpeg_block.c 1 Nov 2002 17:41:15 -0000 1.135 +++ demux_mpeg_block.c 9 Nov 2002 23:22:32 -0000 1.136 @@ -80,6 +80,9 @@ int send_newpts; int buf_flag_seek; + /* stream index for get_audio/video_frame */ + int have_index; + } demux_mpeg_block_t ; typedef struct { @@ -927,8 +930,36 @@ return this->input->get_length (this->input) / (this->rate * 50); else return 0; +} + +static void generate_index (demux_mpeg_block_t *this) { + + /* FIXME: implement */ } + +static int demux_mpeg_block_get_video_frame (demux_plugin_t *this_gen, + int timestamp, + int *width, int *height, + int *ratio_code, + int *duration, + int *format, + uint8_t *img) { + + demux_mpeg_block_t *this = (demux_mpeg_block_t*) this_gen; + + if (!this->have_index) { + + generate_index (this); + + this->have_index = 1; + } + + + return 0; +} + + static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *stream, input_plugin_t *input_gen) { @@ -955,10 +986,13 @@ this->demux_plugin.dispose = demux_mpeg_block_dispose; this->demux_plugin.get_status = demux_mpeg_block_get_status; this->demux_plugin.get_stream_length = demux_mpeg_block_get_stream_length; + this->demux_plugin.get_video_frame = demux_mpeg_block_get_video_frame; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; - this->scratch = xine_xmalloc_aligned (512, 4096, (void**) &this->scratch_base); - this->status = DEMUX_FINISHED; + this->scratch = xine_xmalloc_aligned (512, 4096, (void**) &this->scratch_base); + this->status = DEMUX_FINISHED; + this->have_index = 0; #ifdef LOG printf ("demux_mpeg_block:open_plugin:detection_method=%d\n", @@ -1029,8 +1063,9 @@ free (this); return NULL; } - if( (!strncmp((ending + 3), "mpeg2", 5)) || - (!strncmp((ending + 3), "mpeg1", 5)) ) { + if ( (!strncasecmp (ending, ".vob", 4)) || + (!strncmp((ending + 3), "mpeg2", 5)) || + (!strncmp((ending + 3), "mpeg1", 5)) ) { this->blocksize = 2048; demux_mpeg_block_accept_input(this, input); } else if(!strncmp(mrl, "vcd", 3)) { @@ -1118,6 +1153,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "mpeg_block", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "mpeg_block", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_mpgaudio.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_mpgaudio.c,v retrieving revision 1.78 retrieving revision 1.79 diff -u -r1.78 -r1.79 --- demux_mpgaudio.c 9 Nov 2002 13:52:32 -0000 1.78 +++ demux_mpgaudio.c 9 Nov 2002 23:22:32 -0000 1.79 @@ -570,6 +570,7 @@ this->demux_plugin.dispose = demux_mpgaudio_dispose; this->demux_plugin.get_status = demux_mpgaudio_get_status; this->demux_plugin.get_stream_length = demux_mpgaudio_get_stream_length; + this->demux_plugin.get_video_frame = NULL; this->demux_plugin.demux_class = class_gen; this->input = input; @@ -637,6 +638,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "mp3", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_DEMUX, 16, "mp3", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_ogg.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_ogg.c,v retrieving revision 1.50 retrieving revision 1.51 diff -u -r1.50 -r1.51 --- demux_ogg.c 1 Nov 2002 17:41:20 -0000 1.50 +++ demux_ogg.c 9 Nov 2002 23:22:32 -0000 1.51 @@ -1000,6 +1000,8 @@ this->demux_plugin.dispose = demux_ogg_dispose; this->demux_plugin.get_status = demux_ogg_get_status; this->demux_plugin.get_stream_length = demux_ogg_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -1060,6 +1062,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "ogg", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_DEMUX, 16, "ogg", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_pes.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_pes.c,v retrieving revision 1.41 retrieving revision 1.42 diff -u -r1.41 -r1.42 --- demux_pes.c 1 Nov 2002 17:41:22 -0000 1.41 +++ demux_pes.c 9 Nov 2002 23:22:32 -0000 1.42 @@ -624,6 +624,8 @@ this->demux_plugin.get_status = demux_pes_get_status; this->demux_plugin.get_identifier = demux_pes_get_id; this->demux_plugin.get_stream_length = demux_pes_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.get_mimetypes = demux_pes_get_mimetypes; this->status = DEMUX_FINISHED; Index: demux_qt.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_qt.c,v retrieving revision 1.108 retrieving revision 1.109 diff -u -r1.108 -r1.109 --- demux_qt.c 1 Nov 2002 17:41:23 -0000 1.108 +++ demux_qt.c 9 Nov 2002 23:22:32 -0000 1.109 @@ -1824,6 +1824,8 @@ this->demux_plugin.dispose = demux_qt_dispose; this->demux_plugin.get_status = demux_qt_get_status; this->demux_plugin.get_stream_length = demux_qt_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -1970,6 +1972,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "quicktime", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "quicktime", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_real.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_real.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- demux_real.c 1 Nov 2002 17:41:25 -0000 1.7 +++ demux_real.c 9 Nov 2002 23:22:32 -0000 1.8 @@ -403,6 +403,8 @@ this->demux_plugin.dispose = demux_real_dispose; this->demux_plugin.get_status = demux_real_get_status; this->demux_plugin.get_stream_length = demux_real_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -508,6 +510,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "real", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "real", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_realaudio.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_realaudio.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- demux_realaudio.c 1 Nov 2002 17:41:26 -0000 1.3 +++ demux_realaudio.c 9 Nov 2002 23:22:32 -0000 1.4 @@ -288,6 +288,8 @@ this->demux_plugin.dispose = demux_ra_dispose; this->demux_plugin.get_status = demux_ra_get_status; this->demux_plugin.get_stream_length = demux_ra_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -398,7 +400,7 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "realaudio", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "realaudio", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_roq.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_roq.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- demux_roq.c 1 Nov 2002 17:41:26 -0000 1.28 +++ demux_roq.c 9 Nov 2002 23:22:32 -0000 1.29 @@ -411,6 +411,8 @@ this->demux_plugin.dispose = demux_roq_dispose; this->demux_plugin.get_status = demux_roq_get_status; this->demux_plugin.get_stream_length = demux_roq_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -519,6 +521,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "roq", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "roq", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_smjpeg.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_smjpeg.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- demux_smjpeg.c 1 Nov 2002 17:41:27 -0000 1.24 +++ demux_smjpeg.c 9 Nov 2002 23:22:32 -0000 1.25 @@ -422,6 +422,8 @@ this->demux_plugin.dispose = demux_smjpeg_dispose; this->demux_plugin.get_status = demux_smjpeg_get_status; this->demux_plugin.get_stream_length = demux_smjpeg_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -547,6 +549,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "smjpeg", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "smjpeg", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_snd.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_snd.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- demux_snd.c 1 Nov 2002 17:41:27 -0000 1.16 +++ demux_snd.c 9 Nov 2002 23:22:32 -0000 1.17 @@ -326,6 +326,8 @@ this->demux_plugin.dispose = demux_snd_dispose; this->demux_plugin.get_status = demux_snd_get_status; this->demux_plugin.get_stream_length = demux_snd_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -438,6 +440,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "snd", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "snd", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_ts.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_ts.c,v retrieving revision 1.61 retrieving revision 1.62 diff -u -r1.61 -r1.62 --- demux_ts.c 7 Nov 2002 04:08:14 -0000 1.61 +++ demux_ts.c 9 Nov 2002 23:22:32 -0000 1.62 @@ -1414,7 +1414,23 @@ demux_ts_t*this = (demux_ts_t*)this_gen; - return this->input->get_length (this->input) / (this->rate * 50); + if (this->rate) + return this->input->get_length (this->input) / (this->rate * 50); + else + return 0; +} + +static int demux_ts_get_video_frame (demux_plugin_t *this_gen, + int timestamp, + int *width, int *height, + int *ratio_code, + int *duration, + int *format, + uint8_t *img) { + + /* demux_ts_t *this = (demux_ts_t*)this_gen; */ + + return 0; } @@ -1529,6 +1545,8 @@ this->demux_plugin.dispose = demux_ts_dispose; this->demux_plugin.get_status = demux_ts_get_status; this->demux_plugin.get_stream_length = demux_ts_get_stream_length; + this->demux_plugin.get_video_frame = demux_ts_get_video_frame; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; /* @@ -1618,6 +1636,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "mpeg-ts", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_DEMUX, 16, "mpeg-ts", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_voc.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_voc.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- demux_voc.c 1 Nov 2002 17:41:28 -0000 1.16 +++ demux_voc.c 9 Nov 2002 23:22:32 -0000 1.17 @@ -319,6 +319,8 @@ this->demux_plugin.dispose = demux_voc_dispose; this->demux_plugin.get_status = demux_voc_get_status; this->demux_plugin.get_stream_length = demux_voc_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -426,6 +428,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "voc", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "voc", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_vqa.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_vqa.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- demux_vqa.c 1 Nov 2002 17:41:28 -0000 1.17 +++ demux_vqa.c 9 Nov 2002 23:22:33 -0000 1.18 @@ -373,6 +373,8 @@ this->demux_plugin.dispose = demux_vqa_dispose; this->demux_plugin.get_status = demux_vqa_get_status; this->demux_plugin.get_stream_length = demux_vqa_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -480,6 +482,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "vqa", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "vqa", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_wav.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_wav.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- demux_wav.c 1 Nov 2002 17:41:28 -0000 1.24 +++ demux_wav.c 9 Nov 2002 23:22:33 -0000 1.25 @@ -318,6 +318,8 @@ this->demux_plugin.dispose = demux_wav_dispose; this->demux_plugin.get_status = demux_wav_get_status; this->demux_plugin.get_stream_length = demux_wav_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -440,6 +442,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "wav", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "wav", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_wc3movie.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_wc3movie.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- demux_wc3movie.c 1 Nov 2002 17:41:28 -0000 1.24 +++ demux_wc3movie.c 9 Nov 2002 23:22:33 -0000 1.25 @@ -677,6 +677,8 @@ this->demux_plugin.dispose = demux_mve_dispose; this->demux_plugin.get_status = demux_mve_get_status; this->demux_plugin.get_stream_length = demux_mve_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -776,6 +778,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "wc3movie", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "wc3movie", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; Index: demux_yuv4mpeg2.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_yuv4mpeg2.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- demux_yuv4mpeg2.c 1 Nov 2002 17:41:29 -0000 1.9 +++ demux_yuv4mpeg2.c 9 Nov 2002 23:22:33 -0000 1.10 @@ -337,6 +337,8 @@ this->demux_plugin.dispose = demux_yuv4mpeg2_dispose; this->demux_plugin.get_status = demux_yuv4mpeg2_get_status; this->demux_plugin.get_stream_length = demux_yuv4mpeg2_get_stream_length; + this->demux_plugin.get_video_frame = NULL; + this->demux_plugin.got_video_frame_cb= NULL; this->demux_plugin.demux_class = class_gen; this->status = DEMUX_FINISHED; @@ -442,6 +444,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 15, "yuv4mpeg2", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 16, "yuv4mpeg2", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; |