#include "arender.inc"
#include "audiodevice.inc"
+#include "bctimer.h"
#include "cache.inc"
#include "canvas.inc"
#include "channel.inc"
RenderEngine(PlaybackEngine *playback_engine,
Preferences *preferences,
Canvas *output,
- ChannelDB *channeldb,
int is_nested);
~RenderEngine();
void start_render_threads();
void wait_render_threads();
void interrupt_playback();
+ void wait_done();
int get_output_w();
int get_output_h();
int brender_available(int position, int direction);
-// Get current channel for the BUZ output
- Channel* get_current_channel();
double get_tracking_position();
CICache* get_acache();
CICache* get_vcache();
// Lock out interrupts until started
Condition *start_lock;
Condition *output_lock;
+ Condition *render_active;
// Lock out audio and synchronization timers until first frame is done
Condition *first_frame_lock;
// Lock out interrupts before and after renderengine is active
Mutex *interrupt_lock;
-// Show the timecode on the video
- int show_tc;
-
int done;
int is_nested;
// If nested, the devices are owned by someone else
// If the termination came from interrupt or end of selection
int interrupted;
-// Channels for the BUZ output
- ChannelDB *channeldb;
-
// Samples in audio buffer to process
int64_t fragment_len;
// Samples to send to audio device after speed adjustment
CICache *audio_cache, *video_cache;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
// constructing with an audio device forces output buffer allocation
// constructing without an audio device puts in one buffer at a time mode
RenderEngine(MWindow *mwindow,