From patchwork Sun Apr 5 15:59:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 18669 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 BEE1244BE3F for ; Sun, 5 Apr 2020 19:00:12 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9E27368B3F8; Sun, 5 Apr 2020 19:00:12 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8F7D568B227 for ; Sun, 5 Apr 2020 19:00:07 +0300 (EEST) Received: by mail-wr1-f48.google.com with SMTP id v5so3460711wrp.12 for ; Sun, 05 Apr 2020 09:00:07 -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=sFAAitrFy2iqtFoD921Yd3NfHGz7eupy4O/VhWRT18Y=; b=JqFP0GxFe4jCqpk/SpNo0oTIl5x6mGYC58q8RJkDr2p+v135q1h3Tk71uJu4UpeKom WM7/4vVA3BEMrT8oWc6oCq4+B+9j8O2oJ4Dk5DYapYxYu0f0lXX8tJG9RgVN/3F1mmBR vQq4e0tDz/pX9qbyv3Zzbpy9xmx7oR6fslv1u8G/8ZSqtgCrsUqyuej5C7P9nn/9X9vX e8tIvPwC6r3MnRe5tNGlOGF3hLQV77O7TVcfXjHqdMUg6BwUGAN8emsQZUIFdTnniA40 K6eBKUIxgUkXVcDLhBjkWYjFMK70vIsOwdHrfkrgWKhousLyDGAshjjfcXTr3zHK+zHA PYbw== 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=sFAAitrFy2iqtFoD921Yd3NfHGz7eupy4O/VhWRT18Y=; b=Am52QPyNSdddbtHXcaZLJKwbNEBTtS5mLntFsxFf/Zew4QJA2OHezjMFhdvdooeiBU DZ4x0RceSyODkQtA+fPAED5SDLREOq9KTKrxE8cxRNu6DPBSvIvyP+/n0R4/PXA4M+zc ur0Nz4C3x86oVB1n76Ix9gxKlnZA/kxgXOJJRlA/mAQ6nDasowUYwDomy7vfr03UlmPm PEPxPsJmqEch+w25mCp6AM4Gk372YErCLObWV3M5A9FVf/ySPqR2EPDJewlk83MI+LU7 20+3zfoohW1mQNloEYKO9L3fV42hPXvkEf9ZUqBQiN8TGJ9Xn0Q6TTJMRo97v7cFZ8Bf wIcw== X-Gm-Message-State: AGi0PuYrCgn3nNT+S+frbjinYtg0SjOJH0yBnIWbYpD1xKvwzXyzPikh u8ZWLJtEa17h7QEnpbr5AAROanoJ X-Google-Smtp-Source: APiQypJpZyziXgcCOcDp1hOyYCYb51S/9BE0MwcHqr6bIoxx1EC72pcf/GUBQJbRQdBAwr19YTafmg== X-Received: by 2002:a5d:6a46:: with SMTP id t6mr18822534wrw.93.1586102406789; Sun, 05 Apr 2020 09:00:06 -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.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Apr 2020 09:00:05 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 5 Apr 2020 17:59:17 +0200 Message-Id: <20200405155928.9323-10-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 09/20] avformat/matroskaenc: Increase max supported tracks 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" Our code can actually write tracks with a TrackNumber in the range of 1..127 without problems. Variable length integers that only have '1' bits after the marker bit are not reserved when being used to encode the TrackNumber in a Block (there is no equivalent of unknown length elements here). Signed-off-by: Andreas Rheinhardt --- Don't know yet if this or a version that completely removes said limit will get in. libavformat/matroskaenc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index ab1c28ae02..f313b93e2a 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -107,9 +107,9 @@ typedef struct mkv_track { #define MODE_MATROSKAv2 0x01 #define MODE_WEBM 0x02 -/** Maximum number of tracks allowed in a Matroska file (with track numbers in - * range 1 to 126 (inclusive) */ -#define MAX_TRACKS 126 +/** Maximum number of tracks supported by this muxer (with track numbers + * in the range 1 to 127 (inclusive)) */ +#define MAX_TRACKS 127 typedef struct MatroskaMuxContext { const AVClass *class; @@ -2034,7 +2034,7 @@ static int mkv_write_block(AVFormatContext *s, AVIOContext *pb, put_ebml_id(pb, blockid); put_ebml_num(pb, size + 4, 0); - // this assumes stream_index is less than 126 + // this assumes track_number is <= 127 avio_w8(pb, 0x80 | track_number); avio_wb16(pb, ts - mkv->cluster_pts); avio_w8(pb, (blockid == MATROSKA_ID_SIMPLEBLOCK && keyframe) ? (1 << 7) : 0); @@ -2102,7 +2102,7 @@ static int mkv_write_vtt_blocks(AVFormatContext *s, AVIOContext *pb, AVPacket *p put_ebml_id(pb, MATROSKA_ID_BLOCK); put_ebml_num(pb, size + 4, 0); - avio_w8(pb, 0x80 | track->track_num); // this assumes track_num is less than 126 + avio_w8(pb, 0x80 | track->track_num); // this assumes track_num <= 127 avio_wb16(pb, ts - mkv->cluster_pts); avio_w8(pb, flags); avio_printf(pb, "%.*s\n%.*s\n%.*s", id_size, id, settings_size, settings, pkt->size, pkt->data);