After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 615143 - [videobox] I420->AYUV conversion broken
[videobox] I420->AYUV conversion broken
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal blocker
: 0.10.22
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-04-08 05:35 UTC by Sebastian Dröge (slomo)
Modified: 2010-04-16 13:28 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
videobox: Fix AYUV->I420 copying (18.14 KB, patch)
2010-04-14 09:44 UTC, Sebastian Dröge (slomo)
committed Details | Review

Description Sebastian Dröge (slomo) 2010-04-08 05:35:31 UTC
The I420->AYUV conversion in videobox was broken by my changes at some point and crashes:

gst-launch-0.10 videotestsrc ! "video/x-raw-yuv,width=641,height=481,format=(fourcc)I420" ! queue2 ! videobox fill=black autocrop=true top=10 bottom=-10 left=-10 right=-10 fill=green ! "video/x-raw-yuv,format=(fourcc)AYUV" ! queue2 ! ffmpegcolorspace ! ximagesink

Only seems to happen for odd widths/heights though. In other other odd cases the I420 code (I420->I420 and AYUV->I420) seems to copy less than needed, causing visible problems.

This should definitely be fixed before next -good release, I'll work on this.
Comment 1 Tim-Philipp Müller 2010-04-12 23:23:29 UTC
Is this fixed now with:

commit 37e3d2d9d5b20658721d07ecc3a0570fdaffabf4
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Mon Apr 12 11:43:49 2010 +0200

    videobox: Fix I420->AYUV copying

commit 9da4f2906f6e95e34e8929c8acc04098d1e3d3fa
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Mon Apr 12 11:25:59 2010 +0200

    videobox: Correctly clamp frame/background alphas to [0,255] before writing them

or is there more to do?

That pipeline works for with git now.
Comment 2 Sebastian Dröge (slomo) 2010-04-13 06:58:08 UTC
The I420->I420 and AYUV->I420 code paths are still broken, I'm working on them already.
Comment 3 Sebastian Dröge (slomo) 2010-04-14 09:44:57 UTC
Created attachment 158698 [details] [review]
videobox: Fix AYUV->I420 copying
Comment 4 Sebastian Dröge (slomo) 2010-04-14 09:48:03 UTC
(In reply to comment #3)
> Created an attachment (id=158698) [details] [review]
> videobox: Fix AYUV->I420 copying

This fixes the AYUV->I420 copying but I'd like to hear comments on the approach taken here, i.e. blending with the background if not a complete macro pixel is copied. This approach will cause no sharp borders in this case but OTOH guarantees that the copied frame has exactly the requested dimensions.

If this is fine I'll continue with the I420->I420 copying
Comment 5 Benjamin Otte (Company) 2010-04-14 11:07:29 UTC
sounds sane (assuming it works properly with uneven target sizes). Otherwise you'd most liekly get a behavior that'd be unsupported in cairo/pixman anyway.
Comment 6 Sebastian Dröge (slomo) 2010-04-16 13:28:29 UTC
commit 386169b9fecc6fb26513cd426a6d16b4154a6815
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Fri Apr 16 15:27:12 2010 +0200

    videobox: Fix I420->I420 copying
    
    Fixes bug #615143.

commit e6dd1fc3db014fc8af8b6e13022e40a3f133ae7b
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Tue Apr 13 18:15:50 2010 +0200

    videobox: Fix AYUV->I420 copying