Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

RenderEngine Class Reference

#include <renderengine.h>

List of all members.

Public Member Functions

 RenderEngine (PlaybackEngine *playback_engine, Preferences *preferences, TransportCommand *command, Canvas *output, ArrayList< PluginServer * > *plugindb, ChannelDB *channeldb)
 ~RenderEngine ()
int total_playable_channels ()
int playable_channel_number (int number)
void get_duty ()
void create_render_threads ()
void arm_render_threads ()
void start_render_threads ()
void wait_render_threads ()
void interrupt_playback ()
int get_output_w ()
int get_output_h ()
int brender_available (int position, int direction)
Channelget_current_channel ()
double get_tracking_position ()
PluginServerscan_plugindb (char *title, int data_type)
CICacheget_acache ()
CICacheget_vcache ()
void set_acache (CICache *cache)
void set_vcache (CICache *cache)
void get_output_levels (double *levels, int64_t position)
void get_module_levels (ArrayList< double > *module_levels, int64_t position)
void run ()
int arm_command (TransportCommand *command, int &current_vchannel, int &current_achannel)
int start_command ()
int open_output ()
int close_output ()
int64_t sync_position ()
void reset_sync_position ()
int64_t session_position ()
void update_framerate (float framerate)
 RenderEngine (MWindow *mwindow, AudioDevice *audio=0, VideoDevice *video=0, PlaybackEngine *playbackengine=0)
int reset_parameters ()
int arm_playback_audio (int64_t input_length, int64_t amodule_render_fragment, int64_t playback_buffer, int64_t output_length, int audio_channels)
int arm_playback_video (int every_frame, int64_t read_length, int64_t output_length, int track_w, int track_h, int output_w, int output_h)
int64_t get_correction_factor (int reset)
int start_video ()

Public Attributes

TransportCommandcommand
EDLedl
PlaybackConfigconfig
PlaybackEngineplayback_engine
Preferencespreferences
Canvasoutput
Condition * input_lock
Condition * start_lock
Condition * output_lock
Condition * first_frame_lock
Mutex * interrupt_lock
int show_tc
int done
AudioDeviceaudio
VideoDevicevideo
ARenderarender
VRendervrender
int do_audio
int do_video
Timer timer
float actual_frame_rate
int interrupted
ArrayList< PluginServer * > * plugindb
ChannelDBchanneldb
int64_t fragment_len
int64_t adjusted_fragment_len
CICacheaudio_cache
CICachevideo_cache
int follow_loop
int infinite
int64_t start_position
int64_t end_position
int64_t current_sample
int audio_channels
int every_frame
MWindowmwindow


Detailed Description

Definition at line 24 of file renderengine.h.


Constructor & Destructor Documentation

RenderEngine::RenderEngine PlaybackEngine playback_engine,
Preferences preferences,
TransportCommand command,
Canvas output,
ArrayList< PluginServer * > *  plugindb,
ChannelDB channeldb
 

Definition at line 24 of file renderengine.C.

References actual_frame_rate, arender, audio, audio_cache, config, EDL::copy_all(), TransportCommand::copy_from(), Preferences::copy_from(), EDL::create_objects(), do_audio, do_video, edl, first_frame_lock, TransportCommand::get_edl(), input_lock, interrupt_lock, interrupted, mwindow, PlaybackEngine::mwindow, output_lock, reset_parameters(), show_tc, start_lock, video, video_cache, and vrender.

RenderEngine::~RenderEngine  ) 
 

Definition at line 71 of file renderengine.C.

References arender, close_output(), command, config, edl, first_frame_lock, input_lock, interrupt_lock, output_lock, preferences, start_lock, and vrender.

RenderEngine::RenderEngine MWindow mwindow,
AudioDevice audio = 0,
VideoDevice video = 0,
PlaybackEngine playbackengine = 0
 


Member Function Documentation

int RenderEngine::arm_command TransportCommand command,
int &  current_vchannel,
int &  current_achannel
 

