#include "edl.h"
#include "edlsession.h"
#include "file.h"
-#include "interlacemodes.h"
#include "localsession.h"
#include "mainsession.h"
#include "mwindow.h"
use_vconsole = get_use_vconsole(&playable_edit, input_position, use_brender);
if(debug) printf("VRender::process_buffer %d use_vconsole=%d\n", __LINE__, use_vconsole);
- if( playable_edit ) {
-// Asset and output device must have same resulting de-interlacing method
- Indexable *source = playable_edit->get_source();
- if( source->is_asset ) {
- Asset *asset = (Asset *)source;
- if( ilaceautofixmethod2(renderengine->edl->session->interlace_mode,
- asset->interlace_autofixoption, asset->interlace_mode,
- asset->interlace_fixmethod) != BC_ILACE_FIXMETHOD_NONE )
- return 1;
- }
- }
-
// Negotiate color model
colormodel = get_colormodel(playable_edit, use_vconsole, use_brender);
if(debug) printf("VRender::process_buffer %d\n", __LINE__);
-
-
// Get output buffer from device
- if(renderengine->command->realtime &&
- !renderengine->is_nested)
+ if(renderengine->command->realtime && !renderengine->is_nested)
{
renderengine->video->new_output_buffer(&video_out, colormodel);
}
1,
use_cache,
use_asynchronous);
-/* Insert timecode */
- if(renderengine->show_tc)
- insert_timecode(playable_edit,
- input_position,
- video_out);
if(debug) printf("VRender::process_buffer %d\n", __LINE__);
}
// Descend into EDL nest
return renderengine->get_edl()->get_use_vconsole(playable_edit,
- position,
- renderengine->command->get_direction(),
+ position, renderengine->command->get_direction(),
vconsole->playable_tracks);
}
-int VRender::insert_timecode(Edit* playable_edit,
- int64_t position,
- VFrame *output)
-{
-#if 0
- EDLSession *session = renderengine->edl->session;
- /* Create a vframe with TC and SRC timecode in white
- * with a black border */
- VFrame *input = new VFrame(0,
- output->get_w(), MIN(output->get_h(), 50),
- output->get_color_model(), output->get_bytes_per_line());
- char etc[12];
- char srctc[12];
- int src_position = 0;
-
-TRACE("VRender::insert_timecode 10")
-
- /* Edited TC */
- Units::totext(etc,
- (renderengine->vrender->current_position +
- session->get_frame_offset()) / session->frame_rate,
- session->time_format,
- session->sample_rate,
- session->frame_rate,
- session->frames_per_foot);
-
-TRACE("VRender::insert_timecode 20")
-
- if(playable_edit)
- {
-TRACE("VRender::insert_timecode 30")
- src_position = renderengine->vrender->current_position -
- playable_edit->startproject +
- playable_edit->startsource +
- playable_edit->asset->tcstart;
-TRACE("VRender::insert_timecode 40")
- Units::totext(srctc,
- src_position / playable_edit->asset->frame_rate,
- session->time_format,
- session->sample_rate,
- playable_edit->asset->frame_rate,
- session->frames_per_foot);
- }
- else
- {
-TRACE("VRender::insert_timecode 50")
- Units::totext(srctc,
- 0.0,
-// (renderengine->vrender->current_position - position) / session->frame_rate,
- session->time_format,
- session->sample_rate,
- session->frame_rate,
- session->frames_per_foot);
- }
-TRACE("VRender::insert_timecode 60")
-
-//printf("re position %i position %i\n",
-// renderengine->vrender->current_position, position);
-//printf("SRC %s TC %s\n", srctc, etc);
-
- /* Insert the timecode data onto the input frame */
-
- vrender->overlayer->overlay(output, input,
- input->x, input->y, input->width, input->height,
- output->x, output->y, output->width, output->height,
- 1, TRANSFER_REPLACE,
- renderengine->edl->session->interpolation_type);
- delete(input);
-UNTRACE
-#endif
- return 0;
-}
-
int VRender::get_colormodel(VEdit *playable_edit,
int use_vconsole, int use_brender)
{
current_position,
renderengine->command->get_direction());
}
-
- if(asset)
+// ffmpeg files are side effected by color_model, affects colorspace,color_range
+ if( asset && asset->format != FILE_FFMPEG )
{
file = renderengine->get_vcache()->check_out(asset,
renderengine->get_edl());