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