Bluray changes have been checked in as tested, noted, patched, provided by Andrew: 1) the hardware device "none" was giving an error message -- gg fixed this; 2) in the bluray...m2ts opts files the x264opts was switched to x264-params because of Andrew's note of future deprecation of x264opts (I still have to do the non-bluray ones); 3) bdcreate patch applied that adds 3 additional bluray settings (1920x1080, 25p and 1280x720p, 29.97p and 25) and changed the method of dealing with the fake_interlace versus tff/bff interlace; 4) modified bluray.m2ts based on Andrew's recommendation; 5) added bluray_interlace, bluray_tff, and bluray_bff .m2ts to handle specific cases as noted. I did quite a few tests and wore out the carpet between the bluray writer and the TV! so even though bluray is going out, we still use it a lot for home videos. Thanks for all of the research/work by Andrew. gg/Phyllis I tried to patch bdcreate.C but while it worked I'm sure i did it wrong
(and you need to fix keyint by hand anyway):
cat /dev/shm/bdcreate.patch diff --git a/cinelerra-5.1/cinelerra/bdcreate.C b/cinelerra-5.1/cinelerra/bdcreate.C index 863c5d0..fdafa5c 100644 --- a/cinelerra-5.1/cinelerra/bdcreate.C +++ b/cinelerra-5.1/cinelerra/bdcreate.C @@ -44,6 +44,7 @@ static struct bd_format { { "1920x1080 29.97p*", 1920,1080, 29.97, 1, ILACE_MODE_NOTINTERLACED }, { "1920x1080 24p", 1920,1080, 24., 1, ILACE_MODE_NOTINTERLACED }, { "1920x1080 25i", 1920,1080, 25., 1, ILACE_MODE_TOP_FIRST }, + { "1920x1080 25p", 1920,1080, 25., 1, ILACE_MODE_NOTINTERLACED }, { "1920x1080 23.976p", 1920,1080, 23.976, 1, ILACE_MODE_NOTINTERLACED }, { "1440x1080 29.97i", 1440,1080, 29.97, -1, ILACE_MODE_TOP_FIRST }, { "1440x1080 25i", 1440,1080, 25., -1, ILACE_MODE_TOP_FIRST }, @@ -51,6 +52,8 @@ static struct bd_format { { "1440x1080 23.976p", 1440,1080, 23.976,-1, ILACE_MODE_NOTINTERLACED }, { "1280x720 59.94p", 1280,720, 59.94, 1, ILACE_MODE_NOTINTERLACED }, { "1280x720 50p", 1280,720, 50., 1, ILACE_MODE_NOTINTERLACED }, + { "1280x720 29.97p", 1280,720, 29.97, 1, ILACE_MODE_NOTINTERLACED }, + { "1280x720 25p", 1280,720, 25., 1, ILACE_MODE_NOTINTERLACED }, { "1280x720 24p", 1280,720, 24., 1, ILACE_MODE_NOTINTERLACED }, { "1280x720 23.976p", 1280,720, 23.976, 1, ILACE_MODE_NOTINTERLACED }, { "720x576 25i", 720,576, 25., 0, ILACE_MODE_BOTTOM_FIRST }, @@ -325,11 +328,23 @@ int CreateBD_Thread::create_bd_jobs(ArrayList<BatchRenderJob*> *jobs, const char FFMPEG::set_option_path(option_path, "video/%s", asset->vcodec); FFMPEG::load_options(option_path, asset->ff_video_options, sizeof(asset->ff_video_options)); - const char *opts = 0; + char *opts = 0; + char *opts1 = 0; switch( asset->interlace_mode ) { case ILACE_MODE_TOP_FIRST: opts = ":tff\n"; break; case ILACE_MODE_BOTTOM_FIRST: opts = ":bff\n"; break; } + + if ((asset->width == 1920) && (asset->height == 1080) && (asset->frame_rate != 24) && (asset->interlace_mode==ILACE_MODE_NOTINTERLACED)) + opts1="fake-interlaced=1\n"; + if ((asset->width == 1280) && (asset->height == 720) && (asset->frame_rate == 25 || asset->frame_rate == 29.97 ) && (asset->interlace_mode==ILACE_MODE_NOTINTERLACED)) + opts1="pulldown=double\n"; + + if ((opts1) && (opts)) { + int len1 = strlen(opts); + char *cp1 = opts + len1-1; + strncpy(cp1, opts1, sizeof(opts)-len1); + } if( opts ) { int len = strlen(asset->ff_video_options); char *cp = asset->ff_video_options + len-1;
-- Cin mailing list [email protected] https://lists.cinelerra-gg.org/mailman/listinfo/cin