Definition at line 87 of file renderengine.C.

References PlaybackConfig::aconfig, adjusted_fragment_len, arm_render_threads(), EDLSession::audio_channels, Preferences::brender_asset, Workarounds::clamp(), config, PlaybackConfig::copy_from(), TransportCommand::copy_from(), create_render_threads(), do_audio, AudioOutConfig::do_channel, VideoOutConfig::do_channel, do_video, done, VideoOutConfig::driver, first_frame_lock, fragment_len, AudioOutConfig::fragment_size, EDLSession::frame_rate, Asset::frame_rate, get_duty(), TransportCommand::get_edl(), TransportCommand::get_speed(), Asset::height, input_lock, interrupted, Asset::layers, MAX_CHANNELS, open_output(), EDLSession::output_h, EDLSession::output_w, EDLSession::playback_config, preferences, TransportCommand::realtime, EDL::session, TransportCommand::single_frame(), AudioOutConfig::total_output_channels(), Asset::use_header, PlaybackConfig::vconfig, EDLSession::video_channels, Asset::video_data, and Asset::width.

Referenced by PlaybackEngine::arm_render_engine(), and PackageRenderer::create_engine().

int RenderEngine::arm_playback_audio int64_t  input_length,
int64_t  amodule_render_fragment,
int64_t  playback_buffer,
int64_t  output_length,
int  audio_channels
 

Definition at line 665 of file renderengine.C.

References arender, ARender::arm_playback(), current_sample, and do_audio.

int RenderEngine::arm_playback_video int  every_frame,
int64_t  read_length,
int64_t  output_length,
int  track_w,
int  track_h,
int  output_w,
int  output_h
 

Definition at line 683 of file renderengine.C.

References do_video, and vrender.

void RenderEngine::arm_render_threads  ) 
 

Definition at line 454 of file renderengine.C.

References arender, CommonRender::arm_command(), ARender::arm_command(), do_audio, do_video, and vrender.

Referenced by arm_command().

int RenderEngine::brender_available int  position,
int  direction
 

Definition at line 263 of file renderengine.C.

References PlaybackEngine::brender_available(), and playback_engine.

Referenced by VRender::get_use_vconsole().

int RenderEngine::close_output  ) 
 

Definition at line 520 of file renderengine.C.

References audio, VideoDevice::close_all(), AudioDevice::close_all(), and video.

Referenced by run(), and ~RenderEngine().

void RenderEngine::create_render_threads  ) 
 

Definition at line 239 of file renderengine.C.

References arender, do_audio, do_video, and vrender.

Referenced by arm_command().

CICache * RenderEngine::get_acache  ) 
 

Definition at line 297 of file renderengine.C.

References audio_cache, PlaybackEngine::audio_cache, and playback_engine.

Referenced by AModule::get_cache().

int64_t RenderEngine::get_correction_factor int  reset  ) 
 

Definition at line 713 of file renderengine.C.

References every_frame.

Channel * RenderEngine::get_current_channel  ) 
 

Definition at line 276 of file renderengine.C.

References VideoOutConfig::buz_out_channel, channeldb, config, VideoOutConfig::driver, ChannelDB::get(), ChannelDB::size(), and PlaybackConfig::vconfig.

Referenced by open_output().

void RenderEngine::get_duty  ) 
 

Definition at line 217 of file renderengine.C.

References PlaybackConfig::aconfig, command, config, do_audio, do_video, edl, Tracks::playable_audio_tracks(), Tracks::playable_video_tracks(), TransportCommand::single_frame(), VideoOutConfig::total_playable_channels(), AudioOutConfig::total_playable_channels(), EDL::tracks, and PlaybackConfig::vconfig.

Referenced by arm_command().

void RenderEngine::get_module_levels ArrayList< double > *  module_levels,
int64_t  position
 

Definition at line 554 of file renderengine.C.

