int use_brender = 0;
int result = 0;
int use_cache = renderengine->command->single_frame();
- int use_asynchronous =
- renderengine->command->realtime &&
- renderengine->get_edl()->session->video_every_frame &&
- renderengine->get_edl()->session->video_asynchronous;
+// int use_asynchronous =
+// renderengine->command->realtime &&
+// renderengine->get_edl()->session->video_every_frame &&
+// renderengine->get_edl()->session->video_asynchronous;
const int debug = 0;
// Determine the rendering strategy for this frame.
// Get output buffer from device
if(renderengine->command->realtime && !renderengine->is_nested)
{
- renderengine->video->new_output_buffer(&video_out, colormodel);
+ renderengine->video->new_output_buffer(&video_out,
+ colormodel,
+ renderengine->get_edl());
}
if(debug) printf("VRender::process_buffer %d video_out=%p\n", __LINE__, video_out);
corrected_position--;
// Cache single frames only
- if(use_asynchronous)
- file->start_video_decode_thread();
- else
+// if(use_asynchronous)
+// file->start_video_decode_thread();
+// else
file->stop_video_thread();
if(use_cache) file->set_cache_frames(1);
int64_t normalized_position = (int64_t)(corrected_position *
renderengine->get_vcache(),
1,
use_cache,
- use_asynchronous);
+ 0);
+// use_asynchronous);
if(debug) printf("VRender::process_buffer %d\n", __LINE__);
}
current_position,
renderengine->command->get_direction());
}
-// ffmpeg files are side effected by color_model, affects colorspace,color_range
- if( asset && asset->format != FILE_FFMPEG )
+ if( asset )
{
file = renderengine->get_vcache()->check_out(asset,
renderengine->get_edl());
if(file)
{
colormodel = file->get_best_colormodel(driver);
+//printf("VRender::get_colormodel %d driver=%d colormodel=%d\n", __LINE__, driver, colormodel);
renderengine->get_vcache()->check_in(asset);
}
+// ffmpeg files are side effected by color_model, affects colorspace,color_range
+// if( asset->format == FILE_FFMPEG && !BC_CModels::is_yuv(colormodel) )
+// colormodel = BC_BGR8888;
}
}
// before we start dropping.
int64_t current_sample, start_sample, end_sample; // Absolute counts.
int64_t skip_countdown = VRENDER_THRESHOLD; // frames remaining until drop
- int64_t delay_countdown = VRENDER_THRESHOLD; // Frames remaining until delay
+ int64_t delay_countdown = 0; // Frames remaining until delay
// Number of frames before next reconfigure
int64_t current_input_length;
// Number of frames to skip.
current_sample = (int64_t)(renderengine->sync_position() *
renderengine->command->get_speed());
// latest sample at which the frame can be shown.
- end_sample = Units::tosamples(session_frame,
+ end_sample = Units::tosamples(session_frame + 1,
renderengine->get_edl()->session->sample_rate,
renderengine->get_edl()->session->frame_rate);
// earliest sample by which the frame needs to be shown.
- start_sample = Units::tosamples(session_frame - 1,
+ start_sample = Units::tosamples(session_frame,
renderengine->get_edl()->session->sample_rate,
renderengine->get_edl()->session->frame_rate);