X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fbdwrite.C;h=1b864bb9720ba91a82c06b20771ba08355ad7408;hb=refs%2Fheads%2Fmaster;hp=1017c1690670046fa831d603a73474085601f2b2;hpb=17304a9fc042d480cca91f04ace7985f98fa28d8;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/bdwrite.C b/cinelerra-5.1/cinelerra/bdwrite.C index 1017c169..1f7f027e 100644 --- a/cinelerra-5.1/cinelerra/bdwrite.C +++ b/cinelerra-5.1/cinelerra/bdwrite.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 "bd.h" //This program was created by inverting libbluray, without any docs, // so it is probably got problems. Still, works on my Samsung player. @@ -2575,6 +2595,22 @@ static int field_probe(AVFormatContext *fmt_ctx, AVStream *st) av_packet_unref(&ipkt); av_frame_free(&ipic); avcodec_free_context(&ctx); + + if (ilaced < 0) { + fprintf(stderr, "warning bdwrite uses field into from stream \n", st->codecpar->field_order); + switch(st->codecpar->field_order) { + case AV_FIELD_TT: + case AV_FIELD_TB: + case AV_FIELD_BB: + case AV_FIELD_BT: + return 1; + case AV_FIELD_PROGRESSIVE: + return 0; + default: + return -1; + } + } + return ilaced; } @@ -2639,7 +2675,7 @@ int media_info::scan() break; } case AVMEDIA_TYPE_AUDIO: { s->coding_type = bd_coding_type(codec_id); - s->format = bd_audio_format(st->codecpar->channels); + s->format = bd_audio_format(st->codecpar->ch_layout.nb_channels); s->rate = bd_audio_rate(st->codecpar->sample_rate); strcpy((char*)s->lang, "eng"); break; }