X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fbdcreate.C;h=7305d4e960b6bec0d8aeccc070f791679109c422;hb=78863ce9c7fde7ebd29963554c33d89569fd7cdb;hp=dd1dd19a619103d666fe0ff2e6575983b8d9a87c;hpb=6a349d153f1a6e7060fabf71b2856c2a5eaa4f56;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/bdcreate.C b/cinelerra-5.1/cinelerra/bdcreate.C index dd1dd19a..7305d4e9 100644 --- a/cinelerra-5.1/cinelerra/bdcreate.C +++ b/cinelerra-5.1/cinelerra/bdcreate.C @@ -1,3 +1,23 @@ +/* + * CINELERRA + * Copyright (C) 2016-2020 William Morrow + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + #include "asset.h" #include "bchash.h" #include "bdcreate.h" @@ -26,12 +46,21 @@ #include #if !defined(__FreeBSD__) #include +#if !defined(__NetBSD__) #include +#endif #else #include #include #endif +#if defined(__NetBSD__) +#include +#ifndef statfs +#define statfs statvfs +#endif +#endif + // BD Creation // selected by timezone @@ -51,10 +80,10 @@ static struct bd_format { { "1920x1080 25i", 1920,1080, 25., 1, ILACE_MODE_TOP_FIRST }, { "1920x1080 25p*", 1920,1080, 25., 1, ILACE_MODE_FAKE_INTERLACE }, { "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 }, - { "1440x1080 24p", 1440,1080, 24., -1, ILACE_MODE_NOTINTERLACED }, - { "1440x1080 23.976p", 1440,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 }, + { "1440x1080 24p", 1440,1080, 24., 1, ILACE_MODE_NOTINTERLACED }, + { "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 }, @@ -63,8 +92,13 @@ static struct bd_format { { "1280x720 23.976p", 1280,720, 23.976, 1, ILACE_MODE_NOTINTERLACED }, { "720x576 25i", 720,576, 25., 0, ILACE_MODE_BOTTOM_FIRST }, { "720x576 25p*", 720,576, 25., 0, ILACE_MODE_NOTINTERLACED }, + { "720x576(w) 25i", 720,576, 25., 1, ILACE_MODE_BOTTOM_FIRST }, + { "720x576(w) 25p*", 720,576, 25., 1, ILACE_MODE_NOTINTERLACED }, { "720x480 29.97i", 720,480, 29.97, 0, ILACE_MODE_BOTTOM_FIRST }, { "720x480 29.97p*", 720,480, 29.97, 0, ILACE_MODE_NOTINTERLACED }, + { "720x480(w) 29.97i", 720,480, 29.97, 1, ILACE_MODE_BOTTOM_FIRST }, + { "720x480(w) 29.97p*", 720,480, 29.97, 1, ILACE_MODE_NOTINTERLACED }, + }; static struct bd_profile { @@ -347,12 +381,14 @@ int CreateBD_Thread::create_bd_jobs(ArrayList *jobs, const char } - fprintf(fp,"MUXOPT --blu-ray --hdmv-descriptors\n"); + fprintf(fp,"MUXOPT --blu-ray --hdmv-descriptors --auto-chapters=5\n"); fprintf(fp,"V_MPEG4/ISO/AVC, bd.m2ts, track=4113\n"); if(!strcmp(use_profile, "bluray.m2ts")) fprintf(fp,"A_AC3, bd.m2ts, track=4352\n"); if(!strcmp(use_profile, "bluray_lpcm.m2ts")) fprintf(fp,"A_LPCM, bd.m2ts, track=4352\n"); + if(!strcmp(use_profile, "bluray_truehd.m2ts")) + fprintf(fp,"A_MLP, bd.m2ts, track=4352\n"); fprintf(fp,"\n"); fclose(fp); @@ -396,6 +432,13 @@ int CreateBD_Thread::create_bd_jobs(ArrayList *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)); + if(session->aspect_w == 16) { + char aspect_line[100]; + float par = (float)((float)asset->width / (float)asset->height); + sprintf(aspect_line, "aspect=%f\n", asset->aspect_ratio/par); + strcat(asset->ff_video_options, aspect_line); + //printf("Aspect line: %s par: %f width: %i height: %i\n ", aspect_line, par, asset->width, asset->height); + } asset->ff_video_bitrate = vid_bitrate; asset->ff_video_quality = -1; return 0; @@ -1115,7 +1158,7 @@ int CreateBD_FormatItem::handle_event() popup->set_text(text); int n = strlen(text)-1; int not_standard = n >= 0 && text[n] == '*' ? 1 : 0; - popup->gui->non_standard->update(not_standard ? _("* non-standard format") : "", 0); + popup->gui->non_standard->update(not_standard ? _(" * non-standard format") : "", 0); return popup->handle_event(); }