ximagesrc to jpegenc
Arnaud Loonstra
arnaud at sphaero.org
Sun Nov 23 07:16:57 PST 2014
Hey Tim,
On 11/23/2014 03:32 PM, Tim Müller wrote:
[snip]
>> I first test this but it fails
>>
>> gst-launch-1.0 -v ximagesrc xname=xclock use-damage=false ! videoconvert
>> ! jpegenc ! jpegdec ! ximagesink
>>
>> GstXImageSrc:ximagesrc0: Internal data flow error.
>
> Might need a videoconvert in front of the sink as well.
You're right about that one:
gst-launch-1.0 -v ximagesrc xname=xclock ! videoconvert ! jpegenc !
jpegdec ! videoconvert ! ximagesink
>> Whatever pipeline I try it gives errors.
>>
>> The only one that worked was:
>> gst-launch-1.0 -v ximagesrc xname=xclock ! videoconvert ! jpegenc !
>> jpegdec ! glimagesink
>>
>> However sending that to rtpjpegpay gives:
>>
>> gst-launch-1.0 -v ximagesrc xname=xclock ! videoconvert ! jpegenc !
>> rtpjpegpay
[snip
>
> Try
>
> ximagesrc ! videoconvert ! video/x-raw,format=I420 ! jpegenc !
> rtpjpegpay ! ....
>
> There's a problem which is that the RTP JPEG payloading spec only allows
> for certain formats and subsample arrangement, but that's something we
> can't negotiate at the moment, so you need to hard-code the input to
> something that's supported by the payloader/spec.
That pipeline won't negotiate.
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink: caps =
"video/x-raw\,\ format\=\(string\)BGRx\,\ width\=\(int\)503\,\
height\=\(int\)371\,\ framerate\=\(fraction\)25/1\,\
pixel-aspect-ratio\=\(fraction\)1/1"
/GstPipeline:pipeline0/GstJpegEnc:jpegenc0.GstPad:src: caps =
"image/jpeg\,\ sof-marker\=\(int\)0\,\ width\=\(int\)503\,\
height\=\(int\)371\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\
framerate\=\(fraction\)25/1"
/GstPipeline:pipeline0/GstRtpJPEGPay:rtpjpegpay0.GstPad:src: caps =
"application/x-rtp\,\ media\=\(string\)video\,\
clock-rate\=\(int\)90000\,\ encoding-name\=\(string\)JPEG\,\
a-framerate\=\(string\)25.000000\,\ a-framesize\=\(string\)503-371\,\
payload\=\(int\)26\,\ ssrc\=\(uint\)3111873871\,\
timestamp-offset\=\(uint\)2946892724\,\ seqnum-offset\=\(uint\)9010"
/GstPipeline:pipeline0/GstRtpJPEGPay:rtpjpegpay0.GstPad:sink: caps =
"image/jpeg\,\ sof-marker\=\(int\)0\,\ width\=\(int\)503\,\
height\=\(int\)371\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\
framerate\=\(fraction\)25/1"
/GstPipeline:pipeline0/GstRtpJPEGPay:rtpjpegpay0: timestamp = 2946892819
/GstPipeline:pipeline0/GstRtpJPEGPay:rtpjpegpay0: seqnum = 9010
ERROR: from element /GstPipeline:pipeline0/GstXImageSrc:ximagesrc0:
Internal data flow error.
Additional debug info:
gstbasesrc.c(2933): gst_base_src_loop ():
/GstPipeline:pipeline0/GstXImageSrc:ximagesrc0:
How do you 'hardcode' the input. According to gst-inspect the payloader
only wants video/x-jpeg or image/jpeg. The type parameter will be
overwritten if the sof value?
Rg,
Arnaud
--
w: http://www.sphaero.org
t: http://twitter.com/sphaero
g: http://github.com/sphaero
i: freenode: sphaero_z25
More information about the gstreamer-devel
mailing list