From patchwork Thu Jul 16 14:54:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marvin Scholz X-Patchwork-Id: 21110 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:80ca:0:0:0:0:0 with SMTP id c10csp1306495ybm; Thu, 16 Jul 2020 08:25:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxbZ62qiAQqcGm0sSsOUsJ4wqxSrR178o/X1dn+A982uy3koIWaN9k19c66DTFfvHcgGMtx X-Received: by 2002:a5d:6651:: with SMTP id f17mr5983355wrw.29.1594913118761; Thu, 16 Jul 2020 08:25:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594913118; cv=none; d=google.com; s=arc-20160816; b=b071dkcV08GNEHL9kiCOtrqdsRM4cjNbivV16ViI/rkTpwDVS/XSvAzIhxTXcV4nRx F9IX3zyuq9yQw7aM3rGjQ3DwG1vX0tn4xn7SDYyWmNULgoFe4jhJA/fN0GiEsDonJ78x RQRBjLptKkuU/yK1qjrJBA6XbKDPIqeNuH0k7UO2dIdaHoR+HGt8CuX2lqjifXQGiB6l VY5aTE3lQglHzbwt7F09eexCYq27HOU0pElUk+3WPESk/uwXktzbTNX5l566ZiJ5AyOo xEfYMUW3Y6eWtljTaoGOM8iBzpffSAI9C1bV3R97RBsJHU4xGtRWv3hbTZLG+PRZEPKV Rukw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc: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=s84zmQq6lQCLGNK1b4Oh7uGfAXMrFl6AZb41Wl56TQ0=; b=sGhwWzELPhVMT84EXra6L45V+OOQKVXnwMP6OMA7/9WDGyXCykwpnNG/jKUCW8qsTQ dcTJT8HrrKHdy/38FeDHZ9g+IogAQS2irTpRnR1zh1V1x4Bn+s+0AjOP1CSYNmuVxfkR NOorTFjYZ+ggJasue2ZWTx0R1HazTwwOD7YVW/BA/fOJ9nhN+ImumstFwn8DbMyCWdCk 7FPqyBUgq9YNNAKhLqFftWxjVANLcJMDqERLUSB443kaBPA46ppE5kovnzohecoOhCsW HvcQclkEd3MqZmTAr0hlM48QBhO3U67qwJUb7kZR2YgRxViSrxsKVu7kcSW3M9FQcnhE D+YQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=u4Ic5h+U; 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 y190si5092051wmd.18.2020.07.16.08.25.17; Thu, 16 Jul 2020 08:25:18 -0700 (PDT) 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=20161025 header.b=u4Ic5h+U; 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 3040A688151; Thu, 16 Jul 2020 18:25:12 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f67.google.com (mail-ed1-f67.google.com [209.85.208.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 95D19688151 for ; Thu, 16 Jul 2020 18:25:05 +0300 (EEST) Received: by mail-ed1-f67.google.com with SMTP id bm28so5063942edb.2 for ; Thu, 16 Jul 2020 08:25:05 -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:mime-version :content-transfer-encoding; bh=uZowfcmxlpplQf9FSUoYuw9CMFNjtOWpijzp/EJFJpQ=; b=u4Ic5h+UAmCsTKuydriGxy1Q8bw4uDeMeuRXU6tWiOCysd23TbVU3QHDpRJqDfWemn QMB6CccpZCpukYwq0Jh137Py13IfHKgFigCblpZq3gz40uqhd9wlzHvbHOMXZnOKwYu4 C0B1wSkA01e38TUb4r9noRdSCPWaNTkt4DLFzoqpBYgekKYDjVTNdM+salVTnqxXXYsW dKemfy8hFKM7kTj/BI1S8cXm5KceGoY31YzNspkZ9mVL6IeEWVViFCz7peYVX/ohdC0C 4ivH6ltfJm+QJxNz1T/E1fkgkLVBEhWue+gWVlefPIzKm5KnpdsXLeFJoxBktFNH53lr Guvg== 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:mime-version :content-transfer-encoding; bh=uZowfcmxlpplQf9FSUoYuw9CMFNjtOWpijzp/EJFJpQ=; b=ervCFIbnEL/7wHvp5XZr66aHKB+e8lKyti4+OJf+/E0Ycn48BSoFPtvu1W7uDLvE5r IkeZKPwXQUAhRrC8SScL+ow63hvxS6DaXaNGxQhkH6mbhAp/DVTwwLHkFosNk2wb+WGV PVi892EHgWtSYkfYIDq5TfpQPJOFovjVI87tK4lwQnQ/f5mdL6uPhNE7ofVuDqfPY7tV e5wGGh/xFZaqbiyAck8jeFTZsKjc/yC1dX+uHeztsiiouFVkS9qZxowbLR0ke6IxLV6T u+D9Z1sMngVe8+MDTKg/zUh1xEa3wSLME7soPLD7UBkxojRbB3/nODH11ksVkp7e35xt ur1Q== X-Gm-Message-State: AOAM531QyYYgZVIfN5CGsKLW+zun1cSt7Gel+zRJC7lY1co/xVarNBRh sJ/iT79l1993+UKOjZHIUT5qy6rh X-Received: by 2002:a17:906:2287:: with SMTP id p7mr4156744eja.537.1594911300493; Thu, 16 Jul 2020 07:55:00 -0700 (PDT) Received: from ePirats-MBP.fritz.box (p54ad3d4b.dip0.t-ipconnect.de. [84.173.61.75]) by smtp.gmail.com with ESMTPSA id fi29sm5179112ejb.83.2020.07.16.07.54.59 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 Jul 2020 07:54:59 -0700 (PDT) From: Marvin Scholz To: ffmpeg-devel@ffmpeg.org Date: Thu, 16 Jul 2020 16:54:50 +0200 Message-Id: <20200716145450.66648-1-epirat07@gmail.com> X-Mailer: git-send-email 2.24.3 (Apple Git-128) MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] adtsenc: Add ability to specify MPEG ID 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: Marvin Scholz Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: mk7YkRrCO9pA Content-Length: 2541 --- This stills lacks docs, as I first want an overall opinion on this approach or possible other solutions I should choose for this. --- libavformat/adtsenc.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libavformat/adtsenc.c b/libavformat/adtsenc.c index 9e285752eb..601d923526 100644 --- a/libavformat/adtsenc.c +++ b/libavformat/adtsenc.c @@ -40,6 +40,7 @@ typedef struct ADTSContext { int pce_size; int apetag; int id3v2tag; + int mpeg_id; uint8_t pce_data[MAX_PCE_SIZE]; } ADTSContext; @@ -136,7 +137,7 @@ static int adts_write_frame_header(ADTSContext *ctx, /* adts_fixed_header */ put_bits(&pb, 12, 0xfff); /* syncword */ - put_bits(&pb, 1, 0); /* ID */ + put_bits(&pb, 1, ctx->mpeg_id); /* ID */ put_bits(&pb, 2, 0); /* layer */ put_bits(&pb, 1, 1); /* protection_absent */ put_bits(&pb, 2, ctx->objecttype); /* profile_objecttype */ @@ -214,6 +215,9 @@ static int adts_write_trailer(AVFormatContext *s) static const AVOption options[] = { { "write_id3v2", "Enable ID3v2 tag writing", OFFSET(id3v2tag), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, ENC}, { "write_apetag", "Enable APE tag writing", OFFSET(apetag), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, ENC}, + { "mpeg_id", "Select which MPEG ID to write", OFFSET(mpeg_id), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, ENC, "mpeg_id"}, + { "MPEG4", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = 0}, 0, 0, ENC, "mpeg_id" }, + { "MPEG2", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = 1}, 0, 0, ENC, "mpeg_id" }, { NULL }, };