From patchwork Thu Dec 7 23:41:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 44976 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1225:b0:181:818d:5e7f with SMTP id v37csp956216pzf; Thu, 7 Dec 2023 15:41:35 -0800 (PST) X-Google-Smtp-Source: AGHT+IF1+ZcP+vQKkHF4UkY58Y9ZOb4JmcVo28xtk7/NXwHI2gzd5NkyK8q+fHWIPSPd8/q0tSWn X-Received: by 2002:aa7:dac9:0:b0:54b:346d:cf00 with SMTP id x9-20020aa7dac9000000b0054b346dcf00mr1902eds.18.1701992494879; Thu, 07 Dec 2023 15:41:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701992494; cv=none; d=google.com; s=arc-20160816; b=TJUMJ+Z35V5QsZ8tjesL1JcI5idfzLYSeHcQp/FSSl3qDuiEIkIDPl2t+KVqFZnOBG iPc/y30yShfAPLbF04WFSupMI89KzK5liPBW34K6kBWqdrTp4QuXjw9zuYAWd8ep94op ZyG9Z7TKK7WwFmHiBJlMzfDPBMLmAX001QM5Cm2445sCYcKhXvq7LfkGFjecoXNFF1jw wJPWbV3qoI/pJFAKxPc7d5eW1CZExnWj+AAZn1jj4InOOuNgNzcv/fdUfPlidby5Tk7I D6bxPYsVDzfmSPH9Az5AS9n6m/CEPwXAYoRRdHreE0mWxyVMy6IXz9oEo+58Nl2Uakzc WydA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=7j4lqimqTbnwiD40NAgy6aFz3MDI9scI1vqIGeO0Hww=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=bhWIgTCf1VNp/USkyNaBhsCUReXNXORMrxrdH5WDzlHEeGvAwUZzXmHJLyKOx+luJW z3A5l/6ywE1eMEvwefKqefNccBvRl3xrAnTGAqx84rqVkl7hSdu69JsGBP6gS7QhJyGr lO4LhiQFFSA5xUlBbNita84lfWJUGEcSeKBZpaaYT1V71njewSupgfpNh0s97FQ4rIIu ngJUiWNfymdgmUx3ah2ulusNP6Q2e9uYQbehI18HreZVPfs49PUfQtf5Pww8oqEFSVCH mL4ftul1RgYBzTr2X+wFkM1O5d7lQ2qANMJeWPUkf/iiFKdC1SjfOOW9TMsqCKP0gUOH ZQlA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=mzXAT8cc; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id f8-20020a056402354800b0054c9f0a205fsi284110edd.197.2023.12.07.15.41.33; Thu, 07 Dec 2023 15:41:34 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=mzXAT8cc; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AE93068CFD7; Fri, 8 Dec 2023 01:41:29 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f169.google.com (mail-pg1-f169.google.com [209.85.215.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0F52868CCF6 for ; Fri, 8 Dec 2023 01:41:23 +0200 (EET) Received: by mail-pg1-f169.google.com with SMTP id 41be03b00d2f7-5c67c1ad5beso2006201a12.1 for ; Thu, 07 Dec 2023 15:41:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701992480; x=1702597280; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=jOm8fU3mZ31nZm/oJHc7cQ+65Rf7/H42E5r9hYtE6rY=; b=mzXAT8cc+toG7OgyyaDE479vP7TZMTjV+PGWs3Wj2t80+tf7sQi0l+agRQta2ZFska 5mimekOswVOCGv4felHOmUjFqoPvIpSY/ICCOy8rVYJZY7qGHWHPlch4Vt1XqboNWIcN hZPbvogKBp1p8Q7CTPdzAwjldcogSlYkz5VHZ2f1A8SrbrxmzSs+sFQqKe8j/YMjf3Yt ha9/n0OlLIDubwmxRCeTJewFoaDEc8TIDzVtKO461ote3J1IUW+s8zLfjEUJ4weA1K2d 3U96nDFFqrJD/IhwJmFqSuX4n3C3i0sVDwPwFo2DEcPAY9pfw4V54o0iOGjLsOAAjbBT BZCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701992480; x=1702597280; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=jOm8fU3mZ31nZm/oJHc7cQ+65Rf7/H42E5r9hYtE6rY=; b=d3dCZ0dj1GsY6uIWqB1RRNPqIzQ/Q01Red7YESNe4jOlB+RO0zGi070YiK3Re0S4M2 gksLX9q7kUw4N2bwKoMQn0tRGoOZfONvJy4VF0BAiHLzwVTkwAy+bGeZLpcK4+Byl5fk 15gtb3qtv0SfxQv4If5GSKgEiBBNC9FEkDKJXFshzGuSheRY8PuseoOqr/eMcr5bqY68 Q9h/lZyMMXo0rfldy3pN6lAErlqHOTFsBk/58jtAwO7cjfwJHWwbFLBRYFXqinEjIzU9 cVnBWB5YJC8PFfiF2P56+we8xUj3KUX8yn/sQpw8qgmk75wD51+IFVnIwvh1II8qrVBL pkYQ== X-Gm-Message-State: AOJu0Yzsk4Wd5ngiI+5NlURLQOnLU94KnZ7e4K42bIbhaSz9VCseD6ek 8perJ+/9vXdtzCIHYiplgSoDa2QtKoM= X-Received: by 2002:a17:90a:318b:b0:286:5965:ffef with SMTP id j11-20020a17090a318b00b002865965ffefmr35499pjb.4.1701992480143; Thu, 07 Dec 2023 15:41:20 -0800 (PST) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id sc16-20020a17090b511000b002887e7ca212sm482168pjb.18.2023.12.07.15.41.18 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Dec 2023 15:41:19 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 7 Dec 2023 20:41:22 -0300 Message-ID: <20231207234122.4079-1-jamrial@gmail.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avformat/movenc: rename MOVMuxContext.nb_streams to nb_tracks X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: qLnWYHF+/NSM It's more appropiate given what it keeps a count of. Signed-off-by: James Almer --- libavformat/movenc.c | 82 ++++++++++++++++++++++---------------------- libavformat/movenc.h | 2 +- 2 files changed, 42 insertions(+), 42 deletions(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index e39f1ac987..a902e4d4e7 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -3836,7 +3836,7 @@ static int mov_write_iods_tag(AVIOContext *pb, MOVMuxContext *mov) int64_t pos = avio_tell(pb); int audio_profile = mov->iods_audio_profile; int video_profile = mov->iods_video_profile; - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { if (mov->tracks[i].entry > 0 || mov->flags & FF_MOV_FLAG_EMPTY_MOOV) { has_audio |= mov->tracks[i].par->codec_type == AVMEDIA_TYPE_AUDIO; has_video |= mov->tracks[i].par->codec_type == AVMEDIA_TYPE_VIDEO; @@ -3878,7 +3878,7 @@ static int mov_write_mvex_tag(AVIOContext *pb, MOVMuxContext *mov) int i; avio_wb32(pb, 0x0); /* size */ ffio_wfourcc(pb, "mvex"); - for (i = 0; i < mov->nb_streams; i++) + for (i = 0; i < mov->nb_tracks; i++) mov_write_trex_tag(pb, &mov->tracks[i]); return update_size(pb, pos); } @@ -3890,7 +3890,7 @@ static int mov_write_mvhd_tag(AVIOContext *pb, MOVMuxContext *mov) int version; int timescale; - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { if (mov->tracks[i].entry > 0 && mov->tracks[i].timescale) { int64_t max_track_len_temp = av_rescale_rnd( calc_pts_duration(mov, &mov->tracks[i]), @@ -4568,14 +4568,14 @@ static int mov_setup_track_ids(MOVMuxContext *mov, AVFormatContext *s) next_generated_track_id = s->streams[i]->id; } - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { if (mov->tracks[i].entry <= 0 && !(mov->flags & FF_MOV_FLAG_FRAGMENT)) continue; mov->tracks[i].track_id = i >= s->nb_streams ? ++next_generated_track_id : s->streams[i]->id; } } else { - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { if (mov->tracks[i].entry <= 0 && !(mov->flags & FF_MOV_FLAG_FRAGMENT)) continue; @@ -4598,7 +4598,7 @@ static int mov_write_moov_tag(AVIOContext *pb, MOVMuxContext *mov, mov_setup_track_ids(mov, s); - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { if (mov->tracks[i].entry <= 0 && !(mov->flags & FF_MOV_FLAG_FRAGMENT)) continue; @@ -4613,7 +4613,7 @@ static int mov_write_moov_tag(AVIOContext *pb, MOVMuxContext *mov, mov->tracks[i].tref_tag = MKTAG('c','h','a','p'); mov->tracks[i].tref_id = mov->tracks[mov->chapter_track].track_id; } - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { MOVTrack *track = &mov->tracks[i]; if (track->tag == MKTAG('r','t','p',' ')) { track->tref_tag = MKTAG('h','i','n','t'); @@ -4624,14 +4624,14 @@ static int mov_write_moov_tag(AVIOContext *pb, MOVMuxContext *mov, AV_PKT_DATA_FALLBACK_TRACK ); if (sd && sd->size == sizeof(int)) { int *fallback = (int *)sd->data; - if (*fallback >= 0 && *fallback < mov->nb_streams) { + if (*fallback >= 0 && *fallback < mov->nb_tracks) { track->tref_tag = MKTAG('f','a','l','l'); track->tref_id = mov->tracks[*fallback].track_id; } } } } - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { if (mov->tracks[i].tag == MKTAG('t','m','c','d')) { int src_trk = mov->tracks[i].src_track; mov->tracks[src_trk].tref_tag = mov->tracks[i].tag; @@ -4646,7 +4646,7 @@ static int mov_write_moov_tag(AVIOContext *pb, MOVMuxContext *mov, mov_write_mvhd_tag(pb, mov); if (mov->mode != MODE_MOV && mov->mode != MODE_AVIF && !mov->iods_skip) mov_write_iods_tag(pb, mov); - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { if (mov->tracks[i].entry > 0 || mov->flags & FF_MOV_FLAG_FRAGMENT || mov->mode == MODE_AVIF) { int ret = mov_write_trak_tag(s, pb, mov, &(mov->tracks[i]), i < s->nb_streams ? s->streams[i] : NULL); @@ -4710,7 +4710,7 @@ static int mov_write_isml_manifest(AVIOContext *pb, MOVMuxContext *mov, AVFormat mov_setup_track_ids(mov, s); - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { MOVTrack *track = &mov->tracks[i]; struct mpeg4_bit_rate_values bit_rates = calculate_mpeg4_bit_rates(track); @@ -5017,7 +5017,7 @@ static int mov_add_tfra_entries(AVIOContext *pb, MOVMuxContext *mov, int tracks, int size) { int i; - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { MOVTrack *track = &mov->tracks[i]; MOVFragmentInfo *info; if ((tracks >= 0 && i != tracks) || !track->entry) @@ -5055,7 +5055,7 @@ static int mov_add_tfra_entries(AVIOContext *pb, MOVMuxContext *mov, int tracks, static void mov_prune_frag_info(MOVMuxContext *mov, int tracks, int max) { int i; - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { MOVTrack *track = &mov->tracks[i]; if ((tracks >= 0 && i != tracks) || !track->entry) continue; @@ -5128,7 +5128,7 @@ static int mov_write_moof_tag_internal(AVIOContext *pb, MOVMuxContext *mov, mov->first_trun = 1; mov_write_mfhd_tag(pb, mov); - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { MOVTrack *track = &mov->tracks[i]; if (tracks >= 0 && i != tracks) continue; @@ -5222,7 +5222,7 @@ static int mov_write_sidx_tags(AVIOContext *pb, MOVMuxContext *mov, } else { avio_buf = pb; } - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { MOVTrack *track = &mov->tracks[i]; if (tracks >= 0 && i != tracks) continue; @@ -5363,7 +5363,7 @@ static int mov_write_mfra_tag(AVIOContext *pb, MOVMuxContext *mov) if (mov->flags & FF_MOV_FLAG_ISML) goto done_mfra; - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { MOVTrack *track = &mov->tracks[i]; if (track->nb_frag_info) mov_write_tfra_tag(mfra_pb, track); @@ -5868,7 +5868,7 @@ static int mov_flush_fragment(AVFormatContext *s, int force) } } - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { MOVTrack *track = &mov->tracks[i]; if (track->entry <= 1) continue; @@ -5900,15 +5900,15 @@ static int mov_flush_fragment(AVFormatContext *s, int force) uint8_t *buf; int buf_size, moov_size; - for (i = 0; i < mov->nb_streams; i++) + for (i = 0; i < mov->nb_tracks; i++) if (!mov->tracks[i].entry && !is_cover_image(mov->tracks[i].st)) break; /* Don't write the initial moov unless all tracks have data */ - if (i < mov->nb_streams && !force) + if (i < mov->nb_tracks && !force) return 0; moov_size = get_moov_size(s); - for (i = 0; i < mov->nb_streams; i++) + for (i = 0; i < mov->nb_tracks; i++) mov->tracks[i].data_offset = pos + moov_size + 8; avio_write_marker(s->pb, AV_NOPTS_VALUE, AVIO_DATA_MARKER_HEADER); @@ -5936,7 +5936,7 @@ static int mov_flush_fragment(AVFormatContext *s, int force) mov->moov_written = 1; mov->mdat_size = 0; - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { mov->tracks[i].entry = 0; mov->tracks[i].end_reliable = 0; } @@ -5945,7 +5945,7 @@ static int mov_flush_fragment(AVFormatContext *s, int force) } if (mov->frag_interleave) { - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { MOVTrack *track = &mov->tracks[i]; int ret; if ((ret = mov_flush_fragment_interleaving(s, track)) < 0) @@ -5957,7 +5957,7 @@ static int mov_flush_fragment(AVFormatContext *s, int force) mdat_size = avio_tell(mov->mdat_buf); } - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { MOVTrack *track = &mov->tracks[i]; if (mov->flags & FF_MOV_FLAG_SEPARATE_MOOF || mov->frag_interleave) track->data_offset = 0; @@ -5986,7 +5986,7 @@ static int mov_flush_fragment(AVFormatContext *s, int force) av_rescale(mov->tracks[first_track].cluster[0].dts, AV_TIME_BASE, mov->tracks[first_track].timescale), (has_video ? starts_with_key : mov->tracks[first_track].cluster[0].flags & MOV_SYNC_SAMPLE) ? AVIO_DATA_MARKER_SYNC_POINT : AVIO_DATA_MARKER_BOUNDARY_POINT); - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { MOVTrack *track = &mov->tracks[i]; int buf_size, write_moof = 1, moof_tracks = -1; uint8_t *buf; @@ -6198,7 +6198,7 @@ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt) if (par->codec_id == AV_CODEC_ID_H264 && trk->vos_len > 0 && *(uint8_t *)trk->vos_data != 1 && !TAG_IS_AVCI(trk->tag)) { /* from x264 or from bytestream H.264 */ /* NAL reformatting needed */ - if (trk->hint_track >= 0 && trk->hint_track < mov->nb_streams) { + if (trk->hint_track >= 0 && trk->hint_track < mov->nb_tracks) { ret = ff_avc_parse_nal_units_buf(pkt->data, &reformatted_data, &size); if (ret < 0) @@ -6218,7 +6218,7 @@ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt) } else if (par->codec_id == AV_CODEC_ID_HEVC && trk->vos_len > 6 && (AV_RB24(trk->vos_data) == 1 || AV_RB32(trk->vos_data) == 1)) { /* extradata is Annex B, assume the bitstream is too and convert it */ - if (trk->hint_track >= 0 && trk->hint_track < mov->nb_streams) { + if (trk->hint_track >= 0 && trk->hint_track < mov->nb_tracks) { ret = ff_hevc_annexb2mp4_buf(pkt->data, &reformatted_data, &size, 0, NULL); if (ret < 0) @@ -6236,7 +6236,7 @@ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt) } } } else if (par->codec_id == AV_CODEC_ID_AV1) { - if (trk->hint_track >= 0 && trk->hint_track < mov->nb_streams) { + if (trk->hint_track >= 0 && trk->hint_track < mov->nb_tracks) { ret = ff_av1_filter_obus_buf(pkt->data, &reformatted_data, &size, &offset); if (ret < 0) @@ -6419,7 +6419,7 @@ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt) trk->sample_count += samples_in_chunk; mov->mdat_size += size; - if (trk->hint_track >= 0 && trk->hint_track < mov->nb_streams) + if (trk->hint_track >= 0 && trk->hint_track < mov->nb_tracks) ff_mov_add_hinted_packet(s, pkt, trk->hint_track, trk->entry, reformatted_data ? reformatted_data + offset : NULL, size); @@ -6594,7 +6594,7 @@ static int mov_write_packet(AVFormatContext *s, AVPacket *pkt) * 3) See mov_write_trailer for how the final end sample is * handled. */ - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { MOVTrack *trk = &mov->tracks[i]; int ret; @@ -6869,7 +6869,7 @@ static void mov_free(AVFormatContext *s) avcodec_parameters_free(&mov->tracks[mov->chapter_track].par); } - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { MOVTrack *const track = &mov->tracks[i]; if (track->tag == MKTAG('r','t','p',' ')) @@ -7101,14 +7101,14 @@ static int mov_init(AVFormatContext *s) s->streams[0]->disposition |= AV_DISPOSITION_DEFAULT; } - mov->nb_streams = s->nb_streams; + mov->nb_tracks = s->nb_streams; if (mov->mode & (MODE_MP4|MODE_MOV|MODE_IPOD) && s->nb_chapters) - mov->chapter_track = mov->nb_streams++; + mov->chapter_track = mov->nb_tracks++; if (mov->flags & FF_MOV_FLAG_RTP_HINT) { for (i = 0; i < s->nb_streams; i++) if (rtp_hinting_needed(s->streams[i])) - mov->nb_streams++; + mov->nb_tracks++; } if (mov->write_btrt < 0) { @@ -7145,12 +7145,12 @@ static int mov_init(AVFormatContext *s) } } - mov->nb_streams += mov->nb_meta_tmcd; + mov->nb_tracks += mov->nb_meta_tmcd; } // Reserve an extra stream for chapters for the case where chapters // are written in the trailer - mov->tracks = av_calloc(mov->nb_streams + 1, sizeof(*mov->tracks)); + mov->tracks = av_calloc(mov->nb_tracks + 1, sizeof(*mov->tracks)); if (!mov->tracks) return AVERROR(ENOMEM); @@ -7571,7 +7571,7 @@ static int compute_moov_size(AVFormatContext *s) if (moov_size < 0) return moov_size; - for (i = 0; i < mov->nb_streams; i++) + for (i = 0; i < mov->nb_tracks; i++) mov->tracks[i].data_offset += moov_size; moov_size2 = get_moov_size(s); @@ -7581,7 +7581,7 @@ static int compute_moov_size(AVFormatContext *s) /* if the size changed, we just switched from stco to co64 and need to * update the offsets */ if (moov_size2 != moov_size) - for (i = 0; i < mov->nb_streams; i++) + for (i = 0; i < mov->nb_tracks; i++) mov->tracks[i].data_offset += moov_size2 - moov_size; return moov_size2; @@ -7596,7 +7596,7 @@ static int compute_sidx_size(AVFormatContext *s) if (sidx_size < 0) return sidx_size; - for (i = 0; i < mov->nb_streams; i++) + for (i = 0; i < mov->nb_tracks; i++) mov->tracks[i].data_offset += sidx_size; return sidx_size; @@ -7645,7 +7645,7 @@ static int mov_write_trailer(AVFormatContext *s) * Before actually writing the trailer, make sure that there are no * dangling subtitles, that need a terminating sample. */ - for (i = 0; i < mov->nb_streams; i++) { + for (i = 0; i < mov->nb_tracks; i++) { MOVTrack *trk = &mov->tracks[i]; if (trk->par->codec_id == AV_CODEC_ID_MOV_TEXT && !trk->last_sample_is_subtitle_end) { @@ -7664,7 +7664,7 @@ static int mov_write_trailer(AVFormatContext *s) // when we are not doing fragments. if (!mov->chapter_track && !(mov->flags & FF_MOV_FLAG_FRAGMENT)) { if (mov->mode & (MODE_MP4|MODE_MOV|MODE_IPOD) && s->nb_chapters) { - mov->chapter_track = mov->nb_streams++; + mov->chapter_track = mov->nb_tracks++; if ((res = mov_create_chapter_track(s, mov->chapter_track)) < 0) return res; } @@ -7716,7 +7716,7 @@ static int mov_write_trailer(AVFormatContext *s) res = 0; } else { mov_auto_flush_fragment(s, 1); - for (i = 0; i < mov->nb_streams; i++) + for (i = 0; i < mov->nb_tracks; i++) mov->tracks[i].data_offset = 0; if (mov->flags & FF_MOV_FLAG_GLOBAL_SIDX) { int64_t end; diff --git a/libavformat/movenc.h b/libavformat/movenc.h index e85d83abdb..60363198c9 100644 --- a/libavformat/movenc.h +++ b/libavformat/movenc.h @@ -188,7 +188,7 @@ typedef struct MOVMuxContext { const AVClass *av_class; int mode; int64_t time; - int nb_streams; + int nb_tracks; int nb_meta_tmcd; ///< number of new created tmcd track based on metadata (aka not data copy) int chapter_track; ///< qt chapter track number int64_t mdat_pos;