References arender, do_audio, ARender::get_history_number(), CommonRender::modules, and CommonRender::total_modules.

Referenced by PlaybackEngine::get_module_levels().

int RenderEngine::get_output_h  ) 
 

Definition at line 258 of file renderengine.C.

References edl, EDLSession::output_h, and EDL::session.

Referenced by open_output().

void RenderEngine::get_output_levels double *  levels,
int64_t  position
 

Definition at line 540 of file renderengine.C.

References arender, ARender::audio_out, do_audio, ARender::get_history_number(), ARender::level_history, ARender::level_samples, and MAXCHANNELS.

Referenced by PlaybackEngine::get_output_levels().

int RenderEngine::get_output_w  ) 
 

Definition at line 253 of file renderengine.C.

References edl, EDLSession::output_w, and EDL::session.

Referenced by open_output().

double RenderEngine::get_tracking_position  ) 
 

Definition at line 324 of file renderengine.C.

References PlaybackEngine::get_tracking_position(), and playback_engine.

CICache * RenderEngine::get_vcache  ) 
 

Definition at line 305 of file renderengine.C.

References playback_engine, video_cache, and PlaybackEngine::video_cache.

Referenced by VModule::get_cache(), VRender::get_colormodel(), and VRender::process_buffer().

void RenderEngine::interrupt_playback  ) 
 

Definition at line 503 of file renderengine.C.

References audio, interrupt_lock, VideoDevice::interrupt_playback(), AudioDevice::interrupt_playback(), interrupted, and video.

Referenced by PlaybackEngine::interrupt_playback().

int RenderEngine::open_output  ) 
 

Definition at line 332 of file renderengine.C.

References PlaybackConfig::aconfig, adjusted_fragment_len, audio, command, config, do_audio, do_video, edl, EDLSession::frame_rate, get_current_channel(), get_output_h(), get_output_w(), VideoDevice::open_output(), AudioDevice::open_output(), output, EDLSession::playback_software_position, preferences, Preferences::processors, EDLSession::real_time_playback, TransportCommand::realtime, EDLSession::sample_rate, EDL::session, VideoDevice::set_adevice(), VideoDevice::set_channel(), VideoDevice::set_cpus(), VideoDevice::set_quality(), AudioDevice::set_software_positioning(), AudioDevice::set_vdevice(), TransportCommand::single_frame(), AudioDevice::start_playback(), PlaybackConfig::vconfig, and video.

Referenced by arm_command().

int RenderEngine::playable_channel_number int  number  ) 
 

int RenderEngine::reset_parameters  ) 
 

Definition at line 652 of file renderengine.C.

References audio_channels, do_audio, do_video, done, end_position, follow_loop, infinite, and start_position.

Referenced by RenderEngine().

void RenderEngine::reset_sync_position  ) 
 

Definition at line 404 of file renderengine.C.

References timer.

Referenced by VRender::run().

void RenderEngine::run  ) 
 

Definition at line 572 of file renderengine.C.

References arender, close_output(), PlaybackEngine::command, TransportCommand::command, command, CommonRender::current_position, do_audio, do_video, EDLSession::frame_rate, TransportCommand::get_edl(), PlaybackEngine::get_tracking_position(), input_lock, interrupt_lock, interrupted, PlaybackEngine::is_playing_back, playback_engine, TransportCommand::playbackstart, EDLSession::sample_rate, EDL::session, start_lock, start_render_threads(), PlaybackEngine::stop_tracking(), PlaybackEngine::tracking_position, vrender, and wait_render_threads().

PluginServer * RenderEngine::scan_plugindb char *  title,
int  data_type
 

Definition at line 427 of file renderengine.C.

References PluginServer::audio, plugindb, PluginServer::title, TRACK_AUDIO, TRACK_VIDEO, and PluginServer::video.

Referenced by AttachmentPoint::AttachmentPoint(), Plugin::is_synthesis(), and Module::update_transition().

int64_t RenderEngine::session_position  ) 
 

