Hi !
I have a question concerning rtpjpegpay. Why is there no support for grayscale images in the payloader? The jpeg standard allows grayscale images and e.g. jpegenc can also create them (<http://class.ee.iastate.edu/ee528/Reading%20material/JPEG_File_Format.pdf>). However, the rtpjpegpay element does not accept them as can be seen from the pipeline below. Is it just not yet implemented or would it violate the rtp standard for jpeg (<http://tools.ietf.org/html/rfc2435>)? The SOF header of such images has a length of 11, while in RFC 2435 (and in rtpjpegpay) the SOF header length seems to be fixed to 17. What would be an alternative way to stream grayscale jpeg? Best regards Jan PS: Here's the pipeline that produces the error: gst-launch --gst-debug=rtpjpegpay:5 gstrtpbin name=r videotestsrc ! video/x-raw-yuv ! jpegenc ! rtpjpegpay ! r.send_rtp_sink_0 r.send_rtp_src_0 ! udpsink host=10.0.0.127 port=5000 r.send_rtcp_src_0 ! udpsink port=5001 sync=false async=false udpsrc port=5002 ! r.recv_rtcp_sink_0 Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock 0:00:00.113285000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:633:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> got buffer size 6848, timestamp 0:00:00.000000000 0:00:00.113285000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:642:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> checking from offset 0 0:00:00.114262000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:593:gst_rtp_jpeg_pay_scan_marker: found d8 marker at offset 1 0:00:00.114262000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:669:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> SOI found 0:00:00.115238000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:642:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> checking from offset 2 0:00:00.115238000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:593:gst_rtp_jpeg_pay_scan_marker: found e0 marker at offset 3 0:00:00.116215000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:647:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> skipping marker 0:00:00.117192000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:642:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> checking from offset 20 0:00:00.117192000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:593:gst_rtp_jpeg_pay_scan_marker: found db marker at offset 21 0:00:00.118168000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:656:gst_rtp_jpeg_pay_handle_buffer: DQT found 0:00:00.118168000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:384:gst_rtp_jpeg_pay_read_quant_table: read quant table 0, tab_size 64, prec 00 0:00:00.119145000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:642:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> checking from offset 89 0:00:00.119145000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:593:gst_rtp_jpeg_pay_scan_marker: found c0 marker at offset 90 0:00:00.120121000 4992 023BC850 WARN rtpjpegpay gstrtpjpegpay.c:515:gst_rtp_jpeg_pay_read_sof:<rtpjpegpay0> error: Wrong SOF length 11. ERROR: from element /GstPipeline:pipeline0/GstRtpJPEGPay:rtpjpegpay0: Wrong SOF length 11. Additional debug info: ..\..\..\..\..\Source\gst-plugins-good\gst\rtp\gstrtpjpegpay.c(515): gst_rtp_jpeg_pay_read_sof (): /GstPipeline:pipeline0/GstRtpJPEGPay:rtpjpegpay0 Execution ended after 9766000 ns. Setting pipeline to PAUSED ... 0:00:00.121098000 Setting pipeline to READY ... 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:633:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> got buffer size 6884, timestamp 0:00:00.033333333 0:00:00.122075000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:642:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> checking from offset 0 0:00:00.123051000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:593:gst_rtp_jpeg_pay_scan_marker: found d8 marker at offset 1 0:00:00.123051000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:669:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> SOI found 0:00:00.124028000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:642:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> checking from offset 2 0:00:00.125004000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:593:gst_rtp_jpeg_pay_scan_marker: found e0 marker at offset 3 0:00:00.125004000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:647:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> skipping marker 0:00:00.125981000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:642:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> checking from offset 20 0:00:00.125981000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:593:gst_rtp_jpeg_pay_scan_marker: found db marker at offset 21 0:00:00.126958000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:656:gst_rtp_jpeg_pay_handle_buffer: DQT found 0:00:00.126958000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:384:gst_rtp_jpeg_pay_read_quant_table: read quant table 0, tab_size 64, prec 00 0:00:00.127934000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:642:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> checking from offset 89 0:00:00.127934000 4992 023BC850 LOG rtpjpegpay gstrtpjpegpay.c:593:gst_rtp_jpeg_pay_scan_marker: found c0 marker at offset 90 0:00:00.128911000 4992 023BC850 WARN rtpjpegpay gstrtpjpegpay.c:515:gst_rtp_jpeg_pay_read_sof:<rtpjpegpay0> error: Wrong SOF length 11. Setting pipeline to NULL ... Freeing pipeline ... _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
HI!
Of course the pipeline that produced the error is the folowing: gst-launch --gst-debug=rtpjpegpay:5 gstrtpbin name=r videotestsrc ! video/x-raw-gray ! jpegenc ! rtpjpegpay ! r.send_rtp_sink_0 r.send_rtp_src_0 ! udpsink host=10.0.0.127 port=5000 r.send_rtcp_src_0 ! udpsink port=5001 sync=false async=false udpsrc port=5002 ! r.recv_rtcp_sink_0 video/x-raw-gray instead of -yuv.... Sorry, Jan > -----Ursprüngliche Nachricht----- > Von: gstreamer-devel-bounces+ruebel=[hidden email] > [mailto:gstreamer-devel- > bounces+ruebel=[hidden email]] Im Auftrag von Jan > Rübel > Gesendet: Dienstag, 10. Januar 2012 10:47 > An: [hidden email] > Betreff: grayscale jpeg and rtpjpegpay > > Hi ! > > I have a question concerning rtpjpegpay. > > Why is there no support for grayscale images in the payloader? > The jpeg standard allows grayscale images and e.g. jpegenc can also create > them > (<http://class.ee.iastate.edu/ee528/Reading%20material/JPEG_File_Format. > pdf>). However, the rtpjpegpay element does not accept them as can be > seen from the pipeline below. > > Is it just not yet implemented or would it violate the rtp standard for jpeg > (<http://tools.ietf.org/html/rfc2435>)? > The SOF header of such images has a length of 11, while in RFC 2435 (and in > rtpjpegpay) the SOF header length seems to be fixed to 17. > > What would be an alternative way to stream grayscale jpeg? > > Best regards > Jan > > PS: Here's the pipeline that produces the error: > > gst-launch --gst-debug=rtpjpegpay:5 gstrtpbin name=r videotestsrc ! > video/x-raw-yuv ! jpegenc ! rtpjpegpay ! r.send_rtp_sink_0 > r.send_rtp_src_0 ! udpsink host=10.0.0.127 port=5000 r.send_rtcp_src_0 ! > udpsink port=5001 sync=false async=false udpsrc port=5002 ! > r.recv_rtcp_sink_0 > > Setting pipeline to PAUSED ... > Pipeline is live and does not need PREROLL ... > Setting pipeline to PLAYING ... > New clock: GstSystemClock > 0:00:00.113285000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:633:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> got > buffer size 6848, > timestamp 0:00:00.000000000 > 0:00:00.113285000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:642:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> > checking from offset 0 > 0:00:00.114262000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:593:gst_rtp_jpeg_pay_scan_marker: found d8 marker at > offset 1 > 0:00:00.114262000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:669:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> SOI > found > 0:00:00.115238000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:642:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> > checking from offset 2 > 0:00:00.115238000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:593:gst_rtp_jpeg_pay_scan_marker: found e0 marker at > offset 3 > 0:00:00.116215000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:647:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> > skipping marker > 0:00:00.117192000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:642:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> > checking from offset 20 > 0:00:00.117192000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:593:gst_rtp_jpeg_pay_scan_marker: found db marker at > offset 21 > 0:00:00.118168000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:656:gst_rtp_jpeg_pay_handle_buffer: DQT found > 0:00:00.118168000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:384:gst_rtp_jpeg_pay_read_quant_table: read quant table > 0, tab_size 64, prec 00 > 0:00:00.119145000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:642:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> > checking from offset 89 > 0:00:00.119145000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:593:gst_rtp_jpeg_pay_scan_marker: found c0 marker at > offset 90 > 0:00:00.120121000 4992 023BC850 WARN rtpjpegpay > gstrtpjpegpay.c:515:gst_rtp_jpeg_pay_read_sof:<rtpjpegpay0> error: > Wrong SOF length 11. > ERROR: from element /GstPipeline:pipeline0/GstRtpJPEGPay:rtpjpegpay0: > Wrong SOF length 11. > Additional debug info: > ..\..\..\..\..\Source\gst-plugins-good\gst\rtp\gstrtpjpegpay.c(515): > gst_rtp_jpeg_pay_read_sof (): > /GstPipeline:pipeline0/GstRtpJPEGPay:rtpjpegpay0 > Execution ended after 9766000 ns. > Setting pipeline to PAUSED ... > 0:00:00.121098000 Setting pipeline to READY ... > 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:633:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> got > buffer size 6884, timestamp 0:00:00.033333333 > 0:00:00.122075000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:642:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> > checking from offset 0 > 0:00:00.123051000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:593:gst_rtp_jpeg_pay_scan_marker: found d8 marker at > offset 1 > 0:00:00.123051000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:669:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> SOI > found > 0:00:00.124028000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:642:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> > checking from offset 2 > 0:00:00.125004000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:593:gst_rtp_jpeg_pay_scan_marker: found e0 marker at > offset 3 > 0:00:00.125004000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:647:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> > skipping marker > 0:00:00.125981000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:642:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> > checking from offset 20 > 0:00:00.125981000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:593:gst_rtp_jpeg_pay_scan_marker: found db marker at > offset 21 > 0:00:00.126958000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:656:gst_rtp_jpeg_pay_handle_buffer: DQT found > 0:00:00.126958000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:384:gst_rtp_jpeg_pay_read_quant_table: read quant table > 0, tab_size 64, prec 00 > 0:00:00.127934000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:642:gst_rtp_jpeg_pay_handle_buffer:<rtpjpegpay0> > checking from offset 89 > 0:00:00.127934000 4992 023BC850 LOG rtpjpegpay > gstrtpjpegpay.c:593:gst_rtp_jpeg_pay_scan_marker: found c0 marker at > offset 90 > 0:00:00.128911000 4992 023BC850 WARN rtpjpegpay > gstrtpjpegpay.c:515:gst_rtp_jpeg_pay_read_sof:<rtpjpegpay0> error: > Wrong SOF length 11. > Setting pipeline to NULL ... > Freeing pipeline ... > > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |