Hi,<br />
<br />
rtph264pay failed to work on my ARM9 target board.<br />
The target board is based on FSL Mx27 and the mfw_vpuencoder plugin is an video encoder based on MX27 VPU accelerator.<br />
<br />
The gstreamer core is 0.10.35, base plugin is 0.10.34, and good plugin is 0.10.30.<br />
<br />
The launching command and the debug message is as below:<br />
<br />
gst-launch-0.10&nbsp; -v --gst-debug=rtph264pay:5 videotestsrc ! &#39;video/x-raw-yuv,format=(fourcc)I420,width=176,height=144,framerate=30/1&#39; ! mfw_vpuencoder codec-type=std_avc width=176 height=144 qp=35 gopsize=30 framerate=25 ! rtph264pay ! udpsink host=192.168.1.222 port=5434&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
<br />
Setting pipeline to PAUSED ...<br />
Product Info: i.MX27<br />
VPU Version: firmware 2.2.5; libvpu: 3.3.2<br />
MFW_GST_VPU_ENCODER_PLUGIN&nbsp; build on Sep 22 2011 14:05:53.<br />
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0 .GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)176, height=(int)144, framerate=(fraction)30/1, color-matrix=(string)sdtv, chroma-site=(string)mpeg2<br />
Pipeline is PREROLLING ...<br />
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.G stPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)176, height=(int)144, framerate=(fraction)30/1, color-matrix=(string)sdtv, chroma-site=(string)mpeg2<br />
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.G stPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)176, height=(int)144, framerate=(fraction)30/1, color-matrix=(string)sdtv, chroma-site=(string)mpeg2<br />
/GstPipeline:pipeline0/Mfw GstVPU_Enc:mfwgstvpu_enc0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)176, height=(int)144, framerate=(fraction)30/1, color-matrix=(string)sdtv, chroma-site=(string)mpeg2<br />
/GstPipeline:pipeline0/Mfw GstVPU_Enc:mfwgstvpu_enc0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)176, height=(int)144, framerate=(fraction)30/1, color-matrix=(string)sdtv, chroma-site=(string)mpeg2<br />
/GstPipeline:pipeline0/MfwGstVPU_Enc:mfwgstvpu_enc0.GstPad:src: caps = video/x-h264, height=(int)144, width=(int)176, framerate=(fraction)25/1<br />
0:00:21.673947217&nbsp; 1759&nbsp;&nbsp;&nbsp; 0xbdb48 DEBUG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rtph264pay gstrtph264pay.c:942:gst_rtp_h264_pay_handle_buffer:&lt;rtph264pay0&gt; got 1327 bytes<br />
<br />
0:00:21.675190375&nbsp; 1759&nbsp;&nbsp;&nbsp; 0xbdb48 DEBUG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rtph264pay gstrtph264pay.c:1003:gst_rtp_h264_pay_handle_buffer:&lt;rtph264pay0&gt; found first start at 1, bytes left 1326<br />
<br />
0:00:21.675997743&nbsp; 1759&nbsp;&nbsp;&nbsp; 0xbdb48 DEBUG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rtph264pay gstrtph264pay.c:1036:gst_rtp_h264_pay_handle_buffer:&lt;rtph264pay0&gt; found next start at 9 of size 9<br />
0:00:21.676328420&nbsp; 1759&nbsp;&nbsp;&nbsp; 0xbdb48 DEBUG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rtph264pay gstrtph264pay.c:539:gst_rtp_h264_pay_decode_nal: NAL payload len=9<br />
0:00:21.676657066&nbsp; 1759&nbsp;&nbsp;&nbsp; 0xbdb48 DEBUG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rtph264pay gstrtph264pay.c:551:gst_rtp_h264_pay_decode_nal: Found SPS 0 3 7 Len=9<br />
<br />
0:00:21.677548269&nbsp; 1759&nbsp;&nbsp;&nbsp; 0xbdb48 DEBUG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rtph264pay gstrtph264pay.c:1036:gst_rtp_h264_pay_handle_buffer:&lt;rtph264pay0&gt; found next start at 5 of size 5<br />
0:00:21.677884961&nbsp; 1759&nbsp;&nbsp;&nbsp; 0xbdb48 DEBUG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rtph264pay gstrtph264pay.c:539:gst_rtp_h264_pay_decode_nal: NAL payload len=5<br />
0:00:21.678206164&nbsp; 1759&nbsp;&nbsp;&nbsp; 0xbdb48 DEBUG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rtph264pay gstrtph264pay.c:561:gst_rtp_h264_pay_decode_nal: Found PPS 0 3 8 Len = 5<br />
<br />
<br />
0:00:21.679047517&nbsp; 1759&nbsp;&nbsp;&nbsp; 0xbdb48 DEBUG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rtph264pay gstrtph264pay.c:521:next_start_code: Cannot find next NAL start code. returning 1303<br />
0:00:21.679530675&nbsp; 1759&nbsp;&nbsp;&nbsp; 0xbdb48 DEBUG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rtph264pay gstrtph264pay.c:1036:gst_rtp_h264_pay_handle_buffer:&lt;rtph264pay0&gt; found next start at 1303 of size 1303<br />
0:00:21.679883157&nbsp; 1759&nbsp;&nbsp;&nbsp; 0xbdb48 DEBUG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rtph264pay gstrtph264pay.c:539:gst_rtp_h264_pay_decode_nal: NAL payload len=1303<br />
0:00:21.680218269&nbsp; 1759&nbsp;&nbsp;&nbsp; 0xbdb48 DEBUG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rtph264pay gstrtph264pay.c:570:gst_rtp_h264_pay_decode_nal: NAL: 0 3 5 Len = 1303<br />
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:src: caps = application/x-rtp, media=(string)NULL, <strong>clock-rate=(int)0</strong> , encoding-name=(string)NULL, sprop-parameter-sets=(string)\&quot;Z0IAHqaCxOQA\\,aM44gAA\\=\&quot;, payload=(int)96, ssrc=(uint)3064141093, clock-base=(uint)2131484364, seqnum-base=(uint)3426<br />
0:00:21.683859848&nbsp; 1759&nbsp;&nbsp;&nbsp; 0xbdb48 DEBUG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rtph264pay gstrtph264pay.c:705:gst_rtp_h264_pay_payload_nal:&lt;rtph264pay0&gt; Processing Buffer with NAL TYPE=7<br />
0:00:21.684295187&nbsp; 1759&nbsp;&nbsp;&nbsp; 0xbdb48 DEBUG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rtph264pay gstrtph264pay.c:753:gst_rtp_h264_pay_payload_nal:&lt;rtph264pay0&gt; NAL Unit fit in one packet datasize=8 mtu=1400<br />
0:00:21.684848044&nbsp; 1759&nbsp;&nbsp;&nbsp; 0xbdb48 DEBUG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rtph264pay gstrtph264pay.c:801:gst_rtp_h264_pay_payload_nal:&lt;rtph264pay0&gt; Copying 8 bytes to outbuf<br />
ERROR: from element /GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: Element doesn&#39;t implement handling of this stream. Please file a bug.<br />
Additional debug info:<br />
gstbasertppayload.c(843): gst_basertppayload_prepare_push (): /GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0:<br />
<strong>subclass did not specify clock-rate</strong><br />
ERROR: pipeline doesn&#39;t want to preroll.<br />
<br />
<br />
Setting pipeline to NULL ...<br />
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:src: caps = NULL<br />
<br />
(gst-launch-0.10:1759): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GstMiniObject&#39;<br />
<br />
(gst-launch-0.10:1759): GStreamer-CRITICAL **: gst_mini_object_unref: assertion `GST_IS_MINI_OBJECT (mini_object)&#39; failed<br />
/GstPipeline:pipeline0/MfwGstVPU_Enc:mfwgstvpu_enc0.GstPad:src: caps = NULL<br />
/GstPipeline:pipeline0/MfwGstVPU_Enc:mfwgstvpu_enc0.GstPad:sink: caps = NULL<br />
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = NULL<br />
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = NULL<br />
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = NULL<br />
Freeing pipeline ...<br />
<br />
<br />
The debug message &quot;subclass did not specify clock-rate&quot; comes from<br />
gst_basertppayload_prepare_push() in gstbasertppayload.c, when payload-&gt;clock_rate is 0.<br />
<br />
In gstrtph264pay.c, there is a function gst_rtp_h264_pay_setcaps() which set the clock_rate field<br />
by calling gst_basertppayload_set_options (basepayload, &quot;video&quot;, TRUE, &quot;H264&quot;, 90000).<br />
So it seems that function gst_rtp_h264_pay_setcaps() is never called.<br />
<br />
What&#39;s the functionality of the &quot;set_caps&quot; field of structure GstBaseRTPPayloadClass?<br />
When it got called?<br />
<br />
Regards,<br />
Robbie