gapless playback is not playing full video

Adeel Arshad arshad.adeel.83 at gmail.com
Thu Aug 18 06:33:37 UTC 2016


Hi all

I checked with only playbin element and still file is not playing till the
end in gapless playback. Following is my code

GST_DEBUG("Creating pipeline");

    context = g_main_context_new();

    g_main_context_push_thread_default(context);



    pipeline = gst_parse_launch("playbin
uri=file:///Users/administrator/Desktop/MAC_APPS/SUZUKI.mpg", &error);

    const char *char_uri = [uri UTF8String];

    g_object_set(pipeline, "uri", char_uri, NULL);

    GST_DEBUG("URI set to %s", char_uri);



   if(error){

    gchar *message = g_strdup_printf("Unable to build pipeline: %s", error->
message);

    g_clear_error(&error);

    NSLog(@"pipeline error %s",message);

    [self setUIMessage:message];

    g_free(message);

    return;

   }



   GstElement *videosink = gst_bin_get_by_interface(GST_BIN(pipeline),
GST_TYPE_VIDEO_OVERLAY);

   if(!videosink){

       GST_ERROR("Could not retrieve video sink");

       return;

   }



   gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(videosink), (
guintptr)(id)ui_video_view);



    ret = gst_element_set_state (pipeline, GST_STATE_PLAYING);

    if (ret == GST_STATE_CHANGE_FAILURE) {

        NSLog(@"Unable to set the pipeline to the playing state.\n");

        gst_object_unref (pipeline);

        return;

    }



    bus = gst_element_get_bus(pipeline);

    bus_source = gst_bus_create_watch(bus);

    g_source_set_callback(bus_source, (GSourceFunc)gst_bus_async_signal_func,
NULL, NULL);

    g_source_attach(bus_source, context);

    g_source_unref(bus_source);



    g_signal_connect (G_OBJECT(bus), "message::error", (GCallback)error_cb,
(__bridge void *)self);

    g_signal_connect (G_OBJECT(bus), "message::eos", (GCallback)eos_cb, (
__bridge void *)self);

    g_signal_connect (G_OBJECT(bus), "message::state-changed", (GCallback)
state_changed_cb, (__bridge void *)self);

    g_signal_connect (G_OBJECT(bus), "message::duration", (GCallback)
duration_cb, (__bridge void *)self);

    g_signal_connect (G_OBJECT(bus), "message::clock-lost", (GCallback)
clock_lost_cb, (__bridge void *)self);

    g_signal_connect (pipeline, "about-to-finish", (GCallback)
prepare_next_stream, (__bridge void *)self);

    timeout_source = g_timeout_source_new(1);

    g_source_set_callback(timeout_source, (GSourceFunc)refresh_ui, (__bridge
void *)self,NULL);

    g_source_attach(timeout_source, context);

    g_source_unref(timeout_source);





    GST_DEBUG("Entering main loop...");

    main_loop = g_main_loop_new(context, FALSE);

    [self check_initializing_complete];

    g_main_loop_run(main_loop);

    GST_DEBUG("Exiting main loop...");

    g_main_loop_unref(main_loop);

    main_loop = NULL;

//My about to finish function

static void prepare_next_stream (GstElement *obj, GStreamerBackend *self){

     NSString* uri = [self playNext];

     if(![uri isEqualToString:@""])

     {

         const char *char_uri = [uri UTF8String];

         g_object_set (self->pipeline, "uri", char_uri, NULL);

     }

}
Regards

On Wed, Aug 17, 2016 at 2:40 PM, adeel <arshad.adeel.83 at gmail.com> wrote:

> Dear All
>
> This is my pipeline
>
> video_bin = gst_parse_bin_from_description("tee name=t t. ! queue !
> autovideosink t. ! decklinkvideosink mode=3", TRUE, NULL);
>
> video_filter_bin = gst_parse_bin_from_description("capssetter
> caps=video/x-raw,interlace-mode=interleaved,width=720,height=576", TRUE,
> NULL);
>
> audio_bin = gst_parse_bin_from_description("audioconvert !
> decklinkaudiosink", TRUE, NULL);
>
> When I play list of files I face the issue that my files are not playing
> till the last frame. Only the last file playing till the end
>
> What I am lacking in the code
>
> Regards
> Adeel Arshad
>
>
>
> --
> View this message in context: http://gstreamer-devel.966125.
> n4.nabble.com/gapless-playback-is-not-playing-full-video-tp4679124.html
> Sent from the GStreamer-devel mailing list archive at Nabble.com.
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20160818/8643d865/attachment-0001.html>


More information about the gstreamer-devel mailing list