Using gstreamer pipeline on windows

i’m try to set gstreamer pipeline on windows,something like

gst.setPipeline("ksvideosrc ! timeoverlay ! d3dvideosink");
gst.startPipeline();
gst.play();
tex.allocate(1920, 1080, GL_RGB);

but it didn’t work. i’m using the 1.4.5 gst version&of 090

if i’m changing it to gst.setPipeline(“ksvideosrc !decodebin !x264enc !”);
then error became as

any ideas how to make this working on windows?
@arturo

cheers

the pipeline you are passing has it’s own sink, d3dvideosink. openframeworks by default creates a sink that allows it to get the pixels out of the pipeline so ofVideoPlayer can upload them to a texture.

the setPipelne method then, expects a pipeline without at sink since it’ll add it’s own. the correct call if that’s what you want would be:

gst.setPipeline("ksvideosrc ! timeoverlay ! videoconvert");

that way you can get the output of the pipeline as ofPixels through ofGstUtils. i’ve added a videoconvert at the end so gstreamer converts the output of timeoverlay to RGB which is the default format OF is expecting.

if what you really want is gstreamer to create it’s own window with the output then you can do

gst.setPipelineWithSink("ksvideosrc ! timeoverlay ! d3dvideosink");

which won’t try to add a sink at the end. in this case you won’t be able to access the output as pixels

thanks for the help ! its working now,but still got warning:gstreamer-critical **:write map requested on non-writeable buffer
after googling seems this is the gstreamer bug.