v3dfx with multiple channels not working

I have an application that is trying to display 1 to 4 channels of NTSC (720x480 YUV) video using the v3dfx component. It works well for a single channel. However, when I attempt to display 2, 3 or 4 channels, I do not see any video. All I see is yellow and the performance is poor.

I've attached a file that shows the code that I am using to display 2 channels.

7103.v3dfx_example.txt 

I could really use some TI help on the one. I have been trying to get this working for several weeks now with little success.

Steve

  • Hi Steve,

    I do not see any issue with the code that you've shared. I can only suspect the frame read from sata. As you might  have seen, our demo itself is for multiple channels (up to 16), which works fine.

    Will it be possible for you to share the complete code?

    Regards,

    Mahesh.

  • In reply to MaheshM:

    Hi Mahesh,

    The demo is a good starting point but IMO it does not really represent a typical real world use case because all the frames of video are loaded into memory prior to calling any of the v3dfx functions.

    I have been able to get things working by making changes to the v3dfx code itself. I've attached our version of v3dfx for your information.

    8321.v3dfx.cpp.txt

    Basically, we made three changes.

    1. We added code to v3dfx_delete that closes the bccat driver.

    2. We no longer call the InitView function in v3dfx_create.

    3. A macro, DISPLAY_GL_ERROR, was added to check for GL errors (we noticed several).

    We also built the v3dfx code into a library. I think it would be a good idea if TI did this as well.

    Thanks, Steve 

  • In reply to Steve Boone:

    Hello Steve, based on your feedback, we have created/ refactored the code-base into a more modular fashion.

    - A framework independent reusable C++ class

    - A set of Qt framework wrapper classes - that provide QGLWidget, and QGraphicsScene functionalities separately

    - A suite of test applications - both standalone, and Qt based - including a complete Ultrasound Image viewer that shows < 8% CPU loading

    Complete source code, and documentation is available at,

    https://github.com/prabindh/v3dfx-base

  • In reply to Prabindh Sundareson:

    Hi Prabindh,

    Thanks. I will check this out.

    I have some more feedback for you based on our requirements and requests from our customers.

    1. It would be helpful if v3dfx could support different resolutions/formats for each video channel.

    2. A per-channel region of interest feature would be nice.  I envision that the user would specify a region of interest (x,y,wd,ht) for a specific channel and the v3dfx code would scale only this region. This could be used to implement zooming.

  • In reply to Steve Boone:

    Hi Pradindh,

    Do you know if the original v3dfx provided with the 4.05.00.01 Graphics SDK will work if the HDMI display is not 1080P (calling v3dfx_create with dwidth=1280 and dheight=1024)?

    For example, I changed the HDMI resolution to output 1280x1024 using the sysfs interface and the frame buffer using the fbdev driver software interface. The Qt graphics look fine but the video that I am displaying using v3dfx is scrambled.

    I am loading pvrsrvkm, omaplb and bufferclass_ti at boot time prior to making the above changes (using a C++ program). Maybe these need to be unloaded an reloaded when the resolution is changed?

    I can only get decent video when the HDMI resolution is 1080p.

    Any ideas?

    Thx, Steve

  • In reply to Steve Boone:

    Yes.

    >> Maybe these need to be unloaded an reloaded when the resolution is changed?