[gst-devel] Streaming RTP jpeg images (RFC2435) with restart marker header. Is it unsupported? Why?
Mauro Brenna
malloblenne at gmail.com
Mon Jan 10 16:23:18 CET 2011
Hello,
I would like to stream jpeg images using RTP (RFC2435). The images
which are coming from my camera include the restart marker (0xFF
0xDD).
I tested to send an image via RTP with the following pipelines, under windows:
#STREAM
gst-launch.exe -v gstrtpbin name
=rtpbin multifilesrc location="camera.jpg" caps="image/jpeg,framerate=1/1" ! rt
pjpegpay ! rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 ! multiudpsink clients="
127.0.0.1:9996" rtpbin.send_rtcp_src_0 ! multiudpsink clients="127.0.0.1:9997" s
ync=false async=false udpsrc port=10000
#RECEIVE
gst-launch.exe -v gstrtpbin name
=rtpbin udpsrc caps="application/x-rtp, media=\(string\)video, clock-rate=\(int\
)90000, encoding-name=\(string\)JPEG, ssrc=\(guint\)469657143, payload=\(int\)96
, clock-base=\(guint\)2841649723, seqnum-base=\(guint\)39869" port=9996 ! rtpbin
.recv_rtp_sink_1 rtpbin. ! rtpjpegdepay ! multifilesink location="test%05d.jpg"
I notice that only a little part of the image is visible in the
resulting jpeg. In particular, the only difference between the
original image (streaming)and the received one is the missing of the
line that specifies the restart interval between MCUs:
e.g.: ff dd 00 04 00 32
before the SOS: ff c0.
I looked in the source files for a possible explanation
(gstrtpjpegpay.c and gstrtpjpegdepay.c) and I read this comment in
gstrtpjpegpay.c, line 223:
/* FIXME: restart marker header currently unsupported */
I read the code and I don't understand when the DRI part is not
included (in the creation of RTP packed or in its reception).
I would like to know what are the problems in implementing that part.
In my case, I only need to prepend those 6 byte before the start of
scan (by hand) and I managed to see the correct picture.
Thanks,
Mauro
More information about the gstreamer-devel
mailing list