From patchwork Tue Oct 15 11:17:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 15765 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 D0275446F1C for ; Tue, 15 Oct 2019 14:32:28 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BBA3768A138; Tue, 15 Oct 2019 14:32:28 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0E3FD689AA2 for ; Tue, 15 Oct 2019 14:32:27 +0300 (EEST) Received: by mail-wm1-f66.google.com with SMTP id 3so19899318wmi.3 for ; Tue, 15 Oct 2019 04:32:26 -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=IFcy62Bw2CRX9t3McPtAJ+tZY1pwPYRu5hyDCefK2hs=; b=LMUMcR+e5+xy0YTph4DZQlM5ZEOJCc6CLO4jzVD1uTt4lnPnXO4KPGTNpkdsHkcof6 8sG7pwr5ALLcuaLW5UhMl/11veptW1tfXOTs0zNhGf6EnxfQa0PCXjiIZ45DKyPlLKhh 2uz6OKZSy+gAb389KD/qH1dMVWqZLWWohWxGEv4aXrR2EZQOteQ7OGYBCoHKxn4BYPCE NNEDpR5WbeXyAoZq2mrnrl4+2R3FYFOAaotVKeGwyRWTHv02WhDg9H4ZJjEZDak7cdBs Wz/znYcgaA6QA7Mch6mSC3mdrqt4atOoa4E7VsL33v4gHh3EOUOcrqsDohbTPv2HnfCq McyA== 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=IFcy62Bw2CRX9t3McPtAJ+tZY1pwPYRu5hyDCefK2hs=; b=JaHVB3jYZA54IGTpzJ6xlItnyZU7EFtdK2NPlvGzbaDlf1ZM9bfPXdaK0tBydK7mG+ d4ASq+wtxiOid8urGvQ+JTIv7MqJsWfEV9+8a4hq3nxdxGrtSgsJeFNRhpbQILYOM/Zn ip8WkYII2UZ9jMN0gXDJqwA4lTyKvRmdVOsVnFtLDmhTeWqng07FcrttXw93+akUmc2Y /ZqHST/1C641hgMzC+UXSj9g0n2tXPUxFhuEWnoPjIogWqOf58ou6zTucjyOSs65Ebiz VUHxvqfq6v+p8maKDm5avDZIkrf9bZza46vNDlxAK0lJ3JcbS56vPoVT2SaDQhZ1ertj sIhA== X-Gm-Message-State: APjAAAVh07pr+Kln74q+w7FcSgq8DgJfHPVs0i2leUY+8SFaTzrcMvEb vfEEZG8HPhAQN+3BWHMpthLs0Ut6 X-Google-Smtp-Source: APXvYqw0LyhPM8+eeyXviLlXsplUlQcgHrl8V0Y8JGJyd4WunN1EmOkAmJle/YLcfyeFlyEv8QSfDA== X-Received: by 2002:a1c:1d15:: with SMTP id d21mr18708245wmd.5.1571138739571; Tue, 15 Oct 2019 04:25:39 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc08937.dynamic.kabel-deutschland.de. [188.192.137.55]) by smtp.gmail.com with ESMTPSA id y3sm4364637wmg.2.2019.10.15.04.25.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Oct 2019 04:25:38 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Oct 2019 13:17:34 +0200 Message-Id: <20191015111737.14246-6-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191015111737.14246-1-andreas.rheinhardt@gmail.com> References: <20191015111737.14246-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 6/9] 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" Contains renaming of variables (e.g. mkv_write_cues() contained variables called tracknum that actually contain the index of a track in s->streams and not the track number (which can differ in case an explicit dash track number is set)). Signed-off-by: Andreas Rheinhardt --- libavformat/matroskaenc.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 0d21ab055a..9df3f929d7 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -80,7 +80,7 @@ typedef struct mkv_cuepoint { uint64_t pts; int stream_idx; int tracknum; - int64_t cluster_pos; ///< file offset of the cluster containing the block + int64_t cluster_pos; ///< offset of the cluster containing the block relative to the segment int64_t relative_pos; ///< relative offset from the position of the cluster containing the block int64_t duration; ///< duration of the block according to time base } mkv_cuepoint; @@ -584,11 +584,12 @@ static int64_t mkv_write_cues(AVFormatContext *s, mkv_cues *cues, mkv_track *tra for (j = 0; j < num_tracks; j++) tracks[j].has_cue = 0; for (j = 0; j < cues->num_entries - i && entry[j].pts == pts; j++) { - int tracknum = entry[j].stream_idx; - av_assert0(tracknum>=0 && tracknumstreams[tracknum]->codecpar->codec_type != AVMEDIA_TYPE_SUBTITLE) + int idx = entry[j].stream_idx; + + av_assert0(idx >= 0 && idx < num_tracks); + if (tracks[idx].has_cue && s->streams[idx]->codecpar->codec_type != AVMEDIA_TYPE_SUBTITLE) continue; - tracks[tracknum].has_cue = 1; + tracks[idx].has_cue = 1; ctp_nb ++; } @@ -600,11 +601,11 @@ static int64_t mkv_write_cues(AVFormatContext *s, mkv_cues *cues, mkv_track *tra for (j = 0; j < num_tracks; j++) tracks[j].has_cue = 0; for (j = 0; j < cues->num_entries - i && entry[j].pts == pts; j++) { - int tracknum = entry[j].stream_idx; + int idx = entry[j].stream_idx; - if (tracks[tracknum].has_cue && s->streams[tracknum]->codecpar->codec_type != AVMEDIA_TYPE_SUBTITLE) + if (tracks[idx].has_cue && s->streams[idx]->codecpar->codec_type != AVMEDIA_TYPE_SUBTITLE) continue; - tracks[tracknum].has_cue = 1; + tracks[idx].has_cue = 1; track_positions = start_ebml_master(dyn_cp, MATROSKA_ID_CUETRACKPOSITION, MAX_CUETRACKPOS_SIZE); put_ebml_uint(dyn_cp, MATROSKA_ID_CUETRACK , entry[j].tracknum ); put_ebml_uint(dyn_cp, MATROSKA_ID_CUECLUSTERPOSITION , entry[j].cluster_pos); @@ -2102,13 +2103,13 @@ static void mkv_write_block(AVFormatContext *s, AVIOContext *pb, mkv_track *track = &mkv->tracks[pkt->stream_index]; uint8_t *data = NULL, *side_data = NULL; int offset = 0, size = pkt->size, side_data_size = 0; - int64_t ts = mkv->tracks[pkt->stream_index].write_dts ? pkt->dts : pkt->pts; + int64_t ts = track->write_dts ? pkt->dts : pkt->pts; uint64_t additional_id = 0; int64_t discard_padding = 0; uint8_t track_number = (mkv->is_dash ? mkv->dash_track_number : (pkt->stream_index + 1)); ebml_master block_group, block_additions, block_more; - ts += mkv->tracks[pkt->stream_index].ts_offset; + ts += track->ts_offset; /* The following string is identical to the one in mkv_write_vtt_blocks * so that only one copy needs to exist in binaries. */ @@ -2364,21 +2365,21 @@ static int mkv_check_new_extra_data(AVFormatContext *s, AVPacket *pkt) static int mkv_write_packet_internal(AVFormatContext *s, AVPacket *pkt, int add_cue) { MatroskaMuxContext *mkv = s->priv_data; - AVIOContext *pb = s->pb; + AVIOContext *pb; AVCodecParameters *par = s->streams[pkt->stream_index]->codecpar; mkv_track *track = &mkv->tracks[pkt->stream_index]; int keyframe = !!(pkt->flags & AV_PKT_FLAG_KEY); int duration = pkt->duration; int ret; - int64_t ts = mkv->tracks[pkt->stream_index].write_dts ? pkt->dts : pkt->pts; + int64_t ts = track->write_dts ? pkt->dts : pkt->pts; int64_t relative_packet_pos; - int dash_tracknum = mkv->is_dash ? mkv->dash_track_number : pkt->stream_index + 1; + int tracknum = mkv->is_dash ? mkv->dash_track_number : pkt->stream_index + 1; if (ts == AV_NOPTS_VALUE) { av_log(s, AV_LOG_ERROR, "Can't write packet with unknown timestamp\n"); return AVERROR(EINVAL); } - ts += mkv->tracks[pkt->stream_index].ts_offset; + ts += track->ts_offset; if (mkv->cluster_pos != -1) { int64_t cluster_time = ts - mkv->cluster_pts; @@ -2407,7 +2408,7 @@ static int mkv_write_packet_internal(AVFormatContext *s, AVPacket *pkt, int add_ if (par->codec_type != AVMEDIA_TYPE_SUBTITLE) { mkv_write_block(s, pb, MATROSKA_ID_SIMPLEBLOCK, pkt, keyframe); if ((s->pb->seekable & AVIO_SEEKABLE_NORMAL) && (par->codec_type == AVMEDIA_TYPE_VIDEO && keyframe || add_cue)) { - ret = mkv_add_cuepoint(mkv->cues, pkt->stream_index, dash_tracknum, ts, mkv->cluster_pos, relative_packet_pos, -1); + ret = mkv_add_cuepoint(mkv->cues, pkt->stream_index, tracknum, ts, mkv->cluster_pos, relative_packet_pos, -1); if (ret < 0) return ret; } } else { @@ -2432,15 +2433,14 @@ FF_ENABLE_DEPRECATION_WARNINGS } if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { - ret = mkv_add_cuepoint(mkv->cues, pkt->stream_index, dash_tracknum, ts, + ret = mkv_add_cuepoint(mkv->cues, pkt->stream_index, tracknum, ts, mkv->cluster_pos, relative_packet_pos, duration); if (ret < 0) return ret; } } - mkv->duration = FFMAX(mkv->duration, ts + duration); - + mkv->duration = FFMAX(mkv->duration, ts + duration); track->duration = FFMAX(track->duration, ts + duration); return 0;