[libavg-devel] OpenGL Error in OGLSurface::createBitmap() / branch libavg-v4l2

OXullo Intersecans x at 02l.net
Wed Jun 20 02:22:39 CEST 2007


Greetings,
we're facing one subtle problem in our early implementation phase of  
v4l2 code. This problem deserves some kind of well trained synapses  
to get in touch with!

Here it is:

[..]
[07-06-20 01:44:31.498] APP: VideoBase::play() invoked
[07-06-20 01:44:31.499] APP: VideoBase::changeVideoState VideoState=2
[07-06-20 01:44:31.499] CONFIG: Display subsystem: OGL
[07-06-20 01:44:31.499] CONFIG: Display bpp: 24
[07-06-20 01:44:31.500] CONFIG: Display fullscreen: false
[07-06-20 01:44:31.500] CONFIG: Requested OGL configuration:
[07-06-20 01:44:31.500] CONFIG:   POW2 textures: false
[07-06-20 01:44:31.501] CONFIG:   Fragment shader YCbCr texture support.
[07-06-20 01:44:31.501] CONFIG:   RGB order: false
[07-06-20 01:44:31.501] CONFIG:   Use pixel buffers: true
[07-06-20 01:44:31.502] CONFIG:   Multisample samples: 1
[07-06-20 01:44:31.676] CONFIG: Vertical Refresh Rate: 60.0197
[07-06-20 01:44:31.677] CONFIG: Using NVidia texture rectangle  
extension.
[07-06-20 01:44:31.937] CONFIG: OpenGL version: 2.1.1 NVIDIA 100.14.09
[07-06-20 01:44:31.938] CONFIG: OpenGL vendor: NVIDIA Corporation
[07-06-20 01:44:31.938] CONFIG: OpenGL renderer: GeForce FX 5200/AGP/ 
SSE/3DNOW!
[07-06-20 01:44:31.938] CONFIG: Using fragment shader YCbCr texture  
support.
[07-06-20 01:44:31.939] CONFIG: Not using multisampling.
[07-06-20 01:44:31.939] APP: VideoBase::changeVideoState VideoState=2
[07-06-20 01:44:31.940] APP: V4L2 Device opened, calling initDevice()...
[07-06-20 01:44:31.941] APP: V4L2 Entering initDevice()...
[07-06-20 01:44:31.941] APP: V4L2 entering init_read()...
[07-06-20 01:44:31.941] APP: V4L2 init_read() completed
[07-06-20 01:44:31.942] APP: V4L2 Setting channel 1
[07-06-20 01:44:31.943] APP: V4L2 initDevice() completed
[07-06-20 01:44:31.945] CONFIG: Using pixel buffer objects.
[07-06-20 01:44:31.945] ERROR: OpenGL error in  
OGLSurface::createBitmap: glBufferData(): invalid value (#1281)
[07-06-20 01:44:31.945] WARNING: OpenGL error in  
OGLSurface::createBitmap: glBufferData(): invalid value (#1281)
[07-06-20 01:44:31.948] APP: VideoBase::render() m_VideoState=0
[..]

this chain:

py camera.play() -> VideoBase::play() -> VideoBase::changeVideoState 
(Playing)

in this case special case this follows:

VideoBase::open() (which spawns V4LCamera::open())
addDirtyRect(getVisibleRect())

At this point it's quite hard to understand what happens: dirty  
regions are polished by event driven doFrame() ? What is the bitmap  
taken? Camera interface is not queried at all (via getImage())
The main result of the faced errors is that camera node goes in  
"Unload" state, put by error handler and video is not displayed at  
all (render checkpoint skips it due to its state).


Another interesting point is the following, which happens with the  
very same situation, but with a fatal error termination (there are no  
specific reason to this to happen.. it happens someway, 3 times over  
5 py execution)

[07-06-20 01:57:52.758] APP: VideoBase::play() invoked
[07-06-20 01:57:52.758] APP: VideoBase::changeVideoState VideoState=2
[07-06-20 01:57:52.759] CONFIG: Display subsystem: OGL
[07-06-20 01:57:52.759] CONFIG: Display bpp: 24
[07-06-20 01:57:52.759] CONFIG: Display fullscreen: false
[07-06-20 01:57:52.760] CONFIG: Requested OGL configuration:
[07-06-20 01:57:52.760] CONFIG:   POW2 textures: false
[07-06-20 01:57:52.760] CONFIG:   Fragment shader YCbCr texture support.
[07-06-20 01:57:52.761] CONFIG:   RGB order: false
[07-06-20 01:57:52.761] CONFIG:   Use pixel buffers: true
[07-06-20 01:57:52.761] CONFIG:   Multisample samples: 1
[07-06-20 01:57:53.199] CONFIG: Vertical Refresh Rate: 60.0197
[07-06-20 01:57:53.200] CONFIG: Using NVidia texture rectangle  
extension.
[07-06-20 01:57:53.460] CONFIG: OpenGL version: 2.1.1 NVIDIA 100.14.09
[07-06-20 01:57:53.460] CONFIG: OpenGL vendor: NVIDIA Corporation
[07-06-20 01:57:53.461] CONFIG: OpenGL renderer: GeForce FX 5200/AGP/ 
SSE/3DNOW!
[07-06-20 01:57:53.461] CONFIG: Using fragment shader YCbCr texture  
support.
[07-06-20 01:57:53.461] CONFIG: Not using multisampling.
[07-06-20 01:57:53.462] APP: VideoBase::changeVideoState VideoState=2
[07-06-20 01:57:53.463] APP: V4L2 Device opened, calling initDevice()...
[07-06-20 01:57:53.463] APP: V4L2 Entering initDevice()...
[07-06-20 01:57:53.464] APP: V4L2 entering init_read()...
[07-06-20 01:57:53.464] APP: V4L2 init_read() completed
[07-06-20 01:57:53.464] APP: V4L2 Setting channel 1
[07-06-20 01:57:53.465] APP: V4L2 initDevice() completed
[07-06-20 01:57:53.467] CONFIG: Using pixel buffer objects.
[07-06-20 01:57:53.468] CONFIG: Max. texture size is 4096
[07-06-20 01:57:53.468] APP: OGLSurface::initTileVertices() started
E
======================================================================
ERROR: test (__main__.CameraTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "./TestV4lCameraX.py", line 40, in test
     Player.play()
MemoryError

----------------------------------------------------------------------
Ran 1 test in 0.716s

FAILED (errors=1)



This exception is raised within the OGLSurface::initTileVertices()  
method, for some obscure reason, which can surely be lingered with  
the previous situation.


Any clue?
Thanks!

--
OXullo Intersecans

0 2 L > Outside Standing Level
http://www.02L.net



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.datenhain.de/pipermail/libavg-devel/attachments/20070620/85ef0746/attachment.htm


More information about the libavg-devel mailing list