diff options
Diffstat (limited to 'src/xine-engine')
-rw-r--r-- | src/xine-engine/events.h | 21 | ||||
-rw-r--r-- | src/xine-engine/load_plugins.c | 6 | ||||
-rw-r--r-- | src/xine-engine/osd.c | 19 | ||||
-rw-r--r-- | src/xine-engine/osd.h | 10 | ||||
-rw-r--r-- | src/xine-engine/xine_internal.h | 4 |
5 files changed, 53 insertions, 7 deletions
diff --git a/src/xine-engine/events.h b/src/xine-engine/events.h index 807fb66b4..2cdf32a88 100644 --- a/src/xine-engine/events.h +++ b/src/xine-engine/events.h @@ -58,6 +58,8 @@ extern "C" { #define XINE_EVENT_INPUT_ANGLE_NEXT 20 #define XINE_EVENT_INPUT_ANGLE_PREVIOUS 21 #define XINE_EVENT_SPU_FORCEDISPLAY 22 +#define XINE_EVENT_FRAME_CHANGE 23 +#define XINE_EVENT_CLOSED_CAPTION 24 /* * generic event type. @@ -105,6 +107,25 @@ typedef struct { int handled; } xine_next_mrl_event_t; +/* + * notify frame change + */ +typedef struct { + xine_event_t event; + int width; + int height; +} xine_frame_change_event_t; + +/* + * closed caption + */ +typedef struct { + xine_event_t event; + uint8_t *buffer; + uint32_t buf_len; + uint32_t pts; + uint32_t scr; +} xine_closed_caption_event_t; #ifdef __cplusplus } diff --git a/src/xine-engine/load_plugins.c b/src/xine-engine/load_plugins.c index 00bc05b43..cde800de7 100644 --- a/src/xine-engine/load_plugins.c +++ b/src/xine-engine/load_plugins.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: load_plugins.c,v 1.64 2002/01/02 18:16:07 jkeil Exp $ + * $Id: load_plugins.c,v 1.65 2002/01/05 21:54:17 miguelfreitas Exp $ * * * Load input/demux/audio_out/video_out/codec plugins @@ -571,7 +571,7 @@ void load_decoder_plugins (xine_t *this, video_decoder_t *vdp; int streamtype; - vdp = (video_decoder_t *) initplug(iface_version, config); + vdp = (video_decoder_t *) initplug(iface_version, this); if (vdp) { vdp->metronom = this->metronom; @@ -596,7 +596,7 @@ void load_decoder_plugins (xine_t *this, audio_decoder_t *adp; int streamtype; - adp = (audio_decoder_t *) initplug(iface_version, config); + adp = (audio_decoder_t *) initplug(iface_version, this); if (adp) { for (streamtype = 0; streamtype<DECODER_PLUGIN_MAX; streamtype++) diff --git a/src/xine-engine/osd.c b/src/xine-engine/osd.c index 58fc4d5f8..9263674ad 100644 --- a/src/xine-engine/osd.c +++ b/src/xine-engine/osd.c @@ -279,6 +279,24 @@ static int osd_hide (osd_object_t *osd, uint32_t vpts) { return 1; } + +/* + * clear an osd object, so that it can be used for rendering a new image + */ + +static void osd_clear (osd_object_t *osd) { +#ifdef LOG_DEBUG + printf("osd_clear\n"); +#endif + + memset(osd->area, 0, osd->width * osd->height); + osd->x1 = osd->width; + osd->y1 = osd->height; + osd->x2 = 0; + osd->y2 = 0; +} + + /* * Bresenham line implementation on osd object */ @@ -849,6 +867,7 @@ osd_renderer_t *osd_renderer_init( video_overlay_instance_t *video_overlay, conf this->get_palette = osd_get_palette; this->set_position = osd_set_position; this->set_font = osd_set_font; + this->clear = osd_clear; this->line = osd_line; this->filled_rect = osd_filled_rect; this->render_text = osd_render_text; diff --git a/src/xine-engine/osd.h b/src/xine-engine/osd.h index a55b791bd..177b9d817 100644 --- a/src/xine-engine/osd.h +++ b/src/xine-engine/osd.h @@ -18,7 +18,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * * OSD stuff (text and graphic primitives) - * $Id: osd.h,v 1.5 2001/12/13 23:15:02 guenter Exp $ + * $Id: osd.h,v 1.6 2002/01/05 21:54:17 miguelfreitas Exp $ */ #ifndef HAVE_OSD_H @@ -33,6 +33,7 @@ typedef struct osd_object_s osd_object_t; typedef struct osd_renderer_s osd_renderer_t; typedef struct osd_font_s osd_font_t; +/* WARNING: this should be kept in sync with include/xine.h.tmpl.in */ struct osd_renderer_s { /* @@ -123,7 +124,12 @@ struct osd_renderer_s { * osd objects are closed */ void (*close) (osd_renderer_t *this); - + + /* + * clear an osd object + */ + void (*clear) (osd_object_t *osd ); + /* private stuff */ pthread_mutex_t osd_mutex; diff --git a/src/xine-engine/xine_internal.h b/src/xine-engine/xine_internal.h index a4f960136..9ffcadd4c 100644 --- a/src/xine-engine/xine_internal.h +++ b/src/xine-engine/xine_internal.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_internal.h,v 1.67 2001/12/27 14:30:30 f1rmb Exp $ + * $Id: xine_internal.h,v 1.68 2002/01/05 21:54:17 miguelfreitas Exp $ * */ @@ -55,7 +55,7 @@ extern "C" { #define INPUT_PLUGIN_MAX 50 #define DEMUXER_PLUGIN_MAX 50 #define DECODER_PLUGIN_MAX 256 -#define DECODER_PLUGIN_IFACE_VERSION 4 +#define DECODER_PLUGIN_IFACE_VERSION 5 #define AUDIO_OUT_PLUGIN_MAX 50 #define VIDEO_OUT_PLUGIN_MAX 50 #define XINE_MAX_EVENT_LISTENERS 50 |