mirror of
https://github.com/game-stop/veejay.git
synced 2025-12-16 12:50:00 +01:00
keep track of allocated framebuffer, free them at close
This commit is contained in:
@@ -114,6 +114,7 @@ typedef struct
|
|||||||
VJFrame *frames[N_FRAMES];
|
VJFrame *frames[N_FRAMES];
|
||||||
VJFrame *host_frame;
|
VJFrame *host_frame;
|
||||||
int frames_done[N_FRAMES];
|
int frames_done[N_FRAMES];
|
||||||
|
uint8_t *data_ptrs[N_FRAMES];
|
||||||
int frameidx;
|
int frameidx;
|
||||||
int frame_ready;
|
int frame_ready;
|
||||||
int is_streaming;
|
int is_streaming;
|
||||||
@@ -1394,15 +1395,12 @@ void v4l2_close( void *d )
|
|||||||
if( v->scaler )
|
if( v->scaler )
|
||||||
yuv_free_swscaler( v->scaler );
|
yuv_free_swscaler( v->scaler );
|
||||||
|
|
||||||
if( !v->picture )
|
|
||||||
{
|
|
||||||
for ( i = 0; i < N_FRAMES; i ++ ) {
|
for ( i = 0; i < N_FRAMES; i ++ ) {
|
||||||
if(v->frames[i]->data[0])
|
|
||||||
free(v->frames[i]->data[0]);
|
|
||||||
if(v->frames[i])
|
if(v->frames[i])
|
||||||
free(v->frames[i]);
|
free(v->frames[i]);
|
||||||
v->frames[i] = NULL;
|
v->frames[i] = NULL;
|
||||||
}
|
if(v->data_ptrs[i])
|
||||||
|
free(v->data_ptrs[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(v->picture) {
|
if(v->picture) {
|
||||||
@@ -2020,6 +2018,7 @@ static void *v4l2_grabber_thread( void *v )
|
|||||||
v4l2->frames[j]->data[c] = ptr + (c * planes[0]);
|
v4l2->frames[j]->data[c] = ptr + (c * planes[0]);
|
||||||
}
|
}
|
||||||
v4l2->frames_done[j] = 0;
|
v4l2->frames_done[j] = 0;
|
||||||
|
v4l2->data_ptrs[j] = ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
veejay_msg(VEEJAY_MSG_DEBUG, "v4l2: allocated %d buffers of %d bytes each", N_FRAMES, planes[0]*4);
|
veejay_msg(VEEJAY_MSG_DEBUG, "v4l2: allocated %d buffers of %d bytes each", N_FRAMES, planes[0]*4);
|
||||||
|
|||||||
Reference in New Issue
Block a user