done = 1;
start_lock->unlock();
Thread::cancel();
- Thread::join();
}
+ Thread::join();
if(buffer)
{
if(temp_frame2) delete temp_frame2;
if(video_encoder) dv_delete(video_encoder);
if(audio_encoder) dv_delete(audio_encoder);
+ if(encoder) dv_delete(encoder);
if(buffer_lock) delete buffer_lock;
if(position_lock) delete position_lock;
if(frame) iec61883_dv_close(frame);
position_lock = 0;
video_encoder = 0;
audio_encoder = 0;
+ encoder = 0;
audio_buffer = 0;
audio_samples = 0;
temp_frame = 0;
// Create buffers
buffer = new char*[total_buffers];
+ bzero(buffer, sizeof(char*) * total_buffers);
for(int i = 0; i < length; i++)
buffer[i] = new char[DV_PAL_SIZE];
buffer_size = new int[total_buffers];
buffer_valid = new int[total_buffers];
bzero(buffer_size, sizeof(int) * total_buffers);
bzero(buffer_valid, sizeof(int) * total_buffers);
- bzero(buffer, sizeof(char*) * total_buffers);
video_lock = new Condition(0, "IEC61883Output::video_lock");
audio_lock = new Condition(0, "IEC61883Output::audio_lock");
start_lock = new Condition(0, "IEC61883Output::start_lock");
int h = input->get_h();
// Default to NTSC if unknown
if(h != 480 && h != 576) h = 480;
-
- temp_frame2 = new VFrame(0,
- -1,
- 720,
- h,
- BC_YUV422,
- -1);
-
+ temp_frame2 = new VFrame(720, h, BC_YUV422, 0);
}
int norm = is_pal ? DV_PAL : DV_NTSC;