Definition at line 388 of file renderengine.C.

References audio, command, AudioDevice::current_position(), do_audio, do_video, edl, EDLSession::frame_rate, TransportCommand::get_speed(), EDLSession::sample_rate, EDL::session, VRender::session_frame, and vrender.

void RenderEngine::set_acache CICache cache  ) 
 

Definition at line 313 of file renderengine.C.

References audio_cache.

Referenced by PackageRenderer::create_engine().

void RenderEngine::set_vcache CICache cache  ) 
 

Definition at line 318 of file renderengine.C.

References video_cache.

Referenced by PackageRenderer::create_engine().

int RenderEngine::start_command  ) 
 

Definition at line 441 of file renderengine.C.

References command, interrupt_lock, TransportCommand::realtime, and start_lock.

Referenced by PlaybackEngine::start_render_engine().

void RenderEngine::start_render_threads  ) 
 

Definition at line 468 of file renderengine.C.

References arender, do_audio, do_video, CommonRender::start_command(), timer, and vrender.

Referenced by run().

int RenderEngine::start_video  ) 
 

Definition at line 705 of file renderengine.C.

References VRender::start_playback(), VideoDevice::start_playback(), video, and vrender.

int64_t RenderEngine::sync_position  ) 
 

Definition at line 409 of file renderengine.C.

References audio, AudioDevice::current_position(), do_audio, do_video, edl, EDLSession::sample_rate, EDL::session, and timer.

Referenced by VRender::run().

int RenderEngine::total_playable_channels  ) 
 

void RenderEngine::update_framerate float  framerate  ) 
 

Definition at line 484 of file renderengine.C.

References EDLSession::actual_frame_rate, MWindow::edl, PlaybackEngine::mwindow, playback_engine, MWindow::preferences_thread, EDL::session, and PreferencesThread::update_framerate().

Referenced by VRender::run().

void RenderEngine::wait_render_threads  ) 
 

Definition at line 490 of file renderengine.C.

References arender, do_audio, do_video, and vrender.

Referenced by run().


Member Data Documentation

float RenderEngine::actual_frame_rate
 

Definition at line 117 of file renderengine.h.

Referenced by RenderEngine().

int64_t RenderEngine::adjusted_fragment_len
 

Definition at line 128 of file renderengine.h.

Referenced by arm_command(), ARender::init_output_buffers(), and open_output().

ARender* RenderEngine::arender
 

Definition at line 111 of file renderengine.h.

Referenced by arm_playback_audio(), arm_render_threads(), create_render_threads(), PackageRenderer::do_audio(), get_module_levels(), get_output_levels(), RenderEngine(), run(), start_render_threads(), wait_render_threads(), and ~RenderEngine().

AudioDevice* RenderEngine::audio
 

Definition at line 109 of file renderengine.h.

Referenced by close_output(), interrupt_playback(), open_output(), VirtualAConsole::process_buffer(), RenderEngine(), ARender::run(), ARender::send_last_buffer(), VirtualAConsole::send_last_output_buffer(), session_position(), sync_position(), and ARender::wait_device_completion().

CICache* RenderEngine::audio_cache
 

Definition at line 130 of file renderengine.h.

Referenced by get_acache(), RenderEngine(), and set_acache().

int RenderEngine::audio_channels
 

Definition at line 184 of file renderengine.h.

Referenced by reset_parameters().

ChannelDB* RenderEngine::channeldb
 

Definition at line 123 of file renderengine.h.

Referenced by get_current_channel().

TransportCommand* RenderEngine::command
 

Definition at line 82 of file renderengine.h.

