[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