1. Bitrate needs to be set to 0 on OUTPUT port of encoder otherwise
it doesnt pick up the frame rate on its input port when connected
2. Filename incorrectly copied without terminator when set.
If a thread created outside vcos_thread_create() gets a vcos
call (e.g. vcos_thread_at_exit), vcos creates a "dummy" thread
context so that other vcos functions will work.
Unfortunately, it wasn't hooking into pthreads to be arrange
to be called when the thread terminated, so none of the thread
termination happened: the dummy thread context was not called
and the thread at-exit functions were not called. This caused
memory to be leaked.
Use the destructor function that can be passed into
pthread_key_create() to get a callback when a thread exits,
and use this to do the dummy thread cleanup. Do not do
anything when a regular vcos thread exits (this is handled
separately).
Signed-off-by: Luke Diamand <luke@diamand.org>
if (-this_delay_ms < -state->timelapse/2), -this_delay_ms is always positive,
and -state->timelapse/2 is negative, so this if is never true. The if
condition should be if (-this_delay_ms < state->timelapse/2).
This commit adds the functionality to set up a circular buffer in memory
which stores the last N seconds of video. When the application is sent a
signal or a key is pressed the last N seconds are saved.
Update RaspiStill framework to provide access to the new EGL image
targets that provide a fastpath for mapping the individual YUV planes to
one byte per pixel GL_LUMINANCE buffers. These are still accessed as OES
textures so this is effectively a greyscale image created from a single
plane of a MMAL buffer.
Also added some example code (yuv, sobel) that demonstrates how to use
the new EGL image targets.
Also, add -gc to the command line to capture the GL frame-buffer as a TGA file.
Thanks to Tim Gover
Add RaspiTex.c which demonstrates how the camera preview buffers can be
bound to EGL Images and rendered via Open GLES.
To enable GL rendering add --gl to the command line and select a
GL scene
* square - A simple rotating square
* teapot - The classic teapot demo
* mirror - OpenGL ES 2.X Hall of mirrors example
- Changed declaration of buffer header variable in documentation
code example to use name "buffer" instead of "header" since
this is the name used throughout the remaining code.