X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fiec61883output.C;h=919b95b410766bb3d07bbc8c73dbad360b2a01af;hb=refs%2Fheads%2Fmaster;hp=8997266f1dd75cfa43ec9d20a09479767e0f3582;hpb=3ec3a9cc6afc6561311686b3ec597ee3c1d80d6f;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/iec61883output.C b/cinelerra-5.1/cinelerra/iec61883output.C index 8997266f..919b95b4 100644 --- a/cinelerra-5.1/cinelerra/iec61883output.C +++ b/cinelerra-5.1/cinelerra/iec61883output.C @@ -97,6 +97,7 @@ IEC61883Output::~IEC61883Output() 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); @@ -126,6 +127,7 @@ void IEC61883Output::reset() position_lock = 0; video_encoder = 0; audio_encoder = 0; + encoder = 0; audio_buffer = 0; audio_samples = 0; temp_frame = 0; @@ -190,13 +192,13 @@ int IEC61883Output::open(int port, // 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"); @@ -370,14 +372,7 @@ void IEC61883Output::write_frame(VFrame *input) 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;