[gst-devel] Help needed to diagnose critical error message while setting tags on flac stream

Yogesh Marwaha yogeshm.007 at gmail.com
Wed Apr 14 10:25:51 CEST 2010


Hi, 

I'm trying to write tags to a flac file. Here is the relevant code: -

GstElement* FlacEncoder::createPipeline(GstElement* source, const QString 
&file) const{
    if(!source)
        return 0;
    //pipeline
    GstElement *pipeline = gst_pipeline_new("flac-encoder");
    //encoder
    GstElement *encoder = gst_element_factory_make("flacenc", "flac-encoder-
element");
    g_object_set(G_OBJECT(encoder), "quality", mCompressionQuality, NULL);
    //tagger
    GstElement *tagger = gst_element_factory_make("flactag", "flac-encoder-
tag-element");
    GstTagSetter *tagSetter = GST_TAG_SETTER(tagger);
    GValue value = {0};
    g_value_init(&value, G_TYPE_STRING);
    g_value_set_static_string(&value, "Hello");
    gst_tag_setter_add_tag_value(tagSetter, GST_TAG_MERGE_REPLACE, "title", 
&value);
    g_value_unset(&value);
    g_value_init(&value, G_TYPE_STRING);
    g_value_set_static_string(&value, "Monty");
    gst_tag_setter_add_tag_value(tagSetter, GST_TAG_MERGE_REPLACE, "composer", 
&value);
    //sink
    GstElement *sink = gst_element_factory_make("filesink", "flac-encoder-
sink");
    gchar *location = g_strdup(file.toLocal8Bit());
    //link and finalize
    g_object_set(G_OBJECT(sink), "location", location, NULL);
    gst_bin_add_many(GST_BIN(pipeline), source, encoder, tagger, sink, NULL);
    gst_element_link_many(source, encoder, tagger, sink, NULL);
    return pipeline;
}

When the program is run, following messages are shown (even though the result 
looks fine i.e. tags looks to be properly added to the file): -

** (<unknown>:5137): CRITICAL **: gst_adapter_take_buffer: assertion `nbytes > 
0' failed

(<unknown>:5137): GStreamer-CRITICAL **: gst_buffer_set_caps: assertion 
`buffer != NULL' failed

(<unknown>:5137): GStreamer-CRITICAL **: gst_pad_push: assertion 
`GST_IS_BUFFER (buffer)' failed


Any idea where my code is going wrong?

Regards,

Yogesh M




More information about the gstreamer-devel mailing list