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