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