<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>

<META content="MSHTML 6.00.6000.17098" name=GENERATOR></HEAD>
<BODY><p><font face='Microsoft Sans Serif' color='Black' size='2'><b>UNCLASSIFIED</b></font></p>
<DIV><SPAN class=028073105-28072011><FONT face=Arial 
size=2>Hi,</FONT></SPAN></DIV>
<DIV><SPAN class=028073105-28072011><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=028073105-28072011><FONT face=Arial size=2>I am currently 
trying to develop an application which utilises GStreamer to write and YUV 
format mpegts file. The driver uses appsrc to write raw RGB frames to a YUV 
mpegts file.</FONT></SPAN></DIV>
<DIV><SPAN class=028073105-28072011><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=028073105-28072011><FONT face=Arial size=2>I am trying to get a 
pipeline together and as I'm new to GStreamer I am not quite sure which plugins 
and caps to set.I was hoping someone can point me in the right 
direction.</FONT></SPAN></DIV>
<DIV><SPAN class=028073105-28072011><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=028073105-28072011><FONT face=Arial size=2>With the pipeline: 
<STRONG>"appsrc name=\"adsssrc\" 
caps=\"video/x-raw-rgb,width=704,height=480,framerate=(fraction)25/1\" ! 
ffmpegcolorspace ! video/x-raw-yuv<SPAN class=028073105-28072011> </SPAN>! 
ffenc_mpeg2video ! mpegtsmux ! filesink location=processed.mpg " </STRONG>I get 
the following errors:</FONT></SPAN></DIV>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><SPAN class=028073105-28072011><FONT 
  face=Arial size=2><STRONG>&nbsp;</STRONG>0:00:00.107419734 
  ESC[332m28183ESC[00m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x2556010 
  ESC[32;01mINFO&nbsp;&nbsp; ESC[00m 
  ESC[00;01;31m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GST_STATES 
  gstbin.c:2425:gst_bin_change_state_func:&lt;bin0&gt;ESC[00m child 'adsssrc' 
  changed state to 3(PAUSED) successfully<BR>0:00:00.140944498 
  ESC[332m28183ESC[00m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x2758f90 
  ESC[33;01mWARN&nbsp;&nbsp; ESC[00m ESC[00m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  basetransform 
  gstbasetransform.c:1047:gst_base_transform_acceptcaps:&lt;capsfilter0&gt;ESC[00m 
  transform could not transform video/x-raw-rgb, width=(int)704, 
  height=(int)480, framerate=(fraction)25/1 in anything we 
  support<BR>0:00:00.141210658 
  ESC[332m28183ESC[00m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x2758f90 
  ESC[33;01mWARN&nbsp;&nbsp; ESC[00m ESC[00m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  basetransform 
  gstbasetransform.c:1144:gst_base_transform_setcaps:&lt;ffmpegcsp0&gt;ESC[00m 
  FAILED to configure caps &lt;ffmpegcsp0:src&gt; to accept video/x-raw-yuv, 
  width=(int)704, height=(int)480, framerate=(fraction)25/1, 
  format=(fourcc)I420<BR>0:00:00.141441378 
  ESC[332m28183ESC[00m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x2758f90 
  ESC[32;01mINFO&nbsp;&nbsp; ESC[00m 
  ESC[00m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  basesrc gstbasesrc.c:2447:gst_base_src_loop:&lt;adsssrc&gt;ESC[00m pausing 
  after gst_pad_push() = not-negotiated</FONT></SPAN></DIV></BLOCKQUOTE><SPAN 
class=028073105-28072011><FONT face=Arial size=2>
<DIV dir=ltr style="MARGIN-RIGHT: 0px"></FONT></SPAN><SPAN 
class=028073105-28072011><FONT face=Arial size=2>My test source is 
below:</FONT></SPAN></DIV>
<DIV><SPAN class=028073105-28072011><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><SPAN class=028073105-28072011><FONT 
  face=Arial size=2>#include &lt;stdlib.h&gt;<BR>#include 
  &lt;glib.h&gt;<BR>#include &lt;gst/gst.h&gt;<BR>#include 
  &lt;gst/app/gstappsink.h&gt;<BR>#include 
  &lt;gst/app/gstappsrc.h&gt;<BR>#include 
  &lt;gst/app/gstappbuffer.h&gt;</FONT></SPAN></DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px">&nbsp;</DIV><SPAN 
  class=028073105-28072011>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><BR><FONT face=Arial size=2>int 
  main(void)<BR>{ </FONT></DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial 
  size=2></FONT>&nbsp;</DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial size=2>&nbsp; const 
  int width=704;<BR>&nbsp; const int height=480;<BR>&nbsp; const int 
  numFrames=50;<BR>&nbsp; const int layers=3;</FONT></DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial 
  size=2></FONT>&nbsp;</DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial size=2>&nbsp; char 
  *fullPipelineDesc = "appsrc name=\"adsssrc\" 
  caps=\"video/x-raw-rgb,width=704,height=480,framerate=(fraction)25/1\" ! 
  ffmpegcolorspace ! video/x-raw-yuv<SPAN class=028073105-28072011> </SPAN>! 
  ffenc_mpeg2video ! mpegtsmux ! filesink location=processed.mpg ";<BR>&nbsp; 
  GstElement *writePipeline;<BR>&nbsp; GError&nbsp;&nbsp;&nbsp;&nbsp; 
  *error&nbsp;&nbsp;&nbsp;&nbsp; = NULL;<BR>&nbsp; GstAppSrc 
  *appsrc&nbsp;&nbsp;&nbsp; = NULL;<BR>&nbsp; GstBuffer *app_buffer;<BR>&nbsp; 
  unsigned char *outByte;<BR>&nbsp; unsigned char *outBuff;<BR>&nbsp; int 
  outBuffSize = width * height * layers;<BR>&nbsp; int count=0;</FONT></DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial 
  size=2></FONT>&nbsp;</DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial size=2>&nbsp; outBuff 
  = calloc(outBuffSize, sizeof(unsigned char));</FONT></DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial 
  size=2></FONT>&nbsp;</DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><BR><FONT face=Arial size=2>&nbsp; 
  gst_init(NULL, NULL);<BR>&nbsp; 
  gst_debug_set_default_threshold(GST_LEVEL_INFO);</FONT></DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial 
  size=2></FONT>&nbsp;</DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial size=2>&nbsp; 
  writePipeline = gst_parse_bin_from_description(fullPipelineDesc, FALSE, 
  &amp;error);<BR>&nbsp; appsrc = (GstAppSrc *) 
  gst_bin_get_by_name(GST_BIN(writePipeline), "adsssrc");<BR>&nbsp; 
  gst_element_set_state(writePipeline, GST_STATE_PLAYING);</FONT></DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial 
  size=2></FONT>&nbsp;</DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial size=2>&nbsp; 
  /******** WRITE SOME RGB DATA INTO A BUFFER *******/<BR>&nbsp; for (int 
  frame=0; frame&lt;numFrames; frame++)<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
  count = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp; for (int row=0; row&lt;height; 
  row++)<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
  {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int plane=0; 
  plane&lt;layers; plane++)<BR>&nbsp;{</FONT></DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial 
  size=2></FONT>&nbsp;</DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial size=2>&nbsp;&nbsp; 
  for (int pixel=0; pixel&lt;width; pixel++)<BR>&nbsp;&nbsp; 
  {<BR>&nbsp;fflush(stdout);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outByte&nbsp; = 
  outBuff;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outByte += (row*width*layers) + 
  (pixel*layers) + plane;</FONT></DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial 
  size=2></FONT>&nbsp;</DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial 
  size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if 
  (row%2)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *outByte = 
  255;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *outByte = 0;</FONT></DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial 
  size=2></FONT>&nbsp;</DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial 
  size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  app_buffer = gst_app_buffer_new(outBuff, outBuffSize, 
  <BR>&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; 
  g_free, outBuff);</FONT></DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial 
  size=2></FONT>&nbsp;</DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial 
  size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Write the buffer to the source pad 
  */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  gst_app_src_push_buffer(GST_APP_SRC(appsrc), app_buffer);<BR>&nbsp; 
  }</FONT></DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial 
  size=2></FONT>&nbsp;</DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial size=2>&nbsp; 
  gst_app_src_end_of_stream(appsrc);</FONT></DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial 
  size=2></FONT>&nbsp;</DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial size=2>&nbsp; 
  free(outBuff);</FONT></DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial 
  size=2></FONT>&nbsp;</DIV>
  <DIV dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial size=2>&nbsp; return 
  0;<BR>}</FONT></SPAN></DIV></BLOCKQUOTE>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=028073105-28072011></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV><p><font face='microsoft sans serif' color='Red' size='2'><b>IMPORTANT</b>: This email remains the property of the Department of Defence and is subject to the jurisdiction of section 70 of the Crimes Act 1914. If you have received this email in error, you are requested to contact the sender and delete the email.
<br></font><font face='microsoft sans serif' color='Black' size='2'></font></p></BODY></HTML>