videoconvert not converting RGB to YUV correctly

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

videoconvert not converting RGB to YUV correctly

themanonthemoon
This post was updated on .
My pipeline looks like the following

appsrc ! video/x-raw, width=A, height=B, format='RGB' ! videoconvert !
videoscale ! clockoverlay ! video/x-raw, width=640, height=480,
format='I420' ! vp8enc ! .... other stuff

I'm finding that for certain (A,B) I am getting the correct output from the
pipeline, but for other (A,B) I'm getting a pure green screen with possibly
small artifacts around.

From what I understand, green implies that the YUV representation has
uninitialized memory. Is it possible this is a bug with videoconvert? Seems
weird is dependent on width/height

some Width/height that gives a good output:
(A,B) = (100,100)
(A,B) = (300,256)

some Width/height that gives a green output:
(A,B) = (325,225)
(A,B) = (326,226)

Any ideas? Is this a bug?

EDIT: Just to make something clear. When I say I change (A,B) I mean I both change the actual buffer that I send to the appsrc so it is an (A,B,3) image, and I also change the caps for the appsrc as shown above.






--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: videoconvert not converting RGB to YUV correctly

Nicolas Dufresne-5


Le jeu. 22 août 2019 20 h 55, themanonthemoon <[hidden email]> a écrit :
My pipeline looks like the following

appsrc ! video/x-raw, width=A, height=B, format='RGB' ! videoconvert !
videoscale ! clockoverlay ! video/x-raw, width=640, height=480,
format='I420' ! vp8enc ! .... other stuff

I'm finding that for certain (A,B) I am getting the correct output from the
pipeline, but for other (A,B) I'm getting a pure green screen with possibly
small artifacts around.

From what I understand, green implies that the YUV representation has
uninitialized memory. Is it possible this is a bug with videoconvert? Seems
weird is dependent on width/height

some Width/height that gives a good output:
(A,B) = (100,100)
(A,B) = (300,256)

some Width/height that gives a green output:
(A,B) = (325,225)
(A,B) = (326,226)

Any ideas? Is this a bug?

Could be videoconvert or the encoder, but likely a bug. In general, videoconvert deals very well with any resolution, so I would suspect the encoder. Encoders have a natural step, often called macro-block, but implementation should align internally. Make sure to test against very latest GStreamer to make sure your issue haven't been fixed already.






--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel