Пример #1
0
/*
 * free image buffers for decoding video stream
 * args:
 *   vd - pointer to video device data
 *
 * asserts:
 *   vd is not null
 *
 * returns: none
 */
void clean_v4l2_frames(v4l2_dev_t *vd)
{
	/*assertions*/
	assert(vd != NULL);

	int i = 0;
	
	for(i=0; i<vd->frame_queue_size; ++i)
	{
		vd->frame_queue[i].raw_frame = NULL;

		if(vd->frame_queue[i].tmp_buffer)
		{
			free(vd->frame_queue[i].tmp_buffer);
			vd->frame_queue[i].tmp_buffer = NULL;
		}

		if(vd->frame_queue[i].h264_frame)
		{
			free(vd->frame_queue[i].h264_frame);
			vd->frame_queue[i].h264_frame = NULL;
		}

		if(vd->frame_queue[i].yuv_frame)
		{
			free(vd->frame_queue[i].yuv_frame);
			vd->frame_queue[i].yuv_frame = NULL;
		}
	}

	if(vd->h264_last_IDR)
	{
		free(vd->h264_last_IDR);
		vd->h264_last_IDR = NULL;
	}

	if(vd->h264_SPS)
	{
		free(vd->h264_SPS);
		vd->h264_SPS = NULL;
	}

	if(vd->h264_PPS)
	{
		free(vd->h264_PPS);
		vd->h264_PPS = NULL;
	}

	if(vd->requested_fmt == V4L2_PIX_FMT_H264)
		h264_close_decoder();

	if(vd->requested_fmt == V4L2_PIX_FMT_JPEG ||
	   vd->requested_fmt == V4L2_PIX_FMT_MJPEG)
		jpeg_close_decoder();
}
Пример #2
0
	~GuvcviewFormatConverter() {
		jpeg_close_decoder();
		delete_buffers();
	}