From patchwork Sun Apr 5 15:59:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 18682 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id C764D44BC7D for ; Sun, 5 Apr 2020 19:03:12 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 522CE68B527; Sun, 5 Apr 2020 19:00:26 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0291D68B4E6 for ; Sun, 5 Apr 2020 19:00:19 +0300 (EEST) Received: by mail-wr1-f67.google.com with SMTP id w10so14471801wrm.4 for ; Sun, 05 Apr 2020 09:00:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=qoFLbunH/C1mgORd9Oi7SZTo9sEgf+GayX3Yy/Zqnbg=; b=ZTNOhtj+yxMVdBrOBuStwpblrmgOQ290xM/HDLTJ4/rTlTHzTk6NIN1IUpOVxr83TJ vs+RmXJonSwpV2KQoBnp1hRoZfEQOyjcZl4SXZY/f1kjtqkYYyZ+pNxXnI6Ph5/ffKfL oe2LjUcHR0JC8kaXK4pw7BjJFA1wVJlMR5zb40eOpvR2lQ6WpUOiQR9NZtVt+BMK9mc/ xx4ZWRJPEPFfTewuX6VF5gQ+cFzxpOT37tU9msQ1xPywpDqNT61XSOrYoqsB0aNIs8Kv cuSTXlV7rnmNFEYTMMxIlAboEpDdOjCiIpWUnFZ3DuA2eh2eHi9o7Q5BcqKEa7fj4lxz MsCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=qoFLbunH/C1mgORd9Oi7SZTo9sEgf+GayX3Yy/Zqnbg=; b=gS/G8xwLia54Y3ceZOvUd7d9vbgIOjcYp6GN+y/Xr1G6N2ZT5Yh1MrQs2n5X5yciNv c7QrzuVXs+xEZgLAqbU5KsLvD/g2fekbuHjoldapM3I1NHSrUpTEwG4AgIuHoZm6umhp 80kHNeXS+37f1ujh9M7l7GGXZjqsuAl1OaSHJU8BBJLs28TRy0/8hgixvotqxUhyEROL /3Zxc4maJmSt8/fxd23mlsEtJcMzXspzXoXAnVLBHnzV3nDQaFXYPj4IKpF02QDpjQqF MSSED6IDffp8Itz3cpv0q6rWz7eFNurbJdHB5n9MEHgjvngLIUYi+FNDjilGy4wCSc7X fYPw== X-Gm-Message-State: AGi0PuY3BU/xJDCcfKjFLobvYDMcedet6enl2jM6Qo0z45K6v5Rkydzw Sn+izU740yHrQA1jyvYI0yFerWIx X-Google-Smtp-Source: APiQypJ+nTndimqWatyU2M174sqYMeeQNfvy2wwwPmnf6QXJBTK4Z/jC8oC+1hqiVA3d5guVH3k1VQ== X-Received: by 2002:a5d:6645:: with SMTP id f5mr20103295wrw.280.1586102418627; Sun, 05 Apr 2020 09:00:18 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1ab57.dynamic.kabel-deutschland.de. [188.193.171.87]) by smtp.gmail.com with ESMTPSA id v21sm20014567wmh.26.2020.04.05.09.00.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Apr 2020 09:00:18 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 5 Apr 2020 17:59:28 +0200 Message-Id: <20200405155928.9323-21-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200405155928.9323-1-andreas.rheinhardt@gmail.com> References: <20200405155928.9323-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 20/20] avformat/matroskaenc: Cosmetics X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Reindentation, removal of { } if they contain only one statement, removal of other useless parentheses and moving the return statement to a line of its own in situations like "if (ret < 0) return ret;". Moreover, several overlong lines were made shorter and a camelCase variable received a name in line with our naming conventions. Signed-off-by: Andreas Rheinhardt --- libavformat/matroskaenc.c | 135 +++++++++++++++++++------------------- 1 file changed, 66 insertions(+), 69 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 084e7ca416..571fde3ee8 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -261,7 +261,8 @@ static void put_ebml_sint(AVIOContext *pb, uint32_t elementid, int64_t val) int i, bytes = 1; uint64_t tmp = 2*(val < 0 ? val^-1 : val); - while (tmp>>=8) bytes++; + while (tmp >>= 8) + bytes++; put_ebml_id(pb, elementid); put_ebml_num(pb, bytes, 0); @@ -593,8 +594,8 @@ static int put_wv_codecpriv(AVIOContext *pb, const AVCodecParameters *par) return 0; } -static int put_flac_codecpriv(AVFormatContext *s, - AVIOContext *pb, const AVCodecParameters *par) +static int put_flac_codecpriv(AVFormatContext *s, AVIOContext *pb, + const AVCodecParameters *par) { int write_comment = (par->channel_layout && !(par->channel_layout & ~0x3ffffULL) && @@ -616,7 +617,7 @@ static int put_flac_codecpriv(AVFormatContext *s, av_dict_set(&dict, "WAVEFORMATEXTENSIBLE_CHANNEL_MASK", buf, 0); len = ff_vorbiscomment_length(dict, vendor, NULL, 0); - if (len >= ((1<<24) - 4)) { + if (len >= ((1 << 24) - 4)) { av_dict_free(&dict); return AVERROR(EINVAL); } @@ -1109,9 +1110,8 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv, int j, ret; const AVDictionaryEntry *tag; - if (par->codec_type == AVMEDIA_TYPE_ATTACHMENT) { + if (par->codec_type == AVMEDIA_TYPE_ATTACHMENT) return 0; - } if (par->codec_id == AV_CODEC_ID_AAC) { ret = get_aac_sample_rates(s, par->extradata, par->extradata_size, &sample_rate, @@ -1123,9 +1123,9 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv, track_master = start_ebml_master(pb, MATROSKA_ID_TRACKENTRY, 0); put_ebml_uint(pb, MATROSKA_ID_TRACKNUMBER, track->track_num); put_ebml_uid (pb, MATROSKA_ID_TRACKUID, track->uid); - put_ebml_uint (pb, MATROSKA_ID_TRACKFLAGLACING , 0); // no lacing (yet) + put_ebml_uint(pb, MATROSKA_ID_TRACKFLAGLACING, 0); // no lacing (yet) - if ((tag = av_dict_get(st->metadata, "title", NULL, 0))) + if (tag = av_dict_get(st->metadata, "title", NULL, 0)) put_ebml_string(pb, MATROSKA_ID_TRACKNAME, tag->value); tag = av_dict_get(st->metadata, "language", NULL, 0); put_ebml_string(pb, MATROSKA_ID_TRACKLANGUAGE, @@ -1439,7 +1439,8 @@ static int mkv_write_chapters(AVFormatContext *s) mkv_add_seekhead_entry(mkv, MATROSKA_ID_CHAPTERS, avio_tell(pb)); ret = start_ebml_master_crc32(&dyn_cp, mkv); - if (ret < 0) return ret; + if (ret < 0) + return ret; editionentry = start_ebml_master(dyn_cp, MATROSKA_ID_EDITIONENTRY, 0); if (mkv->mode != MODE_WEBM) { @@ -1468,7 +1469,7 @@ static int mkv_write_chapters(AVFormatContext *s) put_ebml_uint(dyn_cp, MATROSKA_ID_CHAPTERFLAGHIDDEN , 0); put_ebml_uint(dyn_cp, MATROSKA_ID_CHAPTERFLAGENABLED, 1); } - if ((t = av_dict_get(c->metadata, "title", NULL, 0))) { + if (t = av_dict_get(c->metadata, "title", NULL, 0)) { chapterdisplay = start_ebml_master(dyn_cp, MATROSKA_ID_CHAPTERDISPLAY, 0); put_ebml_string(dyn_cp, MATROSKA_ID_CHAPSTRING, t->value); put_ebml_string(dyn_cp, MATROSKA_ID_CHAPLANG , "und"); @@ -1556,8 +1557,8 @@ static int mkv_check_tag_name(const char *name, uint32_t elementid) av_strcasecmp(name, "mimetype"))); } -static int mkv_write_tag(AVFormatContext *s, const AVDictionary *m, uint32_t elementid, - uint64_t uid, ebml_master *tag) +static int mkv_write_tag(AVFormatContext *s, const AVDictionary *m, + uint32_t elementid, uint64_t uid, ebml_master *tag) { MatroskaMuxContext *mkv = s->priv_data; const AVDictionaryEntry *t = NULL; @@ -1568,7 +1569,7 @@ static int mkv_write_tag(AVFormatContext *s, const AVDictionary *m, uint32_t ele if (ret < 0) return ret; - while ((t = av_dict_get(m, "", t, AV_DICT_IGNORE_SUFFIX))) { + while (t = av_dict_get(m, "", t, AV_DICT_IGNORE_SUFFIX)) { if (mkv_check_tag_name(t->key, elementid)) { ret = mkv_write_simpletag(mkv->tags_bc, t); if (ret < 0) @@ -1586,7 +1587,7 @@ static int mkv_check_tag(const AVDictionary *m, uint32_t elementid) { const AVDictionaryEntry *t = NULL; - while ((t = av_dict_get(m, "", t, AV_DICT_IGNORE_SUFFIX))) + while (t = av_dict_get(m, "", t, AV_DICT_IGNORE_SUFFIX)) if (mkv_check_tag_name(t->key, elementid)) return 1; @@ -1603,7 +1604,8 @@ static int mkv_write_tags(AVFormatContext *s) if (mkv_check_tag(s->metadata, 0)) { ret = mkv_write_tag(s, s->metadata, 0, 0, NULL); - if (ret < 0) return ret; + if (ret < 0) + return ret; } tagp = (s->pb->seekable & AVIO_SEEKABLE_NORMAL) && !mkv->is_live ? &tag : NULL; @@ -1619,7 +1621,8 @@ static int mkv_write_tags(AVFormatContext *s) ret = mkv_write_tag(s, st->metadata, MATROSKA_ID_TAGTARGETS_TRACKUID, track->uid, tagp); - if (ret < 0) return ret; + if (ret < 0) + return ret; if (tagp) { AVIOContext *pb = mkv->tags_bc; @@ -1628,7 +1631,7 @@ static int mkv_write_tags(AVFormatContext *s) simpletag = start_ebml_master(pb, MATROSKA_ID_SIMPLETAG, 2 + 1 + 8 + 23); put_ebml_string(pb, MATROSKA_ID_TAGNAME, "DURATION"); - mkv->tracks[i].duration_offset = avio_tell(pb); + track->duration_offset = avio_tell(pb); // Reserve space to write duration as a 20-byte string. // 2 (ebml id) + 1 (data size) + 20 (data) @@ -1693,7 +1696,8 @@ static int mkv_write_attachments(AVFormatContext *s) mkv_add_seekhead_entry(mkv, MATROSKA_ID_ATTACHMENTS, avio_tell(pb)); ret = start_ebml_master_crc32(&dyn_cp, mkv); - if (ret < 0) return ret; + if (ret < 0) + return ret; for (i = 0; i < s->nb_streams; i++) { const AVStream *st = s->streams[i]; @@ -1747,19 +1751,19 @@ static int mkv_write_attachments(AVFormatContext *s) static int64_t get_metadata_duration(AVFormatContext *s) { - int i = 0; + const AVDictionaryEntry *duration = av_dict_get(s->metadata, "DURATION", + NULL, 0); int64_t max = 0; int64_t us; - const AVDictionaryEntry *explicitDuration = av_dict_get(s->metadata, "DURATION", NULL, 0); - if (explicitDuration && (av_parse_time(&us, explicitDuration->value, 1) == 0) && us > 0) { + if (duration && (av_parse_time(&us, duration->value, 1) == 0) && us > 0) { av_log(s, AV_LOG_DEBUG, "get_metadata_duration found duration in context metadata: %" PRId64 "\n", us); return us; } - for (i = 0; i < s->nb_streams; i++) { + for (unsigned i = 0; i < s->nb_streams; i++) { int64_t us; - const AVDictionaryEntry *duration = av_dict_get(s->streams[i]->metadata, "DURATION", NULL, 0); + duration = av_dict_get(s->streams[i]->metadata, "DURATION", NULL, 0); if (duration && (av_parse_time(&us, duration->value, 1) == 0)) max = FFMAX(max, us); @@ -1815,18 +1819,17 @@ static int mkv_write_header(AVFormatContext *s) pb = mkv->info_bc; put_ebml_uint(pb, MATROSKA_ID_TIMECODESCALE, 1000000); - if ((tag = av_dict_get(s->metadata, "title", NULL, 0))) + if (tag = av_dict_get(s->metadata, "title", NULL, 0)) put_ebml_string(pb, MATROSKA_ID_TITLE, tag->value); if (!(s->flags & AVFMT_FLAG_BITEXACT)) { put_ebml_string(pb, MATROSKA_ID_MUXINGAPP, LIBAVFORMAT_IDENT); - if ((tag = av_dict_get(s->metadata, "encoding_tool", NULL, 0))) + if (tag = av_dict_get(s->metadata, "encoding_tool", NULL, 0)) put_ebml_string(pb, MATROSKA_ID_WRITINGAPP, tag->value); else put_ebml_string(pb, MATROSKA_ID_WRITINGAPP, LIBAVFORMAT_IDENT); - if (mkv->mode != MODE_WEBM) { + if (mkv->mode != MODE_WEBM) put_ebml_binary(pb, MATROSKA_ID_SEGMENTUID, mkv->segment_uid, 16); - } } else { const char *ident = "Lavf"; put_ebml_string(pb, MATROSKA_ID_MUXINGAPP , ident); @@ -2081,14 +2084,12 @@ static int mkv_write_block(AVFormatContext *s, AVIOContext *pb, if (data != pkt->data) av_free(data); - if (blockid == MATROSKA_ID_BLOCK && !keyframe) { + if (blockid == MATROSKA_ID_BLOCK && !keyframe) put_ebml_sint(pb, MATROSKA_ID_BLOCKREFERENCE, track->last_timestamp - ts); - } track->last_timestamp = ts; - if (discard_padding) { + if (discard_padding) put_ebml_sint(pb, MATROSKA_ID_DISCARDPADDING, discard_padding); - } if (side_data_size) { block_additions = start_ebml_master(pb, MATROSKA_ID_BLOCKADDITIONS, 0); @@ -2101,9 +2102,8 @@ static int mkv_write_block(AVFormatContext *s, AVIOContext *pb, end_ebml_master(pb, block_more); end_ebml_master(pb, block_additions); } - if (side_data_size || discard_padding) { + if (side_data_size || discard_padding) end_ebml_master(pb, block_group); - } return 0; } @@ -2115,7 +2115,7 @@ static int mkv_write_vtt_blocks(AVFormatContext *s, AVIOContext *pb, const AVPac ebml_master blockgroup; int id_size, settings_size, size; uint8_t *id, *settings; - int64_t ts = mkv->tracks[pkt->stream_index].write_dts ? pkt->dts : pkt->pts; + int64_t ts = track->write_dts ? pkt->dts : pkt->pts; const int flags = 0; id_size = 0; @@ -2305,7 +2305,8 @@ static int mkv_write_packet_internal(AVFormatContext *s, const AVPacket *pkt) (par->codec_type == AVMEDIA_TYPE_VIDEO || !mkv->have_video && !track->has_cue)) { ret = mkv_add_cuepoint(mkv, pkt->stream_index, ts, mkv->cluster_pos, relative_packet_pos, -1); - if (ret < 0) return ret; + if (ret < 0) + return ret; track->has_cue = 1; } } else { @@ -2358,36 +2359,34 @@ static int mkv_write_packet(AVFormatContext *s, const AVPacket *pkt) return ret; if (mkv->cluster_pos != -1) { - if (mkv->tracks[pkt->stream_index].write_dts) - cluster_time = pkt->dts - mkv->cluster_pts; - else - cluster_time = pkt->pts - mkv->cluster_pts; - cluster_time += mkv->tracks[pkt->stream_index].ts_offset; - - cluster_size = avio_tell(mkv->cluster_bc); - - if (mkv->is_dash && codec_type == AVMEDIA_TYPE_VIDEO) { - // WebM DASH specification states that the first block of every cluster - // has to be a key frame. So for DASH video, we only create a cluster - // on seeing key frames. - start_new_cluster = keyframe; - } else if (mkv->is_dash && codec_type == AVMEDIA_TYPE_AUDIO && - cluster_time > mkv->cluster_time_limit) { - // For DASH audio, we create a Cluster based on cluster_time_limit - start_new_cluster = 1; - } else if (!mkv->is_dash && - (cluster_size > mkv->cluster_size_limit || - cluster_time > mkv->cluster_time_limit || - (codec_type == AVMEDIA_TYPE_VIDEO && keyframe && - cluster_size > 4 * 1024))) { - start_new_cluster = 1; - } else { - start_new_cluster = 0; - } + if (mkv->tracks[pkt->stream_index].write_dts) + cluster_time = pkt->dts - mkv->cluster_pts; + else + cluster_time = pkt->pts - mkv->cluster_pts; + cluster_time += mkv->tracks[pkt->stream_index].ts_offset; + + cluster_size = avio_tell(mkv->cluster_bc); + + if (mkv->is_dash && codec_type == AVMEDIA_TYPE_VIDEO) { + // WebM DASH specification states that the first block of + // every Cluster has to be a key frame. So for DASH video, + // we only create a Cluster on seeing key frames. + start_new_cluster = keyframe; + } else if (mkv->is_dash && codec_type == AVMEDIA_TYPE_AUDIO && + cluster_time > mkv->cluster_time_limit) { + // For DASH audio, we create a Cluster based on cluster_time_limit. + start_new_cluster = 1; + } else if (!mkv->is_dash && + (cluster_size > mkv->cluster_size_limit || + cluster_time > mkv->cluster_time_limit || + (codec_type == AVMEDIA_TYPE_VIDEO && keyframe && + cluster_size > 4 * 1024))) { + start_new_cluster = 1; + } else + start_new_cluster = 0; - if (start_new_cluster) { - mkv_end_cluster(s); - } + if (start_new_cluster) + mkv_end_cluster(s); } if (!mkv->cluster_pos) @@ -2568,9 +2567,8 @@ static int mkv_write_trailer(AVFormatContext *s) avio_seek(pb, endpos, SEEK_SET); } - if (!mkv->is_live) { + if (!mkv->is_live) end_ebml_master(pb, mkv->segment); - } return mkv->reserve_cues_space < 0 ? AVERROR(EINVAL) : 0; } @@ -2653,9 +2651,8 @@ static int mkv_init(struct AVFormatContext *s) mkv->mode = MODE_MATROSKAv2; mkv->tracks = av_mallocz_array(s->nb_streams, sizeof(*mkv->tracks)); - if (!mkv->tracks) { + if (!mkv->tracks) return AVERROR(ENOMEM); - } if (!(s->flags & AVFMT_FLAG_BITEXACT)) { av_lfg_init(&c, av_get_random_seed()); @@ -2676,7 +2673,7 @@ static int mkv_init(struct AVFormatContext *s) } // ms precision is the de-facto standard timescale for mkv files - avpriv_set_pts_info(s->streams[i], 64, 1, 1000); + avpriv_set_pts_info(st, 64, 1, 1000); if (st->codecpar->codec_type == AVMEDIA_TYPE_ATTACHMENT) { if (mkv->mode == MODE_WEBM) {