From patchwork Wed Nov 6 02:49:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 16120 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 D376C447DB1 for ; Wed, 6 Nov 2019 04:50:49 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BD81568B041; Wed, 6 Nov 2019 04:50:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E6E6268B03F for ; Wed, 6 Nov 2019 04:50:48 +0200 (EET) Received: by mail-wm1-f67.google.com with SMTP id x4so1638214wmi.3 for ; Tue, 05 Nov 2019 18:50:48 -0800 (PST) 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=546wdyit/EiDqvu8q+m3oErARRattoipnNU+48MJgeM=; b=mIPwi6y7WjI5+CZkydqkoYVmArzJlDrpBNpX3tFtxx9urn1fpflWwrix98+ZUtpXfg oObdD9R8ZuAvEDBx2cm6l6vrM4C9kINxXrUBiG7qB+t+OmtbuzLLTsRXH3p+884b4a6k UmMHkdiN04MODjxP1JR2x4oTpipkLJvT+auLtGmLMQRhtWF83MmYomOT+eJVn9jUNx7u S5E/Yd+2gTrMHjXmWwwLJvnWh80QoMaw73Z1ipOxV1wXv8E7y9L6Y8arAHpe/5lz41q2 T2SEe6+WFZmxpNgHwgKCeFduQT3gUUGQwhaT3mQ/kV9k+RvGQhkduH3/Jz4ZIwhmBcqz Kllg== 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=546wdyit/EiDqvu8q+m3oErARRattoipnNU+48MJgeM=; b=OCCY0RcRJnCRC9sPZ6aHeX7DbEcB8wI0yGA3dCaUWJQIItXkYVXLjv81GWAhKMrTLl uqEXFiPEvFzzpFCUZrP/xREsys9WA7rNS+DbjoKttClVgSahXwsgbgP+Embr9CXE1USQ 6YZxqw5ZMUAAb0ognEyPO7iPIEfFPtQ6mT38RD2KleqzVQn6ZDp2ktNsg2oyHLPjfjEI VNSXTimIVvhIngFrZyv6OWOOtz9xM1UIriLw3Cdovg12jc+P+VqV4Sr5iMsqmLzaC3dg dZo7X63Bzoq0J5pNcG/O+O9vM9Mxj0/hOzUs4RIfoAwJlLrUNKVhNZKY3I3qDFP+pRHK VN4w== X-Gm-Message-State: APjAAAXCt+JIFfTFKYLJZmiPtFDrXuILeJONxs547oBpBBgkNLv1CEe5 cVcFkj2Ne2mLE/s9yN4XIRNhayNk X-Google-Smtp-Source: APXvYqw5hNNh08TR3aSneujrX2+D70Pb/xBAp8ef62MuHRPZCrLKTdLj7/UqFYnMGN2J9gKNR5gYSw== X-Received: by 2002:a7b:cb89:: with SMTP id m9mr291536wmi.141.1573008648315; Tue, 05 Nov 2019 18:50:48 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08937.dynamic.kabel-deutschland.de. [188.192.137.55]) by smtp.gmail.com with ESMTPSA id l13sm1281710wmh.12.2019.11.05.18.50.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Nov 2019 18:50:47 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 6 Nov 2019 03:49:10 +0100 Message-Id: <20191106024922.19228-11-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191106024922.19228-1-andreas.rheinhardt@gmail.com> References: <20191106024922.19228-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 11/23] 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 TrackNum 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 --- libavformat/matroskaenc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 1377891e96..aacd602221 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -108,9 +108,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; @@ -2057,7 +2057,7 @@ static void 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); @@ -2122,7 +2122,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);