Gstreamer issue on mac osx

Gerard Toonstra gtoonstra at gmail.com
Wed Jan 16 12:15:54 PST 2013


Well…..

It took me a day to figure things out. 
I cleared the frameworks directory so that I'd be sure to start with everything new. Then installed the "brahmaputra" release 2012-11 over again. End result: exactly the same.

then I went back on Linux where things do work and turned on more debugging to see the caps it was working with. I then explicitly took a note of the caps after rtph264depay:

./gst-launch-0.10 -vvv udpsrc multicast-group=239.255.12.12 port=5004 auto-multicast=true caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264,payload=(int)96" ! rtph264depay ! "video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal" ! ffdec_h264 ! ffmpegcolorspace ! autovideosink sync=false

The stream-format and alignment issues were a red herring, because it seemed the defaults for both were wrong, so the data in the stream was overriding the default properties.

Then I turned on debugging to the max and saw this on the osxvideosink, where it was trying to negotiate caps on the videosink and after the ffdec_h264:

0:00:02.125843000   483    0x102008850 DEBUG               GST_CAPS gstpad.c:2799:gst_pad_configure_sink:<autovideosink0-actual-sink-osxvideo:sink> caps 0x101873c80 not accepted
0:00:02.125875000   483    0x102008850 INFO                 basesrc gstbasesrc.c:2570:gst_base_src_loop:<udpsrc0> pausing after gst_pad_push() = not-negotiated

I inserted ffmpegcolorspace and it started working after that.

Is there a way I can configure the machine so it doesn't need ffmpegcolorspace, or is this sink dependent?

Rgds,

G>


On Jan 15, 2013, at 9:38 PM, Gerard Toonstra <gtoonstra at gmail.com> wrote:

> Hi there,
> 
> I have an IP cam that is configured to output UDP multicast. I'm getting video on Ubuntu Linux (12.10), but on Mac OSX there are issues.
> See here the output of two consecutive runs. The first one hangs, is aborted. The second one reports a "subclass rejected caps" issue,
> resulting in failure to negotiate.
> 
> Does anyone know what the problem could be?  Missing libraries, incorrect versions?
> 
> I installed gstreamer from here:
> 
> http://docs.gstreamer.com/display/GstSDK/Installing+on+Mac+OS+X
> 
> Running Mountain Lion on Mac OSX mini: 12.2.0 Darwin Kernel Version 12.2.0
> 
> new-host-3:bin gt$ GST_DEBUG=2 ./gst-launch-0.10 -vvv udpsrc multicast-group=239.255.12.12 port=5004 auto-multicast=true caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264,payload=(int)96,width=(int)1280,height=(int)720" ! rtph264depay ! ffdec_h264 ! video/x-raw-yuv ! ffmpegcolorspace ! autovideosink
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Setting pipeline to PLAYING ...
> 0:00:00.126765000   499    0x10078bb00 WARN                     bin gstbin.c:2399:gst_bin_do_latency_func:<pipeline0> failed to query latency
> New clock: GstSystemClock
> ^CCaught interrupt -- handling interrupt.
> Interrupt: Stopping pipeline ...
> Execution ended after 46696132000 ns.
> Setting pipeline to PAUSED ...
> Setting pipeline to READY ...
> /GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = NULL
> Setting pipeline to NULL ...
> Freeing pipeline ...
> new-host-3:bin gt$ GST_DEBUG=2 ./gst-launch-0.10 -vvv udpsrc multicast-group=239.255.12.12 port=5004 auto-multicast=true caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264,payload=(int)96,width=(int)1280,height=(int)720" ! rtph264depay ! ffdec_h264 ! video/x-raw-yuv ! ffmpegcolorspace ! autovideosink
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Setting pipeline to PLAYING ...
> 0:00:00.152357000   519    0x100763700 WARN                     bin gstbin.c:2399:gst_bin_do_latency_func:<pipeline0> failed to query latency
> New clock: GstSystemClock
> 0:00:00.166522000   519    0x100819050 WARN            rtph264depay gstrtph264depay.c:280:gst_rtp_h264_depay_negotiate:<rtph264depay0> overriding property setting based on caps
> 0:00:00.166550000   519    0x100819050 WARN            rtph264depay gstrtph264depay.c:288:gst_rtp_h264_depay_negotiate:<rtph264depay0> overriding property setting based on caps
> 0:00:00.166558000   519    0x100819050 WARN        basertpdepayload gstbasertpdepayload.c:246:gst_base_rtp_depayload_setcaps:<rtph264depay0> Subclass rejected caps 0x102005440
> 0:00:00.166588000   519    0x100819050 WARN                 basesrc gstbasesrc.c:2633:gst_base_src_loop:<udpsrc0> error: Internal data flow error.
> 0:00:00.166596000   519    0x100819050 WARN                 basesrc gstbasesrc.c:2633:gst_base_src_loop:<udpsrc0> error: streaming task paused, reason not-negotiated (-4)
> 0:00:00.166653000   519    0x100819050 ERROR                 ffmpeg gstffmpegdec.c:2359:gst_ffmpegdec_frame:<ffdec_h2640> no codec context
> ERROR: from element /GstPipeline:pipeline0/GstUDPSrc:udpsrc0: Internal data flow error.
> Additional debug info:
> gstbasesrc.c(2633): gst_base_src_loop (): /GstPipeline:pipeline0/GstUDPSrc:udpsrc0:
> streaming task paused, reason not-negotiated (-4)
> Execution ended after 14420000 ns.
> Setting pipeline to PAUSED ...
> Setting pipeline to READY ...
> /GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = NULL
> Setting pipeline to NULL ...
> Freeing pipeline ...
> 
> 
> Rgds,
> 
> Gerard
> 



More information about the gstreamer-devel mailing list