how to implement 24bit uvc rgb888 base on an75779

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
jingc_3301211
Level 3
Level 3
First like received

Hi,

my FPGA board output 720P/60fps RGB888 signals and is proved on lcd panel.

now I want to implement on fx3 board.

first step I modified the descriptors as following.

  /* GUID, globally unique identifier used to identify streaming-encoding format: RGB888  */

    0x7D, 0xEB, 0x36, 0xE4,             /* MEDIASUBTYPE_RGB888 GUID: E436EB7D-524F-11CE-9F53-0020AF0BA770 */

    0x4F, 0x52, 0xCE, 0x11,

    0x9F, 0x53, 0x00, 0x20,

    0xAF, 0x0B, 0xA7, 0x70,

    0x18,                               /* Number of bits per pixel: 24 */

/* Class specific Uncompressed VS frame descriptor 2 - 720p@ 60fps*/

    0x1E,                               /* Descriptor size */

    CX3_CS_INTRFC_DESCR,                /* Descriptor type*/

    0x05,                               /* Subtype: Uncompressed frame interface*/

    0x01,                               /* Frame Descriptor Index: 1 */

    0x00,                               /* No Still image capture method supported */

    0x00, 0x05,                         /* Width in pixel: 1280 */

    0xD0, 0x02,                         /* Height in pixel: 720 */

    0x00, 0x00, 0x1A, 0x4F,            /* Min bit rate @60ps (bits/s): 720 x 1280 x 3 x 60 x 8 = 1327104000 */

    0x00, 0x00, 0x1A, 0x4F,             /* Max bit rate @60fps (bits/s). 720 x 1280 x 3 x 60 x 8 = 1327104000 */

    0x00, 0x30, 0x2A, 0x00,             /* Maximum video frame size in bytes(Deprecated): 1280 x 720 x 3   */

    0x0A, 0x8B, 0x02, 0x00,             /* Default frame interval (in 100ns units): 166666 */

    0x01,                                              /* Frame interval type : No of discrete intervals */

    0x0A, 0x8B, 0x02, 0x00,             /* Frame interval 3: Same as Default frame interval */

then I modified GPIF interface

1. set 24bit

2. set

LD_DATA_COUNT  4091

LD_ADDR_COUNT  4091

3. set FV/LV polarity

generated new cyfxgpif2config.h

what other code should I modify?

io_cfg.isDQ32Bit   should be true or false?

do I need to change DMA?

thanks a lot!

0 Likes
1 Solution
jingc_3301211
Level 3
Level 3
First like received

finally, I got it working by setting the following values

LD_DATA_COUNT  5455

LD_ADDR_COUNT  5455

View solution in original post

0 Likes
4 Replies
alamandaa_16
Moderator
Moderator
Moderator
10 likes received First like received

Hi,

io_cfg.isDQ32Bit   should be true or false?

io_cfg.isDQ32Bit should be True.

Do you intend to stream the video directly using UVC (USB video class) framework?

Or do you need to take the data into your own application on the host and process it separately?

All of our video streaming examples are UVC-based. The devices would enumerate as cameras.

VLC does not stream RGB888 data. It can stream YUY2 or MPEG format.

Even E-con Systems' e-cam viewer does not support RGB format.

Regards,

Anil Srinivas.

0 Likes

Hi aani,

I have done a prj using UVC RGB565 before, and it works fine with amcap.exe.

I thought maybe it could work in RGB888 mode.

so it is not possible to display image thru standard uvc RGB888 ?

0 Likes

Hi,

we can see that there is some video data is being stremed in VLC media player. It may be a green color or blue or red but not actual image.

Regards,

Anil Srinivas.

0 Likes
jingc_3301211
Level 3
Level 3
First like received

finally, I got it working by setting the following values

LD_DATA_COUNT  5455

LD_ADDR_COUNT  5455

0 Likes