gdkpixbufoverlay breaks vaapi pipeline
Nicolas Dufresne
nicolas at ndufresne.ca
Wed May 1 13:44:08 UTC 2019
Le mer. 1 mai 2019 05 h 51, Wolfgang Grandegger <wg at grandegger.com> a
écrit :
> Hello,
>
> Am 01.05.19 um 02:12 schrieb Nicolas Dufresne:
> >
> >
> > Le mar. 30 avr. 2019 16 h 25, Wolfgang Grandegger <wg at grandegger.com
> > <mailto:wg at grandegger.com>> a écrit :
> >
> > Hello,
> >
> > I have a wired problem with the following pipeline:
> >
> > $ gst-launch-1.0 udpsrc port=5678 buffer-size=180000000 \
> > ! image/jpeg,format=Y42B,width=1920,height=1080,framerate=50/1
> \
> > ! jpegparse disable-passthrough=true
> > ! vaapijpegdec \
> >
> >
> > I'm not fully certain, but I believe you might need to add vaapipostproc
> > here for this use case. VA element don't produce normal memory, the
> > postproc can fix that
>
> "vaapipostproc" without arguments does *not* help. But I just found out,
> that
>
> "vaapipostproc format=i420 "
>
Ok, in theory, a caps filter after with format=I420 should have the same
effect. We aim at deprecating that property.
I suspect that the main side effect is that it's no longer passthrough. I
think it's worth filing a bug report on gitlab. Something isn't quite right
for this use case.
> here does *cure* the problem! Should it not also work with 422H?
>
> It there an easy way to find out what format an element uses?
>
For gdkpixbufoverlay, it's static, so simply gst-inspect, for VAAPI it's
very dynamic, you have to dig into the caps. In general you should not have
to care, it should always negotiated something that works.
> Anyway, as mentioned below, it works fine with the "yuvj420" camera
> stream and also with "clockoverlay". Therefore I think "memory" should
> be ok in the first place... but maybe I have missed something?
>
> >
> > ! gdkpixbufoverlay location=logo.png \
> > ! vaapisink
> >
> > It works fine with the following camera stream:
> >
> > Video: mjpeg (jpeg / 0x6765706A), yuvj420p(pc,
> > bt470bg/unknown/unknown, progressive), 1920x1080
> >
> > but the element "gdkpixbufoverlay" breaks it with the stream:
> >
> > Video: mjpeg (jpeg / 0x6765706A), yuvj422p(pc,
> > bt470bg/unknown/unknown, progressive), 1920x1080
> >
> > It's 420 vs 422? Then I get the error message:
> >
> > WARN vaapisink
> > gstvaapisink.c:1483:gst_vaapisink_show_frame_unlocked:<vaapisink0>
> > could not get surface
>
> What could cause that warning?
>
> > WARN basesrc gstbasesrc.c:3055:gst_base_src_loop:<udpsrc0>
> > error: Internal data stream error.
> > WARN basesrc gstbasesrc.c:3055:gst_base_src_loop:<udpsrc0>
> > error: streaming stopped, reason error (-5)
> > WARN queue
> > gstqueue.c:988:gst_queue_handle_sink_event:<queue0> error: Internal
> > data stream error.
> > WARN queue
> > gstqueue.c:988:gst_queue_handle_sink_event:<queue0> error: streaming
> > stopped, reason error (-5)
> > ERROR: from element /GstPipeline:pipeline0/GstUDPSrc:udpsrc0:
> > Internal data stream error.
> > Additional debug info:
> > gstbasesrc.c(3055): gst_base_src_loop ():
> > /GstPipeline:pipeline0/GstUDPSrc:udpsrc0:
> > streaming stopped, reason error (-5)
> >
> > In the log with GST_DEBUG=5 I find in that case:
> >
> > DEBUG vaapi
> > gstvaapiimage.c:293:gst_vaapi_image_new_with_image: VA image
> > 0x0a000000, format 422H, size 1920x1080
> > ...
> > DEBUG vaapidisplay gstvaapidisplay.c:205:append_formats:
> > unsupported format 422H
>
> That tells me, that 422H is not supported. Is it a hardware or software
> limitation? Does it depend on the X86 graphics hardware?
>
> >
> > In the good case, I do not find the last line but
> >
> > DEBUG vaapi
> > gstvaapiimage.c:293:gst_vaapi_image_new_with_image: VA image
> > 0x0a000000, format IMC3, size 1920x1080
> >
> > Not sure it it's related, though. It's working fine for both streams
> > *without*
> > "gdkpixbufoverlay" or *with* "clockoverlay".
> >
> > Any idea what could go wrong? Anything else I could debug?
> >
> > TIA,
> >
> > Wolfgang
>
> Thanks,
>
> Wolfgang
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20190501/ee4779a7/attachment.html>
More information about the gstreamer-devel
mailing list