Referenced by CommonRender::advance_position(), CommonRender::arm_command(), ARender::arm_playback(), Module::create_new_attachments(), VirtualNode::expand_as_module(), CommonRender::get_boundaries(), AAttachmentPoint::get_buffer_size(), VRender::get_colormodel(), get_duty(), VRender::get_use_vconsole(), VModule::import_frame(), ARender::init_output_buffers(), PlayableTracks::is_playable(), open_output(), VRender::process_buffer(), VirtualAConsole::process_buffer(), VirtualVNode::read_data(), VirtualANode::read_data(), VAttachmentPoint::render(), AAttachmentPoint::render(), VirtualVNode::render_as_module(), VirtualANode::render_as_module(), AttachmentPoint::render_init(), VirtualVNode::render_projector(), VRender::run(), run(), ARender::run(), session_position(), start_command(), CommonRender::start_command(), VRender::start_playback(), Module::test_plugins(), VirtualConsole::test_reconfigure(), Module::update_transition(), and ~RenderEngine().

PlaybackConfig* RenderEngine::config
 

Definition at line 86 of file renderengine.h.

Referenced by arm_command(), AAttachmentPoint::get_buffer_size(), VRender::get_colormodel(), get_current_channel(), get_duty(), ARender::init_output_buffers(), PlayableTracks::is_playable(), open_output(), VirtualAConsole::process_buffer(), RenderEngine(), and ~RenderEngine().

int64_t RenderEngine::current_sample
 

Definition at line 183 of file renderengine.h.

Referenced by arm_playback_audio().

int RenderEngine::do_audio
 

Definition at line 113 of file renderengine.h.

Referenced by arm_command(), arm_playback_audio(), arm_render_threads(), create_render_threads(), get_duty(), get_module_levels(), PlaybackEngine::get_module_levels(), get_output_levels(), PlaybackEngine::get_output_levels(), open_output(), RenderEngine(), reset_parameters(), run(), session_position(), start_render_threads(), sync_position(), and wait_render_threads().

int RenderEngine::do_video
 

Definition at line 114 of file renderengine.h.

Referenced by arm_command(), arm_playback_video(), arm_render_threads(), create_render_threads(), get_duty(), PlaybackEngine::get_tracking_position(), open_output(), RenderEngine(), reset_parameters(), run(), ARender::run(), session_position(), start_render_threads(), sync_position(), and wait_render_threads().

int RenderEngine::done
 

Definition at line 108 of file renderengine.h.

Referenced by arm_command(), and reset_parameters().

EDL* RenderEngine::edl
 

Definition at line 84 of file renderengine.h.

Referenced by CommonRender::advance_position(), ARender::arm_playback(), ARender::calculate_history_size(), CommonRender::create_modules(), VRender::flash_output(), VRender::fromunits(), ARender::fromunits(), CommonRender::get_boundaries(), VRender::get_colormodel(), get_duty(), Module::get_edl(), get_output_h(), get_output_w(), VRender::get_total_tracks(), ARender::get_total_tracks(), VRender::get_use_vconsole(), VRender::insert_timecode(), VirtualConsole::module_number(), open_output(), PlaybackEngine::perform_change(), PlayableTracks::PlayableTracks(), VRender::process_buffer(), VirtualVConsole::process_buffer(), VirtualAConsole::process_buffer(), VAttachmentPoint::render(), AAttachmentPoint::render(), VirtualVNode::render_as_module(), VirtualANode::render_as_module(), VirtualVNode::render_fade(), VirtualANode::render_fade(), AttachmentPoint::render_init(), VirtualANode::render_pan(), VirtualVNode::render_projector(), RenderEngine(), VRender::run(), ARender::run(), session_position(), CommonRender::start_command(), PlaybackEngine::sync_parameters(), sync_position(), VirtualConsole::test_reconfigure(), VRender::tounits(), ARender::tounits(), and ~RenderEngine().

int64_t RenderEngine::end_position
 

Definition at line 182 of file renderengine.h.

Referenced by ARender::arm_playback(), and reset_parameters().

int RenderEngine::every_frame
 

Definition at line 185 of file renderengine.h.

Referenced by get_correction_factor().

Condition* RenderEngine::first_frame_lock
 

Definition at line 101 of file renderengine.h.

