示例#1
0
/**
 * progress_buffer_class_init()
 *
 * Sets up the GLib object oriented C class structure for ProgressBuffer.
 */
static void progress_buffer_class_init (ProgressBufferClass *klass)
{
    GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
    GstElementClass *element_class = GST_ELEMENT_CLASS (klass);

    gst_element_class_set_static_metadata (element_class,
        "Progressive download plugin",
        "Element",
        "Progressively stores incoming data in memory or file",
        "Oracle Corporation");

    gst_element_class_add_pad_template (element_class,
                                        gst_static_pad_template_get (&sink_template));
    gst_element_class_add_pad_template (element_class,
                                        gst_static_pad_template_get (&source_template));

    gobject_class->set_property = GST_DEBUG_FUNCPTR(progress_buffer_set_property);
    gobject_class->get_property = GST_DEBUG_FUNCPTR(progress_buffer_get_property);
    gobject_class->finalize = GST_DEBUG_FUNCPTR(progress_buffer_finalize);
    GST_ELEMENT_CLASS (klass)->change_state = GST_DEBUG_FUNCPTR(progress_buffer_change_state);

    g_object_class_install_property (gobject_class, PROP_THRESHOLD,
                                     g_param_spec_double ("threshold",
                                                          "Message threshold",
                                                          "Message emission threshold in percents.",
                                                          0.0  /* minimum value */,
                                                          100.0 /* maximum value */,
                                                          1.0  /* default value */,
                                                          G_PARAM_READWRITE | G_PARAM_CONSTRUCT));

    g_object_class_install_property (gobject_class, PROP_BANDWIDTH,
                                     g_param_spec_double ("bandwidth",
                                                          "Network bandwidth",
                                                          "Network bandwidth in bytes/second",
                                                          0.0  /* minimum value */,
                                                          G_MAXDOUBLE /* maximum value */,
                                                          0.0  /* default value */,
                                                          G_PARAM_READABLE));

    g_object_class_install_property (gobject_class, PROP_PREBUFFER_TIME,
                                     g_param_spec_double ("prebuffer-time",
                                                          "Prebuffer time",
                                                          "Controls prebuffer for prebuffer-time*bandwidth before emitting RANGE_READY event.",
                                                          0.0  /* minimum value */,
                                                          20.0 /* maximum value */,
                                                          2.0  /* default value */,
                                                          G_PARAM_READWRITE | G_PARAM_CONSTRUCT));

    g_object_class_install_property (gobject_class, PROP_WAIT_TOLERANCE,
                                     g_param_spec_double ("wait-tolerance",
                                                          "Wait tolerance timeout",
                                                          "Threshold timeout before emitting seek request to the specified range position.",
                                                          0.0  /* minimum value */,
                                                          20.0 /* maximum value */,
                                                          2.0  /* default value */,
                                                          G_PARAM_READWRITE | G_PARAM_CONSTRUCT));

    cache_static_init();
}
/**
 * hls_progress_buffer_class_init()
 *
 * Sets up the GLib object oriented C class structure for ProgressBuffer.
 */
static void hls_progress_buffer_class_init (HLSProgressBufferClass *klass)
{
    GObjectClass *gobject_class = G_OBJECT_CLASS (klass);

    gobject_class->finalize = hls_progress_buffer_finalize;
    GST_ELEMENT_CLASS (klass)->change_state = hls_progress_buffer_change_state;

    cache_static_init();
}