int RecVideoMJPGThread::start_rendering() { mjpeg = mjpeg_new(record->default_asset->width, record->default_asset->height, fields); //printf("RecVideoMJPGThread::start_rendering 1 %p\n", mjpeg); return 0; }
int FileJPEGList::write_frame(VFrame *frame, VFrame *data) { mjpeg_t *mjpeg = mjpeg_new(asset->width, asset->height, 1); mjpeg_compress(mjpeg, frame->get_rows(), frame->get_y(), frame->get_u(), frame->get_v(), frame->get_color_model(), file->cpus); data->allocate_compressed_data(mjpeg_output_size(mjpeg)); bcopy(mjpeg_output_buffer(mjpeg), frame->get_data(), mjpeg_output_size(mjpeg)); mjpeg_delete(mjpeg); return 0; }
int FileJPEGList::read_frame(VFrame *frame, VFrame *data) { mjpeg_t *mjpeg = mjpeg_new(asset->width, asset->height, 1); mjpeg_decompress(mjpeg, data->get_data(), data->get_compressed_size(), 0, frame->get_rows(), frame->get_y(), frame->get_u(), frame->get_v(), frame->get_color_model(), file->cpus); mjpeg_delete(mjpeg); return 0; }
static void initialize(quicktime_video_map_t *vtrack) { quicktime_jpeg_codec_t *codec = ((quicktime_codec_t*)vtrack->codec)->priv; if(!codec->initialized) { /* Init private items */ codec->mjpeg = mjpeg_new(vtrack->track->tkhd.track_width, vtrack->track->tkhd.track_height, 1 + (codec->jpeg_type == JPEG_MJPA || codec->jpeg_type == JPEG_MJPB)); /* This information must be stored in the initialization routine because of */ /* direct copy rendering. Quicktime for Windows must have this information. */ if(codec->jpeg_type == JPEG_MJPA && !vtrack->track->mdia.minf.stbl.stsd.table[0].fields) { vtrack->track->mdia.minf.stbl.stsd.table[0].fields = 2; vtrack->track->mdia.minf.stbl.stsd.table[0].field_dominance = 1; } codec->initialized = 1; } }