X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Ffiledv.C;fp=cinelerra-5.1%2Fcinelerra%2Ffiledv.C;h=14ddbf743a66b793e21bd0230af87ce5c4d70ac0;hp=cf8bc1bf074dd673cfdc6036c34b1794d04062b0;hb=31dcf588195639485c379434882b98f110063c8e;hpb=f0b8954559086b9967ef01ea4f7d4c5358861059 diff --git a/cinelerra-5.1/cinelerra/filedv.C b/cinelerra-5.1/cinelerra/filedv.C index cf8bc1bf..14ddbf74 100644 --- a/cinelerra-5.1/cinelerra/filedv.C +++ b/cinelerra-5.1/cinelerra/filedv.C @@ -229,9 +229,9 @@ TRACE("FileDV::open_file 20") encoder->isPAL = isPAL; output_size = (isPAL ? DV1394_PAL_FRAME_SIZE : DV1394_NTSC_FRAME_SIZE); - // Compare to 16 / 8 rather than == 16 / 9 in case of floating point - // rounding errors - encoder->is16x9 = asset->aspect_ratio > 16 / 8; + //printf("filedv aspect- %f \n", asset->aspect_ratio); + if(1.777778 - asset->aspect_ratio < 0.001f) + encoder->is16x9 = 1; } else { @@ -602,6 +602,7 @@ UNTRACE int FileDV::write_frames(VFrame ***frames, int len) { int result = 0; + time_t now = time(NULL); if(stream == 0) return 1; @@ -619,11 +620,15 @@ int FileDV::write_frames(VFrame ***frames, int len) //printf("FileDV::write_frames: 4\n"); dv_encode_full_frame(encoder, temp_frame->get_rows(), e_dv_color_yuv, video_buffer); + dv_encode_metadata(video_buffer, encoder->isPAL, encoder->is16x9, &now, 0); + dv_encode_timecode(video_buffer, encoder->isPAL, 0); break; case BC_RGB888: //printf("FileDV::write_frames: 5\n"); dv_encode_full_frame(encoder, temp_frame->get_rows(), e_dv_color_rgb, video_buffer); + dv_encode_metadata(video_buffer, encoder->isPAL, encoder->is16x9, &now, 0); + dv_encode_timecode(video_buffer, encoder->isPAL, 0); break; default: unsigned char *data = new unsigned char[asset->height * asset->width * 2];