Referenced by arm_command(), VirtualAConsole::process_buffer(), RenderEngine(), VRender::run(), and ~RenderEngine().

int RenderEngine::follow_loop
 

Definition at line 178 of file renderengine.h.

Referenced by reset_parameters().

int64_t RenderEngine::fragment_len
 

Definition at line 126 of file renderengine.h.

Referenced by arm_command(), ARender::calculate_history_size(), AModule::get_buffer_size(), and ARender::run().

int RenderEngine::infinite
 

Definition at line 179 of file renderengine.h.

Referenced by reset_parameters().

Condition* RenderEngine::input_lock
 

Definition at line 96 of file renderengine.h.

Referenced by arm_command(), RenderEngine(), run(), and ~RenderEngine().

Mutex* RenderEngine::interrupt_lock
 

Definition at line 103 of file renderengine.h.

Referenced by interrupt_playback(), RenderEngine(), run(), start_command(), and ~RenderEngine().

int RenderEngine::interrupted
 

Definition at line 119 of file renderengine.h.

Referenced by arm_command(), interrupt_playback(), RenderEngine(), and run().

MWindow* RenderEngine::mwindow
 

Definition at line 187 of file renderengine.h.

Referenced by AttachmentPoint::render_gui(), and RenderEngine().

Canvas* RenderEngine::output
 

Definition at line 92 of file renderengine.h.

Referenced by open_output().

Condition* RenderEngine::output_lock
 

Definition at line 99 of file renderengine.h.

Referenced by RenderEngine(), and ~RenderEngine().

PlaybackEngine* RenderEngine::playback_engine
 

Definition at line 88 of file renderengine.h.

Referenced by brender_available(), get_acache(), get_tracking_position(), get_vcache(), VRender::run(), run(), ARender::run(), and update_framerate().

ArrayList<PluginServer*>* RenderEngine::plugindb
 

Definition at line 121 of file renderengine.h.

Referenced by scan_plugindb().

Preferences* RenderEngine::preferences
 

Definition at line 90 of file renderengine.h.

Referenced by arm_command(), VRender::get_colormodel(), open_output(), VRender::process_buffer(), AttachmentPoint::render_init(), Module::update_transition(), VirtualVNode::VirtualVNode(), VRender::VRender(), and ~RenderEngine().

int RenderEngine::show_tc
 

Definition at line 106 of file renderengine.h.

Referenced by VRender::process_buffer(), VirtualVNode::render_as_module(), and RenderEngine().

Condition* RenderEngine::start_lock
 

Definition at line 98 of file renderengine.h.

Referenced by RenderEngine(), run(), start_command(), and ~RenderEngine().

int64_t RenderEngine::start_position
 

Definition at line 181 of file renderengine.h.

Referenced by ARender::arm_playback(), and reset_parameters().

Timer RenderEngine::timer
 

Definition at line 116 of file renderengine.h.

Referenced by reset_sync_position(), start_render_threads(), and sync_position().

VideoDevice* RenderEngine::video
 

Definition at line 110 of file renderengine.h.

Referenced by close_output(), VRender::flash_output(), VRender::init_device_buffers(), interrupt_playback(), open_output(), VRender::process_buffer(), RenderEngine(), VRender::run(), and start_video().

CICache * RenderEngine::video_cache
 

Definition at line 130 of file renderengine.h.

Referenced by get_vcache(), RenderEngine(), and set_vcache().

VRender* RenderEngine::vrender
 

Definition at line 112 of file renderengine.h.

Referenced by arm_playback_video(), arm_render_threads(), create_render_threads(), PackageRenderer::do_video(), VRender::insert_timecode(), VirtualVNode::render_as_module(), RenderEngine(), run(), session_position(), start_render_threads(), start_video(), wait_render_threads(), and ~RenderEngine().


The documentation for this class was generated from the following files:
Generated on Sun Jan 8 13:39:24 2006 for Cinelerra-svn by  doxygen 1.4.4