<div dir="ltr">thank you. <br>I understand how work with vaDeriveImage.<br>:)<br><div class="gmail_extra"><br><br><div class="gmail_quote">On 23 April 2013 06:52, ykzhao <span dir="ltr"><<a href="mailto:yakui.zhao@intel.com" target="_blank">yakui.zhao@intel.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Mon, 2013-04-22 at 11:40 -0600, kwisp wrote:<br>
> >>>Fourcc: 3231564E: (NV12 format).<br>
><br>
> In va/va.h file 3231564E is NV11 format.<br>
<br>
</div>Really? Which branch of libva is you using?<br>
#define VA_FOURCC_NV12 š š š š š0x3231564E<br>
#define VA_FOURCC_NV11 š š š š š0x3131564e<br>
<br>
Will you please double check it again?<br>
> >>>What is wrong when you try to read the image by using the above/* a<br>
> few common FourCCs */<br>
<div class="im">> šexample<br>
> code?<br>
><br>
> Nothing. I can get valid image using pithches and offsets. But I am<br>
> afraid of wrong data size. Who can guarantee that my code do not crash<br>
> outside the image.data_size?<br>
><br>
</div>In theory you can't read/write the image buffer that is beyond<br>
image.data_size. It is developer's responsibility to assure the<br>
reading/writing the correct size. Per my understanding the<br>
image.data_size should be the size of image buffer. If so, the EMGD<br>
driver doesn't return the correct size. The real buffer size should be<br>
1.5 * image.data_size.<br>
<div class="HOEnZb"><div class="h5"><br>
> Gwenole, thank you.<br>
><br>
><br>
><br>
> On 19 April 2013 20:10, Gwenole Beauchesne <<a href="mailto:gb.devel@gmail.com">gb.devel@gmail.com</a>> wrote:<br>
> š š š š Hi,<br>
><br>
> š š š š This is an issue in the EMGD driver that is still present in<br>
> š š š š version 1.16.<br>
><br>
> š š š š The dimensions are not reported correctly in the resulting<br>
> š š š š VAImage,<br>
> š š š š though the pitch information is. Please report a bug in Intel<br>
> š š š š Premier.<br>
> š š š š Another test application is hwdecode-demos with vaapi_h264<br>
> š š š š invoked<br>
> š š š š with --getimage for example. The VAImage.{width,height} fields<br>
> š š š š should<br>
> š š š š match the VA surface dimensions. The VAImage.pitches[] can<br>
> š š š š match the<br>
> š š š š underlying implementation needs, e.g. next-power-of-two.<br>
><br>
> š š š š Thanks,<br>
> š š š š Gwenole.<br>
><br>
> š š š š 2013/4/19 ykzhao <<a href="mailto:yakui.zhao@intel.com">yakui.zhao@intel.com</a>>:<br>
> š š š š > On Wed, 2013-04-17 at 10:40 -0600, kwisp wrote:<br>
> š š š š >> On 17 April 2013 08:44, ykzhao <<a href="mailto:yakui.zhao@intel.com">yakui.zhao@intel.com</a>><br>
> š š š š wrote:<br>
> š š š š >> š š š š On Tue, 2013-04-16 at 12:26 -0600, kwisp wrote:<br>
> š š š š >> š š š š > I use standart libva example<br>
> š š š š >> š š š š ><br>
> š š š š >><br>
> š š š š <a href="http://cgit.freedesktop.org/libva/tree/test/decode/mpeg2vldemo.c" target="_blank">http://cgit.freedesktop.org/libva/tree/test/decode/mpeg2vldemo.c</a><br>
> š š š š >> š š š š ><br>
> š š š š >> š š š š ><br>
> š š š š >> š š š š > I try retrive image by calling vaDeriveImage<br>
> š š š š after decoding<br>
> š š š š >> š š š š and<br>
> š š š š >> š š š š > recieve stange VAImage.<br>
> š š š š >> š š š š ><br>
> š š š š >> š š š š > image.width = 512 image.height = 32<br>
> š š š š image.data_size=16384<br>
> š š š š >> š š š š > image.numplanes=2<br>
> š š š š >> š š š š ><br>
> š š š š >> š š š š > image.format.fourcc = NV11 image.offsets[0] = 0,<br>
> š š š š >> š š š š image.offsets[1] =<br>
> š š š š >> š š š š > 16384, image.pitches[0] = image.pitches[1] = 512.<br>
> š š š š >> š š š š ><br>
> š š š š >> š š š š ><br>
> š š š š >> š š š š > If I convert this VAImage data to normaly FOURCC<br>
> š š š š format I<br>
> š š š š >> š š š š see correct<br>
> š š š š >> š š š š > picture.<br>
> š š š š >> š š š š ><br>
> š š š š >><br>
> š š š š ><br>
> š š š š > The vaDeriveImage is used to read/write the image content<br>
> š š š š from the<br>
> š š š š > corresponding decoded buffer. And we don't need to care<br>
> š š š š whether the<br>
> š š š š > width/height of derived image is different with real image<br>
> š š š š size(The<br>
> š š š š > width/height of derived image is determined by the video<br>
> š š š š hardware).<br>
> š š š š > We should follow the corresponding offset/pitches to read<br>
> š š š š the buffer.<br>
> š š š š ><br>
> š š š š >><br>
> š š š š >> š š š š Will you please describe how you call the<br>
> š š š š vaDeriveImage in<br>
> š š š š >> š š š š your<br>
> š š š š >><br>
> š š š š >> libva: libva version 0.32.0<br>
> š š š š >> libva: va_getDriverName() returns 0<br>
> š š š š >> libva: Trying to open /usr/lib/dri/emgd_drv_video.so<br>
> š š š š >> Intel(R) Embedded Media and Graphics Driver 1.10 Build 2209<br>
> š š š š >> libva: va_openDriver() returns 0<br>
> š š š š >> 3 image formats<br>
> š š š š >> 0 - imageFormat: fourcc(41424752), byteOrger(1),<br>
> š š š š bitsPerPixel(32),<br>
> š š š š >> depth(32), redM(16711680), greenM(65280),<br>
> š š š š alphaM(4278190080)<br>
> š š š š >> 1 - imageFormat: fourcc(32595559), byteOrger(1),<br>
> š š š š bitsPerPixel(16),<br>
> š š š š >> depth(0), redM(0), greenM(0), alphaM(0)<br>
> š š š š >> 2 - imageFormat: fourcc(32315659), byteOrger(1),<br>
> š š š š bitsPerPixel(12),<br>
> š š š š >> depth(0), redM(0), greenM(0), alphaM(0)<br>
> š š š š >> imageinfo: w:14, h:0, data_size:3075098360,<br>
> š š š š planes:3073595636,<br>
> š š š š >> palettes:2195, bytes:-1221371576, comp_order ˆq·,<br>
> š š š š fourcc:bfa809f0<br>
> š š š š >> pitch[0]=4131212846, offset[0]=0<br>
> š š š š >> pitch[1]=3075553328, offset[1]=0<br>
> š š š š >> pitch[2]=18, offset[2]=1<br>
> š š š š >> surface status: 4<br>
> š š š š >> vaDeriveImage<br>
> š š š š >> imageinfo: w:512, h:32, data_size:16384, planes:2,<br>
> š š š š palettes:0,<br>
> š š š š >> bytes:0, comp_orderYUV, fourcc:3231564e<br>
> š š š š >> pitch[0]=512, offset[0]=0<br>
> š š š š >> pitch[1]=512, offset[1]=16384<br>
> š š š š >> pitch[2]=0, offset[2]=0<br>
> š š š š >> img:0xb6bf9000, size:16384<br>
> š š š š >> 24576 bytes written<br>
> š š š š >> press any key to exit<br>
> š š š š >><br>
> š š š š ><br>
> š š š š > For the above info about the vaDeriveImage, it seems that<br>
> š š š š fourcc,<br>
> š š š š > pitches/offset is right.<br>
> š š š š > Fourcc: 3231564E: (NV12 format).<br>
> š š š š > pitches and offsets are also right.<br>
> š š š š ><br>
> š š š š > What is wrong when you try to read the image by using the<br>
> š š š š above example<br>
> š š š š > code?<br>
> š š š š ><br>
> š š š š >> OS: Linux Debian Squeeze<br>
> š š š š >><br>
> š š š š >> Driver: EMGD 1.10<br>
> š š š š >><br>
> š š š š >> Xorg: 1.10<br>
> š š š š >><br>
> š š š š >> What do you whant to know about platform?<br>
> š š š š >><br>
> š š š š >><br>
> š š š š >> --<br>
> š š š š >> -----------------------------------------<br>
> š š š š >> σ υΧΑΦΕΞΙΕΝ, λΜΟήΛΟΧ χ.χ.<br>
> š š š š >> mailto: <a href="mailto:kwispost@gmail.com">kwispost@gmail.com</a><br>
> š š š š ><br>
> š š š š ><br>
><br>
> š š š š > _______________________________________________<br>
> š š š š > Libva mailing list<br>
> š š š š > <a href="mailto:Libva@lists.freedesktop.org">Libva@lists.freedesktop.org</a><br>
> š š š š > <a href="http://lists.freedesktop.org/mailman/listinfo/libva" target="_blank">http://lists.freedesktop.org/mailman/listinfo/libva</a><br>
><br>
><br>
><br>
> --<br>
> -----------------------------------------<br>
> σ υΧΑΦΕΞΙΕΝ, λΜΟήΛΟΧ χ.χ.<br>
> mailto: <a href="mailto:kwispost@gmail.com">kwispost@gmail.com</a><br>
<br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>-----------------------------------------<br>σ υΧΑΦΕΞΙΕΝ, λΜΟήΛΟΧ χ.χ.<br>mailto: <a href="mailto:kwispost@gmail.com" target="_blank">kwispost@gmail.com</a>
</div></div>