From: Carlos Rafael Giani <dv@pseudoterminal.org>
To: meta-freescale@yoctoproject.org
Subject: Re: PXP test applications
Date: Sat, 11 Apr 2015 18:30:20 +0200 [thread overview]
Message-ID: <55294C1C.5010502@pseudoterminal.org> (raw)
In-Reply-To: <CA+jg_OUoXR0wAGWY-m2Nqqz58g5PCwVJmMqG16f1b80=y3zs9w@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1357 bytes --]
> The "official repository" is the one inside the package....
>
> There is nothing more I can help, sorry. I also failed on getting it to work.
>
> Daiane
>
Which is a pity, because PxP seems to be partially broken in the kernel.
That, or the headers contain a whole lot of formats that will be
supported in the future, but aren't right now.
A lot of source/destination format combinations produce erroneous
content, just just plain black or green frames.
I attached the results of my findings. I did the tests with
gstreamer-imx (current master) , Yocto Fido, kernel linux-imx
3.14.28-1.0.0_ga+g91cf351 , on a Sabre SD DualLite with integrated
touchscreen. Plain framebuffer, no X, no Wayland.
The first matrix is the full version - I tried all formats with all
formats. The second matrix is the one reduced to the subset that works
best. Unfortunately, BGRx/RGB16 as source and UYVY as target format
produce reversed colors, otherwise this would be a matrix with all
combinations working. Also unfortunate is the fact that I420 didn't work
at all as target format. Since the VPU expects I420 as input for
encoding, PxP would have been useful as a single conversion step for
some webcams that deliver Y42B data.
If anybody can make sense about why PxP is so broken, I'd be happy to
hear about it.
Carlos
[-- Attachment #2: pxp-conv-matrix.txt --]
[-- Type: text/plain, Size: 4941 bytes --]
RGBx BGRx RGBA BGRA ABGR RGB BGR RGB16 RGB15 GRAY8 YUY2 UYVY YVYU v308 IYU1 I420 YV12 Y42B NV12 NV21 NV16 YUV9 YVU9
RGBx n n n n n n n n n n g g g g g g g g g g g g g
BGRx n X n X n r n X l X g r g g g g g g g g g g g
RGBA n n n n n n n n n n g g g g g g g g g g g g g
BGRA n n n n n n n n n n g g g g g g g g g g g g g
ABGR n n n n n n n n n n g g g g g g g g g g g g g
RGB n n n n n n n n n n g g g g g g g g g g g g g
BGR n n n n n n n n n n g g g g g g g g g g g g g
RGB16 l X l X l r l X l X g r g g g g g g g g g g g
RGB15 l v l v l v l v l v g g g g g g g g g g g g g
GRAY8 l r l r l r l r l X g r g g g g g g g g g g g
YUY2 l X l X l r l X l X g X g g g g g g g g g g g
UYVY l X l X l r l X l X g X g g g g g g g g g g g
YVYU l X l X l r l X l X g X g g g g g g g g g g g
v308 l c l c l c l c l c g c g g g g g g g g g g g
IYU1 l g l g l g l g l n g g g g g g g g g g g g g
I420 l X l X l r l X l X g X g g g g g g g g g g g
YV12 l X l X l r l X l X g X g g g g g g g g g g g
Y42B l X l X l r l X l X g X g g g g g g g g g g g
NV12 l X l X l r l X l X g X g g g g g g g g g g g
NV21 l r l r l r l r l r l r g g g g g g g g g g g
NV16 l f l f l t l f l X l f g g g g g g g g g g g
YUV9 l g l g l g l g l n g g g g g g g g g g g g g
YVU9 l g l g l g l g l n g g g g g g g g g g g g g
test pipeline:
gst-launch-1.0 videotestsrc pattern=smpte ! "video/x-raw, format=BGRx" ! videoconvert dither=0 ! "video/x-raw, format=<SRCFORMAT>" ! imxpxpvideotransform ! "video/x-raw, format=<DESTFORMAT>" ! videoconvert dither=0 ! "video/x-raw, format=BGRx" ! imxg2dvideosink
reference pipeline:
gst-launch-1.0 videotestsrc pattern=smpte ! "video/x-raw, format=BGRx" ! videoconvert dither=0 ! "video/x-raw, format=<SRCFORMAT>" ! videoconvert dither=0 ! "video/x-raw, format=<DESTFORMAT>" ! videoconvert dither=0 ! "video/x-raw, format=BGRx" ! imxg2dvideosink
The reference pipeline converts all formats properly.
left column : source format (<SRCFORMAT>)
top row : destination format (<DESTFORMAT>)
examples:
BGRx -> BGRA = X
GRAY8 -> RGB = r
n = nothing (black)
g = green screen
X = okay
r = colors reversed
l = only one scan line at the top, rest black
v = first scanline is repeated all the way to the bottom of the screen
c = frameirecognizable, but corrupted
f = left half OK, right half color-corrupted
t = left half color reversed, right half color-corrupted
=== Reduced version ===
removed source formats: RGBx RGBA BGRA ABGR RGB BGR GRAY8[1] RGB15[2] v308[3] IYU1 NV21[4] NV16[5] YUV9 YVU9
[1] : spread like the others, but all colors were wrong except for the GRAY8->GRAY8 case
[2] : first scanline is repeated all the way to the bottom of the screen
[3] : screen corrupted
[4] : colors reversed ; perhaps improper PxP usage?
[5] : half ok, half colors corrupted ; perhaps improper PxP usage?
removed destination formats: RGBx BGRA ARGB RGB[6] BGR RGB15 YUY2 YVYU v308 IYU1 I420 YV12 Y42B NV12 NV21 NV16 YUV9 YVU9
[6] : r<->b reversed
BGRx BGRA RGB16 GRAY8 UYVY
BGRx X X X X r
RGB16 X X X X r
YUY2 X X X X X
UYVY X X X X X
YVYU X X X X X
I420 X X X X X
YV12 X X X X X
Y42B X X X X X
NV12 X X X X X
next prev parent reply other threads:[~2015-04-11 16:30 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-09 21:13 PXP test applications Eric Nelson
2015-04-10 12:09 ` Daiane Angolini
2015-04-10 14:47 ` Eric Nelson
2015-04-10 15:58 ` Daiane Angolini
2015-04-10 18:32 ` Eric Nelson
2015-04-11 14:28 ` Daiane Angolini
2015-04-11 16:30 ` Carlos Rafael Giani [this message]
2015-04-11 17:03 ` Eric Nelson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55294C1C.5010502@pseudoterminal.org \
--to=dv@pseudoterminal.org \
--cc=meta-freescale@yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.