[Bug 726026] New: [d3dvideosink] D3d surface not released when pipeline is set to GST_SATE_NULL

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Mar 10 02:49:29 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=726026
  GStreamer | gst-plugins-bad | 1.2.2

           Summary: [d3dvideosink] D3d surface not released when pipeline
                    is set to GST_SATE_NULL
    Classification: Platform
           Product: GStreamer
           Version: 1.2.2
        OS/Version: Windows
            Status: UNCONFIRMED
          Severity: major
          Priority: Normal
         Component: gst-plugins-bad
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: etrousset at awox.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Created an attachment (id=271412)
 --> (https://bugzilla.gnome.org/attachment.cgi?id=271412)
d3dvideosink log

Hi

the following sample show the D3D window not being released when the pipeline
is set to GST_STATE_NULL, thus, the pipeline cannot be set to playing again : 
{{{
#include <gst/gst.h>
#include <windows.h>

GstPipeline *pipeline = NULL;

int _tmain(int argc, _TCHAR* argv[])
{
    GError *theError;
    GMainLoop *theMaineLoop;

    SetEnvironmentVariable(L"GST_DEBUG", L"d3dvideosink:6");

    if(!gst_init_check(NULL, NULL, &theError))
    {
        printf("failed to initialize gstreamer : %s\n", theError->message);
        return -1;
    }
    pipeline = GST_PIPELINE(gst_element_factory_make("playbin", NULL));


    g_object_set(G_OBJECT(pipeline), 
        "uri", "file:///c:/DLNA_Media_Base/O-AVCTS_NA_I-04.ts",
        NULL);
    theMaineLoop = g_main_loop_new( NULL, FALSE );

    if(gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_PLAYING) ==
GST_STATE_CHANGE_FAILURE)
    {
        printf("Failed to gst_element_set_state.");
        return -1;
    }
    else
    {
        printf("sleeping for 5s\n"); // Video should be playing
        Sleep(5000);
        printf("setting pipeline to state NULL (and sleep 5s)\n"); // Window
should close but  doesn't
        gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_NULL);
        Sleep(5000);
        printf("setting pipeline to state PLAYING (and sleep 5s)\n");
        gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_PLAYING); //
Will fail playing the video again unless you manualy close the window

        printf("running main loop\n");
        g_main_loop_run(theMaineLoop);
        printf("finished running main loop\n");
    }

    gst_deinit();

    return 0;
}
}}}

Regards,
Eric T

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list