[gst-devel] element seek and filesink

Sebastien Laporte lapse at touchtunes.com
Mon Feb 13 11:50:09 CET 2006

Hi all,


I would like to have some insights on an application I’m trying to write. I
have an app that decodes an MMP file and encodes it to an MP3 file. I have
the pipeline setup and everything works ok.


Now, I’m trying to create only a snippet of that song, 30 seconds offset
from the beginning of the MMP file for a 30 seconds length.


To begin with, I initialize the pipeline and start it. Then I try to seek to
30 seconds into the song. It fails every time. It work’s correctly for an
alsasink but not for filesink.

Do I need to do something special to make it work with filesink?  I’m using



#include <stdio.h>

#include <gst/gst.h>

#include <string.h>


GstElement *pipeline, 






main(int argc, char *argv[])



    gchar filename[32];

    gchar *ptr;


    gst_init(&argc, &argv);

    if(argc != 2) {

        g_print("Usage: %s <MMP filename>\n", argv[0]);

        return -1;



    strcpy(filename, argv[1]);

    ptr = strstr(filename, ".");

    sprintf(ptr, ".MP3");


    pipeline = gst_pipeline_new("converter");

    source = gst_element_factory_make("filesrc", "file-source");

    g_object_set(G_OBJECT(source), "location", argv[1], NULL);


    decrypter = gst_element_factory_make("mmp", "mmp");




    sink = gst_element_factory_make("filesink", "file-sink");

    g_object_set(G_OBJECT(sink), "location", filename, NULL);


    gst_bin_add_many(GST_BIN(pipeline), source, decrypter, sink, NULL);

    gst_element_link_many(source, decrypter, sink, NULL);

    gst_element_set_state(pipeline, GST_STATE_PLAYING);


    if(!gst_element_seek(pipeline, GST_FORMAT_TIME | GST_SEEK_METHOD_SET |

            g_print("seek failed");





    gst_element_set_state(pipeline, GST_STATE_NULL);

    gst_object_unref(GST_OBJECT (pipeline));


    return 0;







Sébastien Laporte 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20060213/19b145de/attachment.htm>

More information about the gstreamer-devel mailing list