<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>I am having some problems getting the dfbvideosink to play a video file. I was able to use the example provided and play from the test video source. After some searching I decided to try the playbin but I don’t get any video from that. How should I set up the pipeline? Here is what I have so far<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>#include <directfb.h><o:p></o:p></p><p class=MsoNormal>#include <gst/gst.h><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>static IDirectFB *dfb = NULL;<o:p></o:p></p><p class=MsoNormal>static IDirectFBSurface *primary = NULL;<o:p></o:p></p><p class=MsoNormal>static GMainLoop *loop;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>#define DFBCHECK(x...) \<o:p></o:p></p><p class=MsoNormal> { \<o:p></o:p></p><p class=MsoNormal> DFBResult err = x; \<o:p></o:p></p><p class=MsoNormal> \<o:p></o:p></p><p class=MsoNormal> if (err != DFB_OK) \<o:p></o:p></p><p class=MsoNormal> { \<o:p></o:p></p><p class=MsoNormal> fprintf( stderr, "%s <%d>:\n\t", __FILE__, __LINE__ ); \<o:p></o:p></p><p class=MsoNormal> DirectFBErrorFatal( #x, err ); \<o:p></o:p></p><p class=MsoNormal> } \<o:p></o:p></p><p class=MsoNormal> }<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>static gboolean<o:p></o:p></p><p class=MsoNormal>get_me_out (gpointer data)<o:p></o:p></p><p class=MsoNormal>{<o:p></o:p></p><p class=MsoNormal> g_main_loop_quit (loop);<o:p></o:p></p><p class=MsoNormal> return FALSE;<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>int<o:p></o:p></p><p class=MsoNormal>main (int argc, char *argv[])<o:p></o:p></p><p class=MsoNormal>{<o:p></o:p></p><p class=MsoNormal> DFBSurfaceDescription dsc;<o:p></o:p></p><p class=MsoNormal> GstElement *pipeline, *sink;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> /* Init both GStreamer and DirectFB */<o:p></o:p></p><p class=MsoNormal> DFBCHECK (DirectFBInit (&argc, &argv));<o:p></o:p></p><p class=MsoNormal> gst_init (&argc, &argv);<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> /* Creates DirectFB main context and set it to fullscreen layout */<o:p></o:p></p><p class=MsoNormal> DFBCHECK (DirectFBCreate (&dfb));<o:p></o:p></p><p class=MsoNormal> DFBCHECK (dfb->SetCooperativeLevel (dfb, DFSCL_FULLSCREEN));<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> /* We want a double buffered primary surface */<o:p></o:p></p><p class=MsoNormal> dsc.flags = DSDESC_CAPS;<o:p></o:p></p><p class=MsoNormal> dsc.caps = DSCAPS_PRIMARY | DSCAPS_FLIPPING;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> DFBCHECK (dfb->CreateSurface (dfb, &dsc, &primary));<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> /* Creating our pipeline : videotestsrc ! dfbvideosink */<o:p></o:p></p><p class=MsoNormal> pipeline = gst_element_factory_make("playbin", NULL); //gst_pipeline_new (NULL);<o:p></o:p></p><p class=MsoNormal> g_assert (pipeline);<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> sink = gst_element_factory_make ("dfbvideosink", NULL);<o:p></o:p></p><p class=MsoNormal> g_assert (sink);<o:p></o:p></p><p class=MsoNormal> /* That's the interesting part, giving the primary surface to dfbvideosink */<o:p></o:p></p><p class=MsoNormal> g_object_set (sink, "surface", primary, NULL);<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> g_object_set(pipeline, "uri", "<a href="file:///\\root\test.mp4">file:///root/test.mp4</a>", NULL);<o:p></o:p></p><p class=MsoNormal> g_object_set(pipeline, "video-sink", sink, NULL);<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> /* Let's play ! */<o:p></o:p></p><p class=MsoNormal> gst_element_set_state (pipeline, GST_STATE_PLAYING);<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> /* we need to run a GLib main loop to get out of here */<o:p></o:p></p><p class=MsoNormal> loop = g_main_loop_new (NULL, FALSE);<o:p></o:p></p><p class=MsoNormal> /* Get us out after 20 seconds */<o:p></o:p></p><p class=MsoNormal> g_timeout_add (20000, get_me_out, NULL);<o:p></o:p></p><p class=MsoNormal> g_main_loop_run (loop);<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> /* Release elements and stop playback */<o:p></o:p></p><p class=MsoNormal> gst_element_set_state (pipeline, GST_STATE_NULL);<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> /* Free the main loop */<o:p></o:p></p><p class=MsoNormal> g_main_loop_unref (loop);<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> /* Release DirectFB context and surface */<o:p></o:p></p><p class=MsoNormal> primary->Release (primary);<o:p></o:p></p><p class=MsoNormal> dfb->Release (dfb);<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> return 0;<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The result is a brown screen (the default directfb color I think).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks for your help<o:p></o:p></p><p class=MsoNormal>-Jesse<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>