gst/dvdspu/: Fix up dvdspu element again after previous namespace mangling: rename debug category variable to old nam...

Original commit message from CVS:
* gst/dvdspu/gstdvdspu-render.c: (gst_dvd_spu_render_spu):
* gst/dvdspu/gstdvdspu.c: (dvdspu_debug), (GST_CAT_DEFAULT),
(subpic_sink_factory), (gst_dvd_spu_base_init),
(gst_dvd_spu_class_init), (gst_dvd_spu_init), (gst_dvd_spu_clear),
(gst_dvd_spu_dispose), (gst_dvd_spu_finalize),
(gst_dvd_spu_flush_spu_info), (gst_dvd_spu_buffer_alloc),
(gst_dvd_spu_src_event), (gst_dvd_spu_video_set_caps),
(gst_dvd_spu_video_proxy_getcaps), (gst_dvd_spu_video_event),
(gst_dvd_spu_video_chain), (dvspu_handle_vid_buffer),
(gst_dvd_spu_redraw_still), (gst_dvd_spu_parse_chg_colcon),
(gst_dvd_spu_exec_cmd_blk), (gst_dvd_spu_finish_spu_buf),
(gst_dvd_spu_setup_cmd_blk), (gst_dvd_spu_handle_new_spu_buf),
(gst_dvd_spu_handle_dvd_event), (gst_dvd_spu_advance_spu),
(gst_dvd_spu_check_still_updates), (gst_dvd_spu_subpic_chain),
(gst_dvd_spu_subpic_event), (gst_dvd_spu_change_state),
(gst_dvd_spu_plugin_init):
* gst/dvdspu/gstdvdspu.h: (GST_TYPE_DVD_SPU):
Fix up dvdspu element again after previous namespace mangling:
rename debug category variable to old name, matching that in
dvdspu-render.c, to avoid undefined symbol error when loading
the module; same for the _render function in dvdspu-render.c:
we must use the same name in both .c files; change functions
now called gstgst_* back to gst_* again; and while we're at it,
we may as well canonicalise the namespace properly, namely to
gst_dvd_spu_*.
This commit is contained in:
Tim-Philipp Müller 2008-01-21 11:01:30 +00:00
parent cb1684abec
commit e96cd36332
4 changed files with 118 additions and 89 deletions

View file

@ -1,3 +1,31 @@
2008-01-21 Tim-Philipp Müller <tim at centricular dot net>
* gst/dvdspu/gstdvdspu-render.c: (gst_dvd_spu_render_spu):
* gst/dvdspu/gstdvdspu.c: (dvdspu_debug), (GST_CAT_DEFAULT),
(subpic_sink_factory), (gst_dvd_spu_base_init),
(gst_dvd_spu_class_init), (gst_dvd_spu_init), (gst_dvd_spu_clear),
(gst_dvd_spu_dispose), (gst_dvd_spu_finalize),
(gst_dvd_spu_flush_spu_info), (gst_dvd_spu_buffer_alloc),
(gst_dvd_spu_src_event), (gst_dvd_spu_video_set_caps),
(gst_dvd_spu_video_proxy_getcaps), (gst_dvd_spu_video_event),
(gst_dvd_spu_video_chain), (dvspu_handle_vid_buffer),
(gst_dvd_spu_redraw_still), (gst_dvd_spu_parse_chg_colcon),
(gst_dvd_spu_exec_cmd_blk), (gst_dvd_spu_finish_spu_buf),
(gst_dvd_spu_setup_cmd_blk), (gst_dvd_spu_handle_new_spu_buf),
(gst_dvd_spu_handle_dvd_event), (gst_dvd_spu_advance_spu),
(gst_dvd_spu_check_still_updates), (gst_dvd_spu_subpic_chain),
(gst_dvd_spu_subpic_event), (gst_dvd_spu_change_state),
(gst_dvd_spu_plugin_init):
* gst/dvdspu/gstdvdspu.h: (GST_TYPE_DVD_SPU):
Fix up dvdspu element again after previous namespace mangling:
rename debug category variable to old name, matching that in
dvdspu-render.c, to avoid undefined symbol error when loading
the module; same for the _render function in dvdspu-render.c:
we must use the same name in both .c files; change functions
now called gstgst_* back to gst_* again; and while we're at it,
we may as well canonicalise the namespace properly, namely to
gst_dvd_spu_*.
2008-01-21 Stefan Kost <ensonic@users.sf.net> 2008-01-21 Stefan Kost <ensonic@users.sf.net>
* docs/plugins/gst-plugins-bad-plugins-sections.txt: * docs/plugins/gst-plugins-bad-plugins-sections.txt:

View file

@ -393,7 +393,7 @@ dvdspu_blend_comp_buffers (SpuState * state, guint8 * planes[3])
} }
void void
gstdvdspu_render_spu (GstDVDSpu * dvdspu, GstBuffer * buf) gst_dvd_spu_render_spu (GstDVDSpu * dvdspu, GstBuffer * buf)
{ {
SpuState *state = &dvdspu->spu_state; SpuState *state = &dvdspu->spu_state;
guint8 *planes[3]; /* YUV frame pointers */ guint8 *planes[3]; /* YUV frame pointers */

View file

@ -42,10 +42,10 @@
#include "gstdvdspu.h" #include "gstdvdspu.h"
extern void gstgst_dvdspu_render_spu (GstDVDSpu * dvdspu, GstBuffer * buf); extern void gst_dvd_spu_render_spu (GstDVDSpu * dvdspu, GstBuffer * buf);
GST_DEBUG_CATEGORY (gst_dvdspu_debug); GST_DEBUG_CATEGORY (dvdspu_debug);
#define GST_CAT_DEFAULT gst_dvdspu_debug #define GST_CAT_DEFAULT dvdspu_debug
/* Convert an STM offset in the SPU sequence to a GStreamer timestamp */ /* Convert an STM offset in the SPU sequence to a GStreamer timestamp */
#define STM_TO_GST(stm) ((GST_MSECOND * 1024 * (stm)) / 90) #define STM_TO_GST(stm) ((GST_MSECOND * 1024 * (stm)) / 90)
@ -81,35 +81,35 @@ GST_STATIC_PAD_TEMPLATE ("subpicture",
GST_STATIC_CAPS ("video/x-dvd-subpicture") GST_STATIC_CAPS ("video/x-dvd-subpicture")
); );
GST_BOILERPLATE (GstDVDSpu, gst_dvdspu, GstElement, GST_TYPE_ELEMENT); GST_BOILERPLATE (GstDVDSpu, gst_dvd_spu, GstElement, GST_TYPE_ELEMENT);
static void gst_dvdspu_dispose (GObject * object); static void gst_dvd_spu_dispose (GObject * object);
static void gst_dvdspu_finalize (GObject * object); static void gst_dvd_spu_finalize (GObject * object);
static GstStateChangeReturn gst_dvdspu_change_state (GstElement * element, static GstStateChangeReturn gst_dvd_spu_change_state (GstElement * element,
GstStateChange transition); GstStateChange transition);
static gboolean gst_dvdspu_src_event (GstPad * pad, GstEvent * event); static gboolean gst_dvd_spu_src_event (GstPad * pad, GstEvent * event);
static GstCaps *gst_dvdspu_video_proxy_getcaps (GstPad * pad); static GstCaps *gst_dvd_spu_video_proxy_getcaps (GstPad * pad);
static gboolean gst_dvdspu_video_set_caps (GstPad * pad, GstCaps * caps); static gboolean gst_dvd_spu_video_set_caps (GstPad * pad, GstCaps * caps);
static GstFlowReturn gst_dvdspu_video_chain (GstPad * pad, GstBuffer * buf); static GstFlowReturn gst_dvd_spu_video_chain (GstPad * pad, GstBuffer * buf);
static gboolean gst_dvdspu_video_event (GstPad * pad, GstEvent * event); static gboolean gst_dvd_spu_video_event (GstPad * pad, GstEvent * event);
static GstFlowReturn gst_dvdspu_buffer_alloc (GstPad * sinkpad, guint64 offset, static GstFlowReturn gst_dvd_spu_buffer_alloc (GstPad * sinkpad, guint64 offset,
guint size, GstCaps * caps, GstBuffer ** buf); guint size, GstCaps * caps, GstBuffer ** buf);
static void gst_dvdspu_redraw_still (GstDVDSpu * dvdspu); static void gst_dvd_spu_redraw_still (GstDVDSpu * dvdspu);
static void gst_dvdspu_check_still_updates (GstDVDSpu * dvdspu); static void gst_dvd_spu_check_still_updates (GstDVDSpu * dvdspu);
static GstFlowReturn gst_dvdspu_subpic_chain (GstPad * pad, GstBuffer * buf); static GstFlowReturn gst_dvd_spu_subpic_chain (GstPad * pad, GstBuffer * buf);
static gboolean gst_dvdspu_subpic_event (GstPad * pad, GstEvent * event); static gboolean gst_dvd_spu_subpic_event (GstPad * pad, GstEvent * event);
static void gst_dvdspu_clear (GstDVDSpu * dvdspu); static void gst_dvd_spu_clear (GstDVDSpu * dvdspu);
static void gst_dvdspu_flush_spu_info (GstDVDSpu * dvdspu); static void gst_dvd_spu_flush_spu_info (GstDVDSpu * dvdspu);
static void gst_dvdspu_advance_spu (GstDVDSpu * dvdspu, GstClockTime new_ts); static void gst_dvd_spu_advance_spu (GstDVDSpu * dvdspu, GstClockTime new_ts);
static GstFlowReturn static GstFlowReturn
dvspu_handle_vid_buffer (GstDVDSpu * dvdspu, GstBuffer * buf); dvspu_handle_vid_buffer (GstDVDSpu * dvdspu, GstBuffer * buf);
static void static void
gst_dvdspu_base_init (gpointer gclass) gst_dvd_spu_base_init (gpointer gclass)
{ {
static GstElementDetails element_details = static GstElementDetails element_details =
GST_ELEMENT_DETAILS ("Fluendo DVD Player Sub-picture Overlay", GST_ELEMENT_DETAILS ("Fluendo DVD Player Sub-picture Overlay",
@ -127,11 +127,11 @@ gst_dvdspu_base_init (gpointer gclass)
gst_static_pad_template_get (&subpic_sink_factory)); gst_static_pad_template_get (&subpic_sink_factory));
gst_element_class_set_details (element_class, &element_details); gst_element_class_set_details (element_class, &element_details);
element_class->change_state = gst_dvdspu_change_state; element_class->change_state = gst_dvd_spu_change_state;
} }
static void static void
gst_dvdspu_class_init (GstDVDSpuClass * klass) gst_dvd_spu_class_init (GstDVDSpuClass * klass)
{ {
GObjectClass *gobject_class; GObjectClass *gobject_class;
GstElementClass *gstelement_class; GstElementClass *gstelement_class;
@ -139,32 +139,33 @@ gst_dvdspu_class_init (GstDVDSpuClass * klass)
gobject_class = (GObjectClass *) klass; gobject_class = (GObjectClass *) klass;
gstelement_class = (GstElementClass *) klass; gstelement_class = (GstElementClass *) klass;
gobject_class->dispose = (GObjectFinalizeFunc) gst_dvdspu_dispose; gobject_class->dispose = (GObjectFinalizeFunc) gst_dvd_spu_dispose;
gobject_class->finalize = (GObjectFinalizeFunc) gst_dvdspu_finalize; gobject_class->finalize = (GObjectFinalizeFunc) gst_dvd_spu_finalize;
} }
static void static void
gst_dvdspu_init (GstDVDSpu * dvdspu, GstDVDSpuClass * gclass) gst_dvd_spu_init (GstDVDSpu * dvdspu, GstDVDSpuClass * gclass)
{ {
dvdspu->videosinkpad = dvdspu->videosinkpad =
gst_pad_new_from_static_template (&video_sink_factory, "video"); gst_pad_new_from_static_template (&video_sink_factory, "video");
gst_pad_set_setcaps_function (dvdspu->videosinkpad, gst_pad_set_setcaps_function (dvdspu->videosinkpad,
gst_dvdspu_video_set_caps); gst_dvd_spu_video_set_caps);
gst_pad_set_getcaps_function (dvdspu->videosinkpad, gst_pad_set_getcaps_function (dvdspu->videosinkpad,
gst_dvdspu_video_proxy_getcaps); gst_dvd_spu_video_proxy_getcaps);
gst_pad_set_chain_function (dvdspu->videosinkpad, gst_dvdspu_video_chain); gst_pad_set_chain_function (dvdspu->videosinkpad, gst_dvd_spu_video_chain);
gst_pad_set_event_function (dvdspu->videosinkpad, gst_dvdspu_video_event); gst_pad_set_event_function (dvdspu->videosinkpad, gst_dvd_spu_video_event);
gst_pad_set_bufferalloc_function (dvdspu->videosinkpad, gst_pad_set_bufferalloc_function (dvdspu->videosinkpad,
gst_dvdspu_buffer_alloc); gst_dvd_spu_buffer_alloc);
dvdspu->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); dvdspu->srcpad = gst_pad_new_from_static_template (&src_factory, "src");
gst_pad_set_event_function (dvdspu->srcpad, gst_dvdspu_src_event); gst_pad_set_event_function (dvdspu->srcpad, gst_dvd_spu_src_event);
gst_pad_set_getcaps_function (dvdspu->srcpad, gst_dvdspu_video_proxy_getcaps); gst_pad_set_getcaps_function (dvdspu->srcpad,
gst_dvd_spu_video_proxy_getcaps);
dvdspu->subpic_sinkpad = dvdspu->subpic_sinkpad =
gst_pad_new_from_static_template (&subpic_sink_factory, "subpicture"); gst_pad_new_from_static_template (&subpic_sink_factory, "subpicture");
gst_pad_set_chain_function (dvdspu->subpic_sinkpad, gst_dvdspu_subpic_chain); gst_pad_set_chain_function (dvdspu->subpic_sinkpad, gst_dvd_spu_subpic_chain);
gst_pad_set_event_function (dvdspu->subpic_sinkpad, gst_dvdspu_subpic_event); gst_pad_set_event_function (dvdspu->subpic_sinkpad, gst_dvd_spu_subpic_event);
gst_pad_use_fixed_caps (dvdspu->subpic_sinkpad); gst_pad_use_fixed_caps (dvdspu->subpic_sinkpad);
gst_element_add_pad (GST_ELEMENT (dvdspu), dvdspu->videosinkpad); gst_element_add_pad (GST_ELEMENT (dvdspu), dvdspu->videosinkpad);
@ -174,13 +175,13 @@ gst_dvdspu_init (GstDVDSpu * dvdspu, GstDVDSpuClass * gclass)
dvdspu->spu_lock = g_mutex_new (); dvdspu->spu_lock = g_mutex_new ();
dvdspu->pending_spus = g_queue_new (); dvdspu->pending_spus = g_queue_new ();
gst_dvdspu_clear (dvdspu); gst_dvd_spu_clear (dvdspu);
} }
static void static void
gst_dvdspu_clear (GstDVDSpu * dvdspu) gst_dvd_spu_clear (GstDVDSpu * dvdspu)
{ {
gst_dvdspu_flush_spu_info (dvdspu); gst_dvd_spu_flush_spu_info (dvdspu);
gst_buffer_replace (&dvdspu->ref_frame, NULL); gst_buffer_replace (&dvdspu->ref_frame, NULL);
gst_buffer_replace (&dvdspu->pending_frame, NULL); gst_buffer_replace (&dvdspu->pending_frame, NULL);
@ -192,20 +193,20 @@ gst_dvdspu_clear (GstDVDSpu * dvdspu)
} }
static void static void
gst_dvdspu_dispose (GObject * object) gst_dvd_spu_dispose (GObject * object)
{ {
GstDVDSpu *dvdspu = GST_DVD_SPU (object); GstDVDSpu *dvdspu = GST_DVD_SPU (object);
/* need to hold the SPU lock in case other stuff is still running... */ /* need to hold the SPU lock in case other stuff is still running... */
DVD_SPU_LOCK (dvdspu); DVD_SPU_LOCK (dvdspu);
gst_dvdspu_clear (dvdspu); gst_dvd_spu_clear (dvdspu);
DVD_SPU_UNLOCK (dvdspu); DVD_SPU_UNLOCK (dvdspu);
G_OBJECT_CLASS (parent_class)->dispose (object); G_OBJECT_CLASS (parent_class)->dispose (object);
} }
static void static void
gst_dvdspu_finalize (GObject * object) gst_dvd_spu_finalize (GObject * object)
{ {
GstDVDSpu *dvdspu = GST_DVD_SPU (object); GstDVDSpu *dvdspu = GST_DVD_SPU (object);
gint i; gint i;
@ -224,7 +225,7 @@ gst_dvdspu_finalize (GObject * object)
/* With SPU lock held, clear the queue of SPU packets */ /* With SPU lock held, clear the queue of SPU packets */
static void static void
gst_dvdspu_flush_spu_info (GstDVDSpu * dvdspu) gst_dvd_spu_flush_spu_info (GstDVDSpu * dvdspu)
{ {
SpuPacket *packet; SpuPacket *packet;
SpuState *state = &dvdspu->spu_state; SpuState *state = &dvdspu->spu_state;
@ -277,7 +278,7 @@ gst_dvdspu_flush_spu_info (GstDVDSpu * dvdspu)
/* Proxy buffer allocations on the video sink pad downstream */ /* Proxy buffer allocations on the video sink pad downstream */
static GstFlowReturn static GstFlowReturn
gst_dvdspu_buffer_alloc (GstPad * sinkpad, guint64 offset, guint size, gst_dvd_spu_buffer_alloc (GstPad * sinkpad, guint64 offset, guint size,
GstCaps * caps, GstBuffer ** buf) GstCaps * caps, GstBuffer ** buf)
{ {
GstDVDSpu *dvdspu = GST_DVD_SPU (gst_pad_get_parent (sinkpad)); GstDVDSpu *dvdspu = GST_DVD_SPU (gst_pad_get_parent (sinkpad));
@ -291,7 +292,7 @@ gst_dvdspu_buffer_alloc (GstPad * sinkpad, guint64 offset, guint size,
} }
static gboolean static gboolean
gst_dvdspu_src_event (GstPad * pad, GstEvent * event) gst_dvd_spu_src_event (GstPad * pad, GstEvent * event)
{ {
GstDVDSpu *dvdspu = GST_DVD_SPU (gst_pad_get_parent (pad)); GstDVDSpu *dvdspu = GST_DVD_SPU (gst_pad_get_parent (pad));
GstPad *peer; GstPad *peer;
@ -308,7 +309,7 @@ gst_dvdspu_src_event (GstPad * pad, GstEvent * event)
} }
static gboolean static gboolean
gst_dvdspu_video_set_caps (GstPad * pad, GstCaps * caps) gst_dvd_spu_video_set_caps (GstPad * pad, GstCaps * caps)
{ {
GstDVDSpu *dvdspu = GST_DVD_SPU (gst_pad_get_parent (pad)); GstDVDSpu *dvdspu = GST_DVD_SPU (gst_pad_get_parent (pad));
gboolean res = FALSE; gboolean res = FALSE;
@ -355,7 +356,7 @@ done:
} }
static GstCaps * static GstCaps *
gst_dvdspu_video_proxy_getcaps (GstPad * pad) gst_dvd_spu_video_proxy_getcaps (GstPad * pad)
{ {
GstDVDSpu *dvdspu = GST_DVD_SPU (gst_pad_get_parent (pad)); GstDVDSpu *dvdspu = GST_DVD_SPU (gst_pad_get_parent (pad));
GstCaps *caps; GstCaps *caps;
@ -383,7 +384,7 @@ gst_dvdspu_video_proxy_getcaps (GstPad * pad)
} }
static gboolean static gboolean
gst_dvdspu_video_event (GstPad * pad, GstEvent * event) gst_dvd_spu_video_event (GstPad * pad, GstEvent * event)
{ {
GstDVDSpu *dvdspu = (GstDVDSpu *) (gst_object_get_parent (GST_OBJECT (pad))); GstDVDSpu *dvdspu = (GstDVDSpu *) (gst_object_get_parent (GST_OBJECT (pad)));
SpuState *state = &dvdspu->spu_state; SpuState *state = &dvdspu->spu_state;
@ -416,11 +417,11 @@ gst_dvdspu_video_event (GstPad * pad, GstEvent * event)
state->flags |= SPU_STATE_STILL_FRAME; state->flags |= SPU_STATE_STILL_FRAME;
/* Entering still. Advance the SPU to make sure the state is /* Entering still. Advance the SPU to make sure the state is
* up to date */ * up to date */
gst_dvdspu_check_still_updates (dvdspu); gst_dvd_spu_check_still_updates (dvdspu);
/* And re-draw the still frame to make sure it appears on /* And re-draw the still frame to make sure it appears on
* screen, otherwise the last frame might have been discarded * screen, otherwise the last frame might have been discarded
* by QoS */ * by QoS */
gst_dvdspu_redraw_still (dvdspu); gst_dvd_spu_redraw_still (dvdspu);
} else } else
state->flags &= ~(SPU_STATE_STILL_FRAME); state->flags &= ~(SPU_STATE_STILL_FRAME);
DVD_SPU_UNLOCK (dvdspu); DVD_SPU_UNLOCK (dvdspu);
@ -508,7 +509,7 @@ error:
} }
static GstFlowReturn static GstFlowReturn
gst_dvdspu_video_chain (GstPad * pad, GstBuffer * buf) gst_dvd_spu_video_chain (GstPad * pad, GstBuffer * buf)
{ {
GstDVDSpu *dvdspu = (GstDVDSpu *) (gst_object_get_parent (GST_OBJECT (pad))); GstDVDSpu *dvdspu = (GstDVDSpu *) (gst_object_get_parent (GST_OBJECT (pad)));
GstFlowReturn ret; GstFlowReturn ret;
@ -572,7 +573,7 @@ dvspu_handle_vid_buffer (GstDVDSpu * dvdspu, GstBuffer * buf)
GST_TIME_ARGS (dvdspu->video_seg.last_stop), GST_TIME_ARGS (new_ts)); GST_TIME_ARGS (dvdspu->video_seg.last_stop), GST_TIME_ARGS (new_ts));
#endif #endif
gst_dvdspu_advance_spu (dvdspu, new_ts); gst_dvd_spu_advance_spu (dvdspu, new_ts);
/* If we have an active SPU command set, we store a copy of the frame in case /* If we have an active SPU command set, we store a copy of the frame in case
* we hit a still and need to draw on it. Otherwise, a reference is * we hit a still and need to draw on it. Otherwise, a reference is
@ -593,7 +594,7 @@ dvspu_handle_vid_buffer (GstDVDSpu * dvdspu, GstBuffer * buf)
/* Render the SPU overlay onto the buffer */ /* Render the SPU overlay onto the buffer */
buf = gst_buffer_make_writable (buf); buf = gst_buffer_make_writable (buf);
gstgst_dvdspu_render_spu (dvdspu, buf); gst_dvd_spu_render_spu (dvdspu, buf);
} else { } else {
if (using_ref == FALSE) { if (using_ref == FALSE) {
/* Not going to draw anything on this frame, just store a reference /* Not going to draw anything on this frame, just store a reference
@ -624,7 +625,7 @@ no_ref_frame:
/* With SPU LOCK */ /* With SPU LOCK */
static void static void
gst_dvdspu_redraw_still (GstDVDSpu * dvdspu) gst_dvd_spu_redraw_still (GstDVDSpu * dvdspu)
{ {
/* If we have an active SPU command set and a reference frame, copy the /* If we have an active SPU command set and a reference frame, copy the
* frame, redraw the SPU and store it as the pending frame for output */ * frame, redraw the SPU and store it as the pending frame for output */
@ -643,7 +644,7 @@ gst_dvdspu_redraw_still (GstDVDSpu * dvdspu)
GST_BUFFER_DURATION (buf) = GST_CLOCK_TIME_NONE; GST_BUFFER_DURATION (buf) = GST_CLOCK_TIME_NONE;
/* Render the SPU overlay onto the buffer */ /* Render the SPU overlay onto the buffer */
gstgst_dvdspu_render_spu (dvdspu, buf); gst_dvd_spu_render_spu (dvdspu, buf);
gst_buffer_replace (&dvdspu->pending_frame, buf); gst_buffer_replace (&dvdspu->pending_frame, buf);
} else { } else {
GST_LOG_OBJECT (dvdspu, GST_LOG_OBJECT (dvdspu,
@ -655,7 +656,7 @@ gst_dvdspu_redraw_still (GstDVDSpu * dvdspu)
} }
static void static void
gstgst_dvdspu_parse_chg_colcon (GstDVDSpu * dvdspu, guint8 * data, guint8 * end) gst_dvd_spu_parse_chg_colcon (GstDVDSpu * dvdspu, guint8 * data, guint8 * end)
{ {
SpuState *state = &dvdspu->spu_state; SpuState *state = &dvdspu->spu_state;
guint8 *cur; guint8 *cur;
@ -723,7 +724,7 @@ gstgst_dvdspu_parse_chg_colcon (GstDVDSpu * dvdspu, guint8 * data, guint8 * end)
} }
static void static void
gst_dvdspu_exec_cmd_blk (GstDVDSpu * dvdspu, guint8 * data, guint8 * end) gst_dvd_spu_exec_cmd_blk (GstDVDSpu * dvdspu, guint8 * data, guint8 * end)
{ {
SpuState *state = &dvdspu->spu_state; SpuState *state = &dvdspu->spu_state;
@ -831,7 +832,7 @@ gst_dvdspu_exec_cmd_blk (GstDVDSpu * dvdspu, guint8 * data, guint8 * end)
if (G_UNLIKELY (data + field_size >= end)) if (G_UNLIKELY (data + field_size >= end))
return; /* Invalid CHG_COLCON cmd at the end of the blk */ return; /* Invalid CHG_COLCON cmd at the end of the blk */
gstgst_dvdspu_parse_chg_colcon (dvdspu, data + 2, data + field_size); gst_dvd_spu_parse_chg_colcon (dvdspu, data + 2, data + field_size);
state->line_ctrl_i_pal_dirty = TRUE; state->line_ctrl_i_pal_dirty = TRUE;
data += field_size; data += field_size;
break; break;
@ -846,7 +847,7 @@ gst_dvdspu_exec_cmd_blk (GstDVDSpu * dvdspu, guint8 * data, guint8 * end)
} }
static void static void
gst_dvdspu_finish_spu_buf (GstDVDSpu * dvdspu) gst_dvd_spu_finish_spu_buf (GstDVDSpu * dvdspu)
{ {
SpuState *state = &dvdspu->spu_state; SpuState *state = &dvdspu->spu_state;
@ -857,7 +858,7 @@ gst_dvdspu_finish_spu_buf (GstDVDSpu * dvdspu)
} }
static gboolean static gboolean
gst_dvdspu_setup_cmd_blk (GstDVDSpu * dvdspu, guint16 cmd_blk_offset, gst_dvd_spu_setup_cmd_blk (GstDVDSpu * dvdspu, guint16 cmd_blk_offset,
guint8 * start, guint8 * end) guint8 * start, guint8 * end)
{ {
SpuState *state = &dvdspu->spu_state; SpuState *state = &dvdspu->spu_state;
@ -877,7 +878,7 @@ gst_dvdspu_setup_cmd_blk (GstDVDSpu * dvdspu, guint16 cmd_blk_offset,
} }
static void static void
gst_dvdspu_handle_new_spu_buf (GstDVDSpu * dvdspu, SpuPacket * packet) gst_dvd_spu_handle_new_spu_buf (GstDVDSpu * dvdspu, SpuPacket * packet)
{ {
guint8 *start, *end; guint8 *start, *end;
SpuState *state = &dvdspu->spu_state; SpuState *state = &dvdspu->spu_state;
@ -897,7 +898,7 @@ gst_dvdspu_handle_new_spu_buf (GstDVDSpu * dvdspu, SpuPacket * packet)
/* Configure the first command block in this buffer as our initial blk */ /* Configure the first command block in this buffer as our initial blk */
state->cur_cmd_blk = GST_READ_UINT16_BE (start + 2); state->cur_cmd_blk = GST_READ_UINT16_BE (start + 2);
gst_dvdspu_setup_cmd_blk (dvdspu, state->cur_cmd_blk, start, end); gst_dvd_spu_setup_cmd_blk (dvdspu, state->cur_cmd_blk, start, end);
/* Clear existing chg-colcon info */ /* Clear existing chg-colcon info */
if (state->line_ctrl_i != NULL) { if (state->line_ctrl_i != NULL) {
g_free (state->line_ctrl_i); g_free (state->line_ctrl_i);
@ -907,11 +908,11 @@ gst_dvdspu_handle_new_spu_buf (GstDVDSpu * dvdspu, SpuPacket * packet)
invalid: invalid:
/* Invalid buffer */ /* Invalid buffer */
gst_dvdspu_finish_spu_buf (dvdspu); gst_dvd_spu_finish_spu_buf (dvdspu);
} }
static void static void
gst_dvdspu_handle_dvd_event (GstDVDSpu * dvdspu, GstEvent * event) gst_dvd_spu_handle_dvd_event (GstDVDSpu * dvdspu, GstEvent * event)
{ {
const gchar *event_type; const gchar *event_type;
const GstStructure *structure = gst_event_get_structure (event); const GstStructure *structure = gst_event_get_structure (event);
@ -990,7 +991,7 @@ gst_dvdspu_handle_dvd_event (GstDVDSpu * dvdspu, GstEvent * event)
} }
if (hl_change && (state->flags & SPU_STATE_STILL_FRAME)) { if (hl_change && (state->flags & SPU_STATE_STILL_FRAME)) {
gst_dvdspu_redraw_still (dvdspu); gst_dvd_spu_redraw_still (dvdspu);
} }
gst_event_unref (event); gst_event_unref (event);
@ -998,7 +999,7 @@ gst_dvdspu_handle_dvd_event (GstDVDSpu * dvdspu, GstEvent * event)
#if 0 #if 0
static void static void
gst_dvdspu_dump_dcsq (GstDVDSpu * dvdspu, gst_dvd_spu_dump_dcsq (GstDVDSpu * dvdspu,
GstClockTime start_ts, GstBuffer * spu_buf) GstClockTime start_ts, GstBuffer * spu_buf)
{ {
guint16 cmd_blk_offset; guint16 cmd_blk_offset;
@ -1036,14 +1037,14 @@ gst_dvdspu_dump_dcsq (GstDVDSpu * dvdspu,
cmd_blk_offset, next_blk, GST_TIME_ARGS (cmd_blk_ts)); cmd_blk_offset, next_blk, GST_TIME_ARGS (cmd_blk_ts));
data += 4; data += 4;
gst_dvdspu_exec_cmd_blk (dvdspu, data, end); gst_dvd_spu_exec_cmd_blk (dvdspu, data, end);
} }
} }
#endif #endif
/* Advance the SPU packet/command queue to a time. new_ts is in running time */ /* Advance the SPU packet/command queue to a time. new_ts is in running time */
static void static void
gst_dvdspu_advance_spu (GstDVDSpu * dvdspu, GstClockTime new_ts) gst_dvd_spu_advance_spu (GstDVDSpu * dvdspu, GstClockTime new_ts)
{ {
SpuState *state = &dvdspu->spu_state; SpuState *state = &dvdspu->spu_state;
@ -1070,11 +1071,11 @@ gst_dvdspu_advance_spu (GstDVDSpu * dvdspu, GstClockTime new_ts)
GST_TIME_ARGS (dvdspu->video_seg.last_stop)); GST_TIME_ARGS (dvdspu->video_seg.last_stop));
if (packet->buf) { if (packet->buf) {
// gst_dvdspu_dump_dcsq (dvdspu, packet->event_ts, packet->buf); // gst_dvd_spu_dump_dcsq (dvdspu, packet->event_ts, packet->buf);
gst_dvdspu_handle_new_spu_buf (dvdspu, packet); gst_dvd_spu_handle_new_spu_buf (dvdspu, packet);
} }
if (packet->event) if (packet->event)
gst_dvdspu_handle_dvd_event (dvdspu, packet->event); gst_dvd_spu_handle_dvd_event (dvdspu, packet->event);
g_free (packet); g_free (packet);
continue; continue;
@ -1098,26 +1099,26 @@ gst_dvdspu_advance_spu (GstDVDSpu * dvdspu, GstClockTime new_ts)
if (G_UNLIKELY (cmd_blk + 5 >= end)) { if (G_UNLIKELY (cmd_blk + 5 >= end)) {
/* Invalid. Finish the buffer and loop again */ /* Invalid. Finish the buffer and loop again */
gst_dvdspu_finish_spu_buf (dvdspu); gst_dvd_spu_finish_spu_buf (dvdspu);
continue; continue;
} }
gst_dvdspu_exec_cmd_blk (dvdspu, cmd_blk + 4, end); gst_dvd_spu_exec_cmd_blk (dvdspu, cmd_blk + 4, end);
next_blk = GST_READ_UINT16_BE (cmd_blk + 2); next_blk = GST_READ_UINT16_BE (cmd_blk + 2);
if (next_blk != state->cur_cmd_blk) { if (next_blk != state->cur_cmd_blk) {
/* Advance to the next block of commands */ /* Advance to the next block of commands */
gst_dvdspu_setup_cmd_blk (dvdspu, next_blk, start, end); gst_dvd_spu_setup_cmd_blk (dvdspu, next_blk, start, end);
} else { } else {
/* Next Block points to the current block, so we're finished with this /* Next Block points to the current block, so we're finished with this
* SPU buffer */ * SPU buffer */
gst_dvdspu_finish_spu_buf (dvdspu); gst_dvd_spu_finish_spu_buf (dvdspu);
} }
} }
} }
static void static void
gst_dvdspu_check_still_updates (GstDVDSpu * dvdspu) gst_dvd_spu_check_still_updates (GstDVDSpu * dvdspu)
{ {
GstClockTime sub_ts; GstClockTime sub_ts;
GstClockTime vid_ts; GstClockTime vid_ts;
@ -1134,12 +1135,12 @@ gst_dvdspu_check_still_updates (GstDVDSpu * dvdspu)
GST_DEBUG_OBJECT (dvdspu, GST_DEBUG_OBJECT (dvdspu,
"In still frame - advancing TS to %" GST_TIME_FORMAT "In still frame - advancing TS to %" GST_TIME_FORMAT
" to process SPU buffer", GST_TIME_ARGS (vid_ts)); " to process SPU buffer", GST_TIME_ARGS (vid_ts));
gst_dvdspu_advance_spu (dvdspu, vid_ts); gst_dvd_spu_advance_spu (dvdspu, vid_ts);
} }
} }
static GstFlowReturn static GstFlowReturn
gst_dvdspu_subpic_chain (GstPad * pad, GstBuffer * buf) gst_dvd_spu_subpic_chain (GstPad * pad, GstBuffer * buf)
{ {
GstDVDSpu *dvdspu = (GstDVDSpu *) (gst_object_get_parent (GST_OBJECT (pad))); GstDVDSpu *dvdspu = (GstDVDSpu *) (gst_object_get_parent (GST_OBJECT (pad)));
@ -1226,7 +1227,7 @@ gst_dvdspu_subpic_chain (GstPad * pad, GstBuffer * buf)
/* In a still frame condition, advance the SPU to make sure the state is /* In a still frame condition, advance the SPU to make sure the state is
* up to date */ * up to date */
gst_dvdspu_check_still_updates (dvdspu); gst_dvd_spu_check_still_updates (dvdspu);
} else { } else {
gst_buffer_unref (dvdspu->partial_spu); gst_buffer_unref (dvdspu->partial_spu);
dvdspu->partial_spu = NULL; dvdspu->partial_spu = NULL;
@ -1249,7 +1250,7 @@ gst_dvdspu_subpic_chain (GstPad * pad, GstBuffer * buf)
} }
static gboolean static gboolean
gst_dvdspu_subpic_event (GstPad * pad, GstEvent * event) gst_dvd_spu_subpic_event (GstPad * pad, GstEvent * event)
{ {
GstDVDSpu *dvdspu = (GstDVDSpu *) (gst_object_get_parent (GST_OBJECT (pad))); GstDVDSpu *dvdspu = (GstDVDSpu *) (gst_object_get_parent (GST_OBJECT (pad)));
gboolean res = TRUE; gboolean res = TRUE;
@ -1277,7 +1278,7 @@ gst_dvdspu_subpic_event (GstPad * pad, GstEvent * event)
spu_packet->event = event; spu_packet->event = event;
g_queue_push_tail (dvdspu->pending_spus, spu_packet); g_queue_push_tail (dvdspu->pending_spus, spu_packet);
} else { } else {
gst_dvdspu_handle_dvd_event (dvdspu, event); gst_dvd_spu_handle_dvd_event (dvdspu, event);
} }
/* If the handle_dvd_event generated a pending frame, we /* If the handle_dvd_event generated a pending frame, we
@ -1346,7 +1347,7 @@ gst_dvdspu_subpic_event (GstPad * pad, GstEvent * event)
goto done; goto done;
case GST_EVENT_FLUSH_STOP: case GST_EVENT_FLUSH_STOP:
DVD_SPU_LOCK (dvdspu); DVD_SPU_LOCK (dvdspu);
gst_dvdspu_flush_spu_info (dvdspu); gst_dvd_spu_flush_spu_info (dvdspu);
DVD_SPU_UNLOCK (dvdspu); DVD_SPU_UNLOCK (dvdspu);
/* We don't forward flushes on the spu pad */ /* We don't forward flushes on the spu pad */
@ -1364,7 +1365,7 @@ done:
} }
static GstStateChangeReturn static GstStateChangeReturn
gst_dvdspu_change_state (GstElement * element, GstStateChange transition) gst_dvd_spu_change_state (GstElement * element, GstStateChange transition)
{ {
GstDVDSpu *dvdspu = (GstDVDSpu *) element; GstDVDSpu *dvdspu = (GstDVDSpu *) element;
GstStateChangeReturn ret; GstStateChangeReturn ret;
@ -1374,7 +1375,7 @@ gst_dvdspu_change_state (GstElement * element, GstStateChange transition)
switch (transition) { switch (transition) {
case GST_STATE_CHANGE_PAUSED_TO_READY: case GST_STATE_CHANGE_PAUSED_TO_READY:
DVD_SPU_LOCK (dvdspu); DVD_SPU_LOCK (dvdspu);
gst_dvdspu_clear (dvdspu); gst_dvd_spu_clear (dvdspu);
DVD_SPU_UNLOCK (dvdspu); DVD_SPU_UNLOCK (dvdspu);
break; break;
default: default:
@ -1385,9 +1386,9 @@ gst_dvdspu_change_state (GstElement * element, GstStateChange transition)
} }
gboolean gboolean
gstgst_dvdspu_plugin_init (GstPlugin * plugin) gst_dvd_spu_plugin_init (GstPlugin * plugin)
{ {
GST_DEBUG_CATEGORY_INIT (gst_dvdspu_debug, "gstdvdspu", GST_DEBUG_CATEGORY_INIT (dvdspu_debug, "gstdvdspu",
0, "DVD Sub-picture Overlay decoder/renderer"); 0, "DVD Sub-picture Overlay decoder/renderer");
return gst_element_register (plugin, "dvdspu", return gst_element_register (plugin, "dvdspu",
@ -1398,5 +1399,5 @@ GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
GST_VERSION_MINOR, GST_VERSION_MINOR,
"dvdspu", "dvdspu",
"DVD Sub-picture Overlay element", "DVD Sub-picture Overlay element",
gstgst_dvdspu_plugin_init, gst_dvd_spu_plugin_init,
VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)

View file

@ -24,7 +24,7 @@
G_BEGIN_DECLS G_BEGIN_DECLS
#define GST_TYPE_DVD_SPU \ #define GST_TYPE_DVD_SPU \
(gst_dvdspu_get_type()) (gst_dvd_spu_get_type())
#define GST_DVD_SPU(obj) \ #define GST_DVD_SPU(obj) \
(G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DVD_SPU,GstDVDSpu)) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DVD_SPU,GstDVDSpu))
#define GST_DVD_SPU_CLASS(klass) \ #define GST_DVD_SPU_CLASS(klass) \
@ -218,7 +218,7 @@ struct GstDVDSpuClass
GstElementClass parent_class; GstElementClass parent_class;
}; };
GType gst_dvdspu_get_type (void); GType gst_dvd_spu_get_type (void);
G_END_DECLS G_END_DECLS