static void
gst_cea708dec_scroll_window_up (Cea708Dec * decoder, guint window_id);
static void gst_cea708dec_init_window (Cea708Dec * decoder, guint window_id);
+static void gst_cea708dec_clear_window (Cea708Dec * decoder, cea708Window * w);
static void
gst_cea708dec_set_pen_attributes (Cea708Dec * decoder,
guint8 * dtvcc_buffer, int index);
}
void
+gst_cea708dec_free (Cea708Dec * dec)
+{
+ int i;
+
+ for (i = 0; i < MAX_708_WINDOWS; i++) {
+ cea708Window *window = dec->cc_windows[i];
+ gst_cea708dec_clear_window (dec, window);
+ g_free (window);
+ }
+ memset (dec, 0, sizeof (Cea708Dec));
+ g_free (dec);
+}
+
+void
gst_cea708dec_set_service_number (Cea708Dec * decoder, gint8 desired_service)
{
int i = 0;
}
static void
+gst_cea708dec_clear_window (Cea708Dec * decoder, cea708Window * window)
+{
+ g_free (window->text_image);
+ memset (window, 0, sizeof (cea708Window));
+}
+
+static void
gst_cea708dec_init_window (Cea708Dec * decoder, guint window_id)
{
cea708Window *window = decoder->cc_windows[window_id];
overlay->next_composition = NULL;
}
+ gst_cea708dec_free (overlay->decoder);
+ overlay->decoder = NULL;
+
g_mutex_clear (&overlay->lock);
g_cond_clear (&overlay->cond);