v3dfx-baseprabu@ti.com , Feb 2012
v3dfx-base
Introduction • Allows applications to integrate video streaming with SGX   without writing platform specific code in a re-...
Is / Is Not              • Handles rapidly changing textures (RGB, YUV)    WHAT IT   • Supports imgstream              • S...
Underneath the hood – Target                           Execution   -Contiguous buffer (preferred), allocated by customer a...
Underneath the hood – raw APIdeviceClass = new TISGXStreamIMGSTREAMDevice();                      deviceClass = new TISGXS...
Class Description – IMGSTREAM class7
Class Description - EGLIMAGE class8
Target use-cases                                              Qt                                                   QGLWidg...
QGLWidget Wrapper Class for v3dfx-                  base10
Source Code organisation     – Base API implementation         • v3dfx-base/api             – Provides both imgstream and ...
References• https://github.com/prabindh/v3dfx-base12
Upcoming SlideShare
Loading in …5
×

Introduction to video streaming on SGX through v3dfx-base

1,515 views
1,360 views

Published on

v3dfx-base is a set of reusable classes, offering support for imgstream and eglimage based video streaming on TI SGX platforms like Beagleboard, DM3730 EVM, and TI 81xx platforms. QGLWidget wrapper support has been added.

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,515
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introduction to video streaming on SGX through v3dfx-base

  1. 1. v3dfx-baseprabu@ti.com , Feb 2012
  2. 2. v3dfx-base
  3. 3. Introduction • Allows applications to integrate video streaming with SGX without writing platform specific code in a re-usable way – Support for imgstream AND eglimage through same APIdeviceClass = new TISGXStreamIMGSTREAMDevice(); deviceClass = new TISGXStreamEGLIMAGEDevice();texClass = new TISGXStreamTexIMGSTREAM(); texClass = new TISGXStreamTexEGLIMAGE();deviceClass->qTexImage2DBuf(paArray); deviceClass->qTexImage2DBuf(paArray);deviceClass->dqTexImage2DBuf(freeArray); deviceClass->dqTexImage2DBuf(freeArray); channel 1 channel n channel 1 channel n channel n channel n device device device n n+1 n+2 v3dfx-base 3
  4. 4. Is / Is Not • Handles rapidly changing textures (RGB, YUV) WHAT IT • Supports imgstream • Supports eglimage • Supports both imgstream and eglimage with single API • Reusable class, delivered as “v3dfx-base.a” (ARM library) IS • Needs Graphics SDK with eglimage/imgstream support • Targeted to support multi-threaded operation (WIP) • Targeted to support cropping (WIP) WHAT IT • Does not initialise GL state, EGL state for application • Does not do drawing (glDrawArray, glDrawElement) • Does not do eglSwapBuffer IS NOT • Does not provide fancy GLSL shaders4
  5. 5. Underneath the hood – Target Execution -Contiguous buffer (preferred), allocated by customer application as texture input -Customer application does drawing in its native way -Dynamically update texture buffers using qTexImage2DBuf(), signal_draw() and dqTexImage2DBuf() calls v3dfx-base.a Customer application linked in app, Qt wrapper .. v3dfx-base (v3dfx-base.a) library archive GL_IMG_texture_stream2 GL_OES_EGL_image_externalIMGSTREAM EGLIMAGE User Mode SGX binary User Mode SGX binary bufferclass_ti Kernel driver SGX HW 5
  6. 6. Underneath the hood – raw APIdeviceClass = new TISGXStreamIMGSTREAMDevice(); deviceClass = new TISGXStreamEGLIMAGEDevice();texClass = new TISGXStreamTexIMGSTREAM(); texClass = new TISGXStreamTexEGLIMAGE();deviceClass->qTexImage2DBuf(paArray); deviceClass->qTexImage2DBuf(paArray);deviceClass->dqTexImage2DBuf(freeArray); deviceClass->dqTexImage2DBuf(freeArray); channel 1 channel n channel 1 channel n channel n channel n device device device n n+1 n+2 v3dfx-base GL_IMG_texture_stream2 GL_OES_EGL_image_external User Mode SGX binary User Mode SGX binary bufferclass_ti Kernel driver SGX HW 6
  7. 7. Class Description – IMGSTREAM class7
  8. 8. Class Description - EGLIMAGE class8
  9. 9. Target use-cases Qt QGLWidget wrapper (completed) v3dfx templates (Barn-door, Mosaic gstreamer QGraphicsItemw rapper v3dfx-base library9
  10. 10. QGLWidget Wrapper Class for v3dfx- base10
  11. 11. Source Code organisation – Base API implementation • v3dfx-base/api – Provides both imgstream and eglimage implementation as raw C++ classes – Reusable Qt classes • v3dfx-base/platforms/Qt – (GraphicsItem based) – in progress • v3dfx-base/platforms/qtQGL – (QGLWidget based) – completed – Test applications • v3dfx-base/test/imgstream – Raw (full screen, no window manager) test for imgstream based streaming • v3dfx-base/test/eglimage – Raw (full screen, no window manager) test for eglimage based streaming • platforms/qtQGL – Qt – QGLWidget based class, test for both imgstream and eglimage • platforms/qt – Qt – QGraphicsItem based class, test for both imgstream and eglimage (WIP)11
  12. 12. References• https://github.com/prabindh/v3dfx-base12

×