<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&#8217;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>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>#include &lt;directfb.h&gt;<o:p></o:p></p><p class=MsoNormal>#include &lt;gst/gst.h&gt;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</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>&nbsp;</o:p></p><p class=MsoNormal>#define DFBCHECK(x...)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \<o:p></o:p></p><p class=MsoNormal>&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp; DFBResult err = x;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp; if (err != DFB_OK)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf( stderr, &quot;%s &lt;%d&gt;:\n\t&quot;, __FILE__, __LINE__ ); \<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DirectFBErrorFatal( #x, err );&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \<o:p></o:p></p><p class=MsoNormal>&nbsp; }<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</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>&nbsp; g_main_loop_quit (loop);<o:p></o:p></p><p class=MsoNormal>&nbsp; return FALSE;<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</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>&nbsp; DFBSurfaceDescription dsc;<o:p></o:p></p><p class=MsoNormal>&nbsp; GstElement *pipeline, *sink;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; /* Init both GStreamer and DirectFB */<o:p></o:p></p><p class=MsoNormal>&nbsp; DFBCHECK (DirectFBInit (&amp;argc, &amp;argv));<o:p></o:p></p><p class=MsoNormal>&nbsp; gst_init (&amp;argc, &amp;argv);<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; /* Creates DirectFB main context and set it to fullscreen layout */<o:p></o:p></p><p class=MsoNormal>&nbsp; DFBCHECK (DirectFBCreate (&amp;dfb));<o:p></o:p></p><p class=MsoNormal>&nbsp; DFBCHECK (dfb-&gt;SetCooperativeLevel (dfb, DFSCL_FULLSCREEN));<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; /* We want a double buffered primary surface */<o:p></o:p></p><p class=MsoNormal>&nbsp; dsc.flags = DSDESC_CAPS;<o:p></o:p></p><p class=MsoNormal>&nbsp; dsc.caps = DSCAPS_PRIMARY | DSCAPS_FLIPPING;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; DFBCHECK (dfb-&gt;CreateSurface (dfb, &amp;dsc, &amp;primary));<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; /* Creating our pipeline : videotestsrc ! dfbvideosink */<o:p></o:p></p><p class=MsoNormal>&nbsp; pipeline = gst_element_factory_make(&quot;playbin&quot;, NULL); //gst_pipeline_new (NULL);<o:p></o:p></p><p class=MsoNormal>&nbsp; g_assert (pipeline);<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; sink = gst_element_factory_make (&quot;dfbvideosink&quot;, NULL);<o:p></o:p></p><p class=MsoNormal>&nbsp; g_assert (sink);<o:p></o:p></p><p class=MsoNormal>&nbsp; /* That's the interesting part, giving the primary surface to dfbvideosink */<o:p></o:p></p><p class=MsoNormal>&nbsp; g_object_set (sink, &quot;surface&quot;, primary, NULL);<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; g_object_set(pipeline, &quot;uri&quot;, &quot;<a href="file:///\\root\test.mp4">file:///root/test.mp4</a>&quot;, NULL);<o:p></o:p></p><p class=MsoNormal>&nbsp; g_object_set(pipeline, &quot;video-sink&quot;, sink, NULL);<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; /* Let's play ! */<o:p></o:p></p><p class=MsoNormal>&nbsp; gst_element_set_state (pipeline, GST_STATE_PLAYING);<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; /* we need to run a GLib main loop to get out of here */<o:p></o:p></p><p class=MsoNormal>&nbsp; loop = g_main_loop_new (NULL, FALSE);<o:p></o:p></p><p class=MsoNormal>&nbsp; /* Get us out after 20 seconds */<o:p></o:p></p><p class=MsoNormal>&nbsp; g_timeout_add (20000, get_me_out, NULL);<o:p></o:p></p><p class=MsoNormal>&nbsp; g_main_loop_run (loop);<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; /* Release elements and stop playback */<o:p></o:p></p><p class=MsoNormal>&nbsp; gst_element_set_state (pipeline, GST_STATE_NULL);<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; /* Free the main loop */<o:p></o:p></p><p class=MsoNormal>&nbsp; g_main_loop_unref (loop);<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; /* Release DirectFB context and surface */<o:p></o:p></p><p class=MsoNormal>&nbsp; primary-&gt;Release (primary);<o:p></o:p></p><p class=MsoNormal>&nbsp; dfb-&gt;Release (dfb);<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; return 0;<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</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>&nbsp;</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>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p></div></body></html>