[Mesa-dev] [PATCH 06/11] vl/util: add copy func for yv12image to nv12surface

Zhang, Boyuan Boyuan.Zhang at amd.com
Thu Jul 21 23:45:19 UTC 2016

Hi Andy,

I just submitted another patch set.

1. Fixed previously reported regression when using ffmpeg to encode.
2. Fixed I420 "width=720,height=480" garbage output issue.

Please give a try from your side.


Hi Christian,

As stated above, this new patch set just submitted fixed the 2 issue reported by Andy. Main change is adding a new patch (8/9) to fix the regression issue, detailed information is written in the patch. I believe all basic functionality is working fine now if Andy confirmed the 2 fixes. And as discussed, other changes/issues will be addressed with the performance improvement in future. 

Please let me know whether this patch set is good enough for pushing to upstream?


-----Original Message-----
From: Andy Furniss [mailto:adf.lists at gmail.com] 
Sent: July-21-16 8:57 AM
To: Zhang, Boyuan; 'Christian K├Ânig'; mesa-dev at lists.freedesktop.org
Subject: Re: [PATCH 06/11] vl/util: add copy func for yv12image to nv12surface

Zhang, Boyuan wrote:
> Hi Andy,
> Thanks very much for providing all the information.
> The I420 U V swapping issue still can't be reproduced from my side, I 
> will try it again later. CQP issue is fixed in the new patch set I 
> just submitted. Please use " ... vaapiencodeh264 rate-control=cqp 
> init-qp=x ..." command, where x can be any value b/w 0--51. Please 
> give a try and let me know the result. Other issues, e.g. encoding 
> speed, ffmpeg, will be addressed/investigated later in separate patch 
> as I mentioned. This initial patch set is to bring up VAAPI encode for 
> gstreamer with basic functionality working. I will update with you 
> once we make progress.

CQP is working OK now.

On the I420 I still see it whatever I try and have just managed to produce a totally trashed output.

Below produces "expected" output = colors are wrong for I420 but the vid is OK apart from that.

gst-launch-1.0 videotestsrc num-buffers=5 ! 
video/x-raw,format=I420,width=1280,height=720,framerate=1/1 ! 
vaapih264enc ! h264parse ! mp4mux ! filesink location=I420.mp4

gst-launch-1.0 videotestsrc num-buffers=5 ! 
video/x-raw,format=NV12,width=1280,height=720,framerate=1/1 ! 
vaapih264enc ! h264parse ! mp4mux ! filesink location=NV12.mp4

I then decided I would attach a png showing both outputs, to get it to fit I repeated above with width=720,height=480 and the result for
I420 was totally trashed, NV12 OK.

Replacing vaapih264enc with x264enc for the trashed case produces good output - so I don't think it's the input that is trashed at that res/pix_fmt.

More information about the mesa-dev mailing list