From patchwork Thu Feb 18 03:41:46 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25726 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 A54E044BC26 for ; Thu, 18 Feb 2021 05:42:31 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7CAA5688188; Thu, 18 Feb 2021 05:42:31 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BBEA4687FFC for ; Thu, 18 Feb 2021 05:42:24 +0200 (EET) Received: by mail-wm1-f50.google.com with SMTP id a132so1601883wmc.0 for ; Wed, 17 Feb 2021 19:42:24 -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:reply-to:mime-version :content-transfer-encoding; bh=bxTkcOexucAV4RjcjnhZgGkcu11nOqDAYV8yMiqWIuE=; b=kMWAh95jyC3L4N4RiurcD831CzmC/M3uXIHD+azWsJ5pFPmlmiX9BxwjhID9VsGQLA wEy4LAXzw2zz5Lre/LZrFLECL6GuVrYA9kVlw9cJvqO54sW9toF9MFpebPE159wzpqOu +O24C10sXHbdi88+H3hCttqo1SC7zq+iOF/npEmcqJGFHT+tTgvtvEOSdsbw5q5Q3vgz lMTW4sPvyiiwM765TtKh3Reb9Q2cdhozJnyNtT1FhCQvqe+eXeFrw5pafI/NXL5z/OVG YH5jjpvKGNlBKbFiaYJrbEBCws6jVmbnDQC3rhmJk7qpANPsvZmzlTPL/yYqRMx02CfN 98RA== 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:reply-to :mime-version:content-transfer-encoding; bh=bxTkcOexucAV4RjcjnhZgGkcu11nOqDAYV8yMiqWIuE=; b=jZNehleSF9PupX19N179Saxj2Bl0rYdBGJvcNuUuN9cxpB8emMMQI8mXrQ3YdpOq31 QxAXcYBTPHqXC/wQ1e07MpgzZKxQxw71KgGQMPbPgs93GSTLGHp6X9/XBZCOLcjXiKLC H/alRA3WBjJYtQIKJusdG6zfCqWLJqezBcmmTWTna9yNruEb7LA9wEewLBTW0GAoDL50 N4/en6Ptbje0hKCEfiMXZqpMfPP0EqSxN6i+kqTrkMhw51113O5o7P3JwC09+oIZo6SL uWh+mD23wYBkf8VtM/tkHlux3vheqeLPmN353lKWukIz4F9iUA6A+npzgp7EklHCw27Z VqZQ== X-Gm-Message-State: AOAM531qg8UvHFTa0GkiePpFgrOg4OGKaAOnSNQsqTtRE6cUu8wy27hF ksu/jAW2bK5zxX8ybxLK34LhS+24vOg= X-Google-Smtp-Source: ABdhPJyqLL/QkNjpF5XDbK64ngUFeelWrCI5auCRQp8Nip/3TtOJxc8dIYAhpXsTqjjFZRKUUKABnw== X-Received: by 2002:a1c:770e:: with SMTP id t14mr1668731wmi.45.1613619744056; Wed, 17 Feb 2021 19:42:24 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:23 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:41:46 +0100 Message-Id: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 01/29] configure, libavcodec/Makefile: Remove spurious CAF demuxer dependencies 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" Forgotten in 604fbb3132e88727e496c96c92cfe02748c25a1a. Signed-off-by: Andreas Rheinhardt --- configure | 2 +- libavcodec/Makefile | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/configure b/configure index a76c2ec4ae..c28a7403db 100755 --- a/configure +++ b/configure @@ -3308,7 +3308,7 @@ asf_stream_muxer_select="asf_muxer" av1_demuxer_select="av1_frame_merge_bsf av1_parser" avi_demuxer_select="iso_media riffdec exif" avi_muxer_select="riffenc" -caf_demuxer_select="iso_media riffdec" +caf_demuxer_select="iso_media" caf_muxer_select="iso_media" dash_muxer_select="mp4_muxer" dash_demuxer_deps="libxml2" diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 3341801b97..f43e717714 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -974,7 +974,6 @@ OBJS-$(CONFIG_VP8_QSV_HWACCEL) += qsvdec.o OBJS-$(CONFIG_ISO_MEDIA) += mpeg4audio.o mpegaudiodata.o OBJS-$(CONFIG_ADTS_MUXER) += mpeg4audio.o -OBJS-$(CONFIG_CAF_DEMUXER) += ac3tab.o OBJS-$(CONFIG_CODEC2_DEMUXER) += codec2utils.o OBJS-$(CONFIG_CODEC2_MUXER) += codec2utils.o OBJS-$(CONFIG_CODEC2RAW_DEMUXER) += codec2utils.o From patchwork Thu Feb 18 03:41:47 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25727 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 05FAF44BC26 for ; Thu, 18 Feb 2021 05:42:52 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C8BE56898E4; Thu, 18 Feb 2021 05:42:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9906E6880FF for ; Thu, 18 Feb 2021 05:42:45 +0200 (EET) Received: by mail-wr1-f50.google.com with SMTP id u14so1168967wri.3 for ; Wed, 17 Feb 2021 19:42:45 -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:reply-to :mime-version:content-transfer-encoding; bh=XkxO6udkhc0xeLftVKmin2+dl+P8DLwUR6G7FkdNbJE=; b=lurGQfmABB9NA0LTXsSRz5GJqN2Css0ugM/bnyV6F2WIZaws4mEdkPDqIZ72fvyvhh GvmPBRfgrYE7HDUGqmObe1+vgtYOJ+cTrD3UByUe6FdhSEeKQofzRahcIljOT8Yoe4Ab W3Xj5b29pvOW7oYHhz9V2wuLLp1RoJjYb+LwFTUywOUhyHz/Rzw817ZR94z1fTXunp3h 3hzEarRESJjWxiuXCtJ5cIXtm0HbTTk1tM4IMuS2q+S2FWyw3lQpMUI70nFpEc0cDFJY vZxM1ACIZNFk3/3dw1e5v6nTiYuMqAMmsyZgnLITDOtdJR9hY3ksrSdUx+caCGL69GdD wHJA== 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:reply-to:mime-version:content-transfer-encoding; bh=XkxO6udkhc0xeLftVKmin2+dl+P8DLwUR6G7FkdNbJE=; b=jUoAsyCQRfIeveLD4XTIbBUF4hg8OHeWPMrlceMFXfExOdT80l3QfO3TDrJPqKrDKi hMadpbAdT8TZN90NlXP4XOItfZHDq5bq8bAe4eXJPReE7HzP5L6F1e9+UYDqbsAY+24+ LJGLQ5bUdNQ2yM8U/Yr3kxrfJEN5Pvp7Wb2s+nxsasCUXUCKOoyr8WOQpP5Hp/TN7QN9 AX4mMw7jOya6qa0vyh2MMT1nGXzIXxOyxdH8wWU/t9ANEV5VIcwB6gO6N2HEnDpvNdcc N+LkvlUJC5S82PpPqF5t0VBDU4c4RsWWsP8G/kcE/nlQ+NFJ6pu7O+E5rxBuHIg0NQgT naKQ== X-Gm-Message-State: AOAM532pytI8VpNwKjA9ejFejnKFCD4SLY2FmW6GkWk2+53eVCx8iP0V +Dpq8dJLDkVUuFX07/s6V1j6Ebf8Jxk= X-Google-Smtp-Source: ABdhPJzHyMeN93b1jdhSAgmY2jsVY5W+qVtQsLY1vK2DDMxwJXkaZRtiK/YQupar5PGNEF2pYMDgoA== X-Received: by 2002:a5d:6404:: with SMTP id z4mr2105624wru.103.1613619765025; Wed, 17 Feb 2021 19:42:45 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:44 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:41:47 +0100 Message-Id: <20210218034214.2090223-2-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 02/29] avcodec/Makefile: Remove spurios dcaenc dependency 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" It does not need dca.c. Signed-off-by: Andreas Rheinhardt --- libavcodec/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/Makefile b/libavcodec/Makefile index f43e717714..92a3dcf0fc 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -276,7 +276,7 @@ OBJS-$(CONFIG_CYUV_DECODER) += cyuv.o OBJS-$(CONFIG_DCA_DECODER) += dcadec.o dca.o dcadata.o dcahuff.o \ dca_core.o dca_exss.o dca_xll.o dca_lbr.o \ dcadsp.o dcadct.o synth_filter.o -OBJS-$(CONFIG_DCA_ENCODER) += dcaenc.o dca.o dcadata.o dcahuff.o \ +OBJS-$(CONFIG_DCA_ENCODER) += dcaenc.o dcadata.o dcahuff.o \ dcaadpcm.o OBJS-$(CONFIG_DDS_DECODER) += dds.o OBJS-$(CONFIG_DERF_DPCM_DECODER) += dpcm.o From patchwork Thu Feb 18 03:41:48 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25728 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 0FF1444BC26 for ; Thu, 18 Feb 2021 05:42:53 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E1377689A15; Thu, 18 Feb 2021 05:42:52 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 52AE96880FF for ; Thu, 18 Feb 2021 05:42:46 +0200 (EET) Received: by mail-wm1-f48.google.com with SMTP id a207so1659113wmd.1 for ; Wed, 17 Feb 2021 19:42:46 -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:reply-to :mime-version:content-transfer-encoding; bh=HnH/xgJCZwSskMUZ1VORzTJsZVIXMymWDMJyp+gtB1E=; b=FWnTGE4s+czshr7l0xHZJmmdYQuvf9klJSCP6Q8Y7LudFActhxHpzFsaAiKlfXz4gM Ljm1v6UJKjfsHisfcTCyH6IbCoS46+tLBnuLUxBlxPhuSGX2RJ3mvflCtOrSbRpxjBKe xrUQREEfuYcI3VhTImUd8MjGs/fB+uL5inTOzSRVr37P3kU9utDF71SW+t9Aq+QgR9hX ZdaRN0P18cd5mXXmXYTH9dp/g98H0rPVzoXQFBwUQqg0v+G16tM8lu0eAs/2Sy/IIsOU SqRZKysJDWlTiuDJnsOZs7zwk8zDlH834Jkhc2qN+b/XAmfPDxV5DZfyHY1qIFk+A8uy 8Jqw== 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:reply-to:mime-version:content-transfer-encoding; bh=HnH/xgJCZwSskMUZ1VORzTJsZVIXMymWDMJyp+gtB1E=; b=W0xkwZMqlZWINO0wV9EApZ9BOGEtVeS62VI6IwdJTd1lMRYHU/V9U1J5YRHcb2UnO2 Q5OnJZUnV9HuGn+38feMKDLnDv98aNP37FjF62SYQ3FeD97sXBM1lluVXet221L+ScBj vGn4n4SJ1hJt0In12jcpFiXAI0FbIkMKDIxMd5XO0NwgFJzufFxg+d4YGNZZojYteQaw UzQZxU/YgWi8XZTK2XtiIfRCtgnr3t1t3m80V55Xi6eYrfQx222XMmwFvAahSwi9OMv4 6Q/oU0MfQK50LE2mn5xEiQxQzAZ6QU7M/2Tl7X8KUNNhyuXdoeGcfyOaEAcLQgshnnRj 9RCA== X-Gm-Message-State: AOAM531o+kBaJVg8TAqKGuS4swd3EZ+rz6rkvC1/4VLe8wjWLCDA6y1a OWUG2juYfIvPAMeXnJ1DJMW/E5gqzOM= X-Google-Smtp-Source: ABdhPJwBVggq3NbZh0vjbkWQwQfjuh2UioWyAcD4ES/mFRUPWUSCygMKYO+8sneFjDbVfP8/bjOHJA== X-Received: by 2002:a1c:a791:: with SMTP id q139mr1617555wme.20.1613619765692; Wed, 17 Feb 2021 19:42:45 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:45 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:41:48 +0100 Message-Id: <20210218034214.2090223-3-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 03/29] avcodec/avrndec: Remove unnecessary headers 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" The avrn decoder does not use any internals of the MJPEG decoder since e0031ca29a471c4a540ba2e01b3f81af03ef757b. Signed-off-by: Andreas Rheinhardt --- libavcodec/avrndec.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/libavcodec/avrndec.c b/libavcodec/avrndec.c index d85e3c2000..9380d86885 100644 --- a/libavcodec/avrndec.c +++ b/libavcodec/avrndec.c @@ -21,8 +21,6 @@ #include "avcodec.h" #include "internal.h" -#include "mjpeg.h" -#include "mjpegdec.h" #include "libavutil/imgutils.h" typedef struct { From patchwork Thu Feb 18 03:41:49 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25730 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 1353844BC26 for ; Thu, 18 Feb 2021 05:42:56 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D9C60689E91; Thu, 18 Feb 2021 05:42:55 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1C2F26891F1 for ; Thu, 18 Feb 2021 05:42:47 +0200 (EET) Received: by mail-wm1-f53.google.com with SMTP id v62so1615804wmg.4 for ; Wed, 17 Feb 2021 19:42:47 -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:reply-to :mime-version:content-transfer-encoding; bh=hA+0vFPcEErc1XxnW20j/3NHPJfRHAd7w8wmNqLynQg=; b=P8FWPYBDE0anZlep8e+b/RB4d3wZX2haOdYA4hVdvVvwpRHKOAnW0Bkl3PzgT3K2QT Uk+GxiBPfdX9Hga3upZWXBJCACYbdt2ueFRnGt9VbL83/dztF98cmb9/bOxTCkGHT5Ac 9A3LRW0ATvL45mWj9ZSllryL0ibeDW9tKiCB1AU9x0BajBhBxX9apiuVqknmO2z5r9s8 qVBtVjJEeZ/+/ru5UUI713MuUiWiSGk6JsncankjZPLy1dq8+Av5ET9qneGHN3mLLV9r 4HVCSA0LeHUi268U0/xqr8+5xeXCipfSl5qjsfCBw8g+/Xpy1ex+l+XMflrEnv62//im B+fA== 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:reply-to:mime-version:content-transfer-encoding; bh=hA+0vFPcEErc1XxnW20j/3NHPJfRHAd7w8wmNqLynQg=; b=UlOQCUw8X5v07XvBzGPTo78+jgveG1nXd2figO4UQEdIfpRZr3brrlB+KjKHcsZw7C KOxPKMBVlTsd/lej8v1d+5ijjrbTK8iK4wbtXk3PX3TyjG1W9zix4SKuv5G+ow6qnzyh Y+L4QUW3jeAalVQZ39LTKh5wrwpRQIcW+HgBMisx24QbrsR4m9DxY5dl4tl+NxYmmstC NBqN1KMFSa568wlf6HiA6wlVm2sc1J4S/VpkG0C5P6CSaD2VlXId3VFxKm3Y6qWbNd1R jKvPJtzDp6q7R4cSjlaFKxsnfm5a43YJ6xuGtIs23a4s5smrsd2195NBzSat5YEJ6CVU 9bUQ== X-Gm-Message-State: AOAM533m0OMS3Ft9ZbBDj0+TdXlTLK+6irLhTE6axp/MWEJCCde1PMXK icPnBNmKnsMFhWRNEF2BaGDn0SqUpUQ= X-Google-Smtp-Source: ABdhPJwIJRjozgQv8B6esWBkULfBbgDs0XUMO3iO127V48b9Iy/NkWSZqOFC7c2dc1irCppbShYxMA== X-Received: by 2002:a1c:720d:: with SMTP id n13mr1592604wmc.103.1613619766425; Wed, 17 Feb 2021 19:42:46 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:46 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:41:49 +0100 Message-Id: <20210218034214.2090223-4-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 04/29] configure, libavcodec/Makefile: Fix avrn dependencies 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" The avrn decoder actually only needs one thing: The MJPEG decoder. Instead the Makefile made it compile mjpegdec and configure required some of the prerequisites of the MJPEG decoder (exif and jpegtables). Even if all the prerequisites of the MJPEG decoder were required, it would still not make the MJPEG decoder usable, because for that the MJPEG decoder needs to be in the list of codecs in codec_list.c. Signed-off-by: Andreas Rheinhardt --- The avrn decoder like several other decoders uses avcodec_find_decoder to get the MJPEG decoder; is there actually a reason not to just use avcodec_alloc_context3(&ff_mjpeg_decoder)? configure | 2 +- libavcodec/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configure b/configure index c28a7403db..21139b9170 100755 --- a/configure +++ b/configure @@ -2688,7 +2688,7 @@ atrac3p_decoder_select="mdct sinewin" atrac3pal_decoder_select="mdct sinewin" atrac9_decoder_select="mdct" av1_decoder_select="cbs_av1" -avrn_decoder_select="exif jpegtables" +avrn_decoder_select="mjpeg_decoder" bink_decoder_select="blockdsp hpeldsp" binkaudio_dct_decoder_select="mdct rdft dct sinewin wma_freqs" binkaudio_rdft_decoder_select="mdct rdft sinewin wma_freqs" diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 92a3dcf0fc..4125355e37 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -231,7 +231,7 @@ OBJS-$(CONFIG_AURA_DECODER) += cyuv.o OBJS-$(CONFIG_AURA2_DECODER) += aura.o OBJS-$(CONFIG_AV1_DECODER) += av1dec.o OBJS-$(CONFIG_AV1_CUVID_DECODER) += cuviddec.o -OBJS-$(CONFIG_AVRN_DECODER) += avrndec.o mjpegdec.o +OBJS-$(CONFIG_AVRN_DECODER) += avrndec.o OBJS-$(CONFIG_AVRP_DECODER) += r210dec.o OBJS-$(CONFIG_AVRP_ENCODER) += r210enc.o OBJS-$(CONFIG_AVS_DECODER) += avs.o From patchwork Thu Feb 18 03:41:50 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25731 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 073A244BC26 for ; Thu, 18 Feb 2021 05:42:57 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E37B36883B3; Thu, 18 Feb 2021 05:42:56 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DD4386897C8 for ; Thu, 18 Feb 2021 05:42:47 +0200 (EET) Received: by mail-wr1-f41.google.com with SMTP id n8so1123136wrm.10 for ; Wed, 17 Feb 2021 19:42:47 -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:reply-to :mime-version:content-transfer-encoding; bh=v8wnBwVK8s4NSFT4z90bHMfQzHgDHPFoTDWD/xNJx0Q=; b=OkC2FE0kVreTYgraw55xHHJuKU+VzJPEAiPDL3fCHqq+l2PuxUW+OAUiQm9pFgkp/I hurlgpSsIY3tX6ZDbqEmARTaDkKdTwwQF00bnkX5TG/5Q0yK5hb1x04umk2pPWAyBn3a MXPlrTsUvNX9dt6nJRfy6q9uQtG7oJrU0Tx7kYqEWLmoYO77uk6m82Cpp92vL+HmSkYL lmxJA+NgIW3VkcuMPspXc9forVgWBRHwKg9ja6Okiwvhp3GwucjaLc58a08wDo7o7ldv cuEArqKiajiPl3AhhTLNrohbk6H82oM6oDi+OzaOz4xRZMvP2yFKcFqS5aeW59+E7Y17 B0Gg== 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:reply-to:mime-version:content-transfer-encoding; bh=v8wnBwVK8s4NSFT4z90bHMfQzHgDHPFoTDWD/xNJx0Q=; b=gKvQ+G8uUVDjgUjwDzieQjTusalEDZbmAFmwJOaNAGXhrGNsBiHs6/bRHeUk7e4N2d cD//G9KCJQERvxwOXEHHgyuWeQk8gZIJ74rtyPp/8VDQMMndt2xuHoErTLxZ6vqP6gjU Lr37PRSjyTdhSEyDpP7HNM/DHI2ccHkHcP3UcDcWvhVE7aN0NT+B066WSqa3MscwrBHb HPV+V4pp2teNo8z5m2ga7wxS/0BlAP+Sy5SOnsey2DjXa9KoURuYG/9KvgU4JHpQylEn CCPM/wRAj1NCy24eH16RAyJUwsTJI7sEH0rZN/mfodqSYZEMpq1V/ze7jKurFqMf14T4 dAQg== X-Gm-Message-State: AOAM533/UfOQULIQoHStTQrDLV8BKIHdRhbVoemm0mPFrSmuDWpC0gqF f5VFRELNBGBBhaj4I7VPPLpLwoUt8SQ= X-Google-Smtp-Source: ABdhPJzpf98pMd9k3EcDTcqcPZP+yIf6XaD3njbjLBfdfq03ObkyU1YJFWn+1lmx4ivIgfbtaJFkQQ== X-Received: by 2002:a5d:4e0e:: with SMTP id p14mr2117323wrt.130.1613619767209; Wed, 17 Feb 2021 19:42:47 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:46 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:41:50 +0100 Message-Id: <20210218034214.2090223-5-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 05/29] avcodec/Makefile: Remove redundant mjpegdec dependency from tiff decoder 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" The MJPEG decoder is already activated by configure whenever the tiff decoder is selected; ergo it is unnecessary to add a dependency in the Makefile. Signed-off-by: Andreas Rheinhardt --- libavcodec/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 4125355e37..332a9bc766 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -657,7 +657,7 @@ OBJS-$(CONFIG_TARGA_ENCODER) += targaenc.o rle.o OBJS-$(CONFIG_TARGA_Y216_DECODER) += targa_y216dec.o OBJS-$(CONFIG_TDSC_DECODER) += tdsc.o OBJS-$(CONFIG_TIERTEXSEQVIDEO_DECODER) += tiertexseqv.o -OBJS-$(CONFIG_TIFF_DECODER) += tiff.o lzw.o faxcompr.o tiff_data.o tiff_common.o mjpegdec.o +OBJS-$(CONFIG_TIFF_DECODER) += tiff.o lzw.o faxcompr.o tiff_data.o tiff_common.o OBJS-$(CONFIG_TIFF_ENCODER) += tiffenc.o rle.o lzwenc.o tiff_data.o OBJS-$(CONFIG_TMV_DECODER) += tmv.o cga_data.o OBJS-$(CONFIG_TRUEHD_DECODER) += mlpdec.o mlpdsp.o From patchwork Thu Feb 18 03:41:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25733 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 4347744BC26 for ; Thu, 18 Feb 2021 05:42:59 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 29BA7689D8E; Thu, 18 Feb 2021 05:42:59 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CD838689995 for ; Thu, 18 Feb 2021 05:42:48 +0200 (EET) Received: by mail-wm1-f53.google.com with SMTP id x4so1636028wmi.3 for ; Wed, 17 Feb 2021 19:42: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:reply-to :mime-version:content-transfer-encoding; bh=shzC+kMty582NXx0Sf9jz2CJ6HmaAaotpvZ4s1/5uyo=; b=OkqGpFjcK3tiX83S6a6d3njs+wUElQO22XtO41dHuSj5x+O8Yo+jPSiOjhvP6NtKC1 ipsA/wzuIhZ4iHOLTQmq5OjzXN56Ci+IPOdu6CRVmq4SjO//6sfh/ZpC2SzTCG1mUD6K 3HcGn0pODJU/2OFow9lDmj3JhrWTL/zNHP51APRud+hDSmMDwmgWkmYN4VynnWLbLIkp qVs3KGIJENF9x51nUCG4aO5ij2EaUrC4s1dHpJ8aH/YWeBxUfiZ6DE3s3qQy84aUn3W3 aEKci6BVAOrxpnpwGLDYf9vFDU07/xo8N5XSl3zJVm3MrhrVni40ZwtKiYY5R9QqxwiV +eaw== 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:reply-to:mime-version:content-transfer-encoding; bh=shzC+kMty582NXx0Sf9jz2CJ6HmaAaotpvZ4s1/5uyo=; b=Gm8FI38oW2NYYvhV4z0WVlsEZNe1q8fCa35Jz/klFLyX6gDS6j2tQz9DoRaipn8KKt 02lKv3rjVvoajcSNEfXT5rDNHIhH8pt4uzE0IcfEGtGMbfrKFEZxfBo6soXf7iP/8NCc zhcDexh0BjTnzPfD3cmnB7JCzudf6vyL1nIdw2cgH/o6cLt0MI45T3rrmV78omkuBsny mn2J3m44ALAZVawBEFQkTBaQVcytk5+Iuk8hLIGpzYaaWJHdisrxpR9/YA0TEFxoVxUL 4SVyxLIUKZEODMAeBZ9Fmh9Y4Bb46I4ULj5u8ydMNRyk3xhKdRYWS8sFcownTH/zBtMD 7t3g== X-Gm-Message-State: AOAM532svlR3+6J06imAm+eb3UXbJiN3lzilIrZJnIFfAT3loHsgTn+p JuelY+PwwusnUDrN4oBQ4J3ePBGdVrQ= X-Google-Smtp-Source: ABdhPJwwMotyjWEaDOEfI/PdyY/9u4yCvKu+z3ThGC/BRGWTuZtGbqCWKy71wHOyAJNDg0xhZb/Vtg== X-Received: by 2002:a05:600c:3546:: with SMTP id i6mr1661754wmq.24.1613619767969; Wed, 17 Feb 2021 19:42:47 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:47 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:41:51 +0100 Message-Id: <20210218034214.2090223-6-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 06/29] avcodec/g2meet, mjpegdec: Factor out common VLC initialization code 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" While just at it, remove the nb_codes parameter: It is redundant (the number of codes is implicitly contained in the array containing how many entries of a specific size there are) and for this reason it might even be wrong, so it is better to check what is actually used instead. Signed-off-by: Andreas Rheinhardt --- libavcodec/Makefile | 4 +-- libavcodec/g2meet.c | 38 ++++++------------------ libavcodec/mjpegdec.c | 48 +++++------------------------- libavcodec/mjpegdec.h | 2 ++ libavcodec/mjpegdec_common.c | 57 ++++++++++++++++++++++++++++++++++++ 5 files changed, 77 insertions(+), 72 deletions(-) create mode 100644 libavcodec/mjpegdec_common.c diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 332a9bc766..c427de78be 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -341,7 +341,7 @@ OBJS-$(CONFIG_FMVC_DECODER) += fmvc.o OBJS-$(CONFIG_FOURXM_DECODER) += 4xm.o OBJS-$(CONFIG_FRAPS_DECODER) += fraps.o OBJS-$(CONFIG_FRWU_DECODER) += frwu.o -OBJS-$(CONFIG_G2M_DECODER) += g2meet.o elsdec.o +OBJS-$(CONFIG_G2M_DECODER) += g2meet.o elsdec.o mjpegdec_common.o OBJS-$(CONFIG_G723_1_DECODER) += g723_1dec.o g723_1.o \ acelp_vectors.o celp_filters.o celp_math.o OBJS-$(CONFIG_G723_1_ENCODER) += g723_1enc.o g723_1.o \ @@ -450,7 +450,7 @@ OBJS-$(CONFIG_METASOUND_DECODER) += metasound.o metasound_data.o \ twinvq.o OBJS-$(CONFIG_MICRODVD_DECODER) += microdvddec.o ass.o OBJS-$(CONFIG_MIMIC_DECODER) += mimic.o -OBJS-$(CONFIG_MJPEG_DECODER) += mjpegdec.o +OBJS-$(CONFIG_MJPEG_DECODER) += mjpegdec.o mjpegdec_common.o OBJS-$(CONFIG_MJPEG_QSV_DECODER) += qsvdec.o OBJS-$(CONFIG_MJPEG_ENCODER) += mjpegenc.o mjpegenc_common.o \ mjpegenc_huffman.o diff --git a/libavcodec/g2meet.c b/libavcodec/g2meet.c index 70dc8c72a3..68b1b9dc74 100644 --- a/libavcodec/g2meet.c +++ b/libavcodec/g2meet.c @@ -41,6 +41,7 @@ #include "internal.h" #include "jpegtables.h" #include "mjpeg.h" +#include "mjpegdec.h" #define EPIC_PIX_STACK_SIZE 1024 #define EPIC_PIX_STACK_MAX (EPIC_PIX_STACK_SIZE - 1) @@ -159,45 +160,24 @@ typedef struct G2MContext { int cursor_hot_x, cursor_hot_y; } G2MContext; -static av_cold int build_vlc(VLC *vlc, const uint8_t *bits_table, - const uint8_t *val_table, int nb_codes, - int is_ac) -{ - uint8_t huff_size[256] = { 0 }; - uint16_t huff_code[256]; - uint16_t huff_sym[256]; - int i; - - ff_mjpeg_build_huffman_codes(huff_size, huff_code, bits_table, val_table); - - for (i = 0; i < 256; i++) - huff_sym[i] = i + 16 * is_ac; - - if (is_ac) - huff_sym[0] = 16 * 256; - - return ff_init_vlc_sparse(vlc, 9, nb_codes, huff_size, 1, 1, - huff_code, 2, 2, huff_sym, 2, 2, 0); -} - static av_cold int jpg_init(AVCodecContext *avctx, JPGContext *c) { int ret; - ret = build_vlc(&c->dc_vlc[0], avpriv_mjpeg_bits_dc_luminance, - avpriv_mjpeg_val_dc, 12, 0); + ret = ff_mjpeg_build_vlc(&c->dc_vlc[0], avpriv_mjpeg_bits_dc_luminance, + avpriv_mjpeg_val_dc, 0, avctx); if (ret) return ret; - ret = build_vlc(&c->dc_vlc[1], avpriv_mjpeg_bits_dc_chrominance, - avpriv_mjpeg_val_dc, 12, 0); + ret = ff_mjpeg_build_vlc(&c->dc_vlc[1], avpriv_mjpeg_bits_dc_chrominance, + avpriv_mjpeg_val_dc, 0, avctx); if (ret) return ret; - ret = build_vlc(&c->ac_vlc[0], avpriv_mjpeg_bits_ac_luminance, - avpriv_mjpeg_val_ac_luminance, 251, 1); + ret = ff_mjpeg_build_vlc(&c->ac_vlc[0], avpriv_mjpeg_bits_ac_luminance, + avpriv_mjpeg_val_ac_luminance, 1, avctx); if (ret) return ret; - ret = build_vlc(&c->ac_vlc[1], avpriv_mjpeg_bits_ac_chrominance, - avpriv_mjpeg_val_ac_chrominance, 251, 1); + ret = ff_mjpeg_build_vlc(&c->ac_vlc[1], avpriv_mjpeg_bits_ac_chrominance, + avpriv_mjpeg_val_ac_chrominance, 1, avctx); if (ret) return ret; diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index fa4c607085..f35bbeedee 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -51,40 +51,6 @@ #include "bytestream.h" -static void build_huffman_codes(uint8_t *huff_size, const uint8_t *bits_table) -{ - for (int i = 1, k = 0; i <= 16; i++) { - int nb = bits_table[i]; - for (int j = 0; j < nb;j++) { - huff_size[k] = i; - k++; - } - } -} - -static int build_vlc(VLC *vlc, const uint8_t *bits_table, - const uint8_t *val_table, int nb_codes, - int is_ac, void *logctx) -{ - uint8_t huff_size[256]; - uint16_t huff_sym[256]; - int i; - - av_assert0(nb_codes <= 256); - - build_huffman_codes(huff_size, bits_table); - - for (i = 0; i < nb_codes; i++) { - huff_sym[i] = val_table[i] + 16 * is_ac; - - if (is_ac && !val_table[i]) - huff_sym[i] = 16 * 256; - } - - return ff_init_vlc_from_lengths(vlc, 9, nb_codes, huff_size, 1, - huff_sym, 2, 2, 0, 0, logctx); -} - static int init_default_huffman_tables(MJpegDecodeContext *s) { static const struct { @@ -110,9 +76,9 @@ static int init_default_huffman_tables(MJpegDecodeContext *s) int i, ret; for (i = 0; i < FF_ARRAY_ELEMS(ht); i++) { - ret = build_vlc(&s->vlcs[ht[i].class][ht[i].index], - ht[i].bits, ht[i].values, ht[i].length, - ht[i].class == 1, s->avctx); + ret = ff_mjpeg_build_vlc(&s->vlcs[ht[i].class][ht[i].index], + ht[i].bits, ht[i].values, + ht[i].class == 1, s->avctx); if (ret < 0) return ret; @@ -307,14 +273,14 @@ int ff_mjpeg_decode_dht(MJpegDecodeContext *s) ff_free_vlc(&s->vlcs[class][index]); av_log(s->avctx, AV_LOG_DEBUG, "class=%d index=%d nb_codes=%d\n", class, index, n); - if ((ret = build_vlc(&s->vlcs[class][index], bits_table, val_table, - n, class > 0, s->avctx)) < 0) + if ((ret = ff_mjpeg_build_vlc(&s->vlcs[class][index], bits_table, + val_table, class > 0, s->avctx)) < 0) return ret; if (class > 0) { ff_free_vlc(&s->vlcs[2][index]); - if ((ret = build_vlc(&s->vlcs[2][index], bits_table, val_table, - n, 0, s->avctx)) < 0) + if ((ret = ff_mjpeg_build_vlc(&s->vlcs[2][index], bits_table, + val_table, 0, s->avctx)) < 0) return ret; } diff --git a/libavcodec/mjpegdec.h b/libavcodec/mjpegdec.h index a824b5029c..732aeab994 100644 --- a/libavcodec/mjpegdec.h +++ b/libavcodec/mjpegdec.h @@ -161,6 +161,8 @@ typedef struct MJpegDecodeContext { void *hwaccel_picture_private; } MJpegDecodeContext; +int ff_mjpeg_build_vlc(VLC *vlc, const uint8_t *bits_table, + const uint8_t *val_table, int is_ac, void *logctx); int ff_mjpeg_decode_init(AVCodecContext *avctx); int ff_mjpeg_decode_end(AVCodecContext *avctx); int ff_mjpeg_receive_frame(AVCodecContext *avctx, AVFrame *frame); diff --git a/libavcodec/mjpegdec_common.c b/libavcodec/mjpegdec_common.c new file mode 100644 index 0000000000..701ddfec06 --- /dev/null +++ b/libavcodec/mjpegdec_common.c @@ -0,0 +1,57 @@ +/* + * MJPEG decoder VLC code + * Copyright (c) 2000, 2001 Fabrice Bellard + * Copyright (c) 2003 Alex Beregszaszi + * Copyright (c) 2003-2004 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "libavutil/avassert.h" +#include "mjpegdec.h" +#include "vlc.h" + +static int build_huffman_codes(uint8_t *huff_size, const uint8_t *bits_table) +{ + int nb_codes = 0; + for (int i = 1, j = 0; i <= 16; i++) { + nb_codes += bits_table[i]; + av_assert1(nb_codes <= 256); + for (; j < nb_codes; j++) + huff_size[j] = i; + } + return nb_codes; +} + +int ff_mjpeg_build_vlc(VLC *vlc, const uint8_t *bits_table, + const uint8_t *val_table, int is_ac, void *logctx) +{ + uint8_t huff_size[256]; + uint16_t huff_sym[256]; + int nb_codes = build_huffman_codes(huff_size, bits_table); + + for (int i = 0; i < nb_codes; i++) { + huff_sym[i] = val_table[i] + 16 * is_ac; + + if (is_ac && !val_table[i]) + huff_sym[i] = 16 * 256; + } + + return ff_init_vlc_from_lengths(vlc, 9, nb_codes, huff_size, 1, + huff_sym, 2, 2, 0, 0, logctx); +} From patchwork Thu Feb 18 03:41:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25758 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:6d42:0:0:0:0:0 with SMTP id i63csp2517880ybc; Wed, 17 Feb 2021 19:44:23 -0800 (PST) X-Google-Smtp-Source: ABdhPJzKfxjYRu5GYf74dU2JudsmakeaAQTpvgx2r7LGwDKZYPf9wDxxkyNn4qt7GBP5iooljx5w X-Received: by 2002:a17:906:28d6:: with SMTP id p22mr1995723ejd.365.1613619863797; Wed, 17 Feb 2021 19:44:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613619863; cv=none; d=google.com; s=arc-20160816; b=mmvy859T2R8i7AqcFIqg6RU5Qi8zEv5MIHJMYFQAWI4JHS+qx/s/0Nxl/ZFBxnSCYE s685O1E9kT+uAw5WDNBjaBT/xLuNzOKcqwXgVGvZ1MuotBnyTIU5UGWlDNvZiUZLbBxg VrjGrxfJqVKJpnYXZGXMUEI7d8ebX8K4C1PYDZSpusFRmqZa1y5PZ1DF625/A4HhGNp0 Dhk3rmhpv0FW8lKRTHNl6rWRrwW/CNNzZYjJe3L/CJUcy4kITw1iFZJNEp/Np26Sj1D4 LUMpe7sCiO6mRrO97Am4BCU1Y8k2m9ScU7RBXqJ6SWdKAuol+bRtcndsZJqbQnpBLmnp 6Csg== 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:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=OCvO4xFVjEwWM/D2ZrTF2vXgv/WY6pA9LKVY4crBTjM=; b=pDqTv3aJ9yKRyUFgOp3Oilf44pFCLe73Tm+gRueXI4kQBbpCoK1YYLA/CtlmolUWiO S06xXA5IZcKgPUhwwwteCHoZ1o0ekDyCQLRM77m/jImj3TaPbRSJ6TEp3LOYMxAMUpGb 2zqsj8dKh0lU20BZsiRyBq9vbCf2hHyqcJNdfD7f5mCJWoH3A7pbVD/wgpk6AFGiebtK C5y1Y7MaJW0m9oywWqDHNBFKe0kIM8h5qc5ACdfD4wB5+FW+RAre+4VpgQFLB/nLJLN5 Fd1NrjbyBGkvcYz0Z7YFXRw/Y8jiJiY15hvp77lh3gJujh0N/v2O/QzhoHyuYtRSy5SG r2rQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=c6MEoxRt; 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 bi3si2850283ejb.623.2021.02.17.19.44.23; Wed, 17 Feb 2021 19:44:23 -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=20161025 header.b=c6MEoxRt; 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 D901E68A32C; Thu, 18 Feb 2021 05:43:01 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 598B86881BD for ; Thu, 18 Feb 2021 05:42:49 +0200 (EET) Received: by mail-wr1-f41.google.com with SMTP id b3so1161307wrj.5 for ; Wed, 17 Feb 2021 19:42:49 -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:reply-to :mime-version:content-transfer-encoding; bh=bqMiSdKpwd3hVzuf7sihUsFDxXaeQcoS6qcISoN8wvc=; b=c6MEoxRtx1DYxsi5XssMhpilA0mxy/Vi6buI6gQjW5RA+eLHdX9/Gp+/5JbdYMjZF4 T/6a9828LjHjTdvnE4mwuX1CDpLRcOYwo27EZiJdNy3jU61pnw5oScy4lMO5oFEgcA74 4hc8yalv9Ei7Z3MiCKkZo6VGv81D9NWzreATZJEuYN2AB1eqZApXqqyu8hnymJGAtJFl OAtLo8aurHn8VTj81XQFRkoaZ1JpuDE+TlKjvZ3bhV3gE53Z6w8BSZqH/o733liokfgd PCKqSJe53jJvns6Ba6ftRACV8db0NC1IO9nbhtEPMZcamRdFxbs8RRI1ai5NGg6irTj7 oavA== 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:reply-to:mime-version:content-transfer-encoding; bh=bqMiSdKpwd3hVzuf7sihUsFDxXaeQcoS6qcISoN8wvc=; b=fm6GUY6KwMajie0vFdq9AWEl4T1A5+5VwFsU6bl4XL2i4BJeFrwU1yNdq9WhkE+e6e 91rBXkHbH+PHgR/aU4YwiidK9zlWq7wMG8NpgarkLu/JoeLj1+pmlb2Ag/2WWSUZRdph O5fWQRUGPycEk4DWZJOJsNqHEZzv9csm0aM+dE/SWDq4u3MZ8PuK2R0IpEVoejrOavuN 5ilEHDhJnlRI9M3aFVajc0fJDKRGvauu5jCKRETIj1z29voTWa1avJhZfuqkNLAWtciQ msjZw+5OBXnFCRcGtXVg208ExuJclRSNqtWa1SVj9ugs8JvkfCO698JE+nk0GuWtb1iA 0NNA== X-Gm-Message-State: AOAM531wZwYzqXjDiJOGjA77GExVsjjZeLFYOQ8YkRQgj9I8QJth0L1e WT0JPR0T9RO756vli12xPcRayl1ZtP8= X-Received: by 2002:adf:dcd0:: with SMTP id x16mr2149045wrm.13.1613619768701; Wed, 17 Feb 2021 19:42:48 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:48 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:41:52 +0100 Message-Id: <20210218034214.2090223-7-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 07/29] avcodec/jpegtables: Move ff_mjpeg_build_huffman_codes to mjpegenc_common 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" X-TUID: iMIPfLTJS98u Content-Length: 5301 Since g2meet.c doesn't use it any more, only encoders use it and the place for their common code is mjpegenc_common.c. Signed-off-by: Andreas Rheinhardt --- libavcodec/jpegtables.c | 21 --------------------- libavcodec/jpegtables.h | 4 ---- libavcodec/mjpegenc_common.c | 21 +++++++++++++++++++++ libavcodec/mjpegenc_common.h | 3 +++ 4 files changed, 24 insertions(+), 25 deletions(-) diff --git a/libavcodec/jpegtables.c b/libavcodec/jpegtables.c index e44bc7a22a..ef3f8dee20 100644 --- a/libavcodec/jpegtables.c +++ b/libavcodec/jpegtables.c @@ -122,24 +122,3 @@ const uint8_t avpriv_mjpeg_val_ac_chrominance[] = 0xea, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa }; - -/* isn't this function nicer than the one in the libjpeg ? */ -void ff_mjpeg_build_huffman_codes(uint8_t *huff_size, uint16_t *huff_code, - const uint8_t *bits_table, - const uint8_t *val_table) -{ - int i, j, k,nb, code, sym; - - k = 0; - code = 0; - for(i=1;i<=16;i++) { - nb = bits_table[i]; - for(j=0;j X-Patchwork-Id: 25757 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:6d42:0:0:0:0:0 with SMTP id i63csp2518038ybc; Wed, 17 Feb 2021 19:44:44 -0800 (PST) X-Google-Smtp-Source: ABdhPJw6+u1MJzuhPfeiK1tGei17fASSt9LodC0yPGgGz37AL5EW+lK+1dQ95K2NwrRbY8Q5jF2S X-Received: by 2002:aa7:c887:: with SMTP id p7mr2019937eds.28.1613619884630; Wed, 17 Feb 2021 19:44:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613619884; cv=none; d=google.com; s=arc-20160816; b=nmrrE2ieTuAClFluvaACghuUf0/aM3DLNyGWiya0GbFdLDsUqALujvaXZFXZlzkBT5 RS9EbEQqxM6nMItMkUt8atO/54wVM0Kb/EWfFwxSchZgB6+TRYYFt2MCQp7uhwB8Xmjt 81cmaOAK0w08P1vhSX4tsNp753NoGQznBqSCEKLrwXbgY3kC7voQJQLeCFNrW/3KELPI W1i6VDyG5AfiX595tKRMjTH8RnLUyOTlIGzqJfzKpBNq0mgd1ckn9mP7WkX2MjPuWkuP xPGMHph0IT/p7gRUnny1rmXVUk6T3ZNQa5fq4yt6EfwpFVH0/NqOEJtT9MY5y7/PQ0ox Sp7A== 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:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=SLFKsdIzHuIVCnfQiUmyh8HqjG5EneY0jYQnhB7w0Hg=; b=Pscd+P5b6GoS7was+YH06lnGcLbD6En3ZDo1X6rcWSNteF8WsweW1ohT7TafTa9iUY CO3OBNaqnN77kdmbF/PEJrSpMlWBrLcq2Uk4PDKtX6OjIzqWFvkRx9cAsOcGYWw+a0Jg xhFnhtn4UW7NKAaGdytSYD9Y8bhoyYv2Ye4N0n0nWXlG01Pfct5SOZpGU4fuTe1wq/ml m0j3YG8UQz9XBm7Pm1un9tv9lk1kUHPIvU025Q4kjhXv67lf8HijbnHw/5tAkcfppJfg gMWCJgfQ4m9259zmo9LbnVDYxLrrwV6mcv46BnqFx3uWAwc6kkA15wmk2ZM4cfT/CqPN Mxqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=oHiJ8qnM; 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 kj10si2953029ejc.166.2021.02.17.19.44.44; Wed, 17 Feb 2021 19:44:44 -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=20161025 header.b=oHiJ8qnM; 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 C7C7968A40E; Thu, 18 Feb 2021 05:43:03 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 58B1B689E05 for ; Thu, 18 Feb 2021 05:42:50 +0200 (EET) Received: by mail-wm1-f49.google.com with SMTP id n10so1649475wmq.0 for ; Wed, 17 Feb 2021 19:42:50 -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:reply-to :mime-version:content-transfer-encoding; bh=pisTrkYongV5PS9rYpowwHcCh1aQJnfZmOQSCBbfYf4=; b=oHiJ8qnM6xfypZWzvzGCEC45G5hjGqWrZcuPhPbWpROJr5AoeJTnJnatYEUQDwa6sd XbwUQd3CD9QEPpO/tVerKUNPZRk7uK4PmSGCN83X7HrdUc8S/kUqaRe5zCXJfb0BjWRh dt+gz1ty4J1UKtA2jS2gy+HMyC2vt6nRbUzcAy1MNXlXdAKA5c1f1AvOmnFyT0IT70bv AaUR6q96KM+rvFobrynKP1IXFz04mpENGN5f33SDY+lV/P+mo8FOZ5yw2ADALEm3Cs9k FGMQog4waaf1h148WL8SuluaIEQ/FiwxSqR1EX1YU0fng8U528Gg/U5OaFrjf9hZYgjp wRGg== 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:reply-to:mime-version:content-transfer-encoding; bh=pisTrkYongV5PS9rYpowwHcCh1aQJnfZmOQSCBbfYf4=; b=mp13/Ml/UVvTo0eYg8TbV5zD/HIEuqJ+KF0KCJuaDLSXA6+Vq5vDmi5bsLd364GAd3 BDjCkoXeYGH+2OhOFYWY/nbT10S02tccXy67vEnaJ4yCeMbz6P75zlL3q+MAyEttK9r0 tX3Fio+anPatzauIaIeB7H+9ul3168vqZjfRyCn/TSKjrw1ettQ1+LvgIlKPNwcGvCm+ hm/bqZGOvEiv0H4eromiJ+YX74OI0v8Dz/Ss5RslaX5xAsPsqSrMVjM89kN1WRYvjIx9 yBKDz5da3LR8sYWj66IA1E0POUXNgeA+JuioTeqzTCQjZ/iEdb3Tw/dT5so5HaOfviD9 sm6Q== X-Gm-Message-State: AOAM530uDlHiHX0s+C+5MSzev2QwVJgVGKHIy5vJLxV9J3B9rM6Hi5BM AcG+CZhX0M1+zarjtv0blRX4uQsFUf4= X-Received: by 2002:a1c:9a12:: with SMTP id c18mr1620899wme.146.1613619769469; Wed, 17 Feb 2021 19:42:49 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:49 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:41:53 +0100 Message-Id: <20210218034214.2090223-8-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 08/29] avcodec/mjpegenc_common: Move stuff only used by mjpegenc.c to it 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" X-TUID: A4PhjUeOUAZi Content-Length: 25800 This allows to make ff_init_uni_ac_vlc static; ff_mjpeg_encode_picture_frame has also been made static, but it could always have been made static. Signed-off-by: Andreas Rheinhardt --- libavcodec/ljpegenc.c | 2 + libavcodec/mjpegenc.c | 191 +++++++++++++++++++++++++++++++++- libavcodec/mjpegenc.h | 1 + libavcodec/mjpegenc_common.c | 194 ----------------------------------- libavcodec/mjpegenc_common.h | 5 - 5 files changed, 192 insertions(+), 201 deletions(-) diff --git a/libavcodec/ljpegenc.c b/libavcodec/ljpegenc.c index 39ce5a0089..3c68c08a3c 100644 --- a/libavcodec/ljpegenc.c +++ b/libavcodec/ljpegenc.c @@ -32,12 +32,14 @@ #include "libavutil/frame.h" #include "libavutil/mem.h" +#include "libavutil/opt.h" #include "libavutil/pixdesc.h" #include "avcodec.h" #include "idctdsp.h" #include "internal.h" #include "jpegtables.h" +#include "mathops.h" #include "mjpegenc_common.h" #include "mjpeg.h" diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c index 466f48eba9..22af094da7 100644 --- a/libavcodec/mjpegenc.c +++ b/libavcodec/mjpegenc.c @@ -35,11 +35,198 @@ #include "avcodec.h" #include "jpegtables.h" #include "mjpegenc_common.h" +#include "mjpegenc_huffman.h" #include "mpegvideo.h" #include "mjpeg.h" #include "mjpegenc.h" #include "profiles.h" +static av_cold void init_uni_ac_vlc(const uint8_t huff_size_ac[256], + uint8_t *uni_ac_vlc_len) +{ + for (int i = 0; i < 128; i++) { + int level = i - 64; + if (!level) + continue; + for (int run = 0; run < 64; run++) { + int len, code, nbits; + int alevel = FFABS(level); + + len = (run >> 4) * huff_size_ac[0xf0]; + + nbits= av_log2_16bit(alevel) + 1; + code = ((15&run) << 4) | nbits; + + len += huff_size_ac[code] + nbits; + + uni_ac_vlc_len[UNI_AC_ENC_INDEX(run, i)] = len; + // We ignore EOB as its just a constant which does not change generally + } + } +} + +/** + * Encodes and outputs the entire frame in the JPEG format. + * + * @param s The MpegEncContext. + */ +static void mjpeg_encode_picture_frame(MpegEncContext *s) +{ + int nbits, code, table_id; + MJpegContext *m = s->mjpeg_ctx; + uint8_t *huff_size[4] = { m->huff_size_dc_luminance, + m->huff_size_dc_chrominance, + m->huff_size_ac_luminance, + m->huff_size_ac_chrominance }; + uint16_t *huff_code[4] = { m->huff_code_dc_luminance, + m->huff_code_dc_chrominance, + m->huff_code_ac_luminance, + m->huff_code_ac_chrominance }; + size_t total_bits = 0; + size_t bytes_needed; + + s->header_bits = get_bits_diff(s); + // Estimate the total size first + for (int i = 0; i < m->huff_ncode; i++) { + table_id = m->huff_buffer[i].table_id; + code = m->huff_buffer[i].code; + nbits = code & 0xf; + + total_bits += huff_size[table_id][code] + nbits; + } + + bytes_needed = (total_bits + 7) / 8; + ff_mpv_reallocate_putbitbuffer(s, bytes_needed, bytes_needed); + + for (int i = 0; i < m->huff_ncode; i++) { + table_id = m->huff_buffer[i].table_id; + code = m->huff_buffer[i].code; + nbits = code & 0xf; + + put_bits(&s->pb, huff_size[table_id][code], huff_code[table_id][code]); + if (nbits != 0) { + put_sbits(&s->pb, nbits, m->huff_buffer[i].mant); + } + } + + m->huff_ncode = 0; + s->i_tex_bits = get_bits_diff(s); +} + +/** + * Builds all 4 optimal Huffman tables. + * + * Uses the data stored in the JPEG buffer to compute the tables. + * Stores the Huffman tables in the bits_* and val_* arrays in the MJpegContext. + * + * @param m MJpegContext containing the JPEG buffer. + */ +static void mjpeg_build_optimal_huffman(MJpegContext *m) +{ + MJpegEncHuffmanContext dc_luminance_ctx; + MJpegEncHuffmanContext dc_chrominance_ctx; + MJpegEncHuffmanContext ac_luminance_ctx; + MJpegEncHuffmanContext ac_chrominance_ctx; + MJpegEncHuffmanContext *ctx[4] = { &dc_luminance_ctx, + &dc_chrominance_ctx, + &ac_luminance_ctx, + &ac_chrominance_ctx }; + for (int i = 0; i < 4; i++) + ff_mjpeg_encode_huffman_init(ctx[i]); + + for (int i = 0; i < m->huff_ncode; i++) { + int table_id = m->huff_buffer[i].table_id; + int code = m->huff_buffer[i].code; + + ff_mjpeg_encode_huffman_increment(ctx[table_id], code); + } + + ff_mjpeg_encode_huffman_close(&dc_luminance_ctx, + m->bits_dc_luminance, + m->val_dc_luminance, 12); + ff_mjpeg_encode_huffman_close(&dc_chrominance_ctx, + m->bits_dc_chrominance, + m->val_dc_chrominance, 12); + ff_mjpeg_encode_huffman_close(&ac_luminance_ctx, + m->bits_ac_luminance, + m->val_ac_luminance, 256); + ff_mjpeg_encode_huffman_close(&ac_chrominance_ctx, + m->bits_ac_chrominance, + m->val_ac_chrominance, 256); + + ff_mjpeg_build_huffman_codes(m->huff_size_dc_luminance, + m->huff_code_dc_luminance, + m->bits_dc_luminance, + m->val_dc_luminance); + ff_mjpeg_build_huffman_codes(m->huff_size_dc_chrominance, + m->huff_code_dc_chrominance, + m->bits_dc_chrominance, + m->val_dc_chrominance); + ff_mjpeg_build_huffman_codes(m->huff_size_ac_luminance, + m->huff_code_ac_luminance, + m->bits_ac_luminance, + m->val_ac_luminance); + ff_mjpeg_build_huffman_codes(m->huff_size_ac_chrominance, + m->huff_code_ac_chrominance, + m->bits_ac_chrominance, + m->val_ac_chrominance); +} + +/** + * Writes the complete JPEG frame when optimal huffman tables are enabled, + * otherwise writes the stuffing. + * + * Header + values + stuffing. + * + * @param s The MpegEncContext. + * @return int Error code, 0 if successful. + */ +int ff_mjpeg_encode_stuffing(MpegEncContext *s) +{ + PutBitContext *pbc = &s->pb; + int mb_y = s->mb_y - !s->mb_x; + int ret; + MJpegContext *m; + + m = s->mjpeg_ctx; + + if (s->huffman == HUFFMAN_TABLE_OPTIMAL) { + mjpeg_build_optimal_huffman(m); + + // Replace the VLCs with the optimal ones. + // The default ones may be used for trellis during quantization. + init_uni_ac_vlc(m->huff_size_ac_luminance, m->uni_ac_vlc_len); + init_uni_ac_vlc(m->huff_size_ac_chrominance, m->uni_chroma_ac_vlc_len); + s->intra_ac_vlc_length = + s->intra_ac_vlc_last_length = m->uni_ac_vlc_len; + s->intra_chroma_ac_vlc_length = + s->intra_chroma_ac_vlc_last_length = m->uni_chroma_ac_vlc_len; + + ff_mjpeg_encode_picture_header(s->avctx, &s->pb, &s->intra_scantable, + s->pred, s->intra_matrix, s->chroma_intra_matrix); + mjpeg_encode_picture_frame(s); + } + + ret = ff_mpv_reallocate_putbitbuffer(s, put_bits_count(&s->pb) / 8 + 100, + put_bits_count(&s->pb) / 4 + 1000); + if (ret < 0) { + av_log(s->avctx, AV_LOG_ERROR, "Buffer reallocation failed\n"); + goto fail; + } + + ff_mjpeg_escape_FF(pbc, s->esc_pos); + + if ((s->avctx->active_thread_type & FF_THREAD_SLICE) && mb_y < s->mb_height - 1) + put_marker(pbc, RST0 + (mb_y&7)); + s->esc_pos = put_bits_count(pbc) >> 3; + +fail: + for (int i = 0; i < 3; i++) + s->last_dc[i] = 128 << s->intra_dc_precision; + + return ret; +} + static int alloc_huffman(MpegEncContext *s) { MJpegContext *m = s->mjpeg_ctx; @@ -106,8 +293,8 @@ av_cold int ff_mjpeg_encode_init(MpegEncContext *s) avpriv_mjpeg_bits_ac_chrominance, avpriv_mjpeg_val_ac_chrominance); - ff_init_uni_ac_vlc(m->huff_size_ac_luminance, m->uni_ac_vlc_len); - ff_init_uni_ac_vlc(m->huff_size_ac_chrominance, m->uni_chroma_ac_vlc_len); + init_uni_ac_vlc(m->huff_size_ac_luminance, m->uni_ac_vlc_len); + init_uni_ac_vlc(m->huff_size_ac_chrominance, m->uni_chroma_ac_vlc_len); s->intra_ac_vlc_length = s->intra_ac_vlc_last_length = m->uni_ac_vlc_len; s->intra_chroma_ac_vlc_length = diff --git a/libavcodec/mjpegenc.h b/libavcodec/mjpegenc.h index d7ddc35ef5..2e92511276 100644 --- a/libavcodec/mjpegenc.h +++ b/libavcodec/mjpegenc.h @@ -107,5 +107,6 @@ static inline void put_marker(PutBitContext *p, enum JpegMarker code) int ff_mjpeg_encode_init(MpegEncContext *s); void ff_mjpeg_encode_close(MpegEncContext *s); void ff_mjpeg_encode_mb(MpegEncContext *s, int16_t block[12][64]); +int ff_mjpeg_encode_stuffing(MpegEncContext *s); #endif /* AVCODEC_MJPEGENC_H */ diff --git a/libavcodec/mjpegenc_common.c b/libavcodec/mjpegenc_common.c index 720b18d448..12dd7be2e8 100644 --- a/libavcodec/mjpegenc_common.c +++ b/libavcodec/mjpegenc_common.c @@ -23,7 +23,6 @@ #include #include -#include "libavutil/common.h" #include "libavutil/pixdesc.h" #include "libavutil/pixfmt.h" @@ -33,35 +32,8 @@ #include "put_bits.h" #include "mjpegenc.h" #include "mjpegenc_common.h" -#include "mjpegenc_huffman.h" #include "mjpeg.h" -av_cold void ff_init_uni_ac_vlc(const uint8_t huff_size_ac[256], uint8_t *uni_ac_vlc_len) -{ - int i; - - for (i = 0; i < 128; i++) { - int level = i - 64; - int run; - if (!level) - continue; - for (run = 0; run < 64; run++) { - int len, code, nbits; - int alevel = FFABS(level); - - len = (run >> 4) * huff_size_ac[0xf0]; - - nbits= av_log2_16bit(alevel) + 1; - code = ((15&run) << 4) | nbits; - - len += huff_size_ac[code] + nbits; - - uni_ac_vlc_len[UNI_AC_ENC_INDEX(run, i)] = len; - // We ignore EOB as its just a constant which does not change generally - } - } -} - /* table_class: 0 = DC coef, 1 = AC coefs */ static int put_huffman_table(PutBitContext *p, int table_class, int table_id, const uint8_t *bits_table, const uint8_t *value_table) @@ -359,54 +331,6 @@ end: } } -/** - * Encodes and outputs the entire frame in the JPEG format. - * - * @param s The MpegEncContext. - */ -void ff_mjpeg_encode_picture_frame(MpegEncContext *s) -{ - int i, nbits, code, table_id; - MJpegContext *m = s->mjpeg_ctx; - uint8_t *huff_size[4] = {m->huff_size_dc_luminance, - m->huff_size_dc_chrominance, - m->huff_size_ac_luminance, - m->huff_size_ac_chrominance}; - uint16_t *huff_code[4] = {m->huff_code_dc_luminance, - m->huff_code_dc_chrominance, - m->huff_code_ac_luminance, - m->huff_code_ac_chrominance}; - size_t total_bits = 0; - size_t bytes_needed; - - s->header_bits = get_bits_diff(s); - // Estimate the total size first - for (i = 0; i < m->huff_ncode; i++) { - table_id = m->huff_buffer[i].table_id; - code = m->huff_buffer[i].code; - nbits = code & 0xf; - - total_bits += huff_size[table_id][code] + nbits; - } - - bytes_needed = (total_bits + 7) / 8; - ff_mpv_reallocate_putbitbuffer(s, bytes_needed, bytes_needed); - - for (i = 0; i < m->huff_ncode; i++) { - table_id = m->huff_buffer[i].table_id; - code = m->huff_buffer[i].code; - nbits = code & 0xf; - - put_bits(&s->pb, huff_size[table_id][code], huff_code[table_id][code]); - if (nbits != 0) { - put_sbits(&s->pb, nbits, m->huff_buffer[i].mant); - } - } - - m->huff_ncode = 0; - s->i_tex_bits = get_bits_diff(s); -} - void ff_mjpeg_escape_FF(PutBitContext *pb, int start) { int size; @@ -487,124 +411,6 @@ void ff_mjpeg_build_huffman_codes(uint8_t *huff_size, uint16_t *huff_code, } } -/** - * Builds all 4 optimal Huffman tables. - * - * Uses the data stored in the JPEG buffer to compute the tables. - * Stores the Huffman tables in the bits_* and val_* arrays in the MJpegContext. - * - * @param m MJpegContext containing the JPEG buffer. - */ -static void ff_mjpeg_build_optimal_huffman(MJpegContext *m) -{ - int i, table_id, code; - - MJpegEncHuffmanContext dc_luminance_ctx; - MJpegEncHuffmanContext dc_chrominance_ctx; - MJpegEncHuffmanContext ac_luminance_ctx; - MJpegEncHuffmanContext ac_chrominance_ctx; - MJpegEncHuffmanContext *ctx[4] = {&dc_luminance_ctx, - &dc_chrominance_ctx, - &ac_luminance_ctx, - &ac_chrominance_ctx}; - for (i = 0; i < 4; i++) { - ff_mjpeg_encode_huffman_init(ctx[i]); - } - for (i = 0; i < m->huff_ncode; i++) { - table_id = m->huff_buffer[i].table_id; - code = m->huff_buffer[i].code; - - ff_mjpeg_encode_huffman_increment(ctx[table_id], code); - } - - ff_mjpeg_encode_huffman_close(&dc_luminance_ctx, - m->bits_dc_luminance, - m->val_dc_luminance, 12); - ff_mjpeg_encode_huffman_close(&dc_chrominance_ctx, - m->bits_dc_chrominance, - m->val_dc_chrominance, 12); - ff_mjpeg_encode_huffman_close(&ac_luminance_ctx, - m->bits_ac_luminance, - m->val_ac_luminance, 256); - ff_mjpeg_encode_huffman_close(&ac_chrominance_ctx, - m->bits_ac_chrominance, - m->val_ac_chrominance, 256); - - ff_mjpeg_build_huffman_codes(m->huff_size_dc_luminance, - m->huff_code_dc_luminance, - m->bits_dc_luminance, - m->val_dc_luminance); - ff_mjpeg_build_huffman_codes(m->huff_size_dc_chrominance, - m->huff_code_dc_chrominance, - m->bits_dc_chrominance, - m->val_dc_chrominance); - ff_mjpeg_build_huffman_codes(m->huff_size_ac_luminance, - m->huff_code_ac_luminance, - m->bits_ac_luminance, - m->val_ac_luminance); - ff_mjpeg_build_huffman_codes(m->huff_size_ac_chrominance, - m->huff_code_ac_chrominance, - m->bits_ac_chrominance, - m->val_ac_chrominance); -} - -/** - * Writes the complete JPEG frame when optimal huffman tables are enabled, - * otherwise writes the stuffing. - * - * Header + values + stuffing. - * - * @param s The MpegEncContext. - * @return int Error code, 0 if successful. - */ -int ff_mjpeg_encode_stuffing(MpegEncContext *s) -{ - int i; - PutBitContext *pbc = &s->pb; - int mb_y = s->mb_y - !s->mb_x; - int ret; - MJpegContext *m; - - m = s->mjpeg_ctx; - - if (s->huffman == HUFFMAN_TABLE_OPTIMAL) { - ff_mjpeg_build_optimal_huffman(m); - - // Replace the VLCs with the optimal ones. - // The default ones may be used for trellis during quantization. - ff_init_uni_ac_vlc(m->huff_size_ac_luminance, m->uni_ac_vlc_len); - ff_init_uni_ac_vlc(m->huff_size_ac_chrominance, m->uni_chroma_ac_vlc_len); - s->intra_ac_vlc_length = - s->intra_ac_vlc_last_length = m->uni_ac_vlc_len; - s->intra_chroma_ac_vlc_length = - s->intra_chroma_ac_vlc_last_length = m->uni_chroma_ac_vlc_len; - - ff_mjpeg_encode_picture_header(s->avctx, &s->pb, &s->intra_scantable, - s->pred, s->intra_matrix, s->chroma_intra_matrix); - ff_mjpeg_encode_picture_frame(s); - } - - ret = ff_mpv_reallocate_putbitbuffer(s, put_bits_count(&s->pb) / 8 + 100, - put_bits_count(&s->pb) / 4 + 1000); - - if (ret < 0) { - av_log(s->avctx, AV_LOG_ERROR, "Buffer reallocation failed\n"); - goto fail; - } - - ff_mjpeg_escape_FF(pbc, s->esc_pos); - - if((s->avctx->active_thread_type & FF_THREAD_SLICE) && mb_y < s->mb_height - 1) - put_marker(pbc, RST0 + (mb_y&7)); - s->esc_pos = put_bits_count(pbc) >> 3; -fail: - - for(i=0; i<3; i++) - s->last_dc[i] = 128 << s->intra_dc_precision; - - return ret; -} - void ff_mjpeg_encode_picture_trailer(PutBitContext *pb, int header_bits) { av_assert1((header_bits & 7) == 0); diff --git a/libavcodec/mjpegenc_common.h b/libavcodec/mjpegenc_common.h index b432baac3e..b4f8a08e11 100644 --- a/libavcodec/mjpegenc_common.h +++ b/libavcodec/mjpegenc_common.h @@ -25,25 +25,20 @@ #include "avcodec.h" #include "idctdsp.h" -#include "mpegvideo.h" #include "put_bits.h" void ff_mjpeg_encode_picture_header(AVCodecContext *avctx, PutBitContext *pb, ScanTable *intra_scantable, int pred, uint16_t luma_intra_matrix[64], uint16_t chroma_intra_matrix[64]); -void ff_mjpeg_encode_picture_frame(MpegEncContext *s); void ff_mjpeg_encode_picture_trailer(PutBitContext *pb, int header_bits); void ff_mjpeg_escape_FF(PutBitContext *pb, int start); void ff_mjpeg_build_huffman_codes(uint8_t *huff_size, uint16_t *huff_code, const uint8_t *bits_table, const uint8_t *val_table); -int ff_mjpeg_encode_stuffing(MpegEncContext *s); void ff_mjpeg_init_hvsample(AVCodecContext *avctx, int hsample[4], int vsample[4]); void ff_mjpeg_encode_dc(PutBitContext *pb, int val, uint8_t *huff_size, uint16_t *huff_code); -av_cold void ff_init_uni_ac_vlc(const uint8_t huff_size_ac[256], uint8_t *uni_ac_vlc_len); - #endif /* AVCODEC_MJPEGENC_COMMON_H */ From patchwork Thu Feb 18 03:41:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25736 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 9E46B44BC26 for ; Thu, 18 Feb 2021 05:43:04 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 86AE1689E51; Thu, 18 Feb 2021 05:43:04 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CA728689B6C for ; Thu, 18 Feb 2021 05:42:50 +0200 (EET) Received: by mail-wr1-f51.google.com with SMTP id n4so1182988wrx.1 for ; Wed, 17 Feb 2021 19:42:50 -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:reply-to :mime-version:content-transfer-encoding; bh=dETUl/9c4Aq1rsq3ICTHvMpUt1M/0jCegA5B4iwqnU8=; b=pk9b9wWMgfuPL2gJ6ALjy0McCvE+xtg89O0f1dX4Rh3aM4sjubu0L1USRSasFAmCaH aofvvIAr/8b8l38LSYS2m50cRcMgky2N7ISINfGu3UzZX2wUgwhsl3foYhnpb2zhFzr6 ZZrVeFlgR28/vrE8YPNF+bl2JcwA6mVGzB/gAfwMGO1HHvLypwEBC+WGIieY1bkLS6zD YT46NchcYnNOcpUl6L6B0ywqgb0YhRp63F5ucxBxdAZIizt8gRKzJOdmQ+iBCKlvkFGj x4hUUBeI5rV+PmXYc1y6jT+zPNCMfKN21Y16yvhogiJiqUFHs1gHGvW35w03y35sL/Sc QM9Q== 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:reply-to:mime-version:content-transfer-encoding; bh=dETUl/9c4Aq1rsq3ICTHvMpUt1M/0jCegA5B4iwqnU8=; b=FVE8+Hk27CrozMa8EthwyxdP6HQKvjdvwlHs+nWNBmHZ00U9usiWUHTGAbIbRAm+y7 5bEvyGhFStGQh5DfW9yigeQyBvfvLZEpS6u0RRUikfmXFyaRDcEjUn1KwQ9+gRDACFCt jWPvcntstZ4ItgFG06D7iNGo/PXRgLDibyX68OEHGjUNhqVetSp/GwDWmWDbWGla0dK2 Y9qudcUlCKPBwxS4cvBPJrmttYYokcg8Q/aWsBvok9q7GoS7InmfFF8DO7v1FSRrtbRi VcZTby8hm+WPA/j0LAf20SXjqi4n6yfQgOBqUv31ldQKgjYX+/X6Ez5cGkiqz5zgKGR8 gF3Q== X-Gm-Message-State: AOAM532WP6X3VOUwBaQH8LSSRWLQw2chs/tGY3OCpb2A3/5HY5irmyHU zq2XzlcvmslAR7KaUF+W3zpJFYlKE18= X-Google-Smtp-Source: ABdhPJzSWmwIXJt0AQS9gv3qU5dpziZePKwwy1d/nGa7Aodk2OoKLPmdwgfFvOnyEoT7htnRdTzAtg== X-Received: by 2002:adf:e947:: with SMTP id m7mr2172055wrn.292.1613619770230; Wed, 17 Feb 2021 19:42:50 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:49 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:41:54 +0100 Message-Id: <20210218034214.2090223-9-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 09/29] avcodec/Makefile: Don't build mjpegenc_huffman unconditionally 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" Only the mjpeg and amv encoders as well as its testprogram actually need it. Signed-off-by: Andreas Rheinhardt --- libavcodec/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavcodec/Makefile b/libavcodec/Makefile index c427de78be..8a835a26ab 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -48,7 +48,6 @@ OBJS = ac3_parser.o \ mediacodec.o \ mpeg12framerate.o \ options.o \ - mjpegenc_huffman.o \ parser.o \ parsers.o \ profiles.o \ @@ -1218,7 +1217,6 @@ TESTPROGS = avpacket \ jpeg2000dwt \ mathops \ options \ - mjpegenc_huffman \ utils \ TESTPROGS-$(CONFIG_CABAC) += cabac @@ -1227,6 +1225,7 @@ TESTPROGS-$(CONFIG_FFT) += fft fft-fixed32 TESTPROGS-$(CONFIG_GOLOMB) += golomb TESTPROGS-$(CONFIG_IDCTDSP) += dct TESTPROGS-$(CONFIG_IIRFILTER) += iirfilter +TESTPROGS-$(CONFIG_MJPEG_ENCODER) += mjpegenc_huffman TESTPROGS-$(HAVE_MMX) += motion TESTPROGS-$(CONFIG_MPEGVIDEO) += mpeg12framerate TESTPROGS-$(CONFIG_H264_METADATA_BSF) += h264_levels From patchwork Thu Feb 18 03:41:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25729 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 A74E044BC26 for ; Thu, 18 Feb 2021 05:42:54 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 94691689993; Thu, 18 Feb 2021 05:42:54 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C6C0B6891F1 for ; Thu, 18 Feb 2021 05:42:51 +0200 (EET) Received: by mail-wr1-f53.google.com with SMTP id r21so1136396wrr.9 for ; Wed, 17 Feb 2021 19:42:51 -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:reply-to :mime-version:content-transfer-encoding; bh=1MeyuOr39osSMtU+Vhak8lbzqmf9cGjMhsNaFFLrTUo=; b=p53qcCZg8zT/VzFOqMyLOrKbFnD8SEfEPGZJtfgPjblb9zLuotEDjp0fr43BWQ+qt0 xluZM4FveqR5t0mYDV4BEoHNZ5NPjPRGdkaUX1GC8xlKQXYDzGz+plqiY5bkspYwpnX1 0Z2MpnE3IFeFRWYh0/kTT6ir9J8t+ohYmQ2cCDbQ/DgkhR/ajGYg76rH757AtfQ3Thmg akG9cEFj5ZKYaxelZ5+g/bHFaIyzQ1uhlzW5CSs7BYM3v4DUkGH2qckxyO3cRn98WJ/h z/Gd4F16IxhZpVdxpfSkqTTZ0Qt+iEkWlw6d6DSvXyMTla1WAerJ105CrMrmtf11vLI8 PmBg== 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:reply-to:mime-version:content-transfer-encoding; bh=1MeyuOr39osSMtU+Vhak8lbzqmf9cGjMhsNaFFLrTUo=; b=EOXNRKjYn+HrzxOFN7O7OBLN442rbW2TFA3JSk8y2CfBSjp4KgQw7Y8P4hPTsFnrrA iccwOBPAniPz9z/E7Qcbv/6CMl2Vng05cKn3JurXtGjrQ29jtyUav7RbpqOAEHoQC+3e tHNU20F9lmf5USQRewackk69pigJjyq7MItf0eMVQWCFA+/iSKb7PeA9ECxpQJxul738 SBOCoRX/PGF/BiFX9wptyPUyhQuNqHMoqkLiH+7zML5UhzEg4auykq8XF/abRkSl2qVk EuPfHwZDV4qG3dkt6mfmsNv3r01GZzKZOcVytK1wdDk0ruxWvKMr1XOvNIYa6rzEgCNF fpfA== X-Gm-Message-State: AOAM533cpBYhiJjcSLi3MuW4LGj8OkK6zrEbqn824QeZaOO3NO6OjAy3 HiOoTRHwFdhgQdwAxKxYvEOUt6+PL6A= X-Google-Smtp-Source: ABdhPJzGwzlMqO/0M1VmOXssAA2QXItW/MctXDU0ydYEXvVe5iI90cww389l8VN2YN+AYqylBH7DVA== X-Received: by 2002:adf:edc8:: with SMTP id v8mr2169782wro.330.1613619770975; Wed, 17 Feb 2021 19:42:50 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:50 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:41:55 +0100 Message-Id: <20210218034214.2090223-10-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 10/29] configure: Remove mpegvideo_enc dependency from ljpeg encoder 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" It only existed because some code in mjpegenc_common.c relied on it; yet said code was actually only used by mjpegenc.c and has been moved there. Signed-off-by: Andreas Rheinhardt --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 21139b9170..e918c4e670 100755 --- a/configure +++ b/configure @@ -2761,7 +2761,7 @@ interplay_video_decoder_select="hpeldsp" jpegls_decoder_select="mjpeg_decoder" jv_decoder_select="blockdsp" lagarith_decoder_select="llviddsp" -ljpeg_encoder_select="idctdsp jpegtables mpegvideoenc" +ljpeg_encoder_select="idctdsp jpegtables" lscr_decoder_deps="zlib" magicyuv_decoder_select="llviddsp" magicyuv_encoder_select="llvidencdsp" From patchwork Thu Feb 18 03:41:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25732 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 EC9B444BC26 for ; Thu, 18 Feb 2021 05:42:57 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D5361689F2C; Thu, 18 Feb 2021 05:42:57 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 48FBC6897C8 for ; Thu, 18 Feb 2021 05:42:52 +0200 (EET) Received: by mail-wm1-f53.google.com with SMTP id x4so1636212wmi.3 for ; Wed, 17 Feb 2021 19:42:52 -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:reply-to :mime-version:content-transfer-encoding; bh=+PkQ1We1vdFI/YIjDshNn/BVdo9fV+vhOtG5GLN1/lU=; b=HXDToxN8edF0PXAW2Ya/STSDgIIVkc9G0SbFaFJCykbFyckWN3agYIcXzE9mVm16yH tUUKtRb5GfY3W+scTwV3K+VE/Jwl55ZyDrv68gC0kBMU9ZTuxg01zVAZDcIt61KN5mvQ uxps70jT0B/MeSfFwlVWLBOhAbtosBofcGIMFI9kHdA7uUCYiI93qATwdKynwTXEV6vW 0qonc6wVR6NwhkQGtrnRe0iOcevWDscCL+IwRRyLZjZO6MaheLuZJ83dF/AcafwwmTDr b4p7eQziPthou3T3ZyiUkRGsVrhAwLjgIhrAZhz11H/8nHqdKgyWMojx2vG392fwg5zW fBXA== 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:reply-to:mime-version:content-transfer-encoding; bh=+PkQ1We1vdFI/YIjDshNn/BVdo9fV+vhOtG5GLN1/lU=; b=HHBfbyIzRHLi++/qD92DoGB5ateBY/kAEqTZRATqSO1u3xD5JFnzdyYsAujLPIBH+m gYMfplixg87mDK+nDMwOfkeexEj6viCkXDo/A64Ix9n67qDc4oTESzqDLIQf/wh9jlE1 8XXFLAroexO9PZ/trm+9cy8UqesarWP+c+xPdsWcteYsWYBuyIdmUcFm+9DzP1HiX8Wh I1mW2X8Pl44/N22eV1Za5Iormc/Gunbv+/esO7iZyWpqBtWiMomTxryTafjAAAhkqQEO Fchj6zxcs1D8M5t0/OBf8LvRKGjS+Fu8xkg9kEkQtwYz0koqlx+Q/Ikn3+dfOhUKkVtP lmPA== X-Gm-Message-State: AOAM5330Q0lk40AEVIgcjHSkkhnRNTzXuac8NLBU6BVrb/NKr8tfihAX ++vQkHAsMvy8hBsB7KSgp8vm5bsiv3k= X-Google-Smtp-Source: ABdhPJyTGUhWmu1xQPEgb8qjyOSyrJR22ixoFU1cwMvGF/rsgSo4I1WIVMrvkves7Pb9kCJqMZNuIA== X-Received: by 2002:a05:600c:4f07:: with SMTP id l7mr1165530wmq.71.1613619771738; Wed, 17 Feb 2021 19:42:51 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:51 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:41:56 +0100 Message-Id: <20210218034214.2090223-11-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 11/29] avcodec/scpr3: Avoid code duplication when updating models 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" Signed-off-by: Andreas Rheinhardt --- libavcodec/scpr3.c | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/libavcodec/scpr3.c b/libavcodec/scpr3.c index 1ed764baa1..78c58889cb 100644 --- a/libavcodec/scpr3.c +++ b/libavcodec/scpr3.c @@ -524,32 +524,16 @@ static int update_model1_to_4(PixelModel3 *m, uint32_t val) static int update_model1_to_5(PixelModel3 *m, uint32_t val) { - PixelModel3 n = {0}; int i, size, freqs; uint32_t a; + update_model1_to_4(m, val); size = m->size; - n.size = size; - for (i = 0; i < size; i++) { - n.symbols[i] = m->symbols[i]; - } - AV_QSORT(n.symbols, size, uint8_t, cmpbytes); - size = n.size; - for (i = 0; i < size; i++) { - if (val == n.symbols[i]) { - n.freqs[i] = 100; - n.maxpos = i; - } else { - n.freqs[i] = 50; - } - } a = 256 - size; for (i = 0; i < size; i++, a += freqs) - freqs = n.freqs[i]; - n.type = 5; - n.cntsum = a; - - memcpy(m, &n, sizeof(n)); + freqs = m->freqs[i]; + m->type = 5; + m->cntsum = a; return 0; } From patchwork Thu Feb 18 03:41:57 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25735 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 DF46044BC26 for ; Thu, 18 Feb 2021 05:43:00 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C48DF68A0AE; Thu, 18 Feb 2021 05:43:00 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 20038689995 for ; Thu, 18 Feb 2021 05:42:53 +0200 (EET) Received: by mail-wr1-f42.google.com with SMTP id 7so1187491wrz.0 for ; Wed, 17 Feb 2021 19:42:53 -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:reply-to :mime-version:content-transfer-encoding; bh=DMBTPoc0VqbVqiP3uqvaV6iZQKCLF+UHFKkQg9BQaxw=; b=WMBAGt1z/kTyC/IRNP1qC9xZgb3GgQqQoGPT6AZlIUDZmwBxajUn9RqsQFQTJHoQEU VT+nGW4D6Uf9L4zuRKl4AqV7wArt+XTKmcHUg1zAom/TRiC5NNTFLLuIJIkx5NOg6fvv 0sUF5TtXV6dIpLcRJvLa/lXXmtj2FOl6XX4Z/GnfFbh9KOqN6/lq8GkOTFGBsFzI90q0 LWymcY3btlAQzFrKePU7VDtMBknZc3s/1zouqyfnslgVtscsV1Qa2lUE7IANLMQvSaQL 3AAE5dr/9qhhrt82PiaJlTFFNsT3Rfib4UorEYyguJAGjuU2nOshYGuUKjkjf77Rb/hj 3JPQ== 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:reply-to:mime-version:content-transfer-encoding; bh=DMBTPoc0VqbVqiP3uqvaV6iZQKCLF+UHFKkQg9BQaxw=; b=amMb42c+m/YyB0EFMkY6wk28MPtBs5bmNfRkZqFvXhcaUFzguHyYo7DXnHnvbpbHM6 XKgnpEzGDtxsFLwRhPU0WW0ZYS8EpukSfxGueyyCd1Jv6tPinWZcu1P1rXbXnYbZStbe Y+as6rk1dvpUr3fUt9T/29DYKo5gbsrGU42J6r1eu6neetMrBScPQ3YUMTdvaEw6Y/Ti +GHz7IhxDwvJXxd4jLqkud1bjjiWu3adOzjNeCdHUXWLeA2vCg3+2pilQIGbBVUVif0c aZkAqN0zDaVQHHUtuUsqQ685fqL6t+Gf2B3rYDVQy8iCRw6vw2hUzY2sDZCWOCOVjmgp entw== X-Gm-Message-State: AOAM531Ki7l54T7OVLZqiQUfu8B6rhx4GQozK3ZUAPMsaLTgmQhNOkIB DG5rlkypPmAnODUeV5OOESARoyoF6aI= X-Google-Smtp-Source: ABdhPJyYk4EL89eOk+edlkdwctnLlB3rFqiajuyNmeFqjUAjruev/W/AHTsRC3cnffqw7h8G/OrAEw== X-Received: by 2002:adf:df8e:: with SMTP id z14mr2221537wrl.108.1613619772523; Wed, 17 Feb 2021 19:42:52 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:52 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:41:57 +0100 Message-Id: <20210218034214.2090223-12-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 12/29] avcodec/mpeg4audio: Use proper logcontext for logging 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" Signed-off-by: Andreas Rheinhardt --- libavcodec/mpeg4audio.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/mpeg4audio.c b/libavcodec/mpeg4audio.c index 77cf2fb61c..2286303b54 100644 --- a/libavcodec/mpeg4audio.c +++ b/libavcodec/mpeg4audio.c @@ -30,7 +30,7 @@ * @param[in] c MPEG4AudioConfig structure to fill * @return on success 0 is returned, otherwise a value < 0 */ -static int parse_config_ALS(GetBitContext *gb, MPEG4AudioConfig *c) +static int parse_config_ALS(GetBitContext *gb, MPEG4AudioConfig *c, void *logctx) { if (get_bits_left(gb) < 112) return AVERROR_INVALIDDATA; @@ -43,7 +43,7 @@ static int parse_config_ALS(GetBitContext *gb, MPEG4AudioConfig *c) c->sample_rate = get_bits_long(gb, 32); if (c->sample_rate <= 0) { - av_log(NULL, AV_LOG_ERROR, "Invalid sample rate %d\n", c->sample_rate); + av_log(logctx, AV_LOG_ERROR, "Invalid sample rate %d\n", c->sample_rate); return AVERROR_INVALIDDATA; } @@ -136,7 +136,7 @@ int ff_mpeg4audio_get_config_gb(MPEG4AudioConfig *c, GetBitContext *gb, specific_config_bitindex = get_bits_count(gb); - ret = parse_config_ALS(gb, c); + ret = parse_config_ALS(gb, c, logctx); if (ret < 0) return ret; } From patchwork Thu Feb 18 03:41:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25734 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 1427E44BC26 for ; Thu, 18 Feb 2021 05:43:00 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EFDE5689FD9; Thu, 18 Feb 2021 05:42:59 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D7C4F689AEE for ; Thu, 18 Feb 2021 05:42:53 +0200 (EET) Received: by mail-wm1-f48.google.com with SMTP id x4so1636293wmi.3 for ; Wed, 17 Feb 2021 19:42:53 -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:reply-to :mime-version:content-transfer-encoding; bh=YPCrSBBXKWnNlfrGow3/NRpw0C0YhhszF2XNT7xWpJ0=; b=i/tTvMFqBsohB+ckFUICtwZsLyEt/DvISGMYSHTkTCHu5GcfCfbzxrNROeyrwHyxTq A3dms7BSE8vWub+dNUMnoyxs97i1NEtefmMV2U8UqRzeulr5r1FPEbeqdBopPFoH4bOt O94JmtBHD2xVDZCos0O7xMYK5TXH0vFsi38T0EN1fptrl/NPsRfBtno4jgfE2R2BwM8b h+6rIEJ5/Zsyegq4yKuGFnB1UDpH9B2eepMvOU+U4uhFyrcaVW+4g7e/cBiGc/YItEu4 se2Ee9Qq8J2ymxU07vBK4YoXhFovMcwbRP5tZci/sLrM8e2oKxOacPFRpBQCuJPOfJuv bXLA== 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:reply-to:mime-version:content-transfer-encoding; bh=YPCrSBBXKWnNlfrGow3/NRpw0C0YhhszF2XNT7xWpJ0=; b=PNjABuHKa9GUQvVL6Zh1amnZAl6uuwfMwcDWXE6ANwozOz/gyU7yN03R21qqrjozOe vWLrMfWMrrUOCA/6LPJJuzmGcQ1M+TmZY5DVu3BieaELni+hE5gPCXuWSCluqlnA6aF5 9uZdt/o1Aklp4SPuyi3/uhtmoJYcVJRP+rg3I8zV/MaDGTyrfANS3E75NgZu7wIBr1o2 tMvMeoPkstUaqlrNWQC8BnGvKojUT09ZD+XbDcblSDT7AbSNyubpXKosXF52bhYgKV3z HMS76VlBW3RwXIjQ3xdd1GXbnMZ9H8uRbnKLCW/gIPQvhyx8MdSM3/zf6lIecQyYeoEE 30cg== X-Gm-Message-State: AOAM532BGoQUvbdpXINYIbZR3DyhnM3ekPHdDe8Q7VBLm/2nhNFLsyuH Pk5Wyc6BQlMMKt8ByhYdeApnSwwdVcw= X-Google-Smtp-Source: ABdhPJyKo/zQeCQ9mbKiazPCbKXYOmbZmTkP2we2N5hPE0QwkhO03Lc0H1BxEi6MZqFIFajovas2Zw== X-Received: by 2002:a05:600c:41d4:: with SMTP id t20mr1613894wmh.178.1613619773153; Wed, 17 Feb 2021 19:42:53 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:52 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:41:58 +0100 Message-Id: <20210218034214.2090223-13-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 13/29] avcodec/Makefile: Remove outdated dependency of FLV demuxer on mpeg4audio 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" Unneeded since f96a653184e63cea91e08ea75ae60d309e431f40 and b2bb09bcc330156e9d79d7ddfa59f9c5d05ca149. Signed-off-by: Andreas Rheinhardt --- libavcodec/Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 8a835a26ab..24725d8666 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -978,7 +978,6 @@ OBJS-$(CONFIG_CODEC2_MUXER) += codec2utils.o OBJS-$(CONFIG_CODEC2RAW_DEMUXER) += codec2utils.o OBJS-$(CONFIG_DNXHD_DEMUXER) += dnxhddata.o OBJS-$(CONFIG_FITS_DEMUXER) += fits.o -OBJS-$(CONFIG_FLV_DEMUXER) += mpeg4audio.o OBJS-$(CONFIG_LATM_MUXER) += mpeg4audio.o OBJS-$(CONFIG_MATROSKA_AUDIO_MUXER) += mpeg4audio.o OBJS-$(CONFIG_MATROSKA_MUXER) += mpeg4audio.o From patchwork Thu Feb 18 03:41:59 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25760 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:6d42:0:0:0:0:0 with SMTP id i63csp2517991ybc; Wed, 17 Feb 2021 19:44:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJw00VorEWKpvBOWyoFpbj0cDpR7FLzqr1BVr0EKjQjyLSjGlYyClzC4Flq6Rx0DqOLsDwIm X-Received: by 2002:aa7:c686:: with SMTP id n6mr2028038edq.238.1613619877757; Wed, 17 Feb 2021 19:44:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613619877; cv=none; d=google.com; s=arc-20160816; b=l0XUESMZJeRF6/4s/5T5mWgbdI3HCF2p5bIJMsCfFW21oyfguPY/O/zTFwjqMRMOmK e7PpcOfIdc3YvynFldUTYtLXpLECkKVYNMVPgMRWE7fHzs/Dypq9+nnD4dBLYquWvfeG +e3cfzxVfsntwlYrtEwM3TsSsetBMR+uAu2ymxkrkr/mproMJQMWQZBM8cia52tI/Wt8 YMSTQYiE5aP0HpvhnzwKh/lo5rdxucS7yKNzvcA2bNhSt0BEsxGp+C+wGa+LnkSSNZW9 BOnf8t+mPd7zjtdRqNHJXIgm+n/bNhBFQrQ0l1ZyYjVXjOgKya3Kw6GM5qDcL7p/Ow0Y IG+w== 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:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=LAF2cBvN7WkhFD3NaPRYTGwDpzGJ7bQH4GycnepvFlo=; b=IZUrMbnW+KTOuplCTr0OOvdqT48csggL9zQtzgY/XYRyokmBmYJ2qxz0HSvdyCY0ai r1dAzEYQj0FU2+zjF/b2t5OcKagFcrN6FF5XLgEgR2C6duSEKK3dL2cWpzIpqHunCo/4 bkHaYMYCmUBfIQ0bENflc8Claul1sl9tRDqXQO5ykTVdlYk9oWe9wayG7cDF+4+nbJ9Y ShUByGnhngUCjjd5WQ//X96CrvAJR+sErd1a4nTkic2R5uonvaUmM9kKg4aZga4WbK0K +v7tlYo519ZysZeAbDQ+3d6g8GpCooF+D+ymggvK3W7ReqTlE2FQj03NaVEdfHzT08IU sL1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=QExBOZ0R; 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 w21si2396972edd.421.2021.02.17.19.44.37; Wed, 17 Feb 2021 19:44:37 -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=20161025 header.b=QExBOZ0R; 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 4BF5868A3DF; Thu, 18 Feb 2021 05:43:03 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id ADC3D689E51 for ; Thu, 18 Feb 2021 05:42:54 +0200 (EET) Received: by mail-wr1-f44.google.com with SMTP id t15so1089216wrx.13 for ; Wed, 17 Feb 2021 19:42:54 -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:reply-to :mime-version:content-transfer-encoding; bh=g1m2dhoqVEz/YhCkuLjQZyv2JBOPtBmdFWeedNVDbmI=; b=QExBOZ0R74T/npG+fZKPdsBHUUkJFTcAGHm4cupgzn2dFcC2V+lFMt4WajbfjS5teW AWXkQgdNKfieHJeYM5hEboBPkeGUvoxYeoIHmcVzr7V8vR4rpbKcnEOy/YinUZvtMsc8 kt3rsQFoW3PBsXJMcypM9x3moLyTG39Re27Q0y2r5Zq/R3uG5gUmG7m0VmnL3bWyj4Cr DDaxrOxuo3V6r35EvaA89+xNK88qsB1Erb28ImT7E6ofooF+pOXVm0zAmTbYara8GEkz vnl2UEwP5wcjgiBZ2Fca9aLh60CDRuVKtkaa56Zj5YWpEIZhD5eeTvV1eU/un8fL5ngs yxrw== 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:reply-to:mime-version:content-transfer-encoding; bh=g1m2dhoqVEz/YhCkuLjQZyv2JBOPtBmdFWeedNVDbmI=; b=YdFWtpG0PChAkVI5VuZDIS9HjDWIb5pDOdWQwmkAx2RcK/nkcmi4VUtItQ3/mbuFyG WHHb7VZyOQCJvVMPCtXKV1x+Mqj+XzHve93zraEw5dsbtS9AqHATTI4R5XcLK//VoHSe S+mjYtgzB1W9fgfsJDi84+6J3jPEAGexedig6IFrG06FmpZ+eQV7KBGiCYGEblthj1Mx Gyr/R/hzYTH3QYbU5oKJ7YCowVoPVgv1WxitD+LKnA31ceSz2xBdhC9uAVe8JICCXpM/ 9+kq+QfeJKudgVNdnN+XuXeTyT5o0ovpyBgDaF3zBxwK/rBx1lnwXZAOTzOyVmRm+hVF 26cg== X-Gm-Message-State: AOAM531pdL9gkODArnplfdsj4pFlDjCQ4FxHHZeqzWf8z+k7H7it/gvQ uhBWFl5PrXl4+o5XOF0mbP7yH2y0oTg= X-Received: by 2002:adf:f543:: with SMTP id j3mr2141280wrp.203.1613619773919; Wed, 17 Feb 2021 19:42:53 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:53 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:41:59 +0100 Message-Id: <20210218034214.2090223-14-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 14/29] avformat/Makefile: Remove outdated AIFF demuxer dependency on iso_media 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" X-TUID: YulnaYErvPfY Content-Length: 2837 This is a result of the mov channel parsing stuff being factored out of mov.c twice: Once in 91b782720fd0df5571775b6591bc41797d6ecf78 to isom.c and later in 3bab7cd12802dc5abf2c5cc6dec49e9e249ce204. Also remove the isom.h header; and while just at it, remove an unused mathematics.h inclusion. (isom.c actually depends upon mpeg4audio from libavcodec for avpriv_mpeg4audio_get_config2 and avpriv_mpa_freq_tab; yet there is no configure dependency for iso_media which leads to failure of shared builds.) Signed-off-by: Andreas Rheinhardt --- libavformat/Makefile | 2 +- libavformat/aiffdec.c | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/libavformat/Makefile b/libavformat/Makefile index 10fee749c8..851d2f13ee 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -81,7 +81,7 @@ OBJS-$(CONFIG_ADX_DEMUXER) += adxdec.o OBJS-$(CONFIG_ADX_MUXER) += rawenc.o OBJS-$(CONFIG_AEA_DEMUXER) += aea.o pcm.o OBJS-$(CONFIG_AFC_DEMUXER) += afc.o -OBJS-$(CONFIG_AIFF_DEMUXER) += aiffdec.o pcm.o isom.o \ +OBJS-$(CONFIG_AIFF_DEMUXER) += aiffdec.o pcm.o \ mov_chan.o replaygain.o OBJS-$(CONFIG_AIFF_MUXER) += aiffenc.o id3v2enc.o OBJS-$(CONFIG_AIX_DEMUXER) += aixdec.o diff --git a/libavformat/aiffdec.c b/libavformat/aiffdec.c index 4d1c9bbb53..81189316ff 100644 --- a/libavformat/aiffdec.c +++ b/libavformat/aiffdec.c @@ -20,13 +20,11 @@ */ #include "libavutil/intreadwrite.h" -#include "libavutil/mathematics.h" #include "libavutil/dict.h" #include "avformat.h" #include "internal.h" #include "pcm.h" #include "aiff.h" -#include "isom.h" #include "id3v2.h" #include "mov_chan.h" #include "replaygain.h" From patchwork Thu Feb 18 03:42:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25743 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 D660A449CDB for ; Thu, 18 Feb 2021 05:45:32 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8951768A5CC; Thu, 18 Feb 2021 05:43:09 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 122FE689CA7 for ; Thu, 18 Feb 2021 05:42:57 +0200 (EET) Received: by mail-wm1-f46.google.com with SMTP id o82so1591980wme.1 for ; Wed, 17 Feb 2021 19:42:57 -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:reply-to :mime-version:content-transfer-encoding; bh=7c/fhq0FT7hngBGoDJU9ZYquifC+XdRMzA+TrCxXjfg=; b=CLS0RjCcGNwCoQOQcTbo9kfZuRGjSED6Kfj5wRvURfGz1UcC2ZprqARRtwcWE991Hf ujD+I6qQzpft0nmLH4tuabLNTtR0xPZDpYj7L161eZSRzGbxJA5dkixOBgPZXlF1wUx3 gGBgHtX5W1rGx8ZdSBuvNVExJuyw3abyOGXvSMFKl+DcHTB9cTcJ4+wOkGcOHzOzZNcJ FqA22EExqg2Hl81F5pu/0vn18HhUEZ/Q5Uhrit+497/kGxImEsJ1+++Chm0sVaypgbZg BTgtEDxH+lITbuSRFgGcehyTdMrP4uC8WzLlb1grP2OMn/AhgyoaqdnNbm0hr7RjJkos 4b+A== 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:reply-to:mime-version:content-transfer-encoding; bh=7c/fhq0FT7hngBGoDJU9ZYquifC+XdRMzA+TrCxXjfg=; b=NYQt/6VVJu8+d9jPPqR5B6hDu4uavabAVhJOST1dHeDOLtiPhBylKUXSlplMjTHUBO WnwCPPo8ALRgi0LzqfOBJAKon6B4GZua+3Bch4yXJGygh4m7qLGi2Kw9VOzR46UgwHTD sb1M87CVogG5ce5uk5S9dNUTbfbOtdbpzcBWLRi2RJA5ibxQBCPGQa2StyeFJCQpzun8 qdDQeH7ccMqHUNpqk/UiwQIsi4Jj9b+nY2FESsjYImGdW8p7HGfN5jamZvGBmxRl2qLr EbNQJCdJ72OQc/TA00wF/2pJE3jThEFcqnEzi+uZIJM1KxeyjKZOmvZ2srkCaQk8eqjL l8ng== X-Gm-Message-State: AOAM532mqbj09iA87GmZJkiA9Sezxn6YOo3zY+mlmd3NlhsRPrP5Z68E ZzK2HvQf/NmtQc3SKwUUtrLMC6vFh3k= X-Google-Smtp-Source: ABdhPJzOotPBgejFdBSOys0xyRJuKav1FjWApBvdcFCPWeOOXg95GODOvVL+KSXqZL1ChGXvX2XCdQ== X-Received: by 2002:a05:600c:c6:: with SMTP id u6mr1611967wmm.176.1613619774820; Wed, 17 Feb 2021 19:42:54 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:54 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:42:00 +0100 Message-Id: <20210218034214.2090223-15-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 15/29] avformat/isom: Split movaudio/movvideo tags off into a separate file 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" The NUT and avi demuxers only need ff_codec_movvideo_tags and so this removes a dependency on the rest of isom.c as well as on mpeg4audio.c (which isom depends on); it is similar for the Matroska demuxer and muxers, except that the mpeg4audio.c dependency can't be avoided. Signed-off-by: Andreas Rheinhardt --- The files providing public API are typically compiled unconditionally (even when all these function return is AVERROR(ENOSYS) in which case this is quite pointless); this is not so for avformat_get_mov_video/audio_tags. To change this one would have to compile isom_tags unconditionally. configure | 8 +- libavcodec/Makefile | 2 +- libavformat/Makefile | 12 +- libavformat/isom.c | 319 ------------------------------------ libavformat/isom_tags.c | 346 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 357 insertions(+), 330 deletions(-) create mode 100644 libavformat/isom_tags.c diff --git a/configure b/configure index e918c4e670..019449eb64 100755 --- a/configure +++ b/configure @@ -3306,7 +3306,7 @@ asf_o_demuxer_select="riffdec" asf_muxer_select="riffenc" asf_stream_muxer_select="asf_muxer" av1_demuxer_select="av1_frame_merge_bsf av1_parser" -avi_demuxer_select="iso_media riffdec exif" +avi_demuxer_select="riffdec exif" avi_muxer_select="riffenc" caf_demuxer_select="iso_media" caf_muxer_select="iso_media" @@ -3334,9 +3334,9 @@ ismv_muxer_select="mov_muxer" ivf_muxer_select="av1_metadata_bsf vp9_superframe_bsf" latm_muxer_select="aac_adtstoasc_bsf" matroska_audio_muxer_select="matroska_muxer" -matroska_demuxer_select="iso_media riffdec" +matroska_demuxer_select="riffdec" matroska_demuxer_suggest="bzlib lzo zlib" -matroska_muxer_select="iso_media riffenc vp9_superframe_bsf aac_adtstoasc_bsf" +matroska_muxer_select="riffenc vp9_superframe_bsf aac_adtstoasc_bsf" mlp_demuxer_select="mlp_parser" mmf_muxer_select="riffenc" mov_demuxer_select="iso_media riffdec" @@ -3382,7 +3382,7 @@ w64_muxer_select="wav_muxer" wav_demuxer_select="riffdec" wav_muxer_select="riffenc" webm_chunk_muxer_select="webm_muxer" -webm_muxer_select="iso_media riffenc" +webm_muxer_select="riffenc" webm_dash_manifest_demuxer_select="matroska_demuxer" wtv_demuxer_select="mpegts_demuxer riffdec" wtv_muxer_select="mpegts_muxer riffenc" diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 24725d8666..4c972a88d4 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -982,9 +982,9 @@ OBJS-$(CONFIG_LATM_MUXER) += mpeg4audio.o OBJS-$(CONFIG_MATROSKA_AUDIO_MUXER) += mpeg4audio.o OBJS-$(CONFIG_MATROSKA_MUXER) += mpeg4audio.o OBJS-$(CONFIG_MOV_DEMUXER) += ac3tab.o +OBJS-$(CONFIG_MATROSKA_DEMUXER) += mpeg4audio.o OBJS-$(CONFIG_MXF_MUXER) += dnxhddata.o OBJS-$(CONFIG_NUT_MUXER) += mpegaudiodata.o -OBJS-$(CONFIG_NUT_DEMUXER) += mpegaudiodata.o mpeg4audio.o OBJS-$(CONFIG_RTP_MUXER) += mpeg4audio.o OBJS-$(CONFIG_SPDIF_MUXER) += dca.o OBJS-$(CONFIG_TAK_DEMUXER) += tak.o diff --git a/libavformat/Makefile b/libavformat/Makefile index 851d2f13ee..890c7592e7 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -25,7 +25,7 @@ OBJS = allformats.o \ OBJS-$(HAVE_LIBC_MSVCRT) += file_open.o # subsystems -OBJS-$(CONFIG_ISO_MEDIA) += isom.o +OBJS-$(CONFIG_ISO_MEDIA) += isom.o isom_tags.o OBJS-$(CONFIG_NETWORK) += network.o OBJS-$(CONFIG_RIFFDEC) += riffdec.o OBJS-$(CONFIG_RIFFENC) += riffenc.o @@ -118,7 +118,7 @@ OBJS-$(CONFIG_AST_DEMUXER) += ast.o astdec.o OBJS-$(CONFIG_AST_MUXER) += ast.o astenc.o OBJS-$(CONFIG_AU_DEMUXER) += au.o pcm.o OBJS-$(CONFIG_AU_MUXER) += au.o rawenc.o -OBJS-$(CONFIG_AVI_DEMUXER) += avidec.o +OBJS-$(CONFIG_AVI_DEMUXER) += avidec.o isom_tags.o OBJS-$(CONFIG_AVI_MUXER) += avienc.o mpegtsenc.o avlanguage.o rawutils.o OBJS-$(CONFIG_AVM2_MUXER) += swfenc.o swf.o OBJS-$(CONFIG_AVR_DEMUXER) += avr.o pcm.o @@ -307,11 +307,11 @@ OBJS-$(CONFIG_LXF_DEMUXER) += lxfdec.o OBJS-$(CONFIG_M4V_DEMUXER) += m4vdec.o rawdec.o OBJS-$(CONFIG_M4V_MUXER) += rawenc.o OBJS-$(CONFIG_MATROSKA_DEMUXER) += matroskadec.o matroska.o \ - rmsipr.o flac_picture.o \ + flac_picture.o isom_tags.o rmsipr.o \ oggparsevorbis.o vorbiscomment.o \ qtpalette.o replaygain.o OBJS-$(CONFIG_MATROSKA_MUXER) += matroskaenc.o matroska.o \ - av1.o avc.o hevc.o \ + av1.o avc.o hevc.o isom_tags.o \ flacenc_header.o avlanguage.o \ vorbiscomment.o wv.o OBJS-$(CONFIG_MCA_DEMUXER) += mca.o @@ -372,7 +372,7 @@ OBJS-$(CONFIG_NISTSPHERE_DEMUXER) += nistspheredec.o pcm.o OBJS-$(CONFIG_NSP_DEMUXER) += nspdec.o pcm.o OBJS-$(CONFIG_NSV_DEMUXER) += nsvdec.o OBJS-$(CONFIG_NULL_MUXER) += nullenc.o -OBJS-$(CONFIG_NUT_DEMUXER) += nutdec.o nut.o isom.o +OBJS-$(CONFIG_NUT_DEMUXER) += nutdec.o nut.o isom_tags.o OBJS-$(CONFIG_NUT_MUXER) += nutenc.o nut.o OBJS-$(CONFIG_NUV_DEMUXER) += nuv.o OBJS-$(CONFIG_AV1_DEMUXER) += av1dec.o @@ -570,7 +570,7 @@ OBJS-$(CONFIG_WAV_DEMUXER) += wavdec.o pcm.o OBJS-$(CONFIG_WAV_MUXER) += wavenc.o OBJS-$(CONFIG_WC3_DEMUXER) += wc3movie.o OBJS-$(CONFIG_WEBM_MUXER) += matroskaenc.o matroska.o \ - av1.o avc.o hevc.o \ + av1.o avc.o hevc.o isom_tags.o \ flacenc_header.o avlanguage.o \ wv.o vorbiscomment.o OBJS-$(CONFIG_WEBM_DASH_MANIFEST_MUXER) += webmdashenc.o diff --git a/libavformat/isom.c b/libavformat/isom.c index d1ef6e3407..e0e50f71b1 100644 --- a/libavformat/isom.c +++ b/libavformat/isom.c @@ -72,315 +72,6 @@ const AVCodecTag ff_mp4_obj_type[] = { { AV_CODEC_ID_NONE , 0 }, }; -const AVCodecTag ff_codec_movvideo_tags[] = { -/* { AV_CODEC_ID_, MKTAG('I', 'V', '5', '0') }, *//* Indeo 5.0 */ - - { AV_CODEC_ID_RAWVIDEO, MKTAG('r', 'a', 'w', ' ') }, /* uncompressed RGB */ - { AV_CODEC_ID_RAWVIDEO, MKTAG('y', 'u', 'v', '2') }, /* uncompressed YUV422 */ - { AV_CODEC_ID_RAWVIDEO, MKTAG('2', 'v', 'u', 'y') }, /* uncompressed 8-bit 4:2:2 */ - { AV_CODEC_ID_RAWVIDEO, MKTAG('y', 'u', 'v', 's') }, /* same as 2VUY but byte-swapped */ - - { AV_CODEC_ID_RAWVIDEO, MKTAG('L', '5', '5', '5') }, - { AV_CODEC_ID_RAWVIDEO, MKTAG('L', '5', '6', '5') }, - { AV_CODEC_ID_RAWVIDEO, MKTAG('B', '5', '6', '5') }, - { AV_CODEC_ID_RAWVIDEO, MKTAG('2', '4', 'B', 'G') }, - { AV_CODEC_ID_RAWVIDEO, MKTAG('B', 'G', 'R', 'A') }, - { AV_CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', 'A') }, - { AV_CODEC_ID_RAWVIDEO, MKTAG('A', 'B', 'G', 'R') }, - { AV_CODEC_ID_RAWVIDEO, MKTAG('b', '1', '6', 'g') }, - { AV_CODEC_ID_RAWVIDEO, MKTAG('b', '4', '8', 'r') }, - { AV_CODEC_ID_RAWVIDEO, MKTAG('b', '6', '4', 'a') }, - { AV_CODEC_ID_RAWVIDEO, MKTAG('b', 'x', 'b', 'g') }, /* BOXX */ - { AV_CODEC_ID_RAWVIDEO, MKTAG('b', 'x', 'r', 'g') }, - { AV_CODEC_ID_RAWVIDEO, MKTAG('b', 'x', 'y', 'v') }, - { AV_CODEC_ID_RAWVIDEO, MKTAG('N', 'O', '1', '6') }, - { AV_CODEC_ID_RAWVIDEO, MKTAG('D', 'V', 'O', 'O') }, /* Digital Voodoo SD 8 Bit */ - { AV_CODEC_ID_RAWVIDEO, MKTAG('R', '4', '2', '0') }, /* Radius DV YUV PAL */ - { AV_CODEC_ID_RAWVIDEO, MKTAG('R', '4', '1', '1') }, /* Radius DV YUV NTSC */ - - { AV_CODEC_ID_R10K, MKTAG('R', '1', '0', 'k') }, /* uncompressed 10-bit RGB */ - { AV_CODEC_ID_R10K, MKTAG('R', '1', '0', 'g') }, /* uncompressed 10-bit RGB */ - { AV_CODEC_ID_R210, MKTAG('r', '2', '1', '0') }, /* uncompressed 10-bit RGB */ - { AV_CODEC_ID_AVUI, MKTAG('A', 'V', 'U', 'I') }, /* AVID Uncompressed deinterleaved UYVY422 */ - { AV_CODEC_ID_AVRP, MKTAG('A', 'V', 'r', 'p') }, /* Avid 1:1 10-bit RGB Packer */ - { AV_CODEC_ID_AVRP, MKTAG('S', 'U', 'D', 'S') }, /* Avid DS Uncompressed */ - { AV_CODEC_ID_V210, MKTAG('v', '2', '1', '0') }, /* uncompressed 10-bit 4:2:2 */ - { AV_CODEC_ID_V210, MKTAG('b', 'x', 'y', '2') }, /* BOXX 10-bit 4:2:2 */ - { AV_CODEC_ID_V308, MKTAG('v', '3', '0', '8') }, /* uncompressed 8-bit 4:4:4 */ - { AV_CODEC_ID_V408, MKTAG('v', '4', '0', '8') }, /* uncompressed 8-bit 4:4:4:4 */ - { AV_CODEC_ID_V410, MKTAG('v', '4', '1', '0') }, /* uncompressed 10-bit 4:4:4 */ - { AV_CODEC_ID_Y41P, MKTAG('Y', '4', '1', 'P') }, /* uncompressed 12-bit 4:1:1 */ - { AV_CODEC_ID_YUV4, MKTAG('y', 'u', 'v', '4') }, /* libquicktime packed yuv420p */ - { AV_CODEC_ID_TARGA_Y216, MKTAG('Y', '2', '1', '6') }, - - { AV_CODEC_ID_MJPEG, MKTAG('j', 'p', 'e', 'g') }, /* PhotoJPEG */ - { AV_CODEC_ID_MJPEG, MKTAG('m', 'j', 'p', 'a') }, /* Motion-JPEG (format A) */ - { AV_CODEC_ID_AVRN , MKTAG('A', 'V', 'D', 'J') }, /* MJPEG with alpha-channel (AVID JFIF meridien compressed) */ -/* { AV_CODEC_ID_MJPEG, MKTAG('A', 'V', 'R', 'n') }, *//* MJPEG with alpha-channel (AVID ABVB/Truevision NuVista) */ - { AV_CODEC_ID_MJPEG, MKTAG('d', 'm', 'b', '1') }, /* Motion JPEG OpenDML */ - { AV_CODEC_ID_MJPEGB, MKTAG('m', 'j', 'p', 'b') }, /* Motion-JPEG (format B) */ - - { AV_CODEC_ID_SVQ1, MKTAG('S', 'V', 'Q', '1') }, /* Sorenson Video v1 */ - { AV_CODEC_ID_SVQ1, MKTAG('s', 'v', 'q', '1') }, /* Sorenson Video v1 */ - { AV_CODEC_ID_SVQ1, MKTAG('s', 'v', 'q', 'i') }, /* Sorenson Video v1 (from QT specs)*/ - { AV_CODEC_ID_SVQ3, MKTAG('S', 'V', 'Q', '3') }, /* Sorenson Video v3 */ - - { AV_CODEC_ID_MPEG4, MKTAG('m', 'p', '4', 'v') }, - { AV_CODEC_ID_MPEG4, MKTAG('D', 'I', 'V', 'X') }, /* OpenDiVX *//* sample files at http://heroinewarrior.com/xmovie.php3 use this tag */ - { AV_CODEC_ID_MPEG4, MKTAG('X', 'V', 'I', 'D') }, - { AV_CODEC_ID_MPEG4, MKTAG('3', 'I', 'V', '2') }, /* experimental: 3IVX files before ivx D4 4.5.1 */ - - { AV_CODEC_ID_H263, MKTAG('h', '2', '6', '3') }, /* H.263 */ - { AV_CODEC_ID_H263, MKTAG('s', '2', '6', '3') }, /* H.263 ?? works */ - - { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'c', 'p') }, /* DV PAL */ - { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'c', ' ') }, /* DV NTSC */ - { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'p', 'p') }, /* DVCPRO PAL produced by FCP */ - { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', '5', 'p') }, /* DVCPRO50 PAL produced by FCP */ - { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', '5', 'n') }, /* DVCPRO50 NTSC produced by FCP */ - { AV_CODEC_ID_DVVIDEO, MKTAG('A', 'V', 'd', 'v') }, /* AVID DV */ - { AV_CODEC_ID_DVVIDEO, MKTAG('A', 'V', 'd', '1') }, /* AVID DV100 */ - { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', 'q') }, /* DVCPRO HD 720p50 */ - { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', 'p') }, /* DVCPRO HD 720p60 */ - { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', '1') }, - { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', '2') }, - { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', '4') }, - { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', '5') }, /* DVCPRO HD 50i produced by FCP */ - { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', '6') }, /* DVCPRO HD 60i produced by FCP */ - { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', '3') }, /* DVCPRO HD 30p produced by FCP */ - - { AV_CODEC_ID_VP3, MKTAG('V', 'P', '3', '1') }, /* On2 VP3 */ - { AV_CODEC_ID_RPZA, MKTAG('r', 'p', 'z', 'a') }, /* Apple Video (RPZA) */ - { AV_CODEC_ID_CINEPAK, MKTAG('c', 'v', 'i', 'd') }, /* Cinepak */ - { AV_CODEC_ID_8BPS, MKTAG('8', 'B', 'P', 'S') }, /* Planar RGB (8BPS) */ - { AV_CODEC_ID_SMC, MKTAG('s', 'm', 'c', ' ') }, /* Apple Graphics (SMC) */ - { AV_CODEC_ID_QTRLE, MKTAG('r', 'l', 'e', ' ') }, /* Apple Animation (RLE) */ - { AV_CODEC_ID_SGIRLE, MKTAG('r', 'l', 'e', '1') }, /* SGI RLE 8-bit */ - { AV_CODEC_ID_MSRLE, MKTAG('W', 'R', 'L', 'E') }, - { AV_CODEC_ID_QDRAW, MKTAG('q', 'd', 'r', 'w') }, /* QuickDraw */ - { AV_CODEC_ID_CDTOONS, MKTAG('Q', 'k', 'B', 'k') }, /* CDToons */ - - { AV_CODEC_ID_RAWVIDEO, MKTAG('W', 'R', 'A', 'W') }, - - { AV_CODEC_ID_HEVC, MKTAG('h', 'e', 'v', '1') }, /* HEVC/H.265 which indicates parameter sets may be in ES */ - { AV_CODEC_ID_HEVC, MKTAG('h', 'v', 'c', '1') }, /* HEVC/H.265 which indicates parameter sets shall not be in ES */ - { AV_CODEC_ID_HEVC, MKTAG('d', 'v', 'h', 'e') }, /* HEVC-based Dolby Vision derived from hev1 */ - /* dvh1 is handled within mov.c */ - - { AV_CODEC_ID_H264, MKTAG('a', 'v', 'c', '1') }, /* AVC-1/H.264 */ - { AV_CODEC_ID_H264, MKTAG('a', 'v', 'c', '2') }, - { AV_CODEC_ID_H264, MKTAG('a', 'v', 'c', '3') }, - { AV_CODEC_ID_H264, MKTAG('a', 'v', 'c', '4') }, - { AV_CODEC_ID_H264, MKTAG('a', 'i', '5', 'p') }, /* AVC-Intra 50M 720p24/30/60 */ - { AV_CODEC_ID_H264, MKTAG('a', 'i', '5', 'q') }, /* AVC-Intra 50M 720p25/50 */ - { AV_CODEC_ID_H264, MKTAG('a', 'i', '5', '2') }, /* AVC-Intra 50M 1080p25/50 */ - { AV_CODEC_ID_H264, MKTAG('a', 'i', '5', '3') }, /* AVC-Intra 50M 1080p24/30/60 */ - { AV_CODEC_ID_H264, MKTAG('a', 'i', '5', '5') }, /* AVC-Intra 50M 1080i50 */ - { AV_CODEC_ID_H264, MKTAG('a', 'i', '5', '6') }, /* AVC-Intra 50M 1080i60 */ - { AV_CODEC_ID_H264, MKTAG('a', 'i', '1', 'p') }, /* AVC-Intra 100M 720p24/30/60 */ - { AV_CODEC_ID_H264, MKTAG('a', 'i', '1', 'q') }, /* AVC-Intra 100M 720p25/50 */ - { AV_CODEC_ID_H264, MKTAG('a', 'i', '1', '2') }, /* AVC-Intra 100M 1080p25/50 */ - { AV_CODEC_ID_H264, MKTAG('a', 'i', '1', '3') }, /* AVC-Intra 100M 1080p24/30/60 */ - { AV_CODEC_ID_H264, MKTAG('a', 'i', '1', '5') }, /* AVC-Intra 100M 1080i50 */ - { AV_CODEC_ID_H264, MKTAG('a', 'i', '1', '6') }, /* AVC-Intra 100M 1080i60 */ - { AV_CODEC_ID_H264, MKTAG('A', 'V', 'i', 'n') }, /* AVC-Intra with implicit SPS/PPS */ - { AV_CODEC_ID_H264, MKTAG('a', 'i', 'v', 'x') }, /* XAVC 10-bit 4:2:2 */ - { AV_CODEC_ID_H264, MKTAG('r', 'v', '6', '4') }, /* X-Com Radvision */ - { AV_CODEC_ID_H264, MKTAG('x', 'a', 'l', 'g') }, /* XAVC-L HD422 produced by FCP */ - { AV_CODEC_ID_H264, MKTAG('a', 'v', 'l', 'g') }, /* Panasonic P2 AVC-LongG */ - { AV_CODEC_ID_H264, MKTAG('d', 'v', 'a', '1') }, /* AVC-based Dolby Vision derived from avc1 */ - { AV_CODEC_ID_H264, MKTAG('d', 'v', 'a', 'v') }, /* AVC-based Dolby Vision derived from avc3 */ - - { AV_CODEC_ID_VP8, MKTAG('v', 'p', '0', '8') }, /* VP8 */ - { AV_CODEC_ID_VP9, MKTAG('v', 'p', '0', '9') }, /* VP9 */ - { AV_CODEC_ID_AV1, MKTAG('a', 'v', '0', '1') }, /* AV1 */ - - { AV_CODEC_ID_MPEG1VIDEO, MKTAG('m', '1', 'v', ' ') }, - { AV_CODEC_ID_MPEG1VIDEO, MKTAG('m', '1', 'v', '1') }, /* Apple MPEG-1 Camcorder */ - { AV_CODEC_ID_MPEG1VIDEO, MKTAG('m', 'p', 'e', 'g') }, /* MPEG */ - { AV_CODEC_ID_MPEG1VIDEO, MKTAG('m', 'p', '1', 'v') }, /* CoreMedia CMVideoCodecType */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', '2', 'v', '1') }, /* Apple MPEG-2 Camcorder */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', '1') }, /* MPEG-2 HDV 720p30 */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', '2') }, /* MPEG-2 HDV 1080i60 */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', '3') }, /* MPEG-2 HDV 1080i50 */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', '4') }, /* MPEG-2 HDV 720p24 */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', '5') }, /* MPEG-2 HDV 720p25 */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', '6') }, /* MPEG-2 HDV 1080p24 */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', '7') }, /* MPEG-2 HDV 1080p25 */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', '8') }, /* MPEG-2 HDV 1080p30 */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', '9') }, /* MPEG-2 HDV 720p60 JVC */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', 'a') }, /* MPEG-2 HDV 720p50 */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', 'x', '5', 'n') }, /* MPEG-2 IMX NTSC 525/60 50mb/s produced by FCP */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', 'x', '5', 'p') }, /* MPEG-2 IMX PAL 625/50 50mb/s produced by FCP */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', 'x', '4', 'n') }, /* MPEG-2 IMX NTSC 525/60 40mb/s produced by FCP */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', 'x', '4', 'p') }, /* MPEG-2 IMX PAL 625/50 40mb/s produced by FCP */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', 'x', '3', 'n') }, /* MPEG-2 IMX NTSC 525/60 30mb/s produced by FCP */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', 'x', '3', 'p') }, /* MPEG-2 IMX PAL 625/50 30mb/s produced by FCP */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', '1') }, /* XDCAM HD422 720p30 CBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', '4') }, /* XDCAM HD422 720p24 CBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', '5') }, /* XDCAM HD422 720p25 CBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', '9') }, /* XDCAM HD422 720p60 CBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', 'a') }, /* XDCAM HD422 720p50 CBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', 'b') }, /* XDCAM HD422 1080i60 CBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', 'c') }, /* XDCAM HD422 1080i50 CBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', 'd') }, /* XDCAM HD422 1080p24 CBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', 'e') }, /* XDCAM HD422 1080p25 CBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', 'f') }, /* XDCAM HD422 1080p30 CBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', '1') }, /* XDCAM EX 720p30 VBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', '2') }, /* XDCAM HD 1080i60 */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', '3') }, /* XDCAM HD 1080i50 VBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', '4') }, /* XDCAM EX 720p24 VBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', '5') }, /* XDCAM EX 720p25 VBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', '6') }, /* XDCAM HD 1080p24 VBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', '7') }, /* XDCAM HD 1080p25 VBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', '8') }, /* XDCAM HD 1080p30 VBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', '9') }, /* XDCAM EX 720p60 VBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', 'a') }, /* XDCAM EX 720p50 VBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', 'b') }, /* XDCAM EX 1080i60 VBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', 'c') }, /* XDCAM EX 1080i50 VBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', 'd') }, /* XDCAM EX 1080p24 VBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', 'e') }, /* XDCAM EX 1080p25 VBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', 'f') }, /* XDCAM EX 1080p30 VBR */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'h', 'd') }, /* XDCAM HD 540p */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'h', '2') }, /* XDCAM HD422 540p */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('A', 'V', 'm', 'p') }, /* AVID IMX PAL */ - { AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', 'p', '2', 'v') }, /* FCP5 */ - - { AV_CODEC_ID_JPEG2000, MKTAG('m', 'j', 'p', '2') }, /* JPEG 2000 produced by FCP */ - - { AV_CODEC_ID_TARGA, MKTAG('t', 'g', 'a', ' ') }, /* Truevision Targa */ - { AV_CODEC_ID_TIFF, MKTAG('t', 'i', 'f', 'f') }, /* TIFF embedded in MOV */ - { AV_CODEC_ID_GIF, MKTAG('g', 'i', 'f', ' ') }, /* embedded gif files as frames (usually one "click to play movie" frame) */ - { AV_CODEC_ID_PNG, MKTAG('p', 'n', 'g', ' ') }, - { AV_CODEC_ID_PNG, MKTAG('M', 'N', 'G', ' ') }, - - { AV_CODEC_ID_VC1, MKTAG('v', 'c', '-', '1') }, /* SMPTE RP 2025 */ - { AV_CODEC_ID_CAVS, MKTAG('a', 'v', 's', '2') }, - - { AV_CODEC_ID_DIRAC, MKTAG('d', 'r', 'a', 'c') }, - { AV_CODEC_ID_DNXHD, MKTAG('A', 'V', 'd', 'n') }, /* AVID DNxHD */ - { AV_CODEC_ID_DNXHD, MKTAG('A', 'V', 'd', 'h') }, /* AVID DNxHR */ - { AV_CODEC_ID_H263, MKTAG('H', '2', '6', '3') }, - { AV_CODEC_ID_MSMPEG4V3, MKTAG('3', 'I', 'V', 'D') }, /* 3ivx DivX Doctor */ - { AV_CODEC_ID_RAWVIDEO, MKTAG('A', 'V', '1', 'x') }, /* AVID 1:1x */ - { AV_CODEC_ID_RAWVIDEO, MKTAG('A', 'V', 'u', 'p') }, - { AV_CODEC_ID_SGI, MKTAG('s', 'g', 'i', ' ') }, /* SGI */ - { AV_CODEC_ID_DPX, MKTAG('d', 'p', 'x', ' ') }, /* DPX */ - { AV_CODEC_ID_EXR, MKTAG('e', 'x', 'r', ' ') }, /* OpenEXR */ - - { AV_CODEC_ID_PRORES, MKTAG('a', 'p', 'c', 'h') }, /* Apple ProRes 422 High Quality */ - { AV_CODEC_ID_PRORES, MKTAG('a', 'p', 'c', 'n') }, /* Apple ProRes 422 Standard Definition */ - { AV_CODEC_ID_PRORES, MKTAG('a', 'p', 'c', 's') }, /* Apple ProRes 422 LT */ - { AV_CODEC_ID_PRORES, MKTAG('a', 'p', 'c', 'o') }, /* Apple ProRes 422 Proxy */ - { AV_CODEC_ID_PRORES, MKTAG('a', 'p', '4', 'h') }, /* Apple ProRes 4444 */ - { AV_CODEC_ID_PRORES, MKTAG('a', 'p', '4', 'x') }, /* Apple ProRes 4444 XQ */ - { AV_CODEC_ID_FLIC, MKTAG('f', 'l', 'i', 'c') }, - - { AV_CODEC_ID_AIC, MKTAG('i', 'c', 'o', 'd') }, - - { AV_CODEC_ID_HAP, MKTAG('H', 'a', 'p', '1') }, - { AV_CODEC_ID_HAP, MKTAG('H', 'a', 'p', '5') }, - { AV_CODEC_ID_HAP, MKTAG('H', 'a', 'p', 'Y') }, - { AV_CODEC_ID_HAP, MKTAG('H', 'a', 'p', 'A') }, - { AV_CODEC_ID_HAP, MKTAG('H', 'a', 'p', 'M') }, - - { AV_CODEC_ID_DXV, MKTAG('D', 'X', 'D', '3') }, - { AV_CODEC_ID_DXV, MKTAG('D', 'X', 'D', 'I') }, - - { AV_CODEC_ID_MAGICYUV, MKTAG('M', '0', 'R', '0') }, - { AV_CODEC_ID_MAGICYUV, MKTAG('M', '0', 'R', 'A') }, - { AV_CODEC_ID_MAGICYUV, MKTAG('M', '0', 'R', 'G') }, - { AV_CODEC_ID_MAGICYUV, MKTAG('M', '0', 'Y', '0') }, - { AV_CODEC_ID_MAGICYUV, MKTAG('M', '0', 'Y', '2') }, - { AV_CODEC_ID_MAGICYUV, MKTAG('M', '0', 'Y', '4') }, - { AV_CODEC_ID_MAGICYUV, MKTAG('M', '8', 'R', 'G') }, - { AV_CODEC_ID_MAGICYUV, MKTAG('M', '8', 'R', 'A') }, - { AV_CODEC_ID_MAGICYUV, MKTAG('M', '8', 'G', '0') }, - { AV_CODEC_ID_MAGICYUV, MKTAG('M', '8', 'Y', '0') }, - { AV_CODEC_ID_MAGICYUV, MKTAG('M', '8', 'Y', '2') }, - { AV_CODEC_ID_MAGICYUV, MKTAG('M', '8', 'Y', '4') }, - { AV_CODEC_ID_MAGICYUV, MKTAG('M', '8', 'Y', 'A') }, - { AV_CODEC_ID_MAGICYUV, MKTAG('M', '2', 'R', 'A') }, - { AV_CODEC_ID_MAGICYUV, MKTAG('M', '2', 'R', 'G') }, - - { AV_CODEC_ID_SHEERVIDEO, MKTAG('S', 'h', 'r', '0') }, - { AV_CODEC_ID_SHEERVIDEO, MKTAG('S', 'h', 'r', '1') }, - { AV_CODEC_ID_SHEERVIDEO, MKTAG('S', 'h', 'r', '2') }, - { AV_CODEC_ID_SHEERVIDEO, MKTAG('S', 'h', 'r', '3') }, - { AV_CODEC_ID_SHEERVIDEO, MKTAG('S', 'h', 'r', '4') }, - { AV_CODEC_ID_SHEERVIDEO, MKTAG('S', 'h', 'r', '5') }, - { AV_CODEC_ID_SHEERVIDEO, MKTAG('S', 'h', 'r', '6') }, - { AV_CODEC_ID_SHEERVIDEO, MKTAG('S', 'h', 'r', '7') }, - - { AV_CODEC_ID_PIXLET, MKTAG('p', 'x', 'l', 't') }, - - { AV_CODEC_ID_NOTCHLC, MKTAG('n', 'c', 'l', 'c') }, - - { AV_CODEC_ID_RAWVIDEO, MKTAG('B', 'G', 'G', 'R') }, /* ASC Bayer BGGR */ - - { AV_CODEC_ID_NONE, 0 }, -}; - -const AVCodecTag ff_codec_movaudio_tags[] = { - { AV_CODEC_ID_AAC, MKTAG('m', 'p', '4', 'a') }, - { AV_CODEC_ID_AC3, MKTAG('a', 'c', '-', '3') }, /* ETSI TS 102 366 Annex F */ - { AV_CODEC_ID_AC3, MKTAG('s', 'a', 'c', '3') }, /* Nero Recode */ - { AV_CODEC_ID_ADPCM_IMA_QT, MKTAG('i', 'm', 'a', '4') }, - { AV_CODEC_ID_ALAC, MKTAG('a', 'l', 'a', 'c') }, - { AV_CODEC_ID_AMR_NB, MKTAG('s', 'a', 'm', 'r') }, /* AMR-NB 3gp */ - { AV_CODEC_ID_AMR_WB, MKTAG('s', 'a', 'w', 'b') }, /* AMR-WB 3gp */ - { AV_CODEC_ID_DTS, MKTAG('d', 't', 's', 'c') }, /* DTS formats prior to DTS-HD */ - { AV_CODEC_ID_DTS, MKTAG('d', 't', 's', 'h') }, /* DTS-HD audio formats */ - { AV_CODEC_ID_DTS, MKTAG('d', 't', 's', 'l') }, /* DTS-HD Lossless formats */ - { AV_CODEC_ID_DTS, MKTAG('d', 't', 's', 'e') }, /* DTS Express */ - { AV_CODEC_ID_DTS, MKTAG('D', 'T', 'S', ' ') }, /* non-standard */ - { AV_CODEC_ID_EAC3, MKTAG('e', 'c', '-', '3') }, /* ETSI TS 102 366 Annex F (only valid in ISOBMFF) */ - { AV_CODEC_ID_DVAUDIO, MKTAG('v', 'd', 'v', 'a') }, - { AV_CODEC_ID_DVAUDIO, MKTAG('d', 'v', 'c', 'a') }, - { AV_CODEC_ID_GSM, MKTAG('a', 'g', 's', 'm') }, - { AV_CODEC_ID_ILBC, MKTAG('i', 'l', 'b', 'c') }, - { AV_CODEC_ID_MACE3, MKTAG('M', 'A', 'C', '3') }, - { AV_CODEC_ID_MACE6, MKTAG('M', 'A', 'C', '6') }, - { AV_CODEC_ID_MP1, MKTAG('.', 'm', 'p', '1') }, - { AV_CODEC_ID_MP2, MKTAG('.', 'm', 'p', '2') }, - { AV_CODEC_ID_MP3, MKTAG('.', 'm', 'p', '3') }, - { AV_CODEC_ID_MP3, MKTAG('m', 'p', '3', ' ') }, /* vlc */ - { AV_CODEC_ID_MP3, 0x6D730055 }, - { AV_CODEC_ID_NELLYMOSER, MKTAG('n', 'm', 'o', 's') }, /* Flash Media Server */ - { AV_CODEC_ID_NELLYMOSER, MKTAG('N', 'E', 'L', 'L') }, /* Perian */ - { AV_CODEC_ID_PCM_ALAW, MKTAG('a', 'l', 'a', 'w') }, - { AV_CODEC_ID_PCM_F32BE, MKTAG('f', 'l', '3', '2') }, - { AV_CODEC_ID_PCM_F32LE, MKTAG('f', 'l', '3', '2') }, - { AV_CODEC_ID_PCM_F64BE, MKTAG('f', 'l', '6', '4') }, - { AV_CODEC_ID_PCM_F64LE, MKTAG('f', 'l', '6', '4') }, - { AV_CODEC_ID_PCM_MULAW, MKTAG('u', 'l', 'a', 'w') }, - { AV_CODEC_ID_PCM_S16BE, MKTAG('t', 'w', 'o', 's') }, - { AV_CODEC_ID_PCM_S16LE, MKTAG('s', 'o', 'w', 't') }, - { AV_CODEC_ID_PCM_S16BE, MKTAG('l', 'p', 'c', 'm') }, - { AV_CODEC_ID_PCM_S16LE, MKTAG('l', 'p', 'c', 'm') }, - { AV_CODEC_ID_PCM_S24BE, MKTAG('i', 'n', '2', '4') }, - { AV_CODEC_ID_PCM_S24LE, MKTAG('i', 'n', '2', '4') }, - { AV_CODEC_ID_PCM_S32BE, MKTAG('i', 'n', '3', '2') }, - { AV_CODEC_ID_PCM_S32LE, MKTAG('i', 'n', '3', '2') }, - { AV_CODEC_ID_PCM_S8, MKTAG('s', 'o', 'w', 't') }, - { AV_CODEC_ID_PCM_U8, MKTAG('r', 'a', 'w', ' ') }, - { AV_CODEC_ID_PCM_U8, MKTAG('N', 'O', 'N', 'E') }, - { AV_CODEC_ID_QCELP, MKTAG('Q', 'c', 'l', 'p') }, - { AV_CODEC_ID_QCELP, MKTAG('Q', 'c', 'l', 'q') }, - { AV_CODEC_ID_QCELP, MKTAG('s', 'q', 'c', 'p') }, /* ISO Media fourcc */ - { AV_CODEC_ID_QDM2, MKTAG('Q', 'D', 'M', '2') }, - { AV_CODEC_ID_QDMC, MKTAG('Q', 'D', 'M', 'C') }, - { AV_CODEC_ID_SPEEX, MKTAG('s', 'p', 'e', 'x') }, /* Flash Media Server */ - { AV_CODEC_ID_SPEEX, MKTAG('S', 'P', 'X', 'N') }, /* ZygoAudio (quality 10 mode) */ - { AV_CODEC_ID_EVRC, MKTAG('s', 'e', 'v', 'c') }, /* 3GPP2 */ - { AV_CODEC_ID_SMV, MKTAG('s', 's', 'm', 'v') }, /* 3GPP2 */ - { AV_CODEC_ID_FLAC, MKTAG('f', 'L', 'a', 'C') }, /* nonstandard */ - { AV_CODEC_ID_TRUEHD, MKTAG('m', 'l', 'p', 'a') }, /* mp4ra.org */ - { AV_CODEC_ID_OPUS, MKTAG('O', 'p', 'u', 's') }, /* mp4ra.org */ - { AV_CODEC_ID_MPEGH_3D_AUDIO, MKTAG('m', 'h', 'm', '1') }, /* MPEG-H 3D Audio bitstream */ - { AV_CODEC_ID_NONE, 0 }, -}; - const AVCodecTag ff_codec_movsubtitle_tags[] = { { AV_CODEC_ID_MOV_TEXT, MKTAG('t', 'e', 'x', 't') }, { AV_CODEC_ID_MOV_TEXT, MKTAG('t', 'x', '3', 'g') }, @@ -787,13 +478,3 @@ void ff_mov_write_chan(AVIOContext *pb, int64_t channel_layout) } avio_wb32(pb, 0); // mNumberChannelDescriptions } - -const struct AVCodecTag *avformat_get_mov_video_tags(void) -{ - return ff_codec_movvideo_tags; -} - -const struct AVCodecTag *avformat_get_mov_audio_tags(void) -{ - return ff_codec_movaudio_tags; -} diff --git a/libavformat/isom_tags.c b/libavformat/isom_tags.c new file mode 100644 index 0000000000..75c3ee2b32 --- /dev/null +++ b/libavformat/isom_tags.c @@ -0,0 +1,346 @@ +/* + * ISO Media codec tags + * Copyright (c) 2001 Fabrice Bellard + * Copyright (c) 2002 Francois Revol + * Copyright (c) 2006 Baptiste Coudurier + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "libavcodec/codec_id.h" +#include "avformat.h" +#include "internal.h" +#include "isom.h" + +const AVCodecTag ff_codec_movvideo_tags[] = { +/* { AV_CODEC_ID_, MKTAG('I', 'V', '5', '0') }, *//* Indeo 5.0 */ + + { AV_CODEC_ID_RAWVIDEO, MKTAG('r', 'a', 'w', ' ') }, /* uncompressed RGB */ + { AV_CODEC_ID_RAWVIDEO, MKTAG('y', 'u', 'v', '2') }, /* uncompressed YUV422 */ + { AV_CODEC_ID_RAWVIDEO, MKTAG('2', 'v', 'u', 'y') }, /* uncompressed 8-bit 4:2:2 */ + { AV_CODEC_ID_RAWVIDEO, MKTAG('y', 'u', 'v', 's') }, /* same as 2VUY but byte-swapped */ + + { AV_CODEC_ID_RAWVIDEO, MKTAG('L', '5', '5', '5') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('L', '5', '6', '5') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('B', '5', '6', '5') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('2', '4', 'B', 'G') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('B', 'G', 'R', 'A') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', 'A') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('A', 'B', 'G', 'R') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('b', '1', '6', 'g') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('b', '4', '8', 'r') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('b', '6', '4', 'a') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('b', 'x', 'b', 'g') }, /* BOXX */ + { AV_CODEC_ID_RAWVIDEO, MKTAG('b', 'x', 'r', 'g') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('b', 'x', 'y', 'v') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('N', 'O', '1', '6') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('D', 'V', 'O', 'O') }, /* Digital Voodoo SD 8 Bit */ + { AV_CODEC_ID_RAWVIDEO, MKTAG('R', '4', '2', '0') }, /* Radius DV YUV PAL */ + { AV_CODEC_ID_RAWVIDEO, MKTAG('R', '4', '1', '1') }, /* Radius DV YUV NTSC */ + + { AV_CODEC_ID_R10K, MKTAG('R', '1', '0', 'k') }, /* uncompressed 10-bit RGB */ + { AV_CODEC_ID_R10K, MKTAG('R', '1', '0', 'g') }, /* uncompressed 10-bit RGB */ + { AV_CODEC_ID_R210, MKTAG('r', '2', '1', '0') }, /* uncompressed 10-bit RGB */ + { AV_CODEC_ID_AVUI, MKTAG('A', 'V', 'U', 'I') }, /* AVID Uncompressed deinterleaved UYVY422 */ + { AV_CODEC_ID_AVRP, MKTAG('A', 'V', 'r', 'p') }, /* Avid 1:1 10-bit RGB Packer */ + { AV_CODEC_ID_AVRP, MKTAG('S', 'U', 'D', 'S') }, /* Avid DS Uncompressed */ + { AV_CODEC_ID_V210, MKTAG('v', '2', '1', '0') }, /* uncompressed 10-bit 4:2:2 */ + { AV_CODEC_ID_V210, MKTAG('b', 'x', 'y', '2') }, /* BOXX 10-bit 4:2:2 */ + { AV_CODEC_ID_V308, MKTAG('v', '3', '0', '8') }, /* uncompressed 8-bit 4:4:4 */ + { AV_CODEC_ID_V408, MKTAG('v', '4', '0', '8') }, /* uncompressed 8-bit 4:4:4:4 */ + { AV_CODEC_ID_V410, MKTAG('v', '4', '1', '0') }, /* uncompressed 10-bit 4:4:4 */ + { AV_CODEC_ID_Y41P, MKTAG('Y', '4', '1', 'P') }, /* uncompressed 12-bit 4:1:1 */ + { AV_CODEC_ID_YUV4, MKTAG('y', 'u', 'v', '4') }, /* libquicktime packed yuv420p */ + { AV_CODEC_ID_TARGA_Y216, MKTAG('Y', '2', '1', '6') }, + + { AV_CODEC_ID_MJPEG, MKTAG('j', 'p', 'e', 'g') }, /* PhotoJPEG */ + { AV_CODEC_ID_MJPEG, MKTAG('m', 'j', 'p', 'a') }, /* Motion-JPEG (format A) */ + { AV_CODEC_ID_AVRN , MKTAG('A', 'V', 'D', 'J') }, /* MJPEG with alpha-channel (AVID JFIF meridien compressed) */ +/* { AV_CODEC_ID_MJPEG, MKTAG('A', 'V', 'R', 'n') }, *//* MJPEG with alpha-channel (AVID ABVB/Truevision NuVista) */ + { AV_CODEC_ID_MJPEG, MKTAG('d', 'm', 'b', '1') }, /* Motion JPEG OpenDML */ + { AV_CODEC_ID_MJPEGB, MKTAG('m', 'j', 'p', 'b') }, /* Motion-JPEG (format B) */ + + { AV_CODEC_ID_SVQ1, MKTAG('S', 'V', 'Q', '1') }, /* Sorenson Video v1 */ + { AV_CODEC_ID_SVQ1, MKTAG('s', 'v', 'q', '1') }, /* Sorenson Video v1 */ + { AV_CODEC_ID_SVQ1, MKTAG('s', 'v', 'q', 'i') }, /* Sorenson Video v1 (from QT specs)*/ + { AV_CODEC_ID_SVQ3, MKTAG('S', 'V', 'Q', '3') }, /* Sorenson Video v3 */ + + { AV_CODEC_ID_MPEG4, MKTAG('m', 'p', '4', 'v') }, + { AV_CODEC_ID_MPEG4, MKTAG('D', 'I', 'V', 'X') }, /* OpenDiVX *//* sample files at http://heroinewarrior.com/xmovie.php3 use this tag */ + { AV_CODEC_ID_MPEG4, MKTAG('X', 'V', 'I', 'D') }, + { AV_CODEC_ID_MPEG4, MKTAG('3', 'I', 'V', '2') }, /* experimental: 3IVX files before ivx D4 4.5.1 */ + + { AV_CODEC_ID_H263, MKTAG('h', '2', '6', '3') }, /* H.263 */ + { AV_CODEC_ID_H263, MKTAG('s', '2', '6', '3') }, /* H.263 ?? works */ + + { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'c', 'p') }, /* DV PAL */ + { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'c', ' ') }, /* DV NTSC */ + { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'p', 'p') }, /* DVCPRO PAL produced by FCP */ + { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', '5', 'p') }, /* DVCPRO50 PAL produced by FCP */ + { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', '5', 'n') }, /* DVCPRO50 NTSC produced by FCP */ + { AV_CODEC_ID_DVVIDEO, MKTAG('A', 'V', 'd', 'v') }, /* AVID DV */ + { AV_CODEC_ID_DVVIDEO, MKTAG('A', 'V', 'd', '1') }, /* AVID DV100 */ + { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', 'q') }, /* DVCPRO HD 720p50 */ + { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', 'p') }, /* DVCPRO HD 720p60 */ + { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', '1') }, + { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', '2') }, + { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', '4') }, + { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', '5') }, /* DVCPRO HD 50i produced by FCP */ + { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', '6') }, /* DVCPRO HD 60i produced by FCP */ + { AV_CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', '3') }, /* DVCPRO HD 30p produced by FCP */ + + { AV_CODEC_ID_VP3, MKTAG('V', 'P', '3', '1') }, /* On2 VP3 */ + { AV_CODEC_ID_RPZA, MKTAG('r', 'p', 'z', 'a') }, /* Apple Video (RPZA) */ + { AV_CODEC_ID_CINEPAK, MKTAG('c', 'v', 'i', 'd') }, /* Cinepak */ + { AV_CODEC_ID_8BPS, MKTAG('8', 'B', 'P', 'S') }, /* Planar RGB (8BPS) */ + { AV_CODEC_ID_SMC, MKTAG('s', 'm', 'c', ' ') }, /* Apple Graphics (SMC) */ + { AV_CODEC_ID_QTRLE, MKTAG('r', 'l', 'e', ' ') }, /* Apple Animation (RLE) */ + { AV_CODEC_ID_SGIRLE, MKTAG('r', 'l', 'e', '1') }, /* SGI RLE 8-bit */ + { AV_CODEC_ID_MSRLE, MKTAG('W', 'R', 'L', 'E') }, + { AV_CODEC_ID_QDRAW, MKTAG('q', 'd', 'r', 'w') }, /* QuickDraw */ + { AV_CODEC_ID_CDTOONS, MKTAG('Q', 'k', 'B', 'k') }, /* CDToons */ + + { AV_CODEC_ID_RAWVIDEO, MKTAG('W', 'R', 'A', 'W') }, + + { AV_CODEC_ID_HEVC, MKTAG('h', 'e', 'v', '1') }, /* HEVC/H.265 which indicates parameter sets may be in ES */ + { AV_CODEC_ID_HEVC, MKTAG('h', 'v', 'c', '1') }, /* HEVC/H.265 which indicates parameter sets shall not be in ES */ + { AV_CODEC_ID_HEVC, MKTAG('d', 'v', 'h', 'e') }, /* HEVC-based Dolby Vision derived from hev1 */ + /* dvh1 is handled within mov.c */ + + { AV_CODEC_ID_H264, MKTAG('a', 'v', 'c', '1') }, /* AVC-1/H.264 */ + { AV_CODEC_ID_H264, MKTAG('a', 'v', 'c', '2') }, + { AV_CODEC_ID_H264, MKTAG('a', 'v', 'c', '3') }, + { AV_CODEC_ID_H264, MKTAG('a', 'v', 'c', '4') }, + { AV_CODEC_ID_H264, MKTAG('a', 'i', '5', 'p') }, /* AVC-Intra 50M 720p24/30/60 */ + { AV_CODEC_ID_H264, MKTAG('a', 'i', '5', 'q') }, /* AVC-Intra 50M 720p25/50 */ + { AV_CODEC_ID_H264, MKTAG('a', 'i', '5', '2') }, /* AVC-Intra 50M 1080p25/50 */ + { AV_CODEC_ID_H264, MKTAG('a', 'i', '5', '3') }, /* AVC-Intra 50M 1080p24/30/60 */ + { AV_CODEC_ID_H264, MKTAG('a', 'i', '5', '5') }, /* AVC-Intra 50M 1080i50 */ + { AV_CODEC_ID_H264, MKTAG('a', 'i', '5', '6') }, /* AVC-Intra 50M 1080i60 */ + { AV_CODEC_ID_H264, MKTAG('a', 'i', '1', 'p') }, /* AVC-Intra 100M 720p24/30/60 */ + { AV_CODEC_ID_H264, MKTAG('a', 'i', '1', 'q') }, /* AVC-Intra 100M 720p25/50 */ + { AV_CODEC_ID_H264, MKTAG('a', 'i', '1', '2') }, /* AVC-Intra 100M 1080p25/50 */ + { AV_CODEC_ID_H264, MKTAG('a', 'i', '1', '3') }, /* AVC-Intra 100M 1080p24/30/60 */ + { AV_CODEC_ID_H264, MKTAG('a', 'i', '1', '5') }, /* AVC-Intra 100M 1080i50 */ + { AV_CODEC_ID_H264, MKTAG('a', 'i', '1', '6') }, /* AVC-Intra 100M 1080i60 */ + { AV_CODEC_ID_H264, MKTAG('A', 'V', 'i', 'n') }, /* AVC-Intra with implicit SPS/PPS */ + { AV_CODEC_ID_H264, MKTAG('a', 'i', 'v', 'x') }, /* XAVC 10-bit 4:2:2 */ + { AV_CODEC_ID_H264, MKTAG('r', 'v', '6', '4') }, /* X-Com Radvision */ + { AV_CODEC_ID_H264, MKTAG('x', 'a', 'l', 'g') }, /* XAVC-L HD422 produced by FCP */ + { AV_CODEC_ID_H264, MKTAG('a', 'v', 'l', 'g') }, /* Panasonic P2 AVC-LongG */ + { AV_CODEC_ID_H264, MKTAG('d', 'v', 'a', '1') }, /* AVC-based Dolby Vision derived from avc1 */ + { AV_CODEC_ID_H264, MKTAG('d', 'v', 'a', 'v') }, /* AVC-based Dolby Vision derived from avc3 */ + + { AV_CODEC_ID_VP8, MKTAG('v', 'p', '0', '8') }, /* VP8 */ + { AV_CODEC_ID_VP9, MKTAG('v', 'p', '0', '9') }, /* VP9 */ + { AV_CODEC_ID_AV1, MKTAG('a', 'v', '0', '1') }, /* AV1 */ + + { AV_CODEC_ID_MPEG1VIDEO, MKTAG('m', '1', 'v', ' ') }, + { AV_CODEC_ID_MPEG1VIDEO, MKTAG('m', '1', 'v', '1') }, /* Apple MPEG-1 Camcorder */ + { AV_CODEC_ID_MPEG1VIDEO, MKTAG('m', 'p', 'e', 'g') }, /* MPEG */ + { AV_CODEC_ID_MPEG1VIDEO, MKTAG('m', 'p', '1', 'v') }, /* CoreMedia CMVideoCodecType */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', '2', 'v', '1') }, /* Apple MPEG-2 Camcorder */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', '1') }, /* MPEG-2 HDV 720p30 */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', '2') }, /* MPEG-2 HDV 1080i60 */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', '3') }, /* MPEG-2 HDV 1080i50 */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', '4') }, /* MPEG-2 HDV 720p24 */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', '5') }, /* MPEG-2 HDV 720p25 */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', '6') }, /* MPEG-2 HDV 1080p24 */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', '7') }, /* MPEG-2 HDV 1080p25 */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', '8') }, /* MPEG-2 HDV 1080p30 */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', '9') }, /* MPEG-2 HDV 720p60 JVC */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('h', 'd', 'v', 'a') }, /* MPEG-2 HDV 720p50 */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', 'x', '5', 'n') }, /* MPEG-2 IMX NTSC 525/60 50mb/s produced by FCP */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', 'x', '5', 'p') }, /* MPEG-2 IMX PAL 625/50 50mb/s produced by FCP */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', 'x', '4', 'n') }, /* MPEG-2 IMX NTSC 525/60 40mb/s produced by FCP */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', 'x', '4', 'p') }, /* MPEG-2 IMX PAL 625/50 40mb/s produced by FCP */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', 'x', '3', 'n') }, /* MPEG-2 IMX NTSC 525/60 30mb/s produced by FCP */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', 'x', '3', 'p') }, /* MPEG-2 IMX PAL 625/50 30mb/s produced by FCP */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', '1') }, /* XDCAM HD422 720p30 CBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', '4') }, /* XDCAM HD422 720p24 CBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', '5') }, /* XDCAM HD422 720p25 CBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', '9') }, /* XDCAM HD422 720p60 CBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', 'a') }, /* XDCAM HD422 720p50 CBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', 'b') }, /* XDCAM HD422 1080i60 CBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', 'c') }, /* XDCAM HD422 1080i50 CBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', 'd') }, /* XDCAM HD422 1080p24 CBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', 'e') }, /* XDCAM HD422 1080p25 CBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', '5', 'f') }, /* XDCAM HD422 1080p30 CBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', '1') }, /* XDCAM EX 720p30 VBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', '2') }, /* XDCAM HD 1080i60 */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', '3') }, /* XDCAM HD 1080i50 VBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', '4') }, /* XDCAM EX 720p24 VBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', '5') }, /* XDCAM EX 720p25 VBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', '6') }, /* XDCAM HD 1080p24 VBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', '7') }, /* XDCAM HD 1080p25 VBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', '8') }, /* XDCAM HD 1080p30 VBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', '9') }, /* XDCAM EX 720p60 VBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', 'a') }, /* XDCAM EX 720p50 VBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', 'b') }, /* XDCAM EX 1080i60 VBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', 'c') }, /* XDCAM EX 1080i50 VBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', 'd') }, /* XDCAM EX 1080p24 VBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', 'e') }, /* XDCAM EX 1080p25 VBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'v', 'f') }, /* XDCAM EX 1080p30 VBR */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'h', 'd') }, /* XDCAM HD 540p */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('x', 'd', 'h', '2') }, /* XDCAM HD422 540p */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('A', 'V', 'm', 'p') }, /* AVID IMX PAL */ + { AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', 'p', '2', 'v') }, /* FCP5 */ + + { AV_CODEC_ID_JPEG2000, MKTAG('m', 'j', 'p', '2') }, /* JPEG 2000 produced by FCP */ + + { AV_CODEC_ID_TARGA, MKTAG('t', 'g', 'a', ' ') }, /* Truevision Targa */ + { AV_CODEC_ID_TIFF, MKTAG('t', 'i', 'f', 'f') }, /* TIFF embedded in MOV */ + { AV_CODEC_ID_GIF, MKTAG('g', 'i', 'f', ' ') }, /* embedded gif files as frames (usually one "click to play movie" frame) */ + { AV_CODEC_ID_PNG, MKTAG('p', 'n', 'g', ' ') }, + { AV_CODEC_ID_PNG, MKTAG('M', 'N', 'G', ' ') }, + + { AV_CODEC_ID_VC1, MKTAG('v', 'c', '-', '1') }, /* SMPTE RP 2025 */ + { AV_CODEC_ID_CAVS, MKTAG('a', 'v', 's', '2') }, + + { AV_CODEC_ID_DIRAC, MKTAG('d', 'r', 'a', 'c') }, + { AV_CODEC_ID_DNXHD, MKTAG('A', 'V', 'd', 'n') }, /* AVID DNxHD */ + { AV_CODEC_ID_DNXHD, MKTAG('A', 'V', 'd', 'h') }, /* AVID DNxHR */ + { AV_CODEC_ID_H263, MKTAG('H', '2', '6', '3') }, + { AV_CODEC_ID_MSMPEG4V3, MKTAG('3', 'I', 'V', 'D') }, /* 3ivx DivX Doctor */ + { AV_CODEC_ID_RAWVIDEO, MKTAG('A', 'V', '1', 'x') }, /* AVID 1:1x */ + { AV_CODEC_ID_RAWVIDEO, MKTAG('A', 'V', 'u', 'p') }, + { AV_CODEC_ID_SGI, MKTAG('s', 'g', 'i', ' ') }, /* SGI */ + { AV_CODEC_ID_DPX, MKTAG('d', 'p', 'x', ' ') }, /* DPX */ + { AV_CODEC_ID_EXR, MKTAG('e', 'x', 'r', ' ') }, /* OpenEXR */ + + { AV_CODEC_ID_PRORES, MKTAG('a', 'p', 'c', 'h') }, /* Apple ProRes 422 High Quality */ + { AV_CODEC_ID_PRORES, MKTAG('a', 'p', 'c', 'n') }, /* Apple ProRes 422 Standard Definition */ + { AV_CODEC_ID_PRORES, MKTAG('a', 'p', 'c', 's') }, /* Apple ProRes 422 LT */ + { AV_CODEC_ID_PRORES, MKTAG('a', 'p', 'c', 'o') }, /* Apple ProRes 422 Proxy */ + { AV_CODEC_ID_PRORES, MKTAG('a', 'p', '4', 'h') }, /* Apple ProRes 4444 */ + { AV_CODEC_ID_PRORES, MKTAG('a', 'p', '4', 'x') }, /* Apple ProRes 4444 XQ */ + { AV_CODEC_ID_FLIC, MKTAG('f', 'l', 'i', 'c') }, + + { AV_CODEC_ID_AIC, MKTAG('i', 'c', 'o', 'd') }, + + { AV_CODEC_ID_HAP, MKTAG('H', 'a', 'p', '1') }, + { AV_CODEC_ID_HAP, MKTAG('H', 'a', 'p', '5') }, + { AV_CODEC_ID_HAP, MKTAG('H', 'a', 'p', 'Y') }, + { AV_CODEC_ID_HAP, MKTAG('H', 'a', 'p', 'A') }, + { AV_CODEC_ID_HAP, MKTAG('H', 'a', 'p', 'M') }, + + { AV_CODEC_ID_DXV, MKTAG('D', 'X', 'D', '3') }, + { AV_CODEC_ID_DXV, MKTAG('D', 'X', 'D', 'I') }, + + { AV_CODEC_ID_MAGICYUV, MKTAG('M', '0', 'R', '0') }, + { AV_CODEC_ID_MAGICYUV, MKTAG('M', '0', 'R', 'A') }, + { AV_CODEC_ID_MAGICYUV, MKTAG('M', '0', 'R', 'G') }, + { AV_CODEC_ID_MAGICYUV, MKTAG('M', '0', 'Y', '0') }, + { AV_CODEC_ID_MAGICYUV, MKTAG('M', '0', 'Y', '2') }, + { AV_CODEC_ID_MAGICYUV, MKTAG('M', '0', 'Y', '4') }, + { AV_CODEC_ID_MAGICYUV, MKTAG('M', '8', 'R', 'G') }, + { AV_CODEC_ID_MAGICYUV, MKTAG('M', '8', 'R', 'A') }, + { AV_CODEC_ID_MAGICYUV, MKTAG('M', '8', 'G', '0') }, + { AV_CODEC_ID_MAGICYUV, MKTAG('M', '8', 'Y', '0') }, + { AV_CODEC_ID_MAGICYUV, MKTAG('M', '8', 'Y', '2') }, + { AV_CODEC_ID_MAGICYUV, MKTAG('M', '8', 'Y', '4') }, + { AV_CODEC_ID_MAGICYUV, MKTAG('M', '8', 'Y', 'A') }, + { AV_CODEC_ID_MAGICYUV, MKTAG('M', '2', 'R', 'A') }, + { AV_CODEC_ID_MAGICYUV, MKTAG('M', '2', 'R', 'G') }, + + { AV_CODEC_ID_SHEERVIDEO, MKTAG('S', 'h', 'r', '0') }, + { AV_CODEC_ID_SHEERVIDEO, MKTAG('S', 'h', 'r', '1') }, + { AV_CODEC_ID_SHEERVIDEO, MKTAG('S', 'h', 'r', '2') }, + { AV_CODEC_ID_SHEERVIDEO, MKTAG('S', 'h', 'r', '3') }, + { AV_CODEC_ID_SHEERVIDEO, MKTAG('S', 'h', 'r', '4') }, + { AV_CODEC_ID_SHEERVIDEO, MKTAG('S', 'h', 'r', '5') }, + { AV_CODEC_ID_SHEERVIDEO, MKTAG('S', 'h', 'r', '6') }, + { AV_CODEC_ID_SHEERVIDEO, MKTAG('S', 'h', 'r', '7') }, + + { AV_CODEC_ID_PIXLET, MKTAG('p', 'x', 'l', 't') }, + + { AV_CODEC_ID_NOTCHLC, MKTAG('n', 'c', 'l', 'c') }, + + { AV_CODEC_ID_RAWVIDEO, MKTAG('B', 'G', 'G', 'R') }, /* ASC Bayer BGGR */ + + { AV_CODEC_ID_NONE, 0 }, +}; + +const AVCodecTag ff_codec_movaudio_tags[] = { + { AV_CODEC_ID_AAC, MKTAG('m', 'p', '4', 'a') }, + { AV_CODEC_ID_AC3, MKTAG('a', 'c', '-', '3') }, /* ETSI TS 102 366 Annex F */ + { AV_CODEC_ID_AC3, MKTAG('s', 'a', 'c', '3') }, /* Nero Recode */ + { AV_CODEC_ID_ADPCM_IMA_QT, MKTAG('i', 'm', 'a', '4') }, + { AV_CODEC_ID_ALAC, MKTAG('a', 'l', 'a', 'c') }, + { AV_CODEC_ID_AMR_NB, MKTAG('s', 'a', 'm', 'r') }, /* AMR-NB 3gp */ + { AV_CODEC_ID_AMR_WB, MKTAG('s', 'a', 'w', 'b') }, /* AMR-WB 3gp */ + { AV_CODEC_ID_DTS, MKTAG('d', 't', 's', 'c') }, /* DTS formats prior to DTS-HD */ + { AV_CODEC_ID_DTS, MKTAG('d', 't', 's', 'h') }, /* DTS-HD audio formats */ + { AV_CODEC_ID_DTS, MKTAG('d', 't', 's', 'l') }, /* DTS-HD Lossless formats */ + { AV_CODEC_ID_DTS, MKTAG('d', 't', 's', 'e') }, /* DTS Express */ + { AV_CODEC_ID_DTS, MKTAG('D', 'T', 'S', ' ') }, /* non-standard */ + { AV_CODEC_ID_EAC3, MKTAG('e', 'c', '-', '3') }, /* ETSI TS 102 366 Annex F (only valid in ISOBMFF) */ + { AV_CODEC_ID_DVAUDIO, MKTAG('v', 'd', 'v', 'a') }, + { AV_CODEC_ID_DVAUDIO, MKTAG('d', 'v', 'c', 'a') }, + { AV_CODEC_ID_GSM, MKTAG('a', 'g', 's', 'm') }, + { AV_CODEC_ID_ILBC, MKTAG('i', 'l', 'b', 'c') }, + { AV_CODEC_ID_MACE3, MKTAG('M', 'A', 'C', '3') }, + { AV_CODEC_ID_MACE6, MKTAG('M', 'A', 'C', '6') }, + { AV_CODEC_ID_MP1, MKTAG('.', 'm', 'p', '1') }, + { AV_CODEC_ID_MP2, MKTAG('.', 'm', 'p', '2') }, + { AV_CODEC_ID_MP3, MKTAG('.', 'm', 'p', '3') }, + { AV_CODEC_ID_MP3, MKTAG('m', 'p', '3', ' ') }, /* vlc */ + { AV_CODEC_ID_MP3, 0x6D730055 }, + { AV_CODEC_ID_NELLYMOSER, MKTAG('n', 'm', 'o', 's') }, /* Flash Media Server */ + { AV_CODEC_ID_NELLYMOSER, MKTAG('N', 'E', 'L', 'L') }, /* Perian */ + { AV_CODEC_ID_PCM_ALAW, MKTAG('a', 'l', 'a', 'w') }, + { AV_CODEC_ID_PCM_F32BE, MKTAG('f', 'l', '3', '2') }, + { AV_CODEC_ID_PCM_F32LE, MKTAG('f', 'l', '3', '2') }, + { AV_CODEC_ID_PCM_F64BE, MKTAG('f', 'l', '6', '4') }, + { AV_CODEC_ID_PCM_F64LE, MKTAG('f', 'l', '6', '4') }, + { AV_CODEC_ID_PCM_MULAW, MKTAG('u', 'l', 'a', 'w') }, + { AV_CODEC_ID_PCM_S16BE, MKTAG('t', 'w', 'o', 's') }, + { AV_CODEC_ID_PCM_S16LE, MKTAG('s', 'o', 'w', 't') }, + { AV_CODEC_ID_PCM_S16BE, MKTAG('l', 'p', 'c', 'm') }, + { AV_CODEC_ID_PCM_S16LE, MKTAG('l', 'p', 'c', 'm') }, + { AV_CODEC_ID_PCM_S24BE, MKTAG('i', 'n', '2', '4') }, + { AV_CODEC_ID_PCM_S24LE, MKTAG('i', 'n', '2', '4') }, + { AV_CODEC_ID_PCM_S32BE, MKTAG('i', 'n', '3', '2') }, + { AV_CODEC_ID_PCM_S32LE, MKTAG('i', 'n', '3', '2') }, + { AV_CODEC_ID_PCM_S8, MKTAG('s', 'o', 'w', 't') }, + { AV_CODEC_ID_PCM_U8, MKTAG('r', 'a', 'w', ' ') }, + { AV_CODEC_ID_PCM_U8, MKTAG('N', 'O', 'N', 'E') }, + { AV_CODEC_ID_QCELP, MKTAG('Q', 'c', 'l', 'p') }, + { AV_CODEC_ID_QCELP, MKTAG('Q', 'c', 'l', 'q') }, + { AV_CODEC_ID_QCELP, MKTAG('s', 'q', 'c', 'p') }, /* ISO Media fourcc */ + { AV_CODEC_ID_QDM2, MKTAG('Q', 'D', 'M', '2') }, + { AV_CODEC_ID_QDMC, MKTAG('Q', 'D', 'M', 'C') }, + { AV_CODEC_ID_SPEEX, MKTAG('s', 'p', 'e', 'x') }, /* Flash Media Server */ + { AV_CODEC_ID_SPEEX, MKTAG('S', 'P', 'X', 'N') }, /* ZygoAudio (quality 10 mode) */ + { AV_CODEC_ID_EVRC, MKTAG('s', 'e', 'v', 'c') }, /* 3GPP2 */ + { AV_CODEC_ID_SMV, MKTAG('s', 's', 'm', 'v') }, /* 3GPP2 */ + { AV_CODEC_ID_FLAC, MKTAG('f', 'L', 'a', 'C') }, /* nonstandard */ + { AV_CODEC_ID_TRUEHD, MKTAG('m', 'l', 'p', 'a') }, /* mp4ra.org */ + { AV_CODEC_ID_OPUS, MKTAG('O', 'p', 'u', 's') }, /* mp4ra.org */ + { AV_CODEC_ID_MPEGH_3D_AUDIO, MKTAG('m', 'h', 'm', '1') }, /* MPEG-H 3D Audio bitstream */ + { AV_CODEC_ID_NONE, 0 }, +}; + +const struct AVCodecTag *avformat_get_mov_video_tags(void) +{ + return ff_codec_movvideo_tags; +} + +const struct AVCodecTag *avformat_get_mov_audio_tags(void) +{ + return ff_codec_movaudio_tags; +} From patchwork Thu Feb 18 03:42:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25737 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 153B944BC26 for ; Thu, 18 Feb 2021 05:43:07 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0535A68A17B; Thu, 18 Feb 2021 05:43:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4C2BC68995F for ; Thu, 18 Feb 2021 05:42:56 +0200 (EET) Received: by mail-wr1-f47.google.com with SMTP id u14so1169404wri.3 for ; Wed, 17 Feb 2021 19:42:56 -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:reply-to :mime-version:content-transfer-encoding; bh=3A/lhzy6IvHqgedPRdvYBjzoYja8tPGcclsEVMVjTzQ=; b=A1aYbliDLqZ6TUu7bvSXyqAB74GhY1TIfh8pUayd4xX3qZa17leE/rCkmZcMqk8MtJ szEqKWuenrOvuKbIL4t4FVYr0XtTiRt+Qx2P48M+NbAqKEN9zorGxYx7q3F+FY9rnVmU U48VF8eFLHG9qfkLrMXTGivIxyVJKrkR74TJuV0dPsFZljIFqO7PcPQYV9F2F374NVHU ZRg7C4pRDDE6wzxCuTzUSiKtqN8lQn52ic1fyO8oHnRdE64VrA7Jui2VboBQbNYeiJBV KtHx2ORAbj2W9vMt73gL4prf+A6PYwJhLNAhkeEN15B9vGSnbWOvYUSjfUp1gz3H2uYw F9GQ== 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:reply-to:mime-version:content-transfer-encoding; bh=3A/lhzy6IvHqgedPRdvYBjzoYja8tPGcclsEVMVjTzQ=; b=rIxPxrRcGcIZ7TvYrM6+Hs53KkX6O4Zql/ExvPCu0flv89L+4TCPjFKtMJo63WxbVd rm43kk7nX89ZHBwmRdaHCwIrwK3Wb9rHSOtoHvN3gjpSt9SK/OGRY7Tf6F3ADZyWiIxq tK6hbw//yIr9fjCO0niNMuwHdlolaQ+e5bt+I6BTvF7j+FcLDAsFCxDW94wctbr2PJdL 4MfJi66+4NweMQ4e0MOe/4wyo3EyLqo3xOqPY2n+Zhy/k9jfwdMx0JvI1xTbawomDRuX mPH+ItVTTEca8GQXLwpdb6d68qfEuUddA3bmTj5yUKEBeFM6Ss7op8eLVfyhzCSjdMp7 8QgA== X-Gm-Message-State: AOAM531QnYoOS5Eh4oP77rWgCcPoPKpkuvpabgflZE46dybCJlQSSwzM BTjWCNJqPcTysmArLXwn2wi2gISpQ68= X-Google-Smtp-Source: ABdhPJzSjparAjy9fuQvGTOs0tWgW9JsvPhMBOdEX5sWYEzFIkplnLpgD75gevpNAVPzkwUiL2LXeQ== X-Received: by 2002:adf:8545:: with SMTP id 63mr2110999wrh.128.1613619775465; Wed, 17 Feb 2021 19:42:55 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:55 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:42:01 +0100 Message-Id: <20210218034214.2090223-16-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 16/29] avformat/isom: Remove outcommented function 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" There is another ff_mov_read_chan in mov_chan.c. Signed-off-by: Andreas Rheinhardt --- libavformat/isom.c | 39 --------------------------------------- 1 file changed, 39 deletions(-) diff --git a/libavformat/isom.c b/libavformat/isom.c index e0e50f71b1..df98779149 100644 --- a/libavformat/isom.c +++ b/libavformat/isom.c @@ -418,45 +418,6 @@ static const MovChannelLayout mov_channel_layout[] = { { AV_CH_LAYOUT_4POINT0|AV_CH_LOW_FREQUENCY, (137<<16) | 5}, // kCAFChannelLayoutTag_DVD_11 { 0, 0}, }; -#if 0 -int ff_mov_read_chan(AVFormatContext *s, AVStream *st, int64_t size) -{ - AVCodecContext *codec= st->codec; - uint32_t layout_tag; - AVIOContext *pb = s->pb; - const MovChannelLayout *layouts = mov_channel_layout; - - if (size < 12) - return AVERROR_INVALIDDATA; - - layout_tag = avio_rb32(pb); - size -= 4; - if (layout_tag == 0) { // kCAFChannelLayoutTag_UseChannelDescriptions - // Channel descriptions not implemented - av_log_ask_for_sample(s, "Unimplemented container channel layout.\n"); - avio_skip(pb, size); - return 0; - } - if (layout_tag == 0x10000) { // kCAFChannelLayoutTag_UseChannelBitmap - codec->channel_layout = avio_rb32(pb); - size -= 4; - avio_skip(pb, size); - return 0; - } - while (layouts->channel_layout) { - if (layout_tag == layouts->layout_tag) { - codec->channel_layout = layouts->channel_layout; - break; - } - layouts++; - } - if (!codec->channel_layout) - av_log(s, AV_LOG_WARNING, "Unknown container channel layout.\n"); - avio_skip(pb, size); - - return 0; -} -#endif void ff_mov_write_chan(AVIOContext *pb, int64_t channel_layout) { From patchwork Thu Feb 18 03:42:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25738 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 E656944BC26 for ; Thu, 18 Feb 2021 05:43:07 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D1CA768A295; Thu, 18 Feb 2021 05:43:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0C90C689F22 for ; Thu, 18 Feb 2021 05:42:56 +0200 (EET) Received: by mail-wm1-f48.google.com with SMTP id v62so1616352wmg.4 for ; Wed, 17 Feb 2021 19:42:56 -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:reply-to :mime-version:content-transfer-encoding; bh=ibYUVutHEDErjzfkLV4pKB/MY/4GK/slALKowm39rfw=; b=tK/wkXbEfXonxGD6jmJZ4PhIcT6+lvUCZSGbojsC8FOphi0t9bfhZUn0n6j/dL0EN7 70UPZ+d11ML/keHquN2eCeIXQATWFOLCm52nVl4M39o6jzKswkwqXhBkkrGrgv21kl8x RbC3kvNrM0UfGzFwDQGROUN4pq36myKOeqjTAHyvfWaYmeBGZwu3N4aPpRZRNgKEnCLF DiCTxstf22stvbryxEdi+P0ko32ppcNM3oaiv0CovLgTRhuETbsbWEEfBScPmu9fPu/N jX21YfsYtM8+YGSNoV8SXV3vHbEm4RYNJExkLx5AMaLj9vZoRP0gty+Kilge3LpEgBJM +SWA== 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:reply-to:mime-version:content-transfer-encoding; bh=ibYUVutHEDErjzfkLV4pKB/MY/4GK/slALKowm39rfw=; b=dYKin4KrGeQt5Icd5zgpFWJ/D0TKmxUBHtJn8JCrV0Yy/g//b3CB/0E4AQYfo/LDC9 cZ/MZEjiQzFnLBpUz5CpQmEn28IjpOdBHC4+jg3MiJTs/jwRDcO44GORpb6dGKebXAi0 ryj/vrotRfm4ocNrSQjG9JwHAj8eurVWdn2ceEnrQLg/msnJVfOtIkSQw/NRL+UPIK/4 ltp4+vlMJIntKdcf04cTzlC7zV76+c2EtErnTod8BTKqBBc50pMnIDifSisoVTJ2OLID 0kFk2cmyrT7fpP3fw9yHZeQHAceMDl8nNknGe/0WOEkdOepHwzyzG4FXQuRXp+rBI95w irJg== X-Gm-Message-State: AOAM531aMRdR65u/VNBD5XKDlnyWhy6DEfKAzepmfPr+gAoBJxkZAxFB C+vzdjaQwswXzwdp3bIMh78dvT4iH4Q= X-Google-Smtp-Source: ABdhPJw1ej/K2X48jpifvVGTdAM8HF0P16PrfZ1U0iMV+tRayu0srEJfPkMBPgLHi/cwr8QDhntJtA== X-Received: by 2002:a05:600c:2904:: with SMTP id i4mr1657426wmd.146.1613619776319; Wed, 17 Feb 2021 19:42:56 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:55 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:42:02 +0100 Message-Id: <20210218034214.2090223-17-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 17/29] avformat/au: Deduplicate codec_tag lists 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" Also saves a relocation. Signed-off-by: Andreas Rheinhardt --- libavformat/au.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/au.c b/libavformat/au.c index 4f2b81119f..c2c1b7a3a3 100644 --- a/libavformat/au.c +++ b/libavformat/au.c @@ -53,6 +53,8 @@ static const AVCodecTag codec_au_tags[] = { { AV_CODEC_ID_NONE, 0 }, }; +static const AVCodecTag *const au_codec_tags[] = { codec_au_tags, NULL }; + #if CONFIG_AU_DEMUXER static int au_probe(const AVProbeData *p) @@ -231,7 +233,7 @@ AVInputFormat ff_au_demuxer = { .read_header = au_read_header, .read_packet = ff_pcm_read_packet, .read_seek = ff_pcm_read_seek, - .codec_tag = (const AVCodecTag* const []) { codec_au_tags, 0 }, + .codec_tag = au_codec_tags, }; #endif /* CONFIG_AU_DEMUXER */ @@ -337,7 +339,7 @@ AVOutputFormat ff_au_muxer = { .write_header = au_write_header, .write_packet = ff_raw_write_packet, .write_trailer = au_write_trailer, - .codec_tag = (const AVCodecTag* const []) { codec_au_tags, 0 }, + .codec_tag = au_codec_tags, .flags = AVFMT_NOTIMESTAMPS, }; From patchwork Thu Feb 18 03:42:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25742 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 A2000449CDB for ; Thu, 18 Feb 2021 05:45:22 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BF51868A56C; Thu, 18 Feb 2021 05:43:08 +0200 (EET) 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 CCE2A689CA7 for ; Thu, 18 Feb 2021 05:42:57 +0200 (EET) Received: by mail-wr1-f48.google.com with SMTP id n4so1183248wrx.1 for ; Wed, 17 Feb 2021 19:42:57 -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:reply-to :mime-version:content-transfer-encoding; bh=/I8ofOxT4mx3KYl/WN9DCqm56gjiIOkASJAMbGkaicY=; b=AlaAIczKPF/K83gXLjj7AUvpzRUERML1K0QmYKLss30eZPUd/mRdH4f+74G7tFu3T0 InysdlgJzHbWOQ2t0LYlY+nqqDeKbFlwAOIai9s5U/HU7CXWJiPzhgcJ1O4xegnCiob3 mconp/DYK0EEyBRnOuc5Sbggn9j1iVXXm9l33AAgo90LVsipPpqWgdMl9Gqj9x41FFgm 1D6azNIeXhkLZXC/ZgWSRENbXv7XT6jjzOKsBZuKUo8+GuGIGrTFubk1bYm4NH4ud7iS ww6bjUItJSOp+kEuOoyi34lcC0+SSyJ07sBZSq3CvGBxyj6qIwzz/GRKL91VDVFoFwmO 8V1A== 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:reply-to:mime-version:content-transfer-encoding; bh=/I8ofOxT4mx3KYl/WN9DCqm56gjiIOkASJAMbGkaicY=; b=scYWkyzATxySYEiFYfeqrbOHCbPwD0D7CziK13B1a6m2eO2QTqA9HOhiJM29hG0p33 CLwZwZ+o+VhMcCamCRqx3p72EN+I4HyXsks38QHpzHUCKjrRyHM2truNY8kuqOnkGil4 2aGhUU8UvN0yWdq6bcltDFMwwwNlFL9nC0rLxn6y1EyZyFphZwjjRI2jT1B4h90VNCWJ qOyeASq10NU3hvwPQy2Ro2C19a1W8LBkGK5/ACFr6AzzErZRrYnVLh1JKj2RUDIyzSdO q+IPjPc/aLOpfUIDd5IxxTiOuNjqGlj1wsRZ+QuI/78MGNXaXXTr1aX2lr5eZWD32WqR VC+A== X-Gm-Message-State: AOAM53089Ngy78XX0QA0j816ahTlpEJC0MpTRIOoz4PcWBEdn8UOave0 gZpSpT71UZHCdpsqd59BW9tCGZQedUE= X-Google-Smtp-Source: ABdhPJzH6w5UVR/tqegL6gtv6SEzLv953SUYXWz4QJNG3YxGyFXgBFIVm5lkLrdQLbQeX1Sg6oSWpQ== X-Received: by 2002:adf:b641:: with SMTP id i1mr2136878wre.295.1613619777101; Wed, 17 Feb 2021 19:42:57 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:56 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:42:03 +0100 Message-Id: <20210218034214.2090223-18-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 18/29] avformat/asfenc: Deduplicate codec tags lists 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" Also saves relocations. Signed-off-by: Andreas Rheinhardt --- libavformat/asfenc.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libavformat/asfenc.c b/libavformat/asfenc.c index 8b24264c94..23a09efe05 100644 --- a/libavformat/asfenc.c +++ b/libavformat/asfenc.c @@ -258,6 +258,10 @@ static const AVCodecTag codec_asf_bmp_tags[] = { { AV_CODEC_ID_NONE, 0 }, }; +static const AVCodecTag *const asf_codec_tags[] = { + codec_asf_bmp_tags, ff_codec_bmp_tags, ff_codec_wav_tags, NULL +}; + #define PREROLL_TIME 3100 static void put_str16(AVIOContext *s, const char *tag) @@ -1170,9 +1174,7 @@ AVOutputFormat ff_asf_muxer = { .write_packet = asf_write_packet, .write_trailer = asf_write_trailer, .flags = AVFMT_GLOBALHEADER, - .codec_tag = (const AVCodecTag * const []) { - codec_asf_bmp_tags, ff_codec_bmp_tags, ff_codec_wav_tags, 0 - }, + .codec_tag = asf_codec_tags, .priv_class = &asf_muxer_class, }; #endif /* CONFIG_ASF_MUXER */ @@ -1197,9 +1199,7 @@ AVOutputFormat ff_asf_stream_muxer = { .write_packet = asf_write_packet, .write_trailer = asf_write_trailer, .flags = AVFMT_GLOBALHEADER, - .codec_tag = (const AVCodecTag * const []) { - codec_asf_bmp_tags, ff_codec_bmp_tags, ff_codec_wav_tags, 0 - }, + .codec_tag = asf_codec_tags, .priv_class = &asf_stream_muxer_class, }; #endif /* CONFIG_ASF_STREAM_MUXER */ From patchwork Thu Feb 18 03:42:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25744 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 F3AA7449CDB for ; Thu, 18 Feb 2021 05:45:45 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4FC8D68A30C; Thu, 18 Feb 2021 05:43:10 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AFFA4689F02 for ; Thu, 18 Feb 2021 05:42:58 +0200 (EET) Received: by mail-wm1-f49.google.com with SMTP id x4so1636553wmi.3 for ; Wed, 17 Feb 2021 19:42:58 -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:reply-to :mime-version:content-transfer-encoding; bh=7zEfJVv1frfYqj2/1DyGsJ6iha7Mh40XqCV4O8JQVzE=; b=DQNv67HUTUaR0akGRrvHIBRgzQ7PL5cCC/GP3UctSbnrkl9EZf0uyxXmo2uNwvEwek IljWSCfPO7/BNNzEVSkjYQv+d+nc9JNXpsVbYdumhMBiT+6to9kflK91Aj1wgC8JSVi0 N7EQ/I0BNCL6PxuTjQFYfRbcUw3UriBuQwlJrWDCpXLkiZmLE5XqBpnq28f89B9rilnV 9mbiRwuaj5D1cMlmHBX4l+roV72HkUenrCJRFKgope4bthuUPnUNT9FZ8ZYaIkBdisrs BdDzwo6NLCev89dN9/PPc/IRvM5kqw20zOstKGtvQ/42xlfHOmbQWY/bKttu+pDTwQlQ 02UA== 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:reply-to:mime-version:content-transfer-encoding; bh=7zEfJVv1frfYqj2/1DyGsJ6iha7Mh40XqCV4O8JQVzE=; b=awVfcJ5XF7ai6F0DhlkD3lhP8vVe9ZDNC+omI2+fT9lnAY2aCff4jqFEpfXBbnkz37 YdiWLL4YsEoj71u1hwAV+TcWonAtYmKeS2HOJIJC93xvoJMD2ZETJlLt1wFjSb34sSJo vhS3a2B5A1uIsDnomtavtuMVhpWffujB0hj0+b+0F/b9pHyiiI4+9AUWHbuAFTVsfYkT y7YC642RHeWBeAH5vI64H0GlMSJOhdnbmTI2wSzwFBIgevlo85yTGU7xdUK7/up0DQOl ORkBNtY6EacD8bn0Bacm9l9o/XFnXyFpDeHTNraBZW8pLR5JT9uJ7mcsByrTtVw3B7I5 PRzg== X-Gm-Message-State: AOAM532EhBQr0eLEDIFmy5OWsuZmbMmm3Q8JzA5bq2RYlbdsWD2isp0P ld4aJq1CSRGcZSLhaOzY4XINfBmeLIQ= X-Google-Smtp-Source: ABdhPJwNgxUaEBqr4crhSncoc1P3jkxpApzd5LvPsNmYp2xmgkGOt+Dw4Ml0LVWe/5RuMB1hg8XlFA== X-Received: by 2002:a1c:6308:: with SMTP id x8mr1658464wmb.78.1613619777962; Wed, 17 Feb 2021 19:42:57 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:57 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:42:04 +0100 Message-Id: <20210218034214.2090223-19-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 19/29] avformat/caf: Deduplicate codec tags list 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" Also saves a relocation. Signed-off-by: Andreas Rheinhardt --- libavformat/caf.c | 1 + libavformat/caf.h | 1 + libavformat/cafdec.c | 2 +- libavformat/cafenc.c | 2 +- 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/caf.c b/libavformat/caf.c index fe242ff032..a700e4055b 100644 --- a/libavformat/caf.c +++ b/libavformat/caf.c @@ -78,3 +78,4 @@ const AVCodecTag ff_codec_caf_tags[] = { { AV_CODEC_ID_NONE, 0 }, }; +const AVCodecTag *const ff_caf_codec_tags_list[] = { ff_codec_caf_tags, NULL }; diff --git a/libavformat/caf.h b/libavformat/caf.h index 9c25f2c683..ed0392b1f1 100644 --- a/libavformat/caf.h +++ b/libavformat/caf.h @@ -30,5 +30,6 @@ #include "internal.h" extern const AVCodecTag ff_codec_caf_tags[]; +extern const AVCodecTag *const ff_caf_codec_tags_list[]; #endif /* AVFORMAT_CAF_H */ diff --git a/libavformat/cafdec.c b/libavformat/cafdec.c index b7a9711cc5..d56187f71f 100644 --- a/libavformat/cafdec.c +++ b/libavformat/cafdec.c @@ -460,5 +460,5 @@ AVInputFormat ff_caf_demuxer = { .read_header = read_header, .read_packet = read_packet, .read_seek = read_seek, - .codec_tag = (const AVCodecTag* const []){ ff_codec_caf_tags, 0 }, + .codec_tag = ff_caf_codec_tags_list, }; diff --git a/libavformat/cafenc.c b/libavformat/cafenc.c index 98d4d9212f..7e44797a52 100644 --- a/libavformat/cafenc.c +++ b/libavformat/cafenc.c @@ -274,5 +274,5 @@ AVOutputFormat ff_caf_muxer = { .write_header = caf_write_header, .write_packet = caf_write_packet, .write_trailer = caf_write_trailer, - .codec_tag = (const AVCodecTag* const []){ff_codec_caf_tags, 0}, + .codec_tag = ff_caf_codec_tags_list, }; From patchwork Thu Feb 18 03:42:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25745 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 C24C4449CDB for ; Thu, 18 Feb 2021 05:45:56 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 74102687F69; Thu, 18 Feb 2021 05:43:11 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8DB36689FD9 for ; Thu, 18 Feb 2021 05:42:59 +0200 (EET) Received: by mail-wr1-f54.google.com with SMTP id g6so1124625wrs.11 for ; Wed, 17 Feb 2021 19:42:59 -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:reply-to :mime-version:content-transfer-encoding; bh=s9Na8vImvEN9a9H7n/HabthDmta2r2NCc5i/qyiDy6I=; b=tIHAvdaeMgKMwJ5arCsusGGgWM+lX963FwJCzDSU0ySMwXI/jfOsHk/NVimj0qiuFj du+QWiQjEfP8/807qf6//YSOE7PDPDipmaKbmqyyv+MyVqCBJCPy/lfDWURo0aqhleUN TSxUgaJ7Oe2CgoanPR6R16pS0h4oGuY5tISs/Vq0DPURli3h8we8ndW4E0Ws1TY37Dqr +c6V7M51BN3KS8rj0S5oDLeT6+ZOZM3X4g3/58kI5VJB0xn3lWioWCnZFbKE6sjDDEDT 2jAokREs0n9H7aKrEYF2UCLIeIkNOC54Xd21K4m1mF3OZG+1IqJRbojvQrVVrKe3QCj4 JGNw== 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:reply-to:mime-version:content-transfer-encoding; bh=s9Na8vImvEN9a9H7n/HabthDmta2r2NCc5i/qyiDy6I=; b=COLlDw6nkOjnSzG8t+oXR9H9P7AAUvWLP9ooEjkZBAmEeZ806ZCwevFWWkLH8IEsd1 kNAb3BHSAWuOM25epevOJCIyzNXZB35V96w1I142jJP4xb1f9I4RBqfmojZcQIsrKUkX S9sQ8OAmMqtywoOEw2iluvRfryEwkv8hMyv3c1DjmZKFhsuxMfuHuKkw/XVagUZOc7UQ VjmVJAMMhzey+VRIno5d7ztkSsG5j9LMz8mcweBeIFBMV2n0rIij5Mj9MYuDE5WgztBd X/hNHj4+mnj0Crx3DGxfKcKL32ZpNJc5h96hCtCtsVlah2jG8OCH1xzb5P1pL3u/8Dj1 Q8kg== X-Gm-Message-State: AOAM531kMR2ar5NFwW88Z7obEtxV1vN0zFXyiWy2b3CuKsBumgFv2Bzg PJ5gAbas18r7NyrmWexwg3+l0Dkh3Fk= X-Google-Smtp-Source: ABdhPJzPLs7PrbZcN4oZj/0s42GXV+TIPM0a3QgM/+IWq6LFthR5X1NCf2RtAWWJjedaokvhkTsgjA== X-Received: by 2002:a5d:618e:: with SMTP id j14mr2057775wru.377.1613619778773; Wed, 17 Feb 2021 19:42:58 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:58 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:42:05 +0100 Message-Id: <20210218034214.2090223-20-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 20/29] avformat/voc: Deduplicate codec tags list 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" Also saves a relocation. Signed-off-by: Andreas Rheinhardt --- libavformat/voc.c | 8 ++++++-- libavformat/voc.h | 1 + libavformat/vocdec.c | 2 +- libavformat/vocenc.c | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/libavformat/voc.c b/libavformat/voc.c index 2a972344d3..89639a98c4 100644 --- a/libavformat/voc.c +++ b/libavformat/voc.c @@ -19,11 +19,10 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "config.h" #include "voc.h" #include "internal.h" -const unsigned char ff_voc_magic[21] = "Creative Voice File\x1A"; - const AVCodecTag ff_voc_codec_tags[] = { {AV_CODEC_ID_PCM_U8, 0x00}, {AV_CODEC_ID_ADPCM_SBPRO_4, 0x01}, @@ -35,3 +34,8 @@ const AVCodecTag ff_voc_codec_tags[] = { {AV_CODEC_ID_ADPCM_CT, 0x0200}, {AV_CODEC_ID_NONE, 0}, }; + +#if CONFIG_VOC_DEMUXER || CONFIG_VOC_MUXER +const unsigned char ff_voc_magic[21] = "Creative Voice File\x1A"; +const AVCodecTag *const ff_voc_codec_tags_list[] = { ff_voc_codec_tags, NULL }; +#endif diff --git a/libavformat/voc.h b/libavformat/voc.h index 1f9a8be000..1fc6bb4227 100644 --- a/libavformat/voc.h +++ b/libavformat/voc.h @@ -45,6 +45,7 @@ typedef enum voc_type { extern const unsigned char ff_voc_magic[21]; extern const AVCodecTag ff_voc_codec_tags[]; +extern const AVCodecTag *const ff_voc_codec_tags_list[]; int ff_voc_get_packet(AVFormatContext *s, AVPacket *pkt, AVStream *st, int max_size); diff --git a/libavformat/vocdec.c b/libavformat/vocdec.c index d388fce92e..6cdc720ee7 100644 --- a/libavformat/vocdec.c +++ b/libavformat/vocdec.c @@ -106,5 +106,5 @@ AVInputFormat ff_voc_demuxer = { .read_header = voc_read_header, .read_packet = voc_read_packet, .read_seek = voc_read_seek, - .codec_tag = (const AVCodecTag* const []){ ff_voc_codec_tags, 0 }, + .codec_tag = ff_voc_codec_tags_list, }; diff --git a/libavformat/vocenc.c b/libavformat/vocenc.c index 321b113032..bdc63843c4 100644 --- a/libavformat/vocenc.c +++ b/libavformat/vocenc.c @@ -106,6 +106,6 @@ AVOutputFormat ff_voc_muxer = { .write_header = voc_write_header, .write_packet = voc_write_packet, .write_trailer = voc_write_trailer, - .codec_tag = (const AVCodecTag* const []){ ff_voc_codec_tags, 0 }, + .codec_tag = ff_voc_codec_tags_list, .flags = AVFMT_NOTIMESTAMPS, }; From patchwork Thu Feb 18 03:42:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25747 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 AF4D4449CDB for ; Thu, 18 Feb 2021 05:46:05 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 427E068A675; Thu, 18 Feb 2021 05:43:12 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 208CD68A062 for ; Thu, 18 Feb 2021 05:42:59 +0200 (EET) Received: by mail-wm1-f54.google.com with SMTP id l17so1562200wmq.2 for ; Wed, 17 Feb 2021 19:42:59 -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:reply-to :mime-version:content-transfer-encoding; bh=+ILaXPj+EHkN/8aneXX1fJ6ZM5Xqq2TCGiEVpUOkKrY=; b=ru/H4EA6OqlFCh2zBxIR+13mMuPwe8jHey8CUBhnOUA+Slqq1LgCo3EGOkoayeMnO2 v2D3zIf1uT6pDGWniThwUxz5B3N+xdSUfZTs+xmlySPkjap4tR4RimbiiQBxw/mCevZ7 Z2u7wsgn152wQB3SUAiunOp1AfuMwCtoGbWf5hFli62hjau26On5Jsuv+6hvPFaRDwoT EsClkVQWj19nmkIMeWJbrZG7xscd/3iPlYAnE6xpx+084c2imiEa3WazxfrafZY8qZ3n X8lSzQJv5dG1CjmMJ5b7wNICrwwHkL7MlgAq/n4/DDqG9gJvtYi4+C7Z16mGXc4QpAZ9 8QdQ== 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:reply-to:mime-version:content-transfer-encoding; bh=+ILaXPj+EHkN/8aneXX1fJ6ZM5Xqq2TCGiEVpUOkKrY=; b=XSJIBmHlAsEu4ZFOVFOHEjk7jvo5EfPq70+STFVjO36vdrcTaNc9js0JMuZPSeYb9d u/8wIChTwxl07HeZF8eHd4OSLRoDW/gusOl9c0WSLyFGp9hQ1CfmsjKEoHrkwSnSpOjW OQTONQCmUtwUyBQmZ7IRjT+DAkKL/Ea1JZCtLUvFx9ZKQuixazPjqKVeeb5oM7wHtk0Y n5gUcC1+qwmDHFv7ncptVVOwOVgiTrCxG8kgqYU8oFotu7BU6nnyAoZs0R9zgvVbr9P+ 82iTgqu0BKmPvNnwGtkZqO7r9jpdtbwJavm+3engpjoNNdCh48ynIbQRLXe/7FjupR4N DT5A== X-Gm-Message-State: AOAM5318EKGG3ARLQeTmKQtNdM4+aHxo0MAXYHSfcUU0FJWpgMDOw6q+ vkIl9HECazRstnOc8I/6iYYm1Cl2jVk= X-Google-Smtp-Source: ABdhPJxwdMIKCqFpHG7nhPSoRkKjeCVWiHCK3rK/m+2FhH0ubQZYltMUuHy3t9aj/LbzZSYG28+QHw== X-Received: by 2002:a05:600c:4f14:: with SMTP id l20mr1659567wmq.118.1613619779382; Wed, 17 Feb 2021 19:42:59 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:59 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:42:06 +0100 Message-Id: <20210218034214.2090223-21-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 21/29] avformat/rso: Deduplicate codec tags list 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" Also saves a relocation. Signed-off-by: Andreas Rheinhardt --- libavformat/rso.c | 2 ++ libavformat/rso.h | 1 + libavformat/rsodec.c | 2 +- libavformat/rsoenc.c | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libavformat/rso.c b/libavformat/rso.c index 7d88f0f5bc..765c0d0d66 100644 --- a/libavformat/rso.c +++ b/libavformat/rso.c @@ -28,3 +28,5 @@ const AVCodecTag ff_codec_rso_tags[] = { { AV_CODEC_ID_ADPCM_IMA_WAV, 0x0101 }, { AV_CODEC_ID_NONE, 0 }, }; + +const AVCodecTag *const ff_rso_codec_tags_list[] = { ff_codec_rso_tags, NULL }; diff --git a/libavformat/rso.h b/libavformat/rso.h index 1f65dd90c7..4f78b40180 100644 --- a/libavformat/rso.h +++ b/libavformat/rso.h @@ -28,5 +28,6 @@ /* The libavcodec codecs we support, and the IDs they have in the file */ extern const AVCodecTag ff_codec_rso_tags[]; +extern const AVCodecTag *const ff_rso_codec_tags_list[]; #endif /* AVFORMAT_RSO_H */ diff --git a/libavformat/rsodec.c b/libavformat/rsodec.c index b2d9a7c403..91b86bf006 100644 --- a/libavformat/rsodec.c +++ b/libavformat/rsodec.c @@ -79,5 +79,5 @@ AVInputFormat ff_rso_demuxer = { .read_header = rso_read_header, .read_packet = ff_pcm_read_packet, .read_seek = ff_pcm_read_seek, - .codec_tag = (const AVCodecTag* const []){ff_codec_rso_tags, 0}, + .codec_tag = ff_rso_codec_tags_list, }; diff --git a/libavformat/rsoenc.c b/libavformat/rsoenc.c index beba94b2a7..780538a545 100644 --- a/libavformat/rsoenc.c +++ b/libavformat/rsoenc.c @@ -100,6 +100,6 @@ AVOutputFormat ff_rso_muxer = { .write_header = rso_write_header, .write_packet = ff_raw_write_packet, .write_trailer = rso_write_trailer, - .codec_tag = (const AVCodecTag* const []){ff_codec_rso_tags, 0}, + .codec_tag = ff_rso_codec_tags_list, .flags = AVFMT_NOTIMESTAMPS, }; From patchwork Thu Feb 18 03:42:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25748 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 946EB44A234 for ; Thu, 18 Feb 2021 05:46:14 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3FB2C68A0F1; Thu, 18 Feb 2021 05:43:13 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DD26668A0BE for ; Thu, 18 Feb 2021 05:43:00 +0200 (EET) Received: by mail-wr1-f47.google.com with SMTP id b3so1161763wrj.5 for ; Wed, 17 Feb 2021 19:43:00 -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:reply-to :mime-version:content-transfer-encoding; bh=kQ8hUBZBaqyWCFIrTJhe2QhOJi6Z4Cu3aNxA4CeQthA=; b=hOTGVQ0xmRP80SMRKgfqrukgwx9NFfWhQdRSa4wwJKQsaiNqc8ov6+TC/rUkPcNeE8 BoBaOa9GJSDafVT51E1u8WNu7Mfs4MHFvwcijYHOzU2uDRFEOSgSu5GuXIlQVdSMb0sz T3FqTcGv/klfUoknXWVxzoA6GLAZydD31Bm4gxTMdofYJkrWdtmFFpG1tE56/iRkZ1mr 8ELpKaDBumUImBOKNXHXvfs9n/66bta52B49QlpdmYVaPzUhtgUPQ5b4bgf76YjlczwT H33t/FPZLFYCbQT2F8ebZTs3I1xvwd9+EJloObYCpu/CHQ6orLMOlHVHc6U+VtaqVo/E Y4NQ== 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:reply-to:mime-version:content-transfer-encoding; bh=kQ8hUBZBaqyWCFIrTJhe2QhOJi6Z4Cu3aNxA4CeQthA=; b=qdsidNhIj9NFuIJguXPCyKP+B3SOOsW69YDAIC+5yG4e5cb/F6nMntrIjDLMk4yjOl AuLsxuQLxJ+cwi7GboV2LIhq+ErtSY38OOw3RewKblJKlmMPPMhi3SUmJEAvV+DlTyJi qrt5AD05mmIGKpli7tnRNUiNEpx4DqbZT4UG0LMz7lQOp/rMQyt6bBU/ZAHs+Bdu1O/B VICKHbdA+81Fl2RtLKdGYKukEJgB19xi8faZiQD1gEs5or5vN5LoHy3Ok5eWBQW/X9lE XvMOZk0hfFjVwF2YY//nv/BPcC9YPUHj98rlFuNFcoi3xaaD/FCJSxR3OEBJZpAp9P/s 714g== X-Gm-Message-State: AOAM5313yP10QALv+Gf/odQc3TWPibjp9yknGS/a/3gTkG3TuYaZyk0s c8Oe3boCUlTyqdzdCAZlGS5NmCt6WfQ= X-Google-Smtp-Source: ABdhPJx4XeVfGK4DP5izwuTn24UqUEzEvxSn+UyN8YPXPdPoKkflYt7waXsg6+NhYzbwIQ6skyRYcg== X-Received: by 2002:a5d:4046:: with SMTP id w6mr2059357wrp.223.1613619780243; Wed, 17 Feb 2021 19:43:00 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.42.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:42:59 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:42:07 +0100 Message-Id: <20210218034214.2090223-22-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 22/29] avformat/oma: Deduplicate codec tags list 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" Also saves a relocation. Signed-off-by: Andreas Rheinhardt --- libavformat/oma.c | 3 +++ libavformat/oma.h | 1 + libavformat/omadec.c | 2 +- libavformat/omaenc.c | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/libavformat/oma.c b/libavformat/oma.c index f7ae3c9948..e7bf8553f0 100644 --- a/libavformat/oma.c +++ b/libavformat/oma.c @@ -18,6 +18,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include #include "internal.h" #include "oma.h" #include "libavcodec/avcodec.h" @@ -35,6 +36,8 @@ const AVCodecTag ff_oma_codec_tags[] = { { 0 }, }; +const AVCodecTag *const ff_oma_codec_tags_list[] = { ff_oma_codec_tags, NULL }; + /** map ATRAC-X channel id to internal channel layout */ const uint64_t ff_oma_chid_to_native_layout[7] = { AV_CH_LAYOUT_MONO, diff --git a/libavformat/oma.h b/libavformat/oma.h index 36fd0125e4..5df50c8eb4 100644 --- a/libavformat/oma.h +++ b/libavformat/oma.h @@ -42,6 +42,7 @@ enum { extern const uint16_t ff_oma_srate_tab[8]; extern const AVCodecTag ff_oma_codec_tags[]; +extern const AVCodecTag *const ff_oma_codec_tags_list[]; extern const uint64_t ff_oma_chid_to_native_layout[7]; extern const int ff_oma_chid_to_num_channels[7]; diff --git a/libavformat/omadec.c b/libavformat/omadec.c index 5675d86e75..0b36d4e867 100644 --- a/libavformat/omadec.c +++ b/libavformat/omadec.c @@ -621,5 +621,5 @@ AVInputFormat ff_oma_demuxer = { .read_close = oma_read_close, .flags = AVFMT_GENERIC_INDEX, .extensions = "oma,omg,aa3", - .codec_tag = (const AVCodecTag* const []){ff_oma_codec_tags, 0}, + .codec_tag = ff_oma_codec_tags_list, }; diff --git a/libavformat/omaenc.c b/libavformat/omaenc.c index 7952808bf8..d3c4f62027 100644 --- a/libavformat/omaenc.c +++ b/libavformat/omaenc.c @@ -102,6 +102,6 @@ AVOutputFormat ff_oma_muxer = { .audio_codec = AV_CODEC_ID_ATRAC3, .write_header = oma_write_header, .write_packet = ff_raw_write_packet, - .codec_tag = (const AVCodecTag* const []){ff_oma_codec_tags, 0}, + .codec_tag = ff_oma_codec_tags_list, .flags = AVFMT_NOTIMESTAMPS, }; From patchwork Thu Feb 18 03:42:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25749 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 034B444A234 for ; Thu, 18 Feb 2021 05:46:24 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 12F6168A3A0; Thu, 18 Feb 2021 05:43:14 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A538A689FB4 for ; Thu, 18 Feb 2021 05:43:01 +0200 (EET) Received: by mail-wr1-f53.google.com with SMTP id n6so1142013wrv.8 for ; Wed, 17 Feb 2021 19:43:01 -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:reply-to :mime-version:content-transfer-encoding; bh=jwAnmQbAsZBM7uhYLB9crmDddYpDMF8FMk2Sgyok5k8=; b=mDWoS5Py9+fM4LTmpwW+XE505ozWpV5USQAVDm4L5Vs1v5J9BDTTDvl1vYkPiZ59bp iz2jyBDQCbg9tUYGv/FN8Fq3KUw/E37kiFzp4XUZVVsHi/rCQVt5wI22NLaa3WGIU1HG fmzmaf8QXxYdHE5fAVgeEKw7OP6mMV9SRMsiH9V2Yo0UwcegR0HyQHlxWWSjAlX/8wAR 44YF7VSI7co+xMGY5lxmCk9PjF2ub2GDLSTpjVvT7eADRL6evQuRTT06B8qy46Ey26eX DXRURu7M8AWXUriANOaQEtSbOzDyd2xuNOYweTdif6SoM4px7w2FKANVzR/e72TIcfu4 UGRg== 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:reply-to:mime-version:content-transfer-encoding; bh=jwAnmQbAsZBM7uhYLB9crmDddYpDMF8FMk2Sgyok5k8=; b=m0fDb7sgUdehU0Gr4M5EF7fvZmyA4BzWwjfMvFhFtwXut1A6pJhB5DwEGZ7HvgEorC 48RlF3yrRY8XVlqniYYchhhpqQArRHo59vuge3yk+ukNkYqV3yqo2WmmU/VZoAvNRsFt Q/CRrzJNsZuGKuY3FJ7i2rVFRZqLNQRZqC+nP9yNTfjcu8eF2NGKyYNUmcbunE0qrEOu 7VbVfKH/At0ni4cRpNWdQDOmssIK8VAreqXXWlX6gIUNZgl+7WFOAFRGgjGGGtr7xSTc gkvNEK3nqyMwXfbbbkqOGwXd7RVSShZ4mt5n43/RaaaQTW6Xj/WB4YMRJk6IItchvXd7 9Cuw== X-Gm-Message-State: AOAM533cvDs+wyfutD/tRKjv5QpvxA0XnbIWeyQ2aT/PGT8kn7uVGscx waJjrVWx+Z8OdSwfoi701Z6WhpkMK0E= X-Google-Smtp-Source: ABdhPJxPOMN7vn3RmyjqgqO+38hLFvP4Ehk5gKS47NDKGnz/6xsb6LJ7UzsZ3Yl5OrweRvRskY63sw== X-Received: by 2002:adf:fa91:: with SMTP id h17mr2125666wrr.257.1613619780951; Wed, 17 Feb 2021 19:43:00 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.43.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:43:00 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:42:08 +0100 Message-Id: <20210218034214.2090223-23-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 23/29] avformat/oma: Move stuff only used by demuxer to demuxer 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" Signed-off-by: Andreas Rheinhardt --- libavformat/oma.c | 17 +---------------- libavformat/oma.h | 3 --- libavformat/omadec.c | 18 ++++++++++++++++-- 3 files changed, 17 insertions(+), 21 deletions(-) diff --git a/libavformat/oma.c b/libavformat/oma.c index e7bf8553f0..7282d464aa 100644 --- a/libavformat/oma.c +++ b/libavformat/oma.c @@ -19,10 +19,9 @@ */ #include +#include "libavcodec/codec_id.h" #include "internal.h" #include "oma.h" -#include "libavcodec/avcodec.h" -#include "libavutil/channel_layout.h" const uint16_t ff_oma_srate_tab[8] = { 320, 441, 480, 882, 960, 0 }; @@ -37,17 +36,3 @@ const AVCodecTag ff_oma_codec_tags[] = { }; const AVCodecTag *const ff_oma_codec_tags_list[] = { ff_oma_codec_tags, NULL }; - -/** map ATRAC-X channel id to internal channel layout */ -const uint64_t ff_oma_chid_to_native_layout[7] = { - AV_CH_LAYOUT_MONO, - AV_CH_LAYOUT_STEREO, - AV_CH_LAYOUT_SURROUND, - AV_CH_LAYOUT_4POINT0, - AV_CH_LAYOUT_5POINT1_BACK, - AV_CH_LAYOUT_6POINT1_BACK, - AV_CH_LAYOUT_7POINT1 -}; - -/** map ATRAC-X channel id to total number of channels */ -const int ff_oma_chid_to_num_channels[7] = {1, 2, 3, 4, 6, 7, 8}; diff --git a/libavformat/oma.h b/libavformat/oma.h index 5df50c8eb4..85d5932f1d 100644 --- a/libavformat/oma.h +++ b/libavformat/oma.h @@ -44,7 +44,4 @@ extern const uint16_t ff_oma_srate_tab[8]; extern const AVCodecTag ff_oma_codec_tags[]; extern const AVCodecTag *const ff_oma_codec_tags_list[]; -extern const uint64_t ff_oma_chid_to_native_layout[7]; -extern const int ff_oma_chid_to_num_channels[7]; - #endif /* AVFORMAT_OMA_H */ diff --git a/libavformat/omadec.c b/libavformat/omadec.c index 0b36d4e867..0c90f2644d 100644 --- a/libavformat/omadec.c +++ b/libavformat/omadec.c @@ -59,6 +59,20 @@ static const uint64_t leaf_table[] = { 0x1573cd93da7df623, 0x47f98d79620dd535 }; +/** map ATRAC-X channel id to internal channel layout */ +static const uint64_t oma_chid_to_native_layout[7] = { + AV_CH_LAYOUT_MONO, + AV_CH_LAYOUT_STEREO, + AV_CH_LAYOUT_SURROUND, + AV_CH_LAYOUT_4POINT0, + AV_CH_LAYOUT_5POINT1_BACK, + AV_CH_LAYOUT_6POINT1_BACK, + AV_CH_LAYOUT_7POINT1 +}; + +/** map ATRAC-X channel id to total number of channels */ +static const int oma_chid_to_num_channels[7] = {1, 2, 3, 4, 6, 7, 8}; + typedef struct OMAContext { uint64_t content_start; int encrypted; @@ -492,8 +506,8 @@ static int oma_read_header(AVFormatContext *s) ret = AVERROR_INVALIDDATA; goto fail; } - st->codecpar->channel_layout = ff_oma_chid_to_native_layout[channel_id - 1]; - st->codecpar->channels = ff_oma_chid_to_num_channels[channel_id - 1]; + st->codecpar->channel_layout = oma_chid_to_native_layout[channel_id - 1]; + st->codecpar->channels = oma_chid_to_num_channels[channel_id - 1]; framesize = ((codec_params & 0x3FF) * 8) + 8; samplerate = ff_oma_srate_tab[(codec_params >> 13) & 7] * 100; if (!samplerate) { From patchwork Thu Feb 18 03:42:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25739 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 34E2644BC3E for ; Thu, 18 Feb 2021 05:43:16 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1525468A328; Thu, 18 Feb 2021 05:43:16 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4C3F768A3B7 for ; Thu, 18 Feb 2021 05:43:02 +0200 (EET) Received: by mail-wr1-f50.google.com with SMTP id t15so1089559wrx.13 for ; Wed, 17 Feb 2021 19:43:02 -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:reply-to :mime-version:content-transfer-encoding; bh=YYqnt0UKU9fM4IglZKVDvmXh3Ap8+A3etio7bhY9XwU=; b=YhAd6P2SBmQp5jgQBYvq9bkrFjTj9dGKGnUcXOEWmszGqBsjv9fBUsQDhEAQxLn4L4 jOYHXe4RFBL/v6jRc/eUDyMAfapp7SA+RaUuadl6jNmYuJfzcftnALLtTztmoWcTBGDK v1YeLK71csTqGLMzeUUoUO7PdhYAJzdjPtRn+xIMbCBY+2Jw4JPatbRpVxf3f3fmVmQT qXkcavX1b2Vz2JmPaRDHFrelYqA/Q4wtvKxF+uj8qh8WefsZJsupuUg8KOQSYYxLMzrn f802W4NjDcMByTwLOXg4jYSNM9CR9jWtmVfgYwMkuugCSFiNPtki9BhkpK5P4nHxLJ/I SjYg== 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:reply-to:mime-version:content-transfer-encoding; bh=YYqnt0UKU9fM4IglZKVDvmXh3Ap8+A3etio7bhY9XwU=; b=Q65QV1QuQnGG3ghNc3Ozkx26AF6KRxjrxubOwqEv8TcbLcNceZ98in6JB+f5AU40jk TaJmYbzQq/L4gXLGxboHqPg+gOMN5AlcCO54oljvRhrSGQnA6fE8q2xTzWyX9H2cjNJO SzHrunWBhAuiXp+chARw5NJRZTQuK9h1VbR3v30gB8+yvu7FQ0vDeURMlXgd6U2zhCSE bXEecxFnI2cSkxBt9vqI2fjGV9b5OcfvsmGOMKHp0Pqpc4tNAt1qBjmGyI6IsRuwje8h DbPLNntVITUab6AGUdDpJ6W0ceYxeiKvKM3AJLJ+TmGsEAJr1/F9j9NDuxKlG8c/lqKT jhvg== X-Gm-Message-State: AOAM5316aBFt8MOOC0PbZ+HimdfBDfebTL0N33xCa8zxFsrhJddFbTta q1evh+Eg6ziao3cPWfsJyHXqn7ZOJ3c= X-Google-Smtp-Source: ABdhPJyrLS5BVylOoYVDKRXi8Ltsj322HQCYKDt2oDH5MLY8g4BMMO/fvQNcvPRhgG3grnN27c4znA== X-Received: by 2002:a5d:4e09:: with SMTP id p9mr2191771wrt.346.1613619781566; Wed, 17 Feb 2021 19:43:01 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.43.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:43:01 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:42:09 +0100 Message-Id: <20210218034214.2090223-24-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 24/29] avformat/movenc: Deduplicate codec tags lists 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" Also saves relocations. Signed-off-by: Andreas Rheinhardt --- libavformat/movenc.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index f97383fcfe..545b0885ae 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -7131,6 +7131,7 @@ static int mov_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt) return ret; } +#if CONFIG_TGP_MUXER || CONFIG_TG2_MUXER static const AVCodecTag codec_3gp_tags[] = { { AV_CODEC_ID_H263, MKTAG('s','2','6','3') }, { AV_CODEC_ID_H264, MKTAG('a','v','c','1') }, @@ -7141,6 +7142,8 @@ static const AVCodecTag codec_3gp_tags[] = { { AV_CODEC_ID_MOV_TEXT, MKTAG('t','x','3','g') }, { AV_CODEC_ID_NONE, 0 }, }; +static const AVCodecTag *const codec_3gp_tags_list[] = { codec_3gp_tags, NULL }; +#endif static const AVCodecTag codec_mp4_tags[] = { { AV_CODEC_ID_MPEG4, MKTAG('m', 'p', '4', 'v') }, @@ -7178,6 +7181,9 @@ static const AVCodecTag codec_mp4_tags[] = { { AV_CODEC_ID_MPEGH_3D_AUDIO, MKTAG('m', 'h', 'm', '1') }, { AV_CODEC_ID_NONE, 0 }, }; +#if CONFIG_MP4_MUXER || CONFIG_PSP_MUXER +static const AVCodecTag *const mp4_codec_tags_list[] = { codec_mp4_tags, NULL }; +#endif static const AVCodecTag codec_ism_tags[] = { { AV_CODEC_ID_WMAPRO , MKTAG('w', 'm', 'a', ' ') }, @@ -7242,7 +7248,7 @@ AVOutputFormat ff_tgp_muxer = { .write_trailer = mov_write_trailer, .deinit = mov_free, .flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE, - .codec_tag = (const AVCodecTag* const []){ codec_3gp_tags, 0 }, + .codec_tag = codec_3gp_tags_list, .check_bitstream = mov_check_bitstream, .priv_class = &tgp_muxer_class, }; @@ -7264,7 +7270,7 @@ AVOutputFormat ff_mp4_muxer = { .write_trailer = mov_write_trailer, .deinit = mov_free, .flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE, - .codec_tag = (const AVCodecTag* const []){ codec_mp4_tags, 0 }, + .codec_tag = mp4_codec_tags_list, .check_bitstream = mov_check_bitstream, .priv_class = &mp4_muxer_class, }; @@ -7285,7 +7291,7 @@ AVOutputFormat ff_psp_muxer = { .write_trailer = mov_write_trailer, .deinit = mov_free, .flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE, - .codec_tag = (const AVCodecTag* const []){ codec_mp4_tags, 0 }, + .codec_tag = mp4_codec_tags_list, .check_bitstream = mov_check_bitstream, .priv_class = &psp_muxer_class, }; @@ -7305,7 +7311,7 @@ AVOutputFormat ff_tg2_muxer = { .write_trailer = mov_write_trailer, .deinit = mov_free, .flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE, - .codec_tag = (const AVCodecTag* const []){ codec_3gp_tags, 0 }, + .codec_tag = codec_3gp_tags_list, .check_bitstream = mov_check_bitstream, .priv_class = &tg2_muxer_class, }; From patchwork Thu Feb 18 03:42:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25740 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 3BA8E44BC3E for ; Thu, 18 Feb 2021 05:43:17 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2C8AA689995; Thu, 18 Feb 2021 05:43:17 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 25E4368A3A3 for ; Thu, 18 Feb 2021 05:43:03 +0200 (EET) Received: by mail-wr1-f43.google.com with SMTP id n6so1142050wrv.8 for ; Wed, 17 Feb 2021 19:43:02 -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:reply-to :mime-version:content-transfer-encoding; bh=i5dznhSkP820+CFXOwSniGhQeVKjt/sozZyfKrvi9Nk=; b=faPO8BdLPrTxp/pRLG1cu7ascsTNjx0wdUtsVk6+IQFSCFb28YBwxMzMy168l0bA2M k9ar4oljxn9e+ze7f41Ywt6BBrtPVzQVFISSXweapQasldGUsd2EdGeFCzEt9yAzv174 TsCP3aBnPAxaiE89S9zRnxFKUYa9TZdERGNFPz8fglXBlOxR7/RE+zBaU2BE3Gb3R4rK WPk/3J7Co41tqENLSwAg6UlUsaNTsO3hM5eNUwFMORkDVkS1LNMxK3G2+gdqNOlb+66z ecTZPPnS0uxlEE3j8XXHEPN9I3qA/qcrTmgyJLcuTvTBkBd4USN/4R9+cz0vNDxRBKiu YT5g== 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:reply-to:mime-version:content-transfer-encoding; bh=i5dznhSkP820+CFXOwSniGhQeVKjt/sozZyfKrvi9Nk=; b=dmjiLi2aw2p98W3qc6OVR9TlyfBwHX4+R69ggMaHj0GDwGTUX0efJaqRy0aa3diOcT axv5ydfM1moMH58r9ga1/8V1rZl9cEtnm3dbfdyA/8si76jAoKfpcltDXfgZVsxxfPHw l4D+4jbMhJFy76uTT5DUPEpwQXsoOzD7bzCHGu+RkIKers0roR5zGI5p5YqXj81r0gwi mN4cYBizGXoJbNIrbzL7EifDNtp5uDkVbcQNBII4XmA9O8uRMPJjNOGoLZuMKbe0m0RH 03eBmTEPjkyMz6zLci/6kq49zZ2tXSKVq3zPtyaXw4KRStfz7nOgkrH3hEuFn0TJAnn8 Wrig== X-Gm-Message-State: AOAM530xUwjRqOY63G9XQh1lB2pmbLLe6QJ6b+UosLnx14w71ul0w7ox Hp8c7ugeVbXWWoHaXxYbJrS56bsOuFk= X-Google-Smtp-Source: ABdhPJyBtD84/Yk7J8fSt7EmTLGqwOvi62vyhswjuifDFH0I296FoSainvA2fiUVpa+MWw5YcK9+MA== X-Received: by 2002:a5d:6883:: with SMTP id h3mr2170386wru.90.1613619782346; Wed, 17 Feb 2021 19:43:02 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.43.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:43:02 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:42:10 +0100 Message-Id: <20210218034214.2090223-25-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 25/29] avformat/ast: Deduplicate codec tags lists 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" Also saves a relocation. Signed-off-by: Andreas Rheinhardt --- libavformat/ast.c | 5 ++++- libavformat/ast.h | 1 + libavformat/astdec.c | 2 +- libavformat/astenc.c | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/libavformat/ast.c b/libavformat/ast.c index 9de74aae69..856d36f08c 100644 --- a/libavformat/ast.c +++ b/libavformat/ast.c @@ -19,7 +19,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "avformat.h" +#include +#include "libavcodec/codec_id.h" #include "internal.h" const AVCodecTag ff_codec_ast_tags[] = { @@ -27,3 +28,5 @@ const AVCodecTag ff_codec_ast_tags[] = { { AV_CODEC_ID_PCM_S16BE_PLANAR, 1 }, { AV_CODEC_ID_NONE, 0 }, }; + +const AVCodecTag *const ff_ast_codec_tags_list[] = { ff_codec_ast_tags, NULL }; diff --git a/libavformat/ast.h b/libavformat/ast.h index 4a399ea410..b629f7ed43 100644 --- a/libavformat/ast.h +++ b/libavformat/ast.h @@ -26,5 +26,6 @@ #include "internal.h" extern const AVCodecTag ff_codec_ast_tags[]; +extern const AVCodecTag *const ff_ast_codec_tags_list[]; #endif /* AVFORMAT_AST_H */ diff --git a/libavformat/astdec.c b/libavformat/astdec.c index 9d2174f70d..610c9385aa 100644 --- a/libavformat/astdec.c +++ b/libavformat/astdec.c @@ -118,5 +118,5 @@ AVInputFormat ff_ast_demuxer = { .read_packet = ast_read_packet, .extensions = "ast", .flags = AVFMT_GENERIC_INDEX, - .codec_tag = (const AVCodecTag* const []){ff_codec_ast_tags, 0}, + .codec_tag = ff_ast_codec_tags_list, }; diff --git a/libavformat/astenc.c b/libavformat/astenc.c index e0b94b8b63..69541bc0ca 100644 --- a/libavformat/astenc.c +++ b/libavformat/astenc.c @@ -207,5 +207,5 @@ AVOutputFormat ff_ast_muxer = { .write_packet = ast_write_packet, .write_trailer = ast_write_trailer, .priv_class = &ast_muxer_class, - .codec_tag = (const AVCodecTag* const []){ff_codec_ast_tags, 0}, + .codec_tag = ff_ast_codec_tags_list, }; From patchwork Thu Feb 18 03:42:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25750 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 8889744A234 for ; Thu, 18 Feb 2021 05:46:52 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DC9B068A132; Thu, 18 Feb 2021 05:43:17 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 01C2668A477 for ; Thu, 18 Feb 2021 05:43:03 +0200 (EET) Received: by mail-wr1-f53.google.com with SMTP id n6so1142080wrv.8 for ; Wed, 17 Feb 2021 19:43:03 -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:reply-to :mime-version:content-transfer-encoding; bh=hwuV7BFQPpOvYbJkFEEZfdwRMwZP6cTLKf07IMZ/wQU=; b=Dt7/RmNPC3V6iQA8cSIsL66DSB8rEoKmmhj5w8vep3JvaM4ztD4Ssnr+9CndAnyBuV M1T782IRPhDPoknVfn/lABjlzNkUaAmuQmtKdt7IM6gNE4Th2XqDcF1nE0qofcvwXnNu Yy3lqdVsr8mPkOgyMgFhp1X1yHMs79Yi3QxjGKWKl5/+6f4nRo/n9d/zeiremDaJMqRq AOHs7KB8wArUEhzMf1VpvCuJN+w0UmkWB0xWmeS0IZlEui/kplJnbLtAHlFFe3egngNM 1A2sYKWViosM5+HDw758V2J3Ayb8r+Drj6yiKfQzg7SZQQPzl5fRIenBsZECBXuq13wl KXSg== 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:reply-to:mime-version:content-transfer-encoding; bh=hwuV7BFQPpOvYbJkFEEZfdwRMwZP6cTLKf07IMZ/wQU=; b=ZsskMig6aeW7f3BHmcIl9YxC5v9WMBQXswsDDu4RVvO2D0jUYYvJhHST+60T8dQICY uJYc5wGgkgWLUaRmsD+d2n5C2qL2ErhthVEmFYpruD6aGiTT2HdlnsLKL26e0kcoqn2j kkU+osMStgPiWWRCE7s2zElehL/NzPXH4QKKIkcrvnb1T2m8mrL6EwFQWzdkz79Fe/VY a7okKnq6mZEyw0ZC/tW4gZLJa8Y44ofQKhyo54ZwcEHZHkbf7wHhEPUZRfllkmDuh5vw avICdDkwHwLUbygVFniVTwHvmOu51fHu+dpEZPgkBOOcc4B/XPrSN8JcifwlCzTw5str epLQ== X-Gm-Message-State: AOAM5303BGUBBBOVET59F4/RHUhtqLhHID0f1OXTWimB2blOJAPRwJXG TMSfgzqI84/LIujBfmJ+gNLx7lXFBKA= X-Google-Smtp-Source: ABdhPJxnkLR9DIgX/eaji/8hZfKAw1xc79S5+O4GOixLhe2Mf+rRBrSDuqSvZZqCO4dm8qcJR1lrqQ== X-Received: by 2002:adf:a59a:: with SMTP id g26mr2144425wrc.271.1613619783093; Wed, 17 Feb 2021 19:43:03 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.43.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:43:02 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:42:11 +0100 Message-Id: <20210218034214.2090223-26-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 26/29] avformat/aiff: Deduplicate codec tags and codec tags list 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" Also saves a relocation. Signed-off-by: Andreas Rheinhardt --- libavformat/Makefile | 4 ++-- libavformat/aiff.c | 54 +++++++++++++++++++++++++++++++++++++++++++ libavformat/aiff.h | 30 ++---------------------- libavformat/aiffdec.c | 2 +- libavformat/aiffenc.c | 2 +- 5 files changed, 60 insertions(+), 32 deletions(-) create mode 100644 libavformat/aiff.c diff --git a/libavformat/Makefile b/libavformat/Makefile index 890c7592e7..d6c62f3014 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -81,9 +81,9 @@ OBJS-$(CONFIG_ADX_DEMUXER) += adxdec.o OBJS-$(CONFIG_ADX_MUXER) += rawenc.o OBJS-$(CONFIG_AEA_DEMUXER) += aea.o pcm.o OBJS-$(CONFIG_AFC_DEMUXER) += afc.o -OBJS-$(CONFIG_AIFF_DEMUXER) += aiffdec.o pcm.o \ +OBJS-$(CONFIG_AIFF_DEMUXER) += aiffdec.o aiff.o pcm.o \ mov_chan.o replaygain.o -OBJS-$(CONFIG_AIFF_MUXER) += aiffenc.o id3v2enc.o +OBJS-$(CONFIG_AIFF_MUXER) += aiffenc.o aiff.o id3v2enc.o OBJS-$(CONFIG_AIX_DEMUXER) += aixdec.o OBJS-$(CONFIG_ALP_DEMUXER) += alp.o OBJS-$(CONFIG_ALP_MUXER) += alp.o diff --git a/libavformat/aiff.c b/libavformat/aiff.c new file mode 100644 index 0000000000..0f25b436bd --- /dev/null +++ b/libavformat/aiff.c @@ -0,0 +1,54 @@ +/* + * AIFF/AIFF-C muxer/demuxer common data + * Copyright (c) 2006 Patrick Guimond + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "libavcodec/codec_id.h" +#include "internal.h" + +const AVCodecTag ff_codec_aiff_tags[] = { + { AV_CODEC_ID_PCM_S16BE, MKTAG('N','O','N','E') }, + { AV_CODEC_ID_PCM_S8, MKTAG('N','O','N','E') }, + { AV_CODEC_ID_PCM_U8, MKTAG('r','a','w',' ') }, + { AV_CODEC_ID_PCM_S24BE, MKTAG('N','O','N','E') }, + { AV_CODEC_ID_PCM_S32BE, MKTAG('N','O','N','E') }, + { AV_CODEC_ID_PCM_F32BE, MKTAG('f','l','3','2') }, + { AV_CODEC_ID_PCM_F64BE, MKTAG('f','l','6','4') }, + { AV_CODEC_ID_PCM_ALAW, MKTAG('a','l','a','w') }, + { AV_CODEC_ID_PCM_MULAW, MKTAG('u','l','a','w') }, + { AV_CODEC_ID_PCM_S24BE, MKTAG('i','n','2','4') }, + { AV_CODEC_ID_PCM_S32BE, MKTAG('i','n','3','2') }, + { AV_CODEC_ID_MACE3, MKTAG('M','A','C','3') }, + { AV_CODEC_ID_MACE6, MKTAG('M','A','C','6') }, + { AV_CODEC_ID_GSM, MKTAG('G','S','M',' ') }, + { AV_CODEC_ID_ADPCM_G722, MKTAG('G','7','2','2') }, + { AV_CODEC_ID_ADPCM_G726LE, MKTAG('G','7','2','6') }, + { AV_CODEC_ID_PCM_S16BE, MKTAG('t','w','o','s') }, + { AV_CODEC_ID_PCM_S16LE, MKTAG('s','o','w','t') }, + { AV_CODEC_ID_ADPCM_IMA_QT, MKTAG('i','m','a','4') }, + { AV_CODEC_ID_QDMC, MKTAG('Q','D','M','C') }, + { AV_CODEC_ID_QDM2, MKTAG('Q','D','M','2') }, + { AV_CODEC_ID_QCELP, MKTAG('Q','c','l','p') }, + { AV_CODEC_ID_SDX2_DPCM, MKTAG('S','D','X','2') }, + { AV_CODEC_ID_ADPCM_IMA_WS, MKTAG('A','D','P','4') }, + { AV_CODEC_ID_NONE, 0 }, +}; + +const AVCodecTag *const ff_aiff_codec_tags_list[] = { ff_codec_aiff_tags, NULL }; diff --git a/libavformat/aiff.h b/libavformat/aiff.h index 0ed10a241a..7c7c55cb50 100644 --- a/libavformat/aiff.h +++ b/libavformat/aiff.h @@ -27,35 +27,9 @@ #ifndef AVFORMAT_AIFF_H #define AVFORMAT_AIFF_H -#include "avformat.h" #include "internal.h" -static const AVCodecTag ff_codec_aiff_tags[] = { - { AV_CODEC_ID_PCM_S16BE, MKTAG('N','O','N','E') }, - { AV_CODEC_ID_PCM_S8, MKTAG('N','O','N','E') }, - { AV_CODEC_ID_PCM_U8, MKTAG('r','a','w',' ') }, - { AV_CODEC_ID_PCM_S24BE, MKTAG('N','O','N','E') }, - { AV_CODEC_ID_PCM_S32BE, MKTAG('N','O','N','E') }, - { AV_CODEC_ID_PCM_F32BE, MKTAG('f','l','3','2') }, - { AV_CODEC_ID_PCM_F64BE, MKTAG('f','l','6','4') }, - { AV_CODEC_ID_PCM_ALAW, MKTAG('a','l','a','w') }, - { AV_CODEC_ID_PCM_MULAW, MKTAG('u','l','a','w') }, - { AV_CODEC_ID_PCM_S24BE, MKTAG('i','n','2','4') }, - { AV_CODEC_ID_PCM_S32BE, MKTAG('i','n','3','2') }, - { AV_CODEC_ID_MACE3, MKTAG('M','A','C','3') }, - { AV_CODEC_ID_MACE6, MKTAG('M','A','C','6') }, - { AV_CODEC_ID_GSM, MKTAG('G','S','M',' ') }, - { AV_CODEC_ID_ADPCM_G722, MKTAG('G','7','2','2') }, - { AV_CODEC_ID_ADPCM_G726LE, MKTAG('G','7','2','6') }, - { AV_CODEC_ID_PCM_S16BE, MKTAG('t','w','o','s') }, - { AV_CODEC_ID_PCM_S16LE, MKTAG('s','o','w','t') }, - { AV_CODEC_ID_ADPCM_IMA_QT, MKTAG('i','m','a','4') }, - { AV_CODEC_ID_QDMC, MKTAG('Q','D','M','C') }, - { AV_CODEC_ID_QDM2, MKTAG('Q','D','M','2') }, - { AV_CODEC_ID_QCELP, MKTAG('Q','c','l','p') }, - { AV_CODEC_ID_SDX2_DPCM, MKTAG('S','D','X','2') }, - { AV_CODEC_ID_ADPCM_IMA_WS, MKTAG('A','D','P','4') }, - { AV_CODEC_ID_NONE, 0 }, -}; +extern const AVCodecTag ff_codec_aiff_tags[]; +extern const AVCodecTag *const ff_aiff_codec_tags_list[]; #endif /* AVFORMAT_AIFF_H */ diff --git a/libavformat/aiffdec.c b/libavformat/aiffdec.c index 81189316ff..5abc0c9643 100644 --- a/libavformat/aiffdec.c +++ b/libavformat/aiffdec.c @@ -430,5 +430,5 @@ AVInputFormat ff_aiff_demuxer = { .read_header = aiff_read_header, .read_packet = aiff_read_packet, .read_seek = ff_pcm_read_seek, - .codec_tag = (const AVCodecTag* const []){ ff_codec_aiff_tags, 0 }, + .codec_tag = ff_aiff_codec_tags_list, }; diff --git a/libavformat/aiffenc.c b/libavformat/aiffenc.c index c4ffe9f6d0..53a2f97e22 100644 --- a/libavformat/aiffenc.c +++ b/libavformat/aiffenc.c @@ -305,6 +305,6 @@ AVOutputFormat ff_aiff_muxer = { .write_packet = aiff_write_packet, .write_trailer = aiff_write_trailer, .deinit = aiff_deinit, - .codec_tag = (const AVCodecTag* const []){ ff_codec_aiff_tags, 0 }, + .codec_tag = ff_aiff_codec_tags_list, .priv_class = &aiff_muxer_class, }; From patchwork Thu Feb 18 03:42:12 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25741 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 8A74644BC3E for ; Thu, 18 Feb 2021 05:43:18 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 776CA68A4C5; Thu, 18 Feb 2021 05:43:18 +0200 (EET) 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 CAD3A68A537 for ; Thu, 18 Feb 2021 05:43:04 +0200 (EET) Received: by mail-wr1-f48.google.com with SMTP id l12so1176562wry.2 for ; Wed, 17 Feb 2021 19:43:04 -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:reply-to :mime-version:content-transfer-encoding; bh=QD0+wnuhUrEpbuMkk9yrACFAOvXjUlwlq4FwhmpkLWA=; b=O70jIKWu0off6OzuLwcpxbSqX7NTYCPX+brTgPRtMtaMaxlGDgoMUCCZRud6rfYERH WK5xwCCsMdaujn7NIaSWPha8tAYnocGstS8CB8RL5uWdz7RdKkIZK3jh6MO7vdngh8G/ 83oeO8ddgFD5xkZuA1mipgBG2t7RudX81GnMVqug/kROmdgDbm+YBu6GkNVz/Q/grykC jdRmLFqThV9jSlv7RftqBGVHzI/FvBAG/i3QN/PvSsfSlR9n3C7iMgYc0B6iBRefo06S 7Fn/lg4GVXp5snlXRNLgQ3JfyJy8G9k+2+iiQRJF2cqZ8U1rZ3wd91ds0MzVTt+8WU6Q MZ6w== 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:reply-to:mime-version:content-transfer-encoding; bh=QD0+wnuhUrEpbuMkk9yrACFAOvXjUlwlq4FwhmpkLWA=; b=of7YRQUHoUdI0DQzfe8pVp55E12lliK/n9fh9tyCr9aSyRxq43O5ZBNB3eY0vZ228H A8r39hUJZYG10wGEkupnD66WZ1KLhKJIqUz9Jlftg1b9yiJcMfeFh9SDBtTqXASaPOBu ZjXTFP1fB1EID1n1Megls9F6PBv9jLFy5hI55VkNNwk9JEdyr9VXg5XsSsP3jXjyjnMS BA3bXwvwrKHidgB8dLX+zbFjLsNQDm4P5797pKW9+cvUetwAPjpaTUH1CnLOfSp/Vtrf xbjQiogvUwGa30XA6Qo+KW2CiXSzRB4QkxvQ0UrKKtOawrYL/v41an0GZpLDzJh4Jm8Y cpeg== X-Gm-Message-State: AOAM533JT28gEJOpH1QHdPNfKvtwHEf3f0YXwSdTueo6K3khvMhXu7z/ OhdmGOkMwlkwD0F/BfbWprBTVzxck1Y= X-Google-Smtp-Source: ABdhPJxi3Z/U6TfMelKHc0NjlcTBFKXs1eN6wXKd1iYADtzudRnU7WeOJRe1rOnUsMhLN11xpnLSag== X-Received: by 2002:a5d:5390:: with SMTP id d16mr2119819wrv.155.1613619784066; Wed, 17 Feb 2021 19:43:04 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.43.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:43:03 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:42:12 +0100 Message-Id: <20210218034214.2090223-27-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 27/29] avformat/avienc, wtvenc: Deduplicate codec tags list 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" Also saves relocations. Signed-off-by: Andreas Rheinhardt --- libavformat/avienc.c | 4 +--- libavformat/riff.c | 7 +++++++ libavformat/riff.h | 2 ++ libavformat/wtvenc.c | 3 +-- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/libavformat/avienc.c b/libavformat/avienc.c index 1b2cb529b9..9cbf3d3349 100644 --- a/libavformat/avienc.c +++ b/libavformat/avienc.c @@ -1018,8 +1018,6 @@ AVOutputFormat ff_avi_muxer = { .write_header = avi_write_header, .write_packet = avi_write_packet, .write_trailer = avi_write_trailer, - .codec_tag = (const AVCodecTag * const []) { - ff_codec_bmp_tags, ff_codec_wav_tags, 0 - }, + .codec_tag = ff_riff_codec_tags_list, .priv_class = &avi_muxer_class, }; diff --git a/libavformat/riff.c b/libavformat/riff.c index 388047fc4b..eee78c229c 100644 --- a/libavformat/riff.c +++ b/libavformat/riff.c @@ -19,6 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "config.h" #include "libavutil/error.h" #include "libavcodec/avcodec.h" #include "avformat.h" @@ -589,6 +590,12 @@ const AVCodecTag ff_codec_wav_tags[] = { { AV_CODEC_ID_NONE, 0 }, }; +#if CONFIG_AVI_MUXER || CONFIG_WTV_MUXER +const AVCodecTag *const ff_riff_codec_tags_list[] = { + ff_codec_bmp_tags, ff_codec_wav_tags, NULL +}; +#endif + const AVMetadataConv ff_riff_info_conv[] = { { "IART", "artist" }, { "ICMT", "comment" }, diff --git a/libavformat/riff.h b/libavformat/riff.h index 127138d2bc..47dbaeafd1 100644 --- a/libavformat/riff.h +++ b/libavformat/riff.h @@ -72,6 +72,8 @@ int ff_get_wav_header(AVFormatContext *s, AVIOContext *pb, AVCodecParameters *pa extern const AVCodecTag ff_codec_bmp_tags[]; // exposed through avformat_get_riff_video_tags() extern const AVCodecTag ff_codec_wav_tags[]; +/* The following list contains both ff_codec_bmp_tags and ff_codec_wav_tags. */ +extern const AVCodecTag *const ff_riff_codec_tags_list[]; extern const AVCodecTag ff_codec_bmp_tags_unofficial[]; diff --git a/libavformat/wtvenc.c b/libavformat/wtvenc.c index b53fdf9048..24fdbe1099 100644 --- a/libavformat/wtvenc.c +++ b/libavformat/wtvenc.c @@ -839,6 +839,5 @@ AVOutputFormat ff_wtv_muxer = { .write_header = write_header, .write_packet = write_packet, .write_trailer = write_trailer, - .codec_tag = (const AVCodecTag* const []){ ff_codec_bmp_tags, - ff_codec_wav_tags, 0 }, + .codec_tag = ff_riff_codec_tags_list, }; From patchwork Thu Feb 18 03:42:13 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25751 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 10F6844A33C for ; Thu, 18 Feb 2021 05:47:11 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5C4EB68A67C; Thu, 18 Feb 2021 05:43:19 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com [209.85.221.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AC0D6689B6C for ; Thu, 18 Feb 2021 05:43:05 +0200 (EET) Received: by mail-wr1-f52.google.com with SMTP id b3so1161911wrj.5 for ; Wed, 17 Feb 2021 19:43:05 -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:reply-to :mime-version:content-transfer-encoding; bh=k4/mXdo37JaoO2koP0RlviJClmr1A+lfmbyevpbyYCw=; b=ceOUlJcNyycUbUWFFMNtzZjWj25LwSGIt2m7Xj5HT9cbwLlDW+yHFpDHV9RCPSJpwd dc1SkDOb3uNezel7W6wibEqUzwF0TndUhctq1n1uJ8WnIMYRQLzMBw+gLKR19LQDh03j I5ELfZGn5bPaEAmqhGLm0CR573b7sCL6S94ZdUjrKuun8qZ779VqqfMCB5jtW/v07w7l dzEiK/WDsEJjBUiofomV4BSRDAOAJZ9+g+bF9geMRPfLjudVn/v30APxGISq6elsYLIf pvIYPYfvscxdUJq3qaafXPVJKbV+dr5let0C2Wit7z+IKQPahlgVVpeRW7VBPkh0dL5O 1yqg== 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:reply-to:mime-version:content-transfer-encoding; bh=k4/mXdo37JaoO2koP0RlviJClmr1A+lfmbyevpbyYCw=; b=j61Z2f74j2Yv3HIHN+D+jkVSo7+fWadqVAvfOROtflI5y6dyDbQisfqPDMln+PVxMK +wdRTLs0aakU/3VXmmGJQ7mO888BWIzhLXd/7+emtnH9cTfU/gC8R82mL3Wsae8mKv1w Lnl0c7LeP4kn0VFdEIREWQgetIgxEXYLUYmIe8fq3iWcedjWMuGba9kvwTGrPmpgYJvQ lriomEOpIjZb2LZx9BIXRDfM9294Uvawo6SQLPRHBRuSNfQ3tNgBDi59OCa5+ijSAlrD hdGHPlNFdeZPqt/BL4osWac79hzforwL4t9jYVVS5VB/nzxWC9sfQsAKPDCn2wlnKANp DKfg== X-Gm-Message-State: AOAM532YBKeV28ReU0vvFCoqIvCqFVnmUgqeLLwuGZAu/9+0A2LvKRBe oyWGQACCQnzttLqCBMSNO/jN7bp6nR0= X-Google-Smtp-Source: ABdhPJwHpUFYJPnbMQULzroPgSBeHskjoXvGQqhfzp8CGBKtpZU0VsWAC05LXHNYE9NRDt4pXvRmQQ== X-Received: by 2002:a05:6000:108b:: with SMTP id y11mr2214979wrw.124.1613619784842; Wed, 17 Feb 2021 19:43:04 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.43.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:43:04 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:42:13 +0100 Message-Id: <20210218034214.2090223-28-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 28/29] avformat/wav: Deduplicate codec tags lists 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" Also saves relocations. Signed-off-by: Andreas Rheinhardt --- libavformat/riff.c | 4 ++++ libavformat/riff.h | 2 ++ libavformat/wavdec.c | 4 ++-- libavformat/wavenc.c | 4 ++-- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/libavformat/riff.c b/libavformat/riff.c index eee78c229c..270ff7c024 100644 --- a/libavformat/riff.c +++ b/libavformat/riff.c @@ -596,6 +596,10 @@ const AVCodecTag *const ff_riff_codec_tags_list[] = { }; #endif +#if CONFIG_WAV_DEMUXER || CONFIG_WAV_MUXER || CONFIG_W64_DEMUXER || CONFIG_W64_MUXER +const AVCodecTag *const ff_wav_codec_tags_list[] = { ff_codec_wav_tags, NULL }; +#endif + const AVMetadataConv ff_riff_info_conv[] = { { "IART", "artist" }, { "ICMT", "comment" }, diff --git a/libavformat/riff.h b/libavformat/riff.h index 47dbaeafd1..0548279c6b 100644 --- a/libavformat/riff.h +++ b/libavformat/riff.h @@ -74,6 +74,8 @@ extern const AVCodecTag ff_codec_bmp_tags[]; // exposed through avformat_get_rif extern const AVCodecTag ff_codec_wav_tags[]; /* The following list contains both ff_codec_bmp_tags and ff_codec_wav_tags. */ extern const AVCodecTag *const ff_riff_codec_tags_list[]; +/* The following list contains only ff_codec_wav_tags. */ +extern const AVCodecTag *const ff_wav_codec_tags_list[]; extern const AVCodecTag ff_codec_bmp_tags_unofficial[]; diff --git a/libavformat/wavdec.c b/libavformat/wavdec.c index ef144502a2..e99de8f6d3 100644 --- a/libavformat/wavdec.c +++ b/libavformat/wavdec.c @@ -821,7 +821,7 @@ AVInputFormat ff_wav_demuxer = { .read_packet = wav_read_packet, .read_seek = wav_read_seek, .flags = AVFMT_GENERIC_INDEX, - .codec_tag = (const AVCodecTag * const []) { ff_codec_wav_tags, 0 }, + .codec_tag = ff_wav_codec_tags_list, .priv_class = &wav_demuxer_class, }; #endif /* CONFIG_WAV_DEMUXER */ @@ -978,7 +978,7 @@ AVInputFormat ff_w64_demuxer = { .read_packet = wav_read_packet, .read_seek = wav_read_seek, .flags = AVFMT_GENERIC_INDEX, - .codec_tag = (const AVCodecTag * const []) { ff_codec_wav_tags, 0 }, + .codec_tag = ff_wav_codec_tags_list, .priv_class = &w64_demuxer_class, }; #endif /* CONFIG_W64_DEMUXER */ diff --git a/libavformat/wavenc.c b/libavformat/wavenc.c index 1027f107ee..b65b8b0940 100644 --- a/libavformat/wavenc.c +++ b/libavformat/wavenc.c @@ -514,7 +514,7 @@ AVOutputFormat ff_wav_muxer = { .write_trailer = wav_write_trailer, .deinit = wav_deinit, .flags = AVFMT_TS_NONSTRICT, - .codec_tag = (const AVCodecTag* const []){ ff_codec_wav_tags, 0 }, + .codec_tag = ff_wav_codec_tags_list, .priv_class = &wav_muxer_class, }; #endif /* CONFIG_WAV_MUXER */ @@ -612,6 +612,6 @@ AVOutputFormat ff_w64_muxer = { .write_packet = wav_write_packet, .write_trailer = w64_write_trailer, .flags = AVFMT_TS_NONSTRICT, - .codec_tag = (const AVCodecTag* const []){ ff_codec_wav_tags, 0 }, + .codec_tag = ff_wav_codec_tags_list, }; #endif /* CONFIG_W64_MUXER */ From patchwork Thu Feb 18 03:42:14 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25752 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 3BC8B44A33C for ; Thu, 18 Feb 2021 05:47:20 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 169AC68A764; Thu, 18 Feb 2021 05:43:20 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com [209.85.221.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 73D2B6804F1 for ; Thu, 18 Feb 2021 05:43:06 +0200 (EET) Received: by mail-wr1-f52.google.com with SMTP id g6so1124850wrs.11 for ; Wed, 17 Feb 2021 19:43:06 -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:reply-to :mime-version:content-transfer-encoding; bh=y36d97ttaaS2oA3hDqdErHqRR8Ik7SGUAu6mTHq+9PQ=; b=gI8aupUwGaz4EKyauFfKGDQx2ijmrckuiUcucK1+9qMc43LPx3zKdQIJ2+/Iw2bUdW P1G++ocPkXsEihCSor8GXWT79vbeZk1ilX9yBw/lZsmq4WaxCnM5YF8TYHtFON3EmdUd zKopfbvltl5/oT7ukHXjYo3587zSH8QT1BpbyYI3yj/dAXSzWmOzG6dINLgEobRINd75 /+kVwsrdTj4D9KABJgiI93gCgI0wRA9t/2TiyH4zJIxAuXILJ0i2nbeUvk5E5gqRED71 9JcLs0t3Ud7ic9ATpAsvV+6KFa4I8wl7VVdKPzoN498FbiSnpMEgHeA17hrk8OSLxser 2JZA== 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:reply-to:mime-version:content-transfer-encoding; bh=y36d97ttaaS2oA3hDqdErHqRR8Ik7SGUAu6mTHq+9PQ=; b=anLtaZYsxV3uA3GPPTCM5DamfdyBHvf+73Mn0VM0fzF3GUlZRnYnmP0Iq71O3kRmmA mVD1oO1hHzzts1EyKndMUzARRKQcL/S4df4BkxwTGeAIznAT9qa2w+RjxJtf2wjz1aFP ti6oM0f83C8vh9BswiX+YmZOUPiQQGfdK8LXVTyYwgM8gOTDGpSmLEWJLsYOktlgF5Md gBN8G3kSoMT/vQAxRYhozTMoyLekE1jac6huV3QamPL9shBmLrHG7gN9SJzl9csYRf49 9vNrvR1nKVBW5gWA0ZNlyaQ+7NY83C1C5tr+wzBGqxFyNs0KQmalj+6I6AYQe4QANSKR YbaQ== X-Gm-Message-State: AOAM5338RwMMERDbC6KHhFer7V2ODSGbR4lpwwYV2WJEO7fXm4xFefZi bli3cne6uzMMRe203Dq7VwRl6o1D+5w= X-Google-Smtp-Source: ABdhPJxQk0ZcOTu9q1F2HlI5C6KhIfJhxL/lG+HilHMfAzvnyZTO1Hu28MMI64XQA56QmFXQatRmcA== X-Received: by 2002:a5d:4ecf:: with SMTP id s15mr2200093wrv.132.1613619785680; Wed, 17 Feb 2021 19:43:05 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.43.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:43:05 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:42:14 +0100 Message-Id: <20210218034214.2090223-29-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 29/29] avformat/wavdec: Share wav and w64 options 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" The options of the w64 demuxer are a proper subset of the options for the wav demuxer, making it possible to reuse a part of the options for the wav demuxer for the w64 demuxer. Signed-off-by: Andreas Rheinhardt --- Due to w64 having a configure dependency on wav the wav demuxer is always enabled if wavdec is compiled; yet there are nevertheless checks for whether it is enabled in the file and therefore I opted to make this patch compatible with a scenario in which the w64 demuxer no longer requires the wav demuxer. libavformat/wavdec.c | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/libavformat/wavdec.c b/libavformat/wavdec.c index e99de8f6d3..8214ab8498 100644 --- a/libavformat/wavdec.c +++ b/libavformat/wavdec.c @@ -27,6 +27,7 @@ #include +#include "config.h" #include "libavutil/avassert.h" #include "libavutil/dict.h" #include "libavutil/intreadwrite.h" @@ -63,6 +64,17 @@ typedef struct WAVDemuxContext { int rifx; // RIFX: integer byte order for parameters is big endian } WAVDemuxContext; +#define OFFSET(x) offsetof(WAVDemuxContext, x) +#define DEC AV_OPT_FLAG_DECODING_PARAM +static const AVOption demux_options[] = { +#define W64_DEMUXER_OPTIONS_OFFSET (1 * CONFIG_WAV_DEMUXER) +#if CONFIG_WAV_DEMUXER + { "ignore_length", "Ignore length", OFFSET(ignore_length), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, DEC }, +#endif + { "max_size", "max size of single packet", OFFSET(max_size), AV_OPT_TYPE_INT, { .i64 = 4096 }, 1024, 1 << 22, DEC }, + { NULL }, +}; + static void set_spdif(AVFormatContext *s, WAVDemuxContext *wav) { if (CONFIG_SPDIF_DEMUXER && s->streams[0]->codecpar->codec_tag == 1) { @@ -798,14 +810,6 @@ static int wav_read_seek(AVFormatContext *s, return ff_pcm_read_seek(s, stream_index, timestamp, flags); } -#define OFFSET(x) offsetof(WAVDemuxContext, x) -#define DEC AV_OPT_FLAG_DECODING_PARAM -static const AVOption demux_options[] = { - { "ignore_length", "Ignore length", OFFSET(ignore_length), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, DEC }, - { "max_size", "max size of single packet", OFFSET(max_size), AV_OPT_TYPE_INT, { .i64 = 4096 }, 1024, 1 << 22, DEC }, - { NULL }, -}; - static const AVClass wav_demuxer_class = { .class_name = "WAV demuxer", .item_name = av_default_item_name, @@ -955,17 +959,10 @@ static int w64_read_header(AVFormatContext *s) return 0; } -#define OFFSET(x) offsetof(WAVDemuxContext, x) -#define DEC AV_OPT_FLAG_DECODING_PARAM -static const AVOption w64_demux_options[] = { - { "max_size", "max size of single packet", OFFSET(max_size), AV_OPT_TYPE_INT, { .i64 = 4096 }, 1024, 1 << 22, DEC }, - { NULL } -}; - static const AVClass w64_demuxer_class = { .class_name = "W64 demuxer", .item_name = av_default_item_name, - .option = w64_demux_options, + .option = &demux_options[W64_DEMUXER_OPTIONS_OFFSET], .version = LIBAVUTIL_VERSION_INT, }; From patchwork Sat Feb 20 05:01:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25826 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 66448449B5A for ; Sat, 20 Feb 2021 07:01:24 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3582568A700; Sat, 20 Feb 2021 07:01:24 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 13AAE68A675 for ; Sat, 20 Feb 2021 07:01:18 +0200 (EET) Received: by mail-wr1-f46.google.com with SMTP id b3so11950872wrj.5 for ; Fri, 19 Feb 2021 21:01:18 -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=la8Mh2gAR7RLpeVh3YbXLgq6UMXr98lDKy7ikHGamZE=; b=RBO75u1II3irZnNRlw90tek6Nv8TPOACKaWleZbeEDEz5MdUH+Z4PyTH2TYNwYkDkP 3tgq6kzvX+L2UK+cZQCC/dMaeBgImMir/RpmIkpRF3Xx4zWM1oOCJdltrk0b3BPkzIQc K/M8gw1C/QDl0GCHdyfvYWyCKP6j+ktM35SG6jWQqjEmTN9v1cHSc2YMTI/oTnAYhx8r QPSmZTB8JwgvfoATQ2EicDAINICgagx4MUpwdrQjK1jsmI2PbTlY5LQzRE/yyzmCmtkp bnbpNdDBEC7nxZ1x6kRrsbc+RLqB6fzKOR0l+YIqjfr9EXmVXORpEC1ACmqwuILuVyPb z/WA== 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=la8Mh2gAR7RLpeVh3YbXLgq6UMXr98lDKy7ikHGamZE=; b=VPuU5g7cFEs9WELb62NDdXLTP2n8FVOWBgL3jBW3pZMU8V+mrP5DG9KUSV1i36xz91 pgmr9hn51Yd/ZDgwAu/1ydG15QYJQy/bGJmV9BJeiGO+pkq0+huNAdrdXkYM1+rx0b8n 12kyfZo/DZDcNwRpts7FZ+pSLt8cv1/z2uUywzxOb10885xOQmflgOZkNXMaFFE5cgW0 6sy6XiZ9vkGoqhVz5SI3DM8fccG9v/TMcp2HzVVOJKks8j2eSeacDWLNXQnqLo14DPeL +5nh5dz64zVhG0ONjp4CysZfnxwc1hsYOf0jEPlAwWzNlxKn/cSrk5+74E2vM6IBqvoQ YEHQ== X-Gm-Message-State: AOAM530HpGkSepUHHPd2HkyFV50XUc2xcjCVpnMw5Du1Zt+cKcyNeCvc 3JXoVbBfsoU6OWGxNbIfclIfnYoj9So= X-Google-Smtp-Source: ABdhPJzAE7+2i4Ac0O8quUprnjEjxUWpIbW4dKutUvh7f39V1RsKSNYn4ba8u/z/L3DAYkxwc/DWqw== X-Received: by 2002:a5d:6a4d:: with SMTP id t13mr1229808wrw.17.1613797276244; Fri, 19 Feb 2021 21:01:16 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id g18sm4074893wmh.17.2021.02.19.21.01.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 21:01:15 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 20 Feb 2021 06:01:05 +0100 Message-Id: <20210220050107.2572205-1-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 30/32] avcodec/tiff_data: Move data to its only user 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" tiff.c is the only user of the data from tiff_data.c (the dependency of the tiff encoder of it is spurious). Therefore this commit moves all the data from tiff_data.c to tiff_data.h (which is only included by tiff.c) and makes the objects declared therein static. Signed-off-by: Andreas Rheinhardt --- libavcodec/Makefile | 4 +- libavcodec/tiff.c | 12 +- libavcodec/tiff_data.c | 1870 ---------------------------------------- libavcodec/tiff_data.h | 1841 ++++++++++++++++++++++++++++++++++++++- 4 files changed, 1830 insertions(+), 1897 deletions(-) delete mode 100644 libavcodec/tiff_data.c diff --git a/libavcodec/Makefile b/libavcodec/Makefile index a5c24e7007..edb26eb010 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -657,8 +657,8 @@ OBJS-$(CONFIG_TARGA_ENCODER) += targaenc.o rle.o OBJS-$(CONFIG_TARGA_Y216_DECODER) += targa_y216dec.o OBJS-$(CONFIG_TDSC_DECODER) += tdsc.o OBJS-$(CONFIG_TIERTEXSEQVIDEO_DECODER) += tiertexseqv.o -OBJS-$(CONFIG_TIFF_DECODER) += tiff.o lzw.o faxcompr.o tiff_data.o tiff_common.o -OBJS-$(CONFIG_TIFF_ENCODER) += tiffenc.o rle.o lzwenc.o tiff_data.o +OBJS-$(CONFIG_TIFF_DECODER) += tiff.o lzw.o faxcompr.o tiff_common.o +OBJS-$(CONFIG_TIFF_ENCODER) += tiffenc.o rle.o lzwenc.o OBJS-$(CONFIG_TMV_DECODER) += tmv.o cga_data.o OBJS-$(CONFIG_TRUEHD_DECODER) += mlpdec.o mlpdsp.o OBJS-$(CONFIG_TRUEHD_ENCODER) += mlpenc.o mlp.o diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c index f68f9818ad..d1e908fd43 100644 --- a/libavcodec/tiff.c +++ b/libavcodec/tiff.c @@ -132,8 +132,8 @@ static void free_geotags(TiffContext *const s) #define RET_GEOKEY(TYPE, array, element)\ if (key >= TIFF_##TYPE##_KEY_ID_OFFSET &&\ - key - TIFF_##TYPE##_KEY_ID_OFFSET < FF_ARRAY_ELEMS(ff_tiff_##array##_name_type_map))\ - return ff_tiff_##array##_name_type_map[key - TIFF_##TYPE##_KEY_ID_OFFSET].element; + key - TIFF_##TYPE##_KEY_ID_OFFSET < FF_ARRAY_ELEMS(tiff_##array##_name_type_map))\ + return tiff_##array##_name_type_map[key - TIFF_##TYPE##_KEY_ID_OFFSET].element; static const char *get_geokey_name(int key) { @@ -180,8 +180,8 @@ static char *get_geokey_val(int key, int val) #define RET_GEOKEY_VAL(TYPE, array)\ if (val >= TIFF_##TYPE##_OFFSET &&\ - val - TIFF_##TYPE##_OFFSET < FF_ARRAY_ELEMS(ff_tiff_##array##_codes))\ - return av_strdup(ff_tiff_##array##_codes[val - TIFF_##TYPE##_OFFSET]); + val - TIFF_##TYPE##_OFFSET < FF_ARRAY_ELEMS(tiff_##array##_codes))\ + return av_strdup(tiff_##array##_codes[val - TIFF_##TYPE##_OFFSET]); switch (key) { case TIFF_GT_MODEL_TYPE_GEOKEY: @@ -214,11 +214,11 @@ static char *get_geokey_val(int key, int val) RET_GEOKEY_VAL(PRIME_MERIDIAN, prime_meridian); break; case TIFF_PROJECTED_CS_TYPE_GEOKEY: - ap = av_strdup(search_keyval(ff_tiff_proj_cs_type_codes, FF_ARRAY_ELEMS(ff_tiff_proj_cs_type_codes), val)); + ap = av_strdup(search_keyval(tiff_proj_cs_type_codes, FF_ARRAY_ELEMS(tiff_proj_cs_type_codes), val)); if(ap) return ap; break; case TIFF_PROJECTION_GEOKEY: - ap = av_strdup(search_keyval(ff_tiff_projection_codes, FF_ARRAY_ELEMS(ff_tiff_projection_codes), val)); + ap = av_strdup(search_keyval(tiff_projection_codes, FF_ARRAY_ELEMS(tiff_projection_codes), val)); if(ap) return ap; break; case TIFF_PROJ_COORD_TRANS_GEOKEY: diff --git a/libavcodec/tiff_data.c b/libavcodec/tiff_data.c deleted file mode 100644 index 88c2256813..0000000000 --- a/libavcodec/tiff_data.c +++ /dev/null @@ -1,1870 +0,0 @@ -/* - * TIFF data tables - * Copyright (c) 2011 Thomas Kuehnel - * - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/** - * @file - * TIFF data tables - * @author Thomas Kuehnel - * @see GeoTIFF specification at - * http://www.remotesensing.org/geotiff/spec/geotiffhome.html - */ - -#include "tiff_data.h" - -const TiffGeoTagNameType ff_tiff_conf_name_type_map[] = { - {"GTModelTypeGeoKey", GEOTIFF_SHORT }, - {"GTRasterTypeGeoKey", GEOTIFF_SHORT }, - {"GTCitationGeoKey", GEOTIFF_STRING} -}; - -const TiffGeoTagNameType ff_tiff_geog_name_type_map[] = { - {"GeographicTypeGeoKey", GEOTIFF_SHORT }, - {"GeogCitationGeoKey", GEOTIFF_STRING}, - {"GeogGeodeticDatumGeoKey", GEOTIFF_SHORT }, - {"GeogPrimeMeridianGeoKey", GEOTIFF_SHORT }, - {"GeogLinearUnitsGeoKey", GEOTIFF_SHORT }, - {"GeogLinearUnitSizeGeoKey", GEOTIFF_DOUBLE}, - {"GeogAngularUnitsGeoKey", GEOTIFF_SHORT }, - {"GeogAngularUnitSizeGeoKey", GEOTIFF_DOUBLE}, - {"GeogEllipsoidGeoKey", GEOTIFF_SHORT }, - {"GeogSemiMajorAxisGeoKey", GEOTIFF_DOUBLE}, - {"GeogSemiMinorAxisGeoKey", GEOTIFF_DOUBLE}, - {"GeogInvFlatteningGeoKey", GEOTIFF_DOUBLE}, - {"GeogAzimuthUnitsGeoKey", GEOTIFF_SHORT }, - {"GeogPrimeMeridianLongGeoKey", GEOTIFF_DOUBLE} -}; - -const TiffGeoTagNameType ff_tiff_proj_name_type_map[] = { - {"ProjectedCSTypeGeoKey", GEOTIFF_SHORT }, - {"PCSCitationGeoKey", GEOTIFF_STRING}, - {"ProjectionGeoKey", GEOTIFF_SHORT }, - {"ProjCoordTransGeoKey", GEOTIFF_SHORT }, - {"ProjLinearUnitsGeoKey", GEOTIFF_SHORT }, - {"ProjLinearUnitSizeGeoKey", GEOTIFF_DOUBLE}, - {"ProjStdParallel1GeoKey", GEOTIFF_DOUBLE}, - {"ProjStdParallel2GeoKey", GEOTIFF_DOUBLE}, - {"ProjNatOriginLongGeoKey", GEOTIFF_DOUBLE}, - {"ProjNatOriginLatGeoKey", GEOTIFF_DOUBLE}, - {"ProjFalseEastingGeoKey", GEOTIFF_DOUBLE}, - {"ProjFalseNorthingGeoKey", GEOTIFF_DOUBLE}, - {"ProjFalseOriginLongGeoKey", GEOTIFF_DOUBLE}, - {"ProjFalseOriginLatGeoKey", GEOTIFF_DOUBLE}, - {"ProjFalseOriginEastingGeoKey", GEOTIFF_DOUBLE}, - {"ProjFalseOriginNorthingGeoKey", GEOTIFF_DOUBLE}, - {"ProjCenterLongGeoKey", GEOTIFF_DOUBLE}, - {"ProjCenterLatGeoKey", GEOTIFF_DOUBLE}, - {"ProjCenterEastingGeoKey", GEOTIFF_DOUBLE}, - {"ProjCenterNorthingGeoKey", GEOTIFF_DOUBLE}, - {"ProjScaleAtNatOriginGeoKey", GEOTIFF_DOUBLE}, - {"ProjScaleAtCenterGeoKey", GEOTIFF_DOUBLE}, - {"ProjAzimuthAngleGeoKey", GEOTIFF_DOUBLE}, - {"ProjStraightVertPoleLongGeoKey", GEOTIFF_DOUBLE} -}; - -const TiffGeoTagNameType ff_tiff_vert_name_type_map[] = { - {"VerticalCSTypeGeoKey", GEOTIFF_SHORT }, - {"VerticalCitationGeoKey", GEOTIFF_STRING}, - {"VerticalDatumGeoKey", GEOTIFF_SHORT }, - {"VerticalUnitsGeoKey", GEOTIFF_SHORT } -}; - -const char *const ff_tiff_gt_model_type_codes[] = { - "ModelTypeProjected", - "ModelTypeGeographic", - "ModelTypeGeocentric" -}; - -const char *const ff_tiff_gt_raster_type_codes[] = { - "RasterPixelIsArea", - "RasterPixelIsPoint" -}; - -const char *const ff_tiff_linear_unit_codes[] = { - "Linear_Meter", - "Linear_Foot", - "Linear_Foot_US_Survey", - "Linear_Foot_Modified_American", - "Linear_Foot_Clarke", - "Linear_Foot_Indian", - "Linear_Link", - "Linear_Link_Benoit", - "Linear_Link_Sears", - "Linear_Chain_Benoit", - "Linear_Chain_Sears", - "Linear_Yard_Sears", - "Linear_Yard_Indian", - "Linear_Fathom", - "Linear_Mile_International_Nautical" -}; - -const char *const ff_tiff_angular_unit_codes[] = { - "Angular_Radian", - "Angular_Degree", - "Angular_Arc_Minute", - "Angular_Arc_Second", - "Angular_Grad", - "Angular_Gon", - "Angular_DMS", - "Angular_DMS_Hemisphere" -}; - -const char *const ff_tiff_gcs_type_codes[] = { - "GCS_Adindan", - "GCS_AGD66", - "GCS_AGD84", - "GCS_Ain_el_Abd", - "GCS_Afgooye", - "GCS_Agadez", - "GCS_Lisbon", - "GCS_Aratu", - "GCS_Arc_1950", - "GCS_Arc_1960", - "GCS_Batavia", - "GCS_Barbados", - "GCS_Beduaram", - "GCS_Beijing_1954", - "GCS_Belge_1950", - "GCS_Bermuda_1957", - "GCS_Bern_1898", - "GCS_Bogota", - "GCS_Bukit_Rimpah", - "GCS_Camacupa", - "GCS_Campo_Inchauspe", - "GCS_Cape", - "GCS_Carthage", - "GCS_Chua", - "GCS_Corrego_Alegre", - "GCS_Cote_d_Ivoire", - "GCS_Deir_ez_Zor", - "GCS_Douala", - "GCS_Egypt_1907", - "GCS_ED50", - "GCS_ED87", - "GCS_Fahud", - "GCS_Gandajika_1970", - "GCS_Garoua", - "GCS_Guyane_Francaise", - "GCS_Hu_Tzu_Shan", - "GCS_HD72", - "GCS_ID74", - "GCS_Indian_1954", - "GCS_Indian_1975", - "GCS_Jamaica_1875", - "GCS_JAD69", - "GCS_Kalianpur", - "GCS_Kandawala", - "GCS_Kertau", - "GCS_KOC", - "GCS_La_Canoa", - "GCS_PSAD56", - "GCS_Lake", - "GCS_Leigon", - "GCS_Liberia_1964", - "GCS_Lome", - "GCS_Luzon_1911", - "GCS_Hito_XVIII_1963", - "GCS_Herat_North", - "GCS_Mahe_1971", - "GCS_Makassar", - "GCS_EUREF89", - "GCS_Malongo_1987", - "GCS_Manoca", - "GCS_Merchich", - "GCS_Massawa", - "GCS_Minna", - "GCS_Mhast", - "GCS_Monte_Mario", - "GCS_M_poraloko", - "GCS_NAD27", - "GCS_NAD_Michigan", - "GCS_NAD83", - "GCS_Nahrwan_1967", - "GCS_Naparima_1972", - "GCS_GD49", - "GCS_NGO_1948", - "GCS_Datum_73", - "GCS_NTF", - "GCS_NSWC_9Z_2", - "GCS_OSGB_1936", - "GCS_OSGB70", - "GCS_OS_SN80", - "GCS_Padang", - "GCS_Palestine_1923", - "GCS_Pointe_Noire", - "GCS_GDA94", - "GCS_Pulkovo_1942", - "GCS_Qatar", - "GCS_Qatar_1948", - "GCS_Qornoq", - "GCS_Loma_Quintana", - "GCS_Amersfoort", - "GCS_RT38", - "GCS_SAD69", - "GCS_Sapper_Hill_1943", - "GCS_Schwarzeck", - "GCS_Segora", - "GCS_Serindung", - "GCS_Sudan", - "GCS_Tananarive", - "GCS_Timbalai_1948", - "GCS_TM65", - "GCS_TM75", - "GCS_Tokyo", - "GCS_Trinidad_1903", - "GCS_TC_1948", - "GCS_Voirol_1875", - "GCS_Voirol_Unifie", - "GCS_Bern_1938", - "GCS_Nord_Sahara_1959", - "GCS_Stockholm_1938", - "GCS_Yacare", - "GCS_Yoff", - "GCS_Zanderij", - "GCS_MGI", - "GCS_Belge_1972", - "GCS_DHDN", - "GCS_Conakry_1905", - "GCS_WGS_72", - "GCS_WGS_72BE", - "GCS_WGS_84", - "GCS_Bern_1898_Bern", - "GCS_Bogota_Bogota", - "GCS_Lisbon_Lisbon", - "GCS_Makassar_Jakarta", - "GCS_MGI_Ferro", - "GCS_Monte_Mario_Rome", - "GCS_NTF_Paris", - "GCS_Padang_Jakarta", - "GCS_Belge_1950_Brussels", - "GCS_Tananarive_Paris", - "GCS_Voirol_1875_Paris", - "GCS_Voirol_Unifie_Paris", - "GCS_Batavia_Jakarta", - "GCS_ATF_Paris", - "GCS_NDG_Paris" -}; - -const char *const ff_tiff_gcse_type_codes[] = { - "GCSE_Airy1830", - "GCSE_AiryModified1849", - "GCSE_AustralianNationalSpheroid", - "GCSE_Bessel1841", - "GCSE_BesselModified", - "GCSE_BesselNamibia", - "GCSE_Clarke1858", - "GCSE_Clarke1866", - "GCSE_Clarke1866Michigan", - "GCSE_Clarke1880_Benoit", - "GCSE_Clarke1880_IGN", - "GCSE_Clarke1880_RGS", - "GCSE_Clarke1880_Arc", - "GCSE_Clarke1880_SGA1922", - "GCSE_Everest1830_1937Adjustment", - "GCSE_Everest1830_1967Definition", - "GCSE_Everest1830_1975Definition", - "GCSE_Everest1830Modified", - "GCSE_GRS1980", - "GCSE_Helmert1906", - "GCSE_IndonesianNationalSpheroid", - "GCSE_International1924", - "GCSE_International1967", - "GCSE_Krassowsky1940", - "GCSE_NWL9D", - "GCSE_NWL10D", - "GCSE_Plessis1817", - "GCSE_Struve1860", - "GCSE_WarOffice", - "GCSE_WGS84", - "GCSE_GEM10C", - "GCSE_OSU86F", - "GCSE_OSU91A", - "GCSE_Clarke1880", - "GCSE_Sphere" -}; - -const char *const ff_tiff_geodetic_datum_codes[] = { - "Datum_Adindan", - "Datum_Australian_Geodetic_Datum_1966", - "Datum_Australian_Geodetic_Datum_1984", - "Datum_Ain_el_Abd_1970", - "Datum_Afgooye", - "Datum_Agadez", - "Datum_Lisbon", - "Datum_Aratu", - "Datum_Arc_1950", - "Datum_Arc_1960", - "Datum_Batavia", - "Datum_Barbados", - "Datum_Beduaram", - "Datum_Beijing_1954", - "Datum_Reseau_National_Belge_1950", - "Datum_Bermuda_1957", - "Datum_Bern_1898", - "Datum_Bogota", - "Datum_Bukit_Rimpah", - "Datum_Camacupa", - "Datum_Campo_Inchauspe", - "Datum_Cape", - "Datum_Carthage", - "Datum_Chua", - "Datum_Corrego_Alegre", - "Datum_Cote_d_Ivoire", - "Datum_Deir_ez_Zor", - "Datum_Douala", - "Datum_Egypt_1907", - "Datum_European_Datum_1950", - "Datum_European_Datum_1987", - "Datum_Fahud", - "Datum_Gandajika_1970", - "Datum_Garoua", - "Datum_Guyane_Francaise", - "Datum_Hu_Tzu_Shan", - "Datum_Hungarian_Datum_1972", - "Datum_Indonesian_Datum_1974", - "Datum_Indian_1954", - "Datum_Indian_1975", - "Datum_Jamaica_1875", - "Datum_Jamaica_1969", - "Datum_Kalianpur", - "Datum_Kandawala", - "Datum_Kertau", - "Datum_Kuwait_Oil_Company", - "Datum_La_Canoa", - "Datum_Provisional_S_American_Datum_1956", - "Datum_Lake", - "Datum_Leigon", - "Datum_Liberia_1964", - "Datum_Lome", - "Datum_Luzon_1911", - "Datum_Hito_XVIII_1963", - "Datum_Herat_North", - "Datum_Mahe_1971", - "Datum_Makassar", - "Datum_European_Reference_System_1989", - "Datum_Malongo_1987", - "Datum_Manoca", - "Datum_Merchich", - "Datum_Massawa", - "Datum_Minna", - "Datum_Mhast", - "Datum_Monte_Mario", - "Datum_M_poraloko", - "Datum_North_American_Datum_1927", - "Datum_NAD_Michigan", - "Datum_North_American_Datum_1983", - "Datum_Nahrwan_1967", - "Datum_Naparima_1972", - "Datum_New_Zealand_Geodetic_Datum_1949", - "Datum_NGO_1948", - "Datum_Datum_73", - "Datum_Nouvelle_Triangulation_Francaise", - "Datum_NSWC_9Z_2", - "Datum_OSGB_1936", - "Datum_OSGB_1970_SN", - "Datum_OS_SN_1980", - "Datum_Padang_1884", - "Datum_Palestine_1923", - "Datum_Pointe_Noire", - "Datum_Geocentric_Datum_of_Australia_1994", - "Datum_Pulkovo_1942", - "Datum_Qatar", - "Datum_Qatar_1948", - "Datum_Qornoq", - "Datum_Loma_Quintana", - "Datum_Amersfoort", - "Datum_RT38", - "Datum_South_American_Datum_1969", - "Datum_Sapper_Hill_1943", - "Datum_Schwarzeck", - "Datum_Segora", - "Datum_Serindung", - "Datum_Sudan", - "Datum_Tananarive_1925", - "Datum_Timbalai_1948", - "Datum_TM65", - "Datum_TM75", - "Datum_Tokyo", - "Datum_Trinidad_1903", - "Datum_Trucial_Coast_1948", - "Datum_Voirol_1875", - "Datum_Voirol_Unifie_1960", - "Datum_Bern_1938", - "Datum_Nord_Sahara_1959", - "Datum_Stockholm_1938", - "Datum_Yacare", - "Datum_Yoff", - "Datum_Zanderij", - "Datum_Militar_Geographische_Institut", - "Datum_Reseau_National_Belge_1972", - "Datum_Deutsche_Hauptdreiecksnetz", - "Datum_Conakry_1905", - "Datum_WGS72", - "Datum_WGS72_Transit_Broadcast_Ephemeris", - "Datum_WGS84", - "Datum_Ancienne_Triangulation_Francaise", - "Datum_Nord_de_Guerre" -}; - -const char *const ff_tiff_geodetic_datum_e_codes[] = { - "DatumE_Airy1830", - "DatumE_AiryModified1849", - "DatumE_AustralianNationalSpheroid", - "DatumE_Bessel1841", - "DatumE_BesselModified", - "DatumE_BesselNamibia", - "DatumE_Clarke1858", - "DatumE_Clarke1866", - "DatumE_Clarke1866Michigan", - "DatumE_Clarke1880_Benoit", - "DatumE_Clarke1880_IGN", - "DatumE_Clarke1880_RGS", - "DatumE_Clarke1880_Arc", - "DatumE_Clarke1880_SGA1922", - "DatumE_Everest1830_1937Adjustment", - "DatumE_Everest1830_1967Definition", - "DatumE_Everest1830_1975Definition", - "DatumE_Everest1830Modified", - "DatumE_GRS1980", - "DatumE_Helmert1906", - "DatumE_IndonesianNationalSpheroid", - "DatumE_International1924", - "DatumE_International1967", - "DatumE_Krassowsky1960", - "DatumE_NWL9D", - "DatumE_NWL10D", - "DatumE_Plessis1817", - "DatumE_Struve1860", - "DatumE_WarOffice", - "DatumE_WGS84", - "DatumE_GEM10C", - "DatumE_OSU86F", - "DatumE_OSU91A", - "DatumE_Clarke1880", - "DatumE_Sphere" -}; - -const char *const ff_tiff_ellipsoid_codes[] = { - "Ellipse_Airy_1830", - "Ellipse_Airy_Modified_1849", - "Ellipse_Australian_National_Spheroid", - "Ellipse_Bessel_1841", - "Ellipse_Bessel_Modified", - "Ellipse_Bessel_Namibia", - "Ellipse_Clarke_1858", - "Ellipse_Clarke_1866", - "Ellipse_Clarke_1866_Michigan", - "Ellipse_Clarke_1880_Benoit", - "Ellipse_Clarke_1880_IGN", - "Ellipse_Clarke_1880_RGS", - "Ellipse_Clarke_1880_Arc", - "Ellipse_Clarke_1880_SGA_1922", - "Ellipse_Everest_1830_1937_Adjustment", - "Ellipse_Everest_1830_1967_Definition", - "Ellipse_Everest_1830_1975_Definition", - "Ellipse_Everest_1830_Modified", - "Ellipse_GRS_1980", - "Ellipse_Helmert_1906", - "Ellipse_Indonesian_National_Spheroid", - "Ellipse_International_1924", - "Ellipse_International_1967", - "Ellipse_Krassowsky_1940", - "Ellipse_NWL_9D", - "Ellipse_NWL_10D", - "Ellipse_Plessis_1817", - "Ellipse_Struve_1860", - "Ellipse_War_Office", - "Ellipse_WGS_84", - "Ellipse_GEM_10C", - "Ellipse_OSU86F", - "Ellipse_OSU91A", - "Ellipse_Clarke_1880", - "Ellipse_Sphere" -}; - -const char *const ff_tiff_prime_meridian_codes[] = { - "PM_Greenwich", - "PM_Lisbon", - "PM_Paris", - "PM_Bogota", - "PM_Madrid", - "PM_Rome", - "PM_Bern", - "PM_Jakarta", - "PM_Ferro", - "PM_Brussels", - "PM_Stockholm" -}; - -const TiffGeoTagKeyName ff_tiff_proj_cs_type_codes[] = { - {20137, "PCS_Adindan_UTM_zone_37N"}, - {20138, "PCS_Adindan_UTM_zone_38N"}, - {20248, "PCS_AGD66_AMG_zone_48"}, - {20249, "PCS_AGD66_AMG_zone_49"}, - {20250, "PCS_AGD66_AMG_zone_50"}, - {20251, "PCS_AGD66_AMG_zone_51"}, - {20252, "PCS_AGD66_AMG_zone_52"}, - {20253, "PCS_AGD66_AMG_zone_53"}, - {20254, "PCS_AGD66_AMG_zone_54"}, - {20255, "PCS_AGD66_AMG_zone_55"}, - {20256, "PCS_AGD66_AMG_zone_56"}, - {20257, "PCS_AGD66_AMG_zone_57"}, - {20258, "PCS_AGD66_AMG_zone_58"}, - {20348, "PCS_AGD84_AMG_zone_48"}, - {20349, "PCS_AGD84_AMG_zone_49"}, - {20350, "PCS_AGD84_AMG_zone_50"}, - {20351, "PCS_AGD84_AMG_zone_51"}, - {20352, "PCS_AGD84_AMG_zone_52"}, - {20353, "PCS_AGD84_AMG_zone_53"}, - {20354, "PCS_AGD84_AMG_zone_54"}, - {20355, "PCS_AGD84_AMG_zone_55"}, - {20356, "PCS_AGD84_AMG_zone_56"}, - {20357, "PCS_AGD84_AMG_zone_57"}, - {20358, "PCS_AGD84_AMG_zone_58"}, - {20437, "PCS_Ain_el_Abd_UTM_zone_37N"}, - {20438, "PCS_Ain_el_Abd_UTM_zone_38N"}, - {20439, "PCS_Ain_el_Abd_UTM_zone_39N"}, - {20499, "PCS_Ain_el_Abd_Bahrain_Grid"}, - {20538, "PCS_Afgooye_UTM_zone_38N"}, - {20539, "PCS_Afgooye_UTM_zone_39N"}, - {20700, "PCS_Lisbon_Portugese_Grid"}, - {20822, "PCS_Aratu_UTM_zone_22S"}, - {20823, "PCS_Aratu_UTM_zone_23S"}, - {20824, "PCS_Aratu_UTM_zone_24S"}, - {20973, "PCS_Arc_1950_Lo13"}, - {20975, "PCS_Arc_1950_Lo15"}, - {20977, "PCS_Arc_1950_Lo17"}, - {20979, "PCS_Arc_1950_Lo19"}, - {20981, "PCS_Arc_1950_Lo21"}, - {20983, "PCS_Arc_1950_Lo23"}, - {20985, "PCS_Arc_1950_Lo25"}, - {20987, "PCS_Arc_1950_Lo27"}, - {20989, "PCS_Arc_1950_Lo29"}, - {20991, "PCS_Arc_1950_Lo31"}, - {20993, "PCS_Arc_1950_Lo33"}, - {20995, "PCS_Arc_1950_Lo35"}, - {21100, "PCS_Batavia_NEIEZ"}, - {21148, "PCS_Batavia_UTM_zone_48S"}, - {21149, "PCS_Batavia_UTM_zone_49S"}, - {21150, "PCS_Batavia_UTM_zone_50S"}, - {21413, "PCS_Beijing_Gauss_zone_13"}, - {21414, "PCS_Beijing_Gauss_zone_14"}, - {21415, "PCS_Beijing_Gauss_zone_15"}, - {21416, "PCS_Beijing_Gauss_zone_16"}, - {21417, "PCS_Beijing_Gauss_zone_17"}, - {21418, "PCS_Beijing_Gauss_zone_18"}, - {21419, "PCS_Beijing_Gauss_zone_19"}, - {21420, "PCS_Beijing_Gauss_zone_20"}, - {21421, "PCS_Beijing_Gauss_zone_21"}, - {21422, "PCS_Beijing_Gauss_zone_22"}, - {21423, "PCS_Beijing_Gauss_zone_23"}, - {21473, "PCS_Beijing_Gauss_13N"}, - {21474, "PCS_Beijing_Gauss_14N"}, - {21475, "PCS_Beijing_Gauss_15N"}, - {21476, "PCS_Beijing_Gauss_16N"}, - {21477, "PCS_Beijing_Gauss_17N"}, - {21478, "PCS_Beijing_Gauss_18N"}, - {21479, "PCS_Beijing_Gauss_19N"}, - {21480, "PCS_Beijing_Gauss_20N"}, - {21481, "PCS_Beijing_Gauss_21N"}, - {21482, "PCS_Beijing_Gauss_22N"}, - {21483, "PCS_Beijing_Gauss_23N"}, - {21500, "PCS_Belge_Lambert_50"}, - {21790, "PCS_Bern_1898_Swiss_Old"}, - {21817, "PCS_Bogota_UTM_zone_17N"}, - {21818, "PCS_Bogota_UTM_zone_18N"}, - {21891, "PCS_Bogota_Colombia_3W"}, - {21892, "PCS_Bogota_Colombia_Bogota"}, - {21893, "PCS_Bogota_Colombia_3E"}, - {21894, "PCS_Bogota_Colombia_6E"}, - {22032, "PCS_Camacupa_UTM_32S"}, - {22033, "PCS_Camacupa_UTM_33S"}, - {22191, "PCS_C_Inchauspe_Argentina_1"}, - {22192, "PCS_C_Inchauspe_Argentina_2"}, - {22193, "PCS_C_Inchauspe_Argentina_3"}, - {22194, "PCS_C_Inchauspe_Argentina_4"}, - {22195, "PCS_C_Inchauspe_Argentina_5"}, - {22196, "PCS_C_Inchauspe_Argentina_6"}, - {22197, "PCS_C_Inchauspe_Argentina_7"}, - {22332, "PCS_Carthage_UTM_zone_32N"}, - {22391, "PCS_Carthage_Nord_Tunisie"}, - {22392, "PCS_Carthage_Sud_Tunisie"}, - {22523, "PCS_Corrego_Alegre_UTM_23S"}, - {22524, "PCS_Corrego_Alegre_UTM_24S"}, - {22832, "PCS_Douala_UTM_zone_32N"}, - {22992, "PCS_Egypt_1907_Red_Belt"}, - {22993, "PCS_Egypt_1907_Purple_Belt"}, - {22994, "PCS_Egypt_1907_Ext_Purple"}, - {23028, "PCS_ED50_UTM_zone_28N"}, - {23029, "PCS_ED50_UTM_zone_29N"}, - {23030, "PCS_ED50_UTM_zone_30N"}, - {23031, "PCS_ED50_UTM_zone_31N"}, - {23032, "PCS_ED50_UTM_zone_32N"}, - {23033, "PCS_ED50_UTM_zone_33N"}, - {23034, "PCS_ED50_UTM_zone_34N"}, - {23035, "PCS_ED50_UTM_zone_35N"}, - {23036, "PCS_ED50_UTM_zone_36N"}, - {23037, "PCS_ED50_UTM_zone_37N"}, - {23038, "PCS_ED50_UTM_zone_38N"}, - {23239, "PCS_Fahud_UTM_zone_39N"}, - {23240, "PCS_Fahud_UTM_zone_40N"}, - {23433, "PCS_Garoua_UTM_zone_33N"}, - {23846, "PCS_ID74_UTM_zone_46N"}, - {23847, "PCS_ID74_UTM_zone_47N"}, - {23848, "PCS_ID74_UTM_zone_48N"}, - {23849, "PCS_ID74_UTM_zone_49N"}, - {23850, "PCS_ID74_UTM_zone_50N"}, - {23851, "PCS_ID74_UTM_zone_51N"}, - {23852, "PCS_ID74_UTM_zone_52N"}, - {23853, "PCS_ID74_UTM_zone_53N"}, - {23886, "PCS_ID74_UTM_zone_46S"}, - {23887, "PCS_ID74_UTM_zone_47S"}, - {23888, "PCS_ID74_UTM_zone_48S"}, - {23889, "PCS_ID74_UTM_zone_49S"}, - {23890, "PCS_ID74_UTM_zone_50S"}, - {23891, "PCS_ID74_UTM_zone_51S"}, - {23892, "PCS_ID74_UTM_zone_52S"}, - {23893, "PCS_ID74_UTM_zone_53S"}, - {23894, "PCS_ID74_UTM_zone_54S"}, - {23947, "PCS_Indian_1954_UTM_47N"}, - {23948, "PCS_Indian_1954_UTM_48N"}, - {24047, "PCS_Indian_1975_UTM_47N"}, - {24048, "PCS_Indian_1975_UTM_48N"}, - {24100, "PCS_Jamaica_1875_Old_Grid"}, - {24200, "PCS_JAD69_Jamaica_Grid"}, - {24370, "PCS_Kalianpur_India_0"}, - {24371, "PCS_Kalianpur_India_I"}, - {24372, "PCS_Kalianpur_India_IIa"}, - {24373, "PCS_Kalianpur_India_IIIa"}, - {24374, "PCS_Kalianpur_India_IVa"}, - {24382, "PCS_Kalianpur_India_IIb"}, - {24383, "PCS_Kalianpur_India_IIIb"}, - {24384, "PCS_Kalianpur_India_IVb"}, - {24500, "PCS_Kertau_Singapore_Grid"}, - {24547, "PCS_Kertau_UTM_zone_47N"}, - {24548, "PCS_Kertau_UTM_zone_48N"}, - {24720, "PCS_La_Canoa_UTM_zone_20N"}, - {24721, "PCS_La_Canoa_UTM_zone_21N"}, - {24818, "PCS_PSAD56_UTM_zone_18N"}, - {24819, "PCS_PSAD56_UTM_zone_19N"}, - {24820, "PCS_PSAD56_UTM_zone_20N"}, - {24821, "PCS_PSAD56_UTM_zone_21N"}, - {24877, "PCS_PSAD56_UTM_zone_17S"}, - {24878, "PCS_PSAD56_UTM_zone_18S"}, - {24879, "PCS_PSAD56_UTM_zone_19S"}, - {24880, "PCS_PSAD56_UTM_zone_20S"}, - {24891, "PCS_PSAD56_Peru_west_zone"}, - {24892, "PCS_PSAD56_Peru_central"}, - {24893, "PCS_PSAD56_Peru_east_zone"}, - {25000, "PCS_Leigon_Ghana_Grid"}, - {25231, "PCS_Lome_UTM_zone_31N"}, - {25391, "PCS_Luzon_Philippines_I"}, - {25392, "PCS_Luzon_Philippines_II"}, - {25393, "PCS_Luzon_Philippines_III"}, - {25394, "PCS_Luzon_Philippines_IV"}, - {25395, "PCS_Luzon_Philippines_V"}, - {25700, "PCS_Makassar_NEIEZ"}, - {25932, "PCS_Malongo_1987_UTM_32S"}, - {26191, "PCS_Merchich_Nord_Maroc"}, - {26192, "PCS_Merchich_Sud_Maroc"}, - {26193, "PCS_Merchich_Sahara"}, - {26237, "PCS_Massawa_UTM_zone_37N"}, - {26331, "PCS_Minna_UTM_zone_31N"}, - {26332, "PCS_Minna_UTM_zone_32N"}, - {26391, "PCS_Minna_Nigeria_West"}, - {26392, "PCS_Minna_Nigeria_Mid_Belt"}, - {26393, "PCS_Minna_Nigeria_East"}, - {26432, "PCS_Mhast_UTM_zone_32S"}, - {26591, "PCS_Monte_Mario_Italy_1"}, - {26592, "PCS_Monte_Mario_Italy_2"}, - {26632, "PCS_M_poraloko_UTM_32N"}, - {26692, "PCS_M_poraloko_UTM_32S"}, - {26703, "PCS_NAD27_UTM_zone_3N"}, - {26704, "PCS_NAD27_UTM_zone_4N"}, - {26705, "PCS_NAD27_UTM_zone_5N"}, - {26706, "PCS_NAD27_UTM_zone_6N"}, - {26707, "PCS_NAD27_UTM_zone_7N"}, - {26708, "PCS_NAD27_UTM_zone_8N"}, - {26709, "PCS_NAD27_UTM_zone_9N"}, - {26710, "PCS_NAD27_UTM_zone_10N"}, - {26711, "PCS_NAD27_UTM_zone_11N"}, - {26712, "PCS_NAD27_UTM_zone_12N"}, - {26713, "PCS_NAD27_UTM_zone_13N"}, - {26714, "PCS_NAD27_UTM_zone_14N"}, - {26715, "PCS_NAD27_UTM_zone_15N"}, - {26716, "PCS_NAD27_UTM_zone_16N"}, - {26717, "PCS_NAD27_UTM_zone_17N"}, - {26718, "PCS_NAD27_UTM_zone_18N"}, - {26719, "PCS_NAD27_UTM_zone_19N"}, - {26720, "PCS_NAD27_UTM_zone_20N"}, - {26721, "PCS_NAD27_UTM_zone_21N"}, - {26722, "PCS_NAD27_UTM_zone_22N"}, - {26729, "PCS_NAD27_Alabama_East"}, - {26730, "PCS_NAD27_Alabama_West"}, - {26731, "PCS_NAD27_Alaska_zone_1"}, - {26732, "PCS_NAD27_Alaska_zone_2"}, - {26733, "PCS_NAD27_Alaska_zone_3"}, - {26734, "PCS_NAD27_Alaska_zone_4"}, - {26735, "PCS_NAD27_Alaska_zone_5"}, - {26736, "PCS_NAD27_Alaska_zone_6"}, - {26737, "PCS_NAD27_Alaska_zone_7"}, - {26738, "PCS_NAD27_Alaska_zone_8"}, - {26739, "PCS_NAD27_Alaska_zone_9"}, - {26740, "PCS_NAD27_Alaska_zone_10"}, - {26741, "PCS_NAD27_California_I"}, - {26742, "PCS_NAD27_California_II"}, - {26743, "PCS_NAD27_California_III"}, - {26744, "PCS_NAD27_California_IV"}, - {26745, "PCS_NAD27_California_V"}, - {26746, "PCS_NAD27_California_VI"}, - {26747, "PCS_NAD27_California_VII"}, - {26748, "PCS_NAD27_Arizona_East"}, - {26749, "PCS_NAD27_Arizona_Central"}, - {26750, "PCS_NAD27_Arizona_West"}, - {26751, "PCS_NAD27_Arkansas_North"}, - {26752, "PCS_NAD27_Arkansas_South"}, - {26753, "PCS_NAD27_Colorado_North"}, - {26754, "PCS_NAD27_Colorado_Central"}, - {26755, "PCS_NAD27_Colorado_South"}, - {26756, "PCS_NAD27_Connecticut"}, - {26757, "PCS_NAD27_Delaware"}, - {26758, "PCS_NAD27_Florida_East"}, - {26759, "PCS_NAD27_Florida_West"}, - {26760, "PCS_NAD27_Florida_North"}, - {26761, "PCS_NAD27_Hawaii_zone_1"}, - {26762, "PCS_NAD27_Hawaii_zone_2"}, - {26763, "PCS_NAD27_Hawaii_zone_3"}, - {26764, "PCS_NAD27_Hawaii_zone_4"}, - {26765, "PCS_NAD27_Hawaii_zone_5"}, - {26766, "PCS_NAD27_Georgia_East"}, - {26767, "PCS_NAD27_Georgia_West"}, - {26768, "PCS_NAD27_Idaho_East"}, - {26769, "PCS_NAD27_Idaho_Central"}, - {26770, "PCS_NAD27_Idaho_West"}, - {26771, "PCS_NAD27_Illinois_East"}, - {26772, "PCS_NAD27_Illinois_West"}, - {26773, "PCS_NAD27_Indiana_East"}, - {26774, "PCS_NAD27_BLM_14N_feet"}, - {26774, "PCS_NAD27_Indiana_West"}, - {26775, "PCS_NAD27_BLM_15N_feet"}, - {26775, "PCS_NAD27_Iowa_North"}, - {26776, "PCS_NAD27_BLM_16N_feet"}, - {26776, "PCS_NAD27_Iowa_South"}, - {26777, "PCS_NAD27_BLM_17N_feet"}, - {26777, "PCS_NAD27_Kansas_North"}, - {26778, "PCS_NAD27_Kansas_South"}, - {26779, "PCS_NAD27_Kentucky_North"}, - {26780, "PCS_NAD27_Kentucky_South"}, - {26781, "PCS_NAD27_Louisiana_North"}, - {26782, "PCS_NAD27_Louisiana_South"}, - {26783, "PCS_NAD27_Maine_East"}, - {26784, "PCS_NAD27_Maine_West"}, - {26785, "PCS_NAD27_Maryland"}, - {26786, "PCS_NAD27_Massachusetts"}, - {26787, "PCS_NAD27_Massachusetts_Is"}, - {26788, "PCS_NAD27_Michigan_North"}, - {26789, "PCS_NAD27_Michigan_Central"}, - {26790, "PCS_NAD27_Michigan_South"}, - {26791, "PCS_NAD27_Minnesota_North"}, - {26792, "PCS_NAD27_Minnesota_Cent"}, - {26793, "PCS_NAD27_Minnesota_South"}, - {26794, "PCS_NAD27_Mississippi_East"}, - {26795, "PCS_NAD27_Mississippi_West"}, - {26796, "PCS_NAD27_Missouri_East"}, - {26797, "PCS_NAD27_Missouri_Central"}, - {26798, "PCS_NAD27_Missouri_West"}, - {26801, "PCS_NAD_Michigan_Michigan_East"}, - {26802, "PCS_NAD_Michigan_Michigan_Old_Central"}, - {26803, "PCS_NAD_Michigan_Michigan_West"}, - {26903, "PCS_NAD83_UTM_zone_3N"}, - {26904, "PCS_NAD83_UTM_zone_4N"}, - {26905, "PCS_NAD83_UTM_zone_5N"}, - {26906, "PCS_NAD83_UTM_zone_6N"}, - {26907, "PCS_NAD83_UTM_zone_7N"}, - {26908, "PCS_NAD83_UTM_zone_8N"}, - {26909, "PCS_NAD83_UTM_zone_9N"}, - {26910, "PCS_NAD83_UTM_zone_10N"}, - {26911, "PCS_NAD83_UTM_zone_11N"}, - {26912, "PCS_NAD83_UTM_zone_12N"}, - {26913, "PCS_NAD83_UTM_zone_13N"}, - {26914, "PCS_NAD83_UTM_zone_14N"}, - {26915, "PCS_NAD83_UTM_zone_15N"}, - {26916, "PCS_NAD83_UTM_zone_16N"}, - {26917, "PCS_NAD83_UTM_zone_17N"}, - {26918, "PCS_NAD83_UTM_zone_18N"}, - {26919, "PCS_NAD83_UTM_zone_19N"}, - {26920, "PCS_NAD83_UTM_zone_20N"}, - {26921, "PCS_NAD83_UTM_zone_21N"}, - {26922, "PCS_NAD83_UTM_zone_22N"}, - {26923, "PCS_NAD83_UTM_zone_23N"}, - {26929, "PCS_NAD83_Alabama_East"}, - {26930, "PCS_NAD83_Alabama_West"}, - {26931, "PCS_NAD83_Alaska_zone_1"}, - {26932, "PCS_NAD83_Alaska_zone_2"}, - {26933, "PCS_NAD83_Alaska_zone_3"}, - {26934, "PCS_NAD83_Alaska_zone_4"}, - {26935, "PCS_NAD83_Alaska_zone_5"}, - {26936, "PCS_NAD83_Alaska_zone_6"}, - {26937, "PCS_NAD83_Alaska_zone_7"}, - {26938, "PCS_NAD83_Alaska_zone_8"}, - {26939, "PCS_NAD83_Alaska_zone_9"}, - {26940, "PCS_NAD83_Alaska_zone_10"}, - {26941, "PCS_NAD83_California_1"}, - {26942, "PCS_NAD83_California_2"}, - {26943, "PCS_NAD83_California_3"}, - {26944, "PCS_NAD83_California_4"}, - {26945, "PCS_NAD83_California_5"}, - {26946, "PCS_NAD83_California_6"}, - {26948, "PCS_NAD83_Arizona_East"}, - {26949, "PCS_NAD83_Arizona_Central"}, - {26950, "PCS_NAD83_Arizona_West"}, - {26951, "PCS_NAD83_Arkansas_North"}, - {26952, "PCS_NAD83_Arkansas_South"}, - {26953, "PCS_NAD83_Colorado_North"}, - {26954, "PCS_NAD83_Colorado_Central"}, - {26955, "PCS_NAD83_Colorado_South"}, - {26956, "PCS_NAD83_Connecticut"}, - {26957, "PCS_NAD83_Delaware"}, - {26958, "PCS_NAD83_Florida_East"}, - {26959, "PCS_NAD83_Florida_West"}, - {26960, "PCS_NAD83_Florida_North"}, - {26961, "PCS_NAD83_Hawaii_zone_1"}, - {26962, "PCS_NAD83_Hawaii_zone_2"}, - {26963, "PCS_NAD83_Hawaii_zone_3"}, - {26964, "PCS_NAD83_Hawaii_zone_4"}, - {26965, "PCS_NAD83_Hawaii_zone_5"}, - {26966, "PCS_NAD83_Georgia_East"}, - {26967, "PCS_NAD83_Georgia_West"}, - {26968, "PCS_NAD83_Idaho_East"}, - {26969, "PCS_NAD83_Idaho_Central"}, - {26970, "PCS_NAD83_Idaho_West"}, - {26971, "PCS_NAD83_Illinois_East"}, - {26972, "PCS_NAD83_Illinois_West"}, - {26973, "PCS_NAD83_Indiana_East"}, - {26974, "PCS_NAD83_Indiana_West"}, - {26975, "PCS_NAD83_Iowa_North"}, - {26976, "PCS_NAD83_Iowa_South"}, - {26977, "PCS_NAD83_Kansas_North"}, - {26978, "PCS_NAD83_Kansas_South"}, - {26979, "PCS_NAD83_Kentucky_North"}, - {26980, "PCS_NAD83_Kentucky_South"}, - {26981, "PCS_NAD83_Louisiana_North"}, - {26982, "PCS_NAD83_Louisiana_South"}, - {26983, "PCS_NAD83_Maine_East"}, - {26984, "PCS_NAD83_Maine_West"}, - {26985, "PCS_NAD83_Maryland"}, - {26986, "PCS_NAD83_Massachusetts"}, - {26987, "PCS_NAD83_Massachusetts_Is"}, - {26988, "PCS_NAD83_Michigan_North"}, - {26989, "PCS_NAD83_Michigan_Central"}, - {26990, "PCS_NAD83_Michigan_South"}, - {26991, "PCS_NAD83_Minnesota_North"}, - {26992, "PCS_NAD83_Minnesota_Cent"}, - {26993, "PCS_NAD83_Minnesota_South"}, - {26994, "PCS_NAD83_Mississippi_East"}, - {26995, "PCS_NAD83_Mississippi_West"}, - {26996, "PCS_NAD83_Missouri_East"}, - {26997, "PCS_NAD83_Missouri_Central"}, - {26998, "PCS_NAD83_Missouri_West"}, - {27038, "PCS_Nahrwan_1967_UTM_38N"}, - {27039, "PCS_Nahrwan_1967_UTM_39N"}, - {27040, "PCS_Nahrwan_1967_UTM_40N"}, - {27120, "PCS_Naparima_UTM_20N"}, - {27200, "PCS_GD49_NZ_Map_Grid"}, - {27291, "PCS_GD49_North_Island_Grid"}, - {27292, "PCS_GD49_South_Island_Grid"}, - {27429, "PCS_Datum_73_UTM_zone_29N"}, - {27500, "PCS_ATF_Nord_de_Guerre"}, - {27581, "PCS_NTF_France_I"}, - {27582, "PCS_NTF_France_II"}, - {27583, "PCS_NTF_France_III"}, - {27591, "PCS_NTF_Nord_France"}, - {27592, "PCS_NTF_Centre_France"}, - {27593, "PCS_NTF_Sud_France"}, - {27700, "PCS_British_National_Grid"}, - {28232, "PCS_Point_Noire_UTM_32S"}, - {28348, "PCS_GDA94_MGA_zone_48"}, - {28349, "PCS_GDA94_MGA_zone_49"}, - {28350, "PCS_GDA94_MGA_zone_50"}, - {28351, "PCS_GDA94_MGA_zone_51"}, - {28352, "PCS_GDA94_MGA_zone_52"}, - {28353, "PCS_GDA94_MGA_zone_53"}, - {28354, "PCS_GDA94_MGA_zone_54"}, - {28355, "PCS_GDA94_MGA_zone_55"}, - {28356, "PCS_GDA94_MGA_zone_56"}, - {28357, "PCS_GDA94_MGA_zone_57"}, - {28358, "PCS_GDA94_MGA_zone_58"}, - {28404, "PCS_Pulkovo_Gauss_zone_4"}, - {28405, "PCS_Pulkovo_Gauss_zone_5"}, - {28406, "PCS_Pulkovo_Gauss_zone_6"}, - {28407, "PCS_Pulkovo_Gauss_zone_7"}, - {28408, "PCS_Pulkovo_Gauss_zone_8"}, - {28409, "PCS_Pulkovo_Gauss_zone_9"}, - {28410, "PCS_Pulkovo_Gauss_zone_10"}, - {28411, "PCS_Pulkovo_Gauss_zone_11"}, - {28412, "PCS_Pulkovo_Gauss_zone_12"}, - {28413, "PCS_Pulkovo_Gauss_zone_13"}, - {28414, "PCS_Pulkovo_Gauss_zone_14"}, - {28415, "PCS_Pulkovo_Gauss_zone_15"}, - {28416, "PCS_Pulkovo_Gauss_zone_16"}, - {28417, "PCS_Pulkovo_Gauss_zone_17"}, - {28418, "PCS_Pulkovo_Gauss_zone_18"}, - {28419, "PCS_Pulkovo_Gauss_zone_19"}, - {28420, "PCS_Pulkovo_Gauss_zone_20"}, - {28421, "PCS_Pulkovo_Gauss_zone_21"}, - {28422, "PCS_Pulkovo_Gauss_zone_22"}, - {28423, "PCS_Pulkovo_Gauss_zone_23"}, - {28424, "PCS_Pulkovo_Gauss_zone_24"}, - {28425, "PCS_Pulkovo_Gauss_zone_25"}, - {28426, "PCS_Pulkovo_Gauss_zone_26"}, - {28427, "PCS_Pulkovo_Gauss_zone_27"}, - {28428, "PCS_Pulkovo_Gauss_zone_28"}, - {28429, "PCS_Pulkovo_Gauss_zone_29"}, - {28430, "PCS_Pulkovo_Gauss_zone_30"}, - {28431, "PCS_Pulkovo_Gauss_zone_31"}, - {28432, "PCS_Pulkovo_Gauss_zone_32"}, - {28464, "PCS_Pulkovo_Gauss_4N"}, - {28465, "PCS_Pulkovo_Gauss_5N"}, - {28466, "PCS_Pulkovo_Gauss_6N"}, - {28467, "PCS_Pulkovo_Gauss_7N"}, - {28468, "PCS_Pulkovo_Gauss_8N"}, - {28469, "PCS_Pulkovo_Gauss_9N"}, - {28470, "PCS_Pulkovo_Gauss_10N"}, - {28471, "PCS_Pulkovo_Gauss_11N"}, - {28472, "PCS_Pulkovo_Gauss_12N"}, - {28473, "PCS_Pulkovo_Gauss_13N"}, - {28474, "PCS_Pulkovo_Gauss_14N"}, - {28475, "PCS_Pulkovo_Gauss_15N"}, - {28476, "PCS_Pulkovo_Gauss_16N"}, - {28477, "PCS_Pulkovo_Gauss_17N"}, - {28478, "PCS_Pulkovo_Gauss_18N"}, - {28479, "PCS_Pulkovo_Gauss_19N"}, - {28480, "PCS_Pulkovo_Gauss_20N"}, - {28481, "PCS_Pulkovo_Gauss_21N"}, - {28482, "PCS_Pulkovo_Gauss_22N"}, - {28483, "PCS_Pulkovo_Gauss_23N"}, - {28484, "PCS_Pulkovo_Gauss_24N"}, - {28485, "PCS_Pulkovo_Gauss_25N"}, - {28486, "PCS_Pulkovo_Gauss_26N"}, - {28487, "PCS_Pulkovo_Gauss_27N"}, - {28488, "PCS_Pulkovo_Gauss_28N"}, - {28489, "PCS_Pulkovo_Gauss_29N"}, - {28490, "PCS_Pulkovo_Gauss_30N"}, - {28491, "PCS_Pulkovo_Gauss_31N"}, - {28492, "PCS_Pulkovo_Gauss_32N"}, - {28600, "PCS_Qatar_National_Grid"}, - {28991, "PCS_RD_Netherlands_Old"}, - {28992, "PCS_RD_Netherlands_New"}, - {29118, "PCS_SAD69_UTM_zone_18N"}, - {29119, "PCS_SAD69_UTM_zone_19N"}, - {29120, "PCS_SAD69_UTM_zone_20N"}, - {29121, "PCS_SAD69_UTM_zone_21N"}, - {29122, "PCS_SAD69_UTM_zone_22N"}, - {29177, "PCS_SAD69_UTM_zone_17S"}, - {29178, "PCS_SAD69_UTM_zone_18S"}, - {29179, "PCS_SAD69_UTM_zone_19S"}, - {29180, "PCS_SAD69_UTM_zone_20S"}, - {29181, "PCS_SAD69_UTM_zone_21S"}, - {29182, "PCS_SAD69_UTM_zone_22S"}, - {29183, "PCS_SAD69_UTM_zone_23S"}, - {29184, "PCS_SAD69_UTM_zone_24S"}, - {29185, "PCS_SAD69_UTM_zone_25S"}, - {29220, "PCS_Sapper_Hill_UTM_20S"}, - {29221, "PCS_Sapper_Hill_UTM_21S"}, - {29333, "PCS_Schwarzeck_UTM_33S"}, - {29635, "PCS_Sudan_UTM_zone_35N"}, - {29636, "PCS_Sudan_UTM_zone_36N"}, - {29700, "PCS_Tananarive_Laborde"}, - {29738, "PCS_Tananarive_UTM_38S"}, - {29739, "PCS_Tananarive_UTM_39S"}, - {29800, "PCS_Timbalai_1948_Borneo"}, - {29849, "PCS_Timbalai_1948_UTM_49N"}, - {29850, "PCS_Timbalai_1948_UTM_50N"}, - {29900, "PCS_TM65_Irish_Nat_Grid"}, - {30200, "PCS_Trinidad_1903_Trinidad"}, - {30339, "PCS_TC_1948_UTM_zone_39N"}, - {30340, "PCS_TC_1948_UTM_zone_40N"}, - {30491, "PCS_Voirol_N_Algerie_ancien"}, - {30492, "PCS_Voirol_S_Algerie_ancien"}, - {30591, "PCS_Voirol_Unifie_N_Algerie"}, - {30592, "PCS_Voirol_Unifie_S_Algerie"}, - {30600, "PCS_Bern_1938_Swiss_New"}, - {30729, "PCS_Nord_Sahara_UTM_29N"}, - {30730, "PCS_Nord_Sahara_UTM_30N"}, - {30731, "PCS_Nord_Sahara_UTM_31N"}, - {30732, "PCS_Nord_Sahara_UTM_32N"}, - {31028, "PCS_Yoff_UTM_zone_28N"}, - {31121, "PCS_Zanderij_UTM_zone_21N"}, - {31291, "PCS_MGI_Austria_West"}, - {31292, "PCS_MGI_Austria_Central"}, - {31293, "PCS_MGI_Austria_East"}, - {31300, "PCS_Belge_Lambert_72"}, - {31491, "PCS_DHDN_Germany_zone_1"}, - {31492, "PCS_DHDN_Germany_zone_2"}, - {31493, "PCS_DHDN_Germany_zone_3"}, - {31494, "PCS_DHDN_Germany_zone_4"}, - {31495, "PCS_DHDN_Germany_zone_5"}, - {32001, "PCS_NAD27_Montana_North"}, - {32002, "PCS_NAD27_Montana_Central"}, - {32003, "PCS_NAD27_Montana_South"}, - {32005, "PCS_NAD27_Nebraska_North"}, - {32006, "PCS_NAD27_Nebraska_South"}, - {32007, "PCS_NAD27_Nevada_East"}, - {32008, "PCS_NAD27_Nevada_Central"}, - {32009, "PCS_NAD27_Nevada_West"}, - {32010, "PCS_NAD27_New_Hampshire"}, - {32011, "PCS_NAD27_New_Jersey"}, - {32012, "PCS_NAD27_New_Mexico_East"}, - {32013, "PCS_NAD27_New_Mexico_Cent"}, - {32014, "PCS_NAD27_New_Mexico_West"}, - {32015, "PCS_NAD27_New_York_East"}, - {32016, "PCS_NAD27_New_York_Central"}, - {32017, "PCS_NAD27_New_York_West"}, - {32018, "PCS_NAD27_New_York_Long_Is"}, - {32019, "PCS_NAD27_North_Carolina"}, - {32020, "PCS_NAD27_North_Dakota_N"}, - {32021, "PCS_NAD27_North_Dakota_S"}, - {32022, "PCS_NAD27_Ohio_North"}, - {32023, "PCS_NAD27_Ohio_South"}, - {32024, "PCS_NAD27_Oklahoma_North"}, - {32025, "PCS_NAD27_Oklahoma_South"}, - {32026, "PCS_NAD27_Oregon_North"}, - {32027, "PCS_NAD27_Oregon_South"}, - {32028, "PCS_NAD27_Pennsylvania_N"}, - {32029, "PCS_NAD27_Pennsylvania_S"}, - {32030, "PCS_NAD27_Rhode_Island"}, - {32031, "PCS_NAD27_South_Carolina_N"}, - {32033, "PCS_NAD27_South_Carolina_S"}, - {32034, "PCS_NAD27_South_Dakota_N"}, - {32035, "PCS_NAD27_South_Dakota_S"}, - {32036, "PCS_NAD27_Tennessee"}, - {32037, "PCS_NAD27_Texas_North"}, - {32038, "PCS_NAD27_Texas_North_Cen"}, - {32039, "PCS_NAD27_Texas_Central"}, - {32040, "PCS_NAD27_Texas_South_Cen"}, - {32041, "PCS_NAD27_Texas_South"}, - {32042, "PCS_NAD27_Utah_North"}, - {32043, "PCS_NAD27_Utah_Central"}, - {32044, "PCS_NAD27_Utah_South"}, - {32045, "PCS_NAD27_Vermont"}, - {32046, "PCS_NAD27_Virginia_North"}, - {32047, "PCS_NAD27_Virginia_South"}, - {32048, "PCS_NAD27_Washington_North"}, - {32049, "PCS_NAD27_Washington_South"}, - {32050, "PCS_NAD27_West_Virginia_N"}, - {32051, "PCS_NAD27_West_Virginia_S"}, - {32052, "PCS_NAD27_Wisconsin_North"}, - {32053, "PCS_NAD27_Wisconsin_Cen"}, - {32054, "PCS_NAD27_Wisconsin_South"}, - {32055, "PCS_NAD27_Wyoming_East"}, - {32056, "PCS_NAD27_Wyoming_E_Cen"}, - {32057, "PCS_NAD27_Wyoming_W_Cen"}, - {32058, "PCS_NAD27_Wyoming_West"}, - {32059, "PCS_NAD27_Puerto_Rico"}, - {32060, "PCS_NAD27_St_Croix"}, - {32100, "PCS_NAD83_Montana"}, - {32104, "PCS_NAD83_Nebraska"}, - {32107, "PCS_NAD83_Nevada_East"}, - {32108, "PCS_NAD83_Nevada_Central"}, - {32109, "PCS_NAD83_Nevada_West"}, - {32110, "PCS_NAD83_New_Hampshire"}, - {32111, "PCS_NAD83_New_Jersey"}, - {32112, "PCS_NAD83_New_Mexico_East"}, - {32113, "PCS_NAD83_New_Mexico_Cent"}, - {32114, "PCS_NAD83_New_Mexico_West"}, - {32115, "PCS_NAD83_New_York_East"}, - {32116, "PCS_NAD83_New_York_Central"}, - {32117, "PCS_NAD83_New_York_West"}, - {32118, "PCS_NAD83_New_York_Long_Is"}, - {32119, "PCS_NAD83_North_Carolina"}, - {32120, "PCS_NAD83_North_Dakota_N"}, - {32121, "PCS_NAD83_North_Dakota_S"}, - {32122, "PCS_NAD83_Ohio_North"}, - {32123, "PCS_NAD83_Ohio_South"}, - {32124, "PCS_NAD83_Oklahoma_North"}, - {32125, "PCS_NAD83_Oklahoma_South"}, - {32126, "PCS_NAD83_Oregon_North"}, - {32127, "PCS_NAD83_Oregon_South"}, - {32128, "PCS_NAD83_Pennsylvania_N"}, - {32129, "PCS_NAD83_Pennsylvania_S"}, - {32130, "PCS_NAD83_Rhode_Island"}, - {32133, "PCS_NAD83_South_Carolina"}, - {32134, "PCS_NAD83_South_Dakota_N"}, - {32135, "PCS_NAD83_South_Dakota_S"}, - {32136, "PCS_NAD83_Tennessee"}, - {32137, "PCS_NAD83_Texas_North"}, - {32138, "PCS_NAD83_Texas_North_Cen"}, - {32139, "PCS_NAD83_Texas_Central"}, - {32140, "PCS_NAD83_Texas_South_Cen"}, - {32141, "PCS_NAD83_Texas_South"}, - {32142, "PCS_NAD83_Utah_North"}, - {32143, "PCS_NAD83_Utah_Central"}, - {32144, "PCS_NAD83_Utah_South"}, - {32145, "PCS_NAD83_Vermont"}, - {32146, "PCS_NAD83_Virginia_North"}, - {32147, "PCS_NAD83_Virginia_South"}, - {32148, "PCS_NAD83_Washington_North"}, - {32149, "PCS_NAD83_Washington_South"}, - {32150, "PCS_NAD83_West_Virginia_N"}, - {32151, "PCS_NAD83_West_Virginia_S"}, - {32152, "PCS_NAD83_Wisconsin_North"}, - {32153, "PCS_NAD83_Wisconsin_Cen"}, - {32154, "PCS_NAD83_Wisconsin_South"}, - {32155, "PCS_NAD83_Wyoming_East"}, - {32156, "PCS_NAD83_Wyoming_E_Cen"}, - {32157, "PCS_NAD83_Wyoming_W_Cen"}, - {32158, "PCS_NAD83_Wyoming_West"}, - {32161, "PCS_NAD83_Puerto_Rico_Virgin_Is"}, - {32201, "PCS_WGS72_UTM_zone_1N"}, - {32202, "PCS_WGS72_UTM_zone_2N"}, - {32203, "PCS_WGS72_UTM_zone_3N"}, - {32204, "PCS_WGS72_UTM_zone_4N"}, - {32205, "PCS_WGS72_UTM_zone_5N"}, - {32206, "PCS_WGS72_UTM_zone_6N"}, - {32207, "PCS_WGS72_UTM_zone_7N"}, - {32208, "PCS_WGS72_UTM_zone_8N"}, - {32209, "PCS_WGS72_UTM_zone_9N"}, - {32210, "PCS_WGS72_UTM_zone_10N"}, - {32211, "PCS_WGS72_UTM_zone_11N"}, - {32212, "PCS_WGS72_UTM_zone_12N"}, - {32213, "PCS_WGS72_UTM_zone_13N"}, - {32214, "PCS_WGS72_UTM_zone_14N"}, - {32215, "PCS_WGS72_UTM_zone_15N"}, - {32216, "PCS_WGS72_UTM_zone_16N"}, - {32217, "PCS_WGS72_UTM_zone_17N"}, - {32218, "PCS_WGS72_UTM_zone_18N"}, - {32219, "PCS_WGS72_UTM_zone_19N"}, - {32220, "PCS_WGS72_UTM_zone_20N"}, - {32221, "PCS_WGS72_UTM_zone_21N"}, - {32222, "PCS_WGS72_UTM_zone_22N"}, - {32223, "PCS_WGS72_UTM_zone_23N"}, - {32224, "PCS_WGS72_UTM_zone_24N"}, - {32225, "PCS_WGS72_UTM_zone_25N"}, - {32226, "PCS_WGS72_UTM_zone_26N"}, - {32227, "PCS_WGS72_UTM_zone_27N"}, - {32228, "PCS_WGS72_UTM_zone_28N"}, - {32229, "PCS_WGS72_UTM_zone_29N"}, - {32230, "PCS_WGS72_UTM_zone_30N"}, - {32231, "PCS_WGS72_UTM_zone_31N"}, - {32232, "PCS_WGS72_UTM_zone_32N"}, - {32233, "PCS_WGS72_UTM_zone_33N"}, - {32234, "PCS_WGS72_UTM_zone_34N"}, - {32235, "PCS_WGS72_UTM_zone_35N"}, - {32236, "PCS_WGS72_UTM_zone_36N"}, - {32237, "PCS_WGS72_UTM_zone_37N"}, - {32238, "PCS_WGS72_UTM_zone_38N"}, - {32239, "PCS_WGS72_UTM_zone_39N"}, - {32240, "PCS_WGS72_UTM_zone_40N"}, - {32241, "PCS_WGS72_UTM_zone_41N"}, - {32242, "PCS_WGS72_UTM_zone_42N"}, - {32243, "PCS_WGS72_UTM_zone_43N"}, - {32244, "PCS_WGS72_UTM_zone_44N"}, - {32245, "PCS_WGS72_UTM_zone_45N"}, - {32246, "PCS_WGS72_UTM_zone_46N"}, - {32247, "PCS_WGS72_UTM_zone_47N"}, - {32248, "PCS_WGS72_UTM_zone_48N"}, - {32249, "PCS_WGS72_UTM_zone_49N"}, - {32250, "PCS_WGS72_UTM_zone_50N"}, - {32251, "PCS_WGS72_UTM_zone_51N"}, - {32252, "PCS_WGS72_UTM_zone_52N"}, - {32253, "PCS_WGS72_UTM_zone_53N"}, - {32254, "PCS_WGS72_UTM_zone_54N"}, - {32255, "PCS_WGS72_UTM_zone_55N"}, - {32256, "PCS_WGS72_UTM_zone_56N"}, - {32257, "PCS_WGS72_UTM_zone_57N"}, - {32258, "PCS_WGS72_UTM_zone_58N"}, - {32259, "PCS_WGS72_UTM_zone_59N"}, - {32260, "PCS_WGS72_UTM_zone_60N"}, - {32301, "PCS_WGS72_UTM_zone_1S"}, - {32302, "PCS_WGS72_UTM_zone_2S"}, - {32303, "PCS_WGS72_UTM_zone_3S"}, - {32304, "PCS_WGS72_UTM_zone_4S"}, - {32305, "PCS_WGS72_UTM_zone_5S"}, - {32306, "PCS_WGS72_UTM_zone_6S"}, - {32307, "PCS_WGS72_UTM_zone_7S"}, - {32308, "PCS_WGS72_UTM_zone_8S"}, - {32309, "PCS_WGS72_UTM_zone_9S"}, - {32310, "PCS_WGS72_UTM_zone_10S"}, - {32311, "PCS_WGS72_UTM_zone_11S"}, - {32312, "PCS_WGS72_UTM_zone_12S"}, - {32313, "PCS_WGS72_UTM_zone_13S"}, - {32314, "PCS_WGS72_UTM_zone_14S"}, - {32315, "PCS_WGS72_UTM_zone_15S"}, - {32316, "PCS_WGS72_UTM_zone_16S"}, - {32317, "PCS_WGS72_UTM_zone_17S"}, - {32318, "PCS_WGS72_UTM_zone_18S"}, - {32319, "PCS_WGS72_UTM_zone_19S"}, - {32320, "PCS_WGS72_UTM_zone_20S"}, - {32321, "PCS_WGS72_UTM_zone_21S"}, - {32322, "PCS_WGS72_UTM_zone_22S"}, - {32323, "PCS_WGS72_UTM_zone_23S"}, - {32324, "PCS_WGS72_UTM_zone_24S"}, - {32325, "PCS_WGS72_UTM_zone_25S"}, - {32326, "PCS_WGS72_UTM_zone_26S"}, - {32327, "PCS_WGS72_UTM_zone_27S"}, - {32328, "PCS_WGS72_UTM_zone_28S"}, - {32329, "PCS_WGS72_UTM_zone_29S"}, - {32330, "PCS_WGS72_UTM_zone_30S"}, - {32331, "PCS_WGS72_UTM_zone_31S"}, - {32332, "PCS_WGS72_UTM_zone_32S"}, - {32333, "PCS_WGS72_UTM_zone_33S"}, - {32334, "PCS_WGS72_UTM_zone_34S"}, - {32335, "PCS_WGS72_UTM_zone_35S"}, - {32336, "PCS_WGS72_UTM_zone_36S"}, - {32337, "PCS_WGS72_UTM_zone_37S"}, - {32338, "PCS_WGS72_UTM_zone_38S"}, - {32339, "PCS_WGS72_UTM_zone_39S"}, - {32340, "PCS_WGS72_UTM_zone_40S"}, - {32341, "PCS_WGS72_UTM_zone_41S"}, - {32342, "PCS_WGS72_UTM_zone_42S"}, - {32343, "PCS_WGS72_UTM_zone_43S"}, - {32344, "PCS_WGS72_UTM_zone_44S"}, - {32345, "PCS_WGS72_UTM_zone_45S"}, - {32346, "PCS_WGS72_UTM_zone_46S"}, - {32347, "PCS_WGS72_UTM_zone_47S"}, - {32348, "PCS_WGS72_UTM_zone_48S"}, - {32349, "PCS_WGS72_UTM_zone_49S"}, - {32350, "PCS_WGS72_UTM_zone_50S"}, - {32351, "PCS_WGS72_UTM_zone_51S"}, - {32352, "PCS_WGS72_UTM_zone_52S"}, - {32353, "PCS_WGS72_UTM_zone_53S"}, - {32354, "PCS_WGS72_UTM_zone_54S"}, - {32355, "PCS_WGS72_UTM_zone_55S"}, - {32356, "PCS_WGS72_UTM_zone_56S"}, - {32357, "PCS_WGS72_UTM_zone_57S"}, - {32358, "PCS_WGS72_UTM_zone_58S"}, - {32359, "PCS_WGS72_UTM_zone_59S"}, - {32360, "PCS_WGS72_UTM_zone_60S"}, - {32401, "PCS_WGS72BE_UTM_zone_1N"}, - {32402, "PCS_WGS72BE_UTM_zone_2N"}, - {32403, "PCS_WGS72BE_UTM_zone_3N"}, - {32404, "PCS_WGS72BE_UTM_zone_4N"}, - {32405, "PCS_WGS72BE_UTM_zone_5N"}, - {32406, "PCS_WGS72BE_UTM_zone_6N"}, - {32407, "PCS_WGS72BE_UTM_zone_7N"}, - {32408, "PCS_WGS72BE_UTM_zone_8N"}, - {32409, "PCS_WGS72BE_UTM_zone_9N"}, - {32410, "PCS_WGS72BE_UTM_zone_10N"}, - {32411, "PCS_WGS72BE_UTM_zone_11N"}, - {32412, "PCS_WGS72BE_UTM_zone_12N"}, - {32413, "PCS_WGS72BE_UTM_zone_13N"}, - {32414, "PCS_WGS72BE_UTM_zone_14N"}, - {32415, "PCS_WGS72BE_UTM_zone_15N"}, - {32416, "PCS_WGS72BE_UTM_zone_16N"}, - {32417, "PCS_WGS72BE_UTM_zone_17N"}, - {32418, "PCS_WGS72BE_UTM_zone_18N"}, - {32419, "PCS_WGS72BE_UTM_zone_19N"}, - {32420, "PCS_WGS72BE_UTM_zone_20N"}, - {32421, "PCS_WGS72BE_UTM_zone_21N"}, - {32422, "PCS_WGS72BE_UTM_zone_22N"}, - {32423, "PCS_WGS72BE_UTM_zone_23N"}, - {32424, "PCS_WGS72BE_UTM_zone_24N"}, - {32425, "PCS_WGS72BE_UTM_zone_25N"}, - {32426, "PCS_WGS72BE_UTM_zone_26N"}, - {32427, "PCS_WGS72BE_UTM_zone_27N"}, - {32428, "PCS_WGS72BE_UTM_zone_28N"}, - {32429, "PCS_WGS72BE_UTM_zone_29N"}, - {32430, "PCS_WGS72BE_UTM_zone_30N"}, - {32431, "PCS_WGS72BE_UTM_zone_31N"}, - {32432, "PCS_WGS72BE_UTM_zone_32N"}, - {32433, "PCS_WGS72BE_UTM_zone_33N"}, - {32434, "PCS_WGS72BE_UTM_zone_34N"}, - {32435, "PCS_WGS72BE_UTM_zone_35N"}, - {32436, "PCS_WGS72BE_UTM_zone_36N"}, - {32437, "PCS_WGS72BE_UTM_zone_37N"}, - {32438, "PCS_WGS72BE_UTM_zone_38N"}, - {32439, "PCS_WGS72BE_UTM_zone_39N"}, - {32440, "PCS_WGS72BE_UTM_zone_40N"}, - {32441, "PCS_WGS72BE_UTM_zone_41N"}, - {32442, "PCS_WGS72BE_UTM_zone_42N"}, - {32443, "PCS_WGS72BE_UTM_zone_43N"}, - {32444, "PCS_WGS72BE_UTM_zone_44N"}, - {32445, "PCS_WGS72BE_UTM_zone_45N"}, - {32446, "PCS_WGS72BE_UTM_zone_46N"}, - {32447, "PCS_WGS72BE_UTM_zone_47N"}, - {32448, "PCS_WGS72BE_UTM_zone_48N"}, - {32449, "PCS_WGS72BE_UTM_zone_49N"}, - {32450, "PCS_WGS72BE_UTM_zone_50N"}, - {32451, "PCS_WGS72BE_UTM_zone_51N"}, - {32452, "PCS_WGS72BE_UTM_zone_52N"}, - {32453, "PCS_WGS72BE_UTM_zone_53N"}, - {32454, "PCS_WGS72BE_UTM_zone_54N"}, - {32455, "PCS_WGS72BE_UTM_zone_55N"}, - {32456, "PCS_WGS72BE_UTM_zone_56N"}, - {32457, "PCS_WGS72BE_UTM_zone_57N"}, - {32458, "PCS_WGS72BE_UTM_zone_58N"}, - {32459, "PCS_WGS72BE_UTM_zone_59N"}, - {32460, "PCS_WGS72BE_UTM_zone_60N"}, - {32501, "PCS_WGS72BE_UTM_zone_1S"}, - {32502, "PCS_WGS72BE_UTM_zone_2S"}, - {32503, "PCS_WGS72BE_UTM_zone_3S"}, - {32504, "PCS_WGS72BE_UTM_zone_4S"}, - {32505, "PCS_WGS72BE_UTM_zone_5S"}, - {32506, "PCS_WGS72BE_UTM_zone_6S"}, - {32507, "PCS_WGS72BE_UTM_zone_7S"}, - {32508, "PCS_WGS72BE_UTM_zone_8S"}, - {32509, "PCS_WGS72BE_UTM_zone_9S"}, - {32510, "PCS_WGS72BE_UTM_zone_10S"}, - {32511, "PCS_WGS72BE_UTM_zone_11S"}, - {32512, "PCS_WGS72BE_UTM_zone_12S"}, - {32513, "PCS_WGS72BE_UTM_zone_13S"}, - {32514, "PCS_WGS72BE_UTM_zone_14S"}, - {32515, "PCS_WGS72BE_UTM_zone_15S"}, - {32516, "PCS_WGS72BE_UTM_zone_16S"}, - {32517, "PCS_WGS72BE_UTM_zone_17S"}, - {32518, "PCS_WGS72BE_UTM_zone_18S"}, - {32519, "PCS_WGS72BE_UTM_zone_19S"}, - {32520, "PCS_WGS72BE_UTM_zone_20S"}, - {32521, "PCS_WGS72BE_UTM_zone_21S"}, - {32522, "PCS_WGS72BE_UTM_zone_22S"}, - {32523, "PCS_WGS72BE_UTM_zone_23S"}, - {32524, "PCS_WGS72BE_UTM_zone_24S"}, - {32525, "PCS_WGS72BE_UTM_zone_25S"}, - {32526, "PCS_WGS72BE_UTM_zone_26S"}, - {32527, "PCS_WGS72BE_UTM_zone_27S"}, - {32528, "PCS_WGS72BE_UTM_zone_28S"}, - {32529, "PCS_WGS72BE_UTM_zone_29S"}, - {32530, "PCS_WGS72BE_UTM_zone_30S"}, - {32531, "PCS_WGS72BE_UTM_zone_31S"}, - {32532, "PCS_WGS72BE_UTM_zone_32S"}, - {32533, "PCS_WGS72BE_UTM_zone_33S"}, - {32534, "PCS_WGS72BE_UTM_zone_34S"}, - {32535, "PCS_WGS72BE_UTM_zone_35S"}, - {32536, "PCS_WGS72BE_UTM_zone_36S"}, - {32537, "PCS_WGS72BE_UTM_zone_37S"}, - {32538, "PCS_WGS72BE_UTM_zone_38S"}, - {32539, "PCS_WGS72BE_UTM_zone_39S"}, - {32540, "PCS_WGS72BE_UTM_zone_40S"}, - {32541, "PCS_WGS72BE_UTM_zone_41S"}, - {32542, "PCS_WGS72BE_UTM_zone_42S"}, - {32543, "PCS_WGS72BE_UTM_zone_43S"}, - {32544, "PCS_WGS72BE_UTM_zone_44S"}, - {32545, "PCS_WGS72BE_UTM_zone_45S"}, - {32546, "PCS_WGS72BE_UTM_zone_46S"}, - {32547, "PCS_WGS72BE_UTM_zone_47S"}, - {32548, "PCS_WGS72BE_UTM_zone_48S"}, - {32549, "PCS_WGS72BE_UTM_zone_49S"}, - {32550, "PCS_WGS72BE_UTM_zone_50S"}, - {32551, "PCS_WGS72BE_UTM_zone_51S"}, - {32552, "PCS_WGS72BE_UTM_zone_52S"}, - {32553, "PCS_WGS72BE_UTM_zone_53S"}, - {32554, "PCS_WGS72BE_UTM_zone_54S"}, - {32555, "PCS_WGS72BE_UTM_zone_55S"}, - {32556, "PCS_WGS72BE_UTM_zone_56S"}, - {32557, "PCS_WGS72BE_UTM_zone_57S"}, - {32558, "PCS_WGS72BE_UTM_zone_58S"}, - {32559, "PCS_WGS72BE_UTM_zone_59S"}, - {32560, "PCS_WGS72BE_UTM_zone_60S"}, - {32601, "PCS_WGS84_UTM_zone_1N"}, - {32602, "PCS_WGS84_UTM_zone_2N"}, - {32603, "PCS_WGS84_UTM_zone_3N"}, - {32604, "PCS_WGS84_UTM_zone_4N"}, - {32605, "PCS_WGS84_UTM_zone_5N"}, - {32606, "PCS_WGS84_UTM_zone_6N"}, - {32607, "PCS_WGS84_UTM_zone_7N"}, - {32608, "PCS_WGS84_UTM_zone_8N"}, - {32609, "PCS_WGS84_UTM_zone_9N"}, - {32610, "PCS_WGS84_UTM_zone_10N"}, - {32611, "PCS_WGS84_UTM_zone_11N"}, - {32612, "PCS_WGS84_UTM_zone_12N"}, - {32613, "PCS_WGS84_UTM_zone_13N"}, - {32614, "PCS_WGS84_UTM_zone_14N"}, - {32615, "PCS_WGS84_UTM_zone_15N"}, - {32616, "PCS_WGS84_UTM_zone_16N"}, - {32617, "PCS_WGS84_UTM_zone_17N"}, - {32618, "PCS_WGS84_UTM_zone_18N"}, - {32619, "PCS_WGS84_UTM_zone_19N"}, - {32620, "PCS_WGS84_UTM_zone_20N"}, - {32621, "PCS_WGS84_UTM_zone_21N"}, - {32622, "PCS_WGS84_UTM_zone_22N"}, - {32623, "PCS_WGS84_UTM_zone_23N"}, - {32624, "PCS_WGS84_UTM_zone_24N"}, - {32625, "PCS_WGS84_UTM_zone_25N"}, - {32626, "PCS_WGS84_UTM_zone_26N"}, - {32627, "PCS_WGS84_UTM_zone_27N"}, - {32628, "PCS_WGS84_UTM_zone_28N"}, - {32629, "PCS_WGS84_UTM_zone_29N"}, - {32630, "PCS_WGS84_UTM_zone_30N"}, - {32631, "PCS_WGS84_UTM_zone_31N"}, - {32632, "PCS_WGS84_UTM_zone_32N"}, - {32633, "PCS_WGS84_UTM_zone_33N"}, - {32634, "PCS_WGS84_UTM_zone_34N"}, - {32635, "PCS_WGS84_UTM_zone_35N"}, - {32636, "PCS_WGS84_UTM_zone_36N"}, - {32637, "PCS_WGS84_UTM_zone_37N"}, - {32638, "PCS_WGS84_UTM_zone_38N"}, - {32639, "PCS_WGS84_UTM_zone_39N"}, - {32640, "PCS_WGS84_UTM_zone_40N"}, - {32641, "PCS_WGS84_UTM_zone_41N"}, - {32642, "PCS_WGS84_UTM_zone_42N"}, - {32643, "PCS_WGS84_UTM_zone_43N"}, - {32644, "PCS_WGS84_UTM_zone_44N"}, - {32645, "PCS_WGS84_UTM_zone_45N"}, - {32646, "PCS_WGS84_UTM_zone_46N"}, - {32647, "PCS_WGS84_UTM_zone_47N"}, - {32648, "PCS_WGS84_UTM_zone_48N"}, - {32649, "PCS_WGS84_UTM_zone_49N"}, - {32650, "PCS_WGS84_UTM_zone_50N"}, - {32651, "PCS_WGS84_UTM_zone_51N"}, - {32652, "PCS_WGS84_UTM_zone_52N"}, - {32653, "PCS_WGS84_UTM_zone_53N"}, - {32654, "PCS_WGS84_UTM_zone_54N"}, - {32655, "PCS_WGS84_UTM_zone_55N"}, - {32656, "PCS_WGS84_UTM_zone_56N"}, - {32657, "PCS_WGS84_UTM_zone_57N"}, - {32658, "PCS_WGS84_UTM_zone_58N"}, - {32659, "PCS_WGS84_UTM_zone_59N"}, - {32660, "PCS_WGS84_UTM_zone_60N"}, - {32701, "PCS_WGS84_UTM_zone_1S"}, - {32702, "PCS_WGS84_UTM_zone_2S"}, - {32703, "PCS_WGS84_UTM_zone_3S"}, - {32704, "PCS_WGS84_UTM_zone_4S"}, - {32705, "PCS_WGS84_UTM_zone_5S"}, - {32706, "PCS_WGS84_UTM_zone_6S"}, - {32707, "PCS_WGS84_UTM_zone_7S"}, - {32708, "PCS_WGS84_UTM_zone_8S"}, - {32709, "PCS_WGS84_UTM_zone_9S"}, - {32710, "PCS_WGS84_UTM_zone_10S"}, - {32711, "PCS_WGS84_UTM_zone_11S"}, - {32712, "PCS_WGS84_UTM_zone_12S"}, - {32713, "PCS_WGS84_UTM_zone_13S"}, - {32714, "PCS_WGS84_UTM_zone_14S"}, - {32715, "PCS_WGS84_UTM_zone_15S"}, - {32716, "PCS_WGS84_UTM_zone_16S"}, - {32717, "PCS_WGS84_UTM_zone_17S"}, - {32718, "PCS_WGS84_UTM_zone_18S"}, - {32719, "PCS_WGS84_UTM_zone_19S"}, - {32720, "PCS_WGS84_UTM_zone_20S"}, - {32721, "PCS_WGS84_UTM_zone_21S"}, - {32722, "PCS_WGS84_UTM_zone_22S"}, - {32723, "PCS_WGS84_UTM_zone_23S"}, - {32724, "PCS_WGS84_UTM_zone_24S"}, - {32725, "PCS_WGS84_UTM_zone_25S"}, - {32726, "PCS_WGS84_UTM_zone_26S"}, - {32727, "PCS_WGS84_UTM_zone_27S"}, - {32728, "PCS_WGS84_UTM_zone_28S"}, - {32729, "PCS_WGS84_UTM_zone_29S"}, - {32730, "PCS_WGS84_UTM_zone_30S"}, - {32731, "PCS_WGS84_UTM_zone_31S"}, - {32732, "PCS_WGS84_UTM_zone_32S"}, - {32733, "PCS_WGS84_UTM_zone_33S"}, - {32734, "PCS_WGS84_UTM_zone_34S"}, - {32735, "PCS_WGS84_UTM_zone_35S"}, - {32736, "PCS_WGS84_UTM_zone_36S"}, - {32737, "PCS_WGS84_UTM_zone_37S"}, - {32738, "PCS_WGS84_UTM_zone_38S"}, - {32739, "PCS_WGS84_UTM_zone_39S"}, - {32740, "PCS_WGS84_UTM_zone_40S"}, - {32741, "PCS_WGS84_UTM_zone_41S"}, - {32742, "PCS_WGS84_UTM_zone_42S"}, - {32743, "PCS_WGS84_UTM_zone_43S"}, - {32744, "PCS_WGS84_UTM_zone_44S"}, - {32745, "PCS_WGS84_UTM_zone_45S"}, - {32746, "PCS_WGS84_UTM_zone_46S"}, - {32747, "PCS_WGS84_UTM_zone_47S"}, - {32748, "PCS_WGS84_UTM_zone_48S"}, - {32749, "PCS_WGS84_UTM_zone_49S"}, - {32750, "PCS_WGS84_UTM_zone_50S"}, - {32751, "PCS_WGS84_UTM_zone_51S"}, - {32752, "PCS_WGS84_UTM_zone_52S"}, - {32753, "PCS_WGS84_UTM_zone_53S"}, - {32754, "PCS_WGS84_UTM_zone_54S"}, - {32755, "PCS_WGS84_UTM_zone_55S"}, - {32756, "PCS_WGS84_UTM_zone_56S"}, - {32757, "PCS_WGS84_UTM_zone_57S"}, - {32758, "PCS_WGS84_UTM_zone_58S"}, - {32759, "PCS_WGS84_UTM_zone_59S"}, - {32760, "PCS_WGS84_UTM_zone_60S"} -}; - -const TiffGeoTagKeyName ff_tiff_projection_codes[] = { - {10101, "Proj_Alabama_CS27_East"}, - {10102, "Proj_Alabama_CS27_West"}, - {10131, "Proj_Alabama_CS83_East"}, - {10132, "Proj_Alabama_CS83_West"}, - {10201, "Proj_Arizona_Coordinate_System_east"}, - {10202, "Proj_Arizona_Coordinate_System_Central"}, - {10203, "Proj_Arizona_Coordinate_System_west"}, - {10231, "Proj_Arizona_CS83_east"}, - {10232, "Proj_Arizona_CS83_Central"}, - {10233, "Proj_Arizona_CS83_west"}, - {10301, "Proj_Arkansas_CS27_North"}, - {10302, "Proj_Arkansas_CS27_South"}, - {10331, "Proj_Arkansas_CS83_North"}, - {10332, "Proj_Arkansas_CS83_South"}, - {10401, "Proj_California_CS27_I"}, - {10402, "Proj_California_CS27_II"}, - {10403, "Proj_California_CS27_III"}, - {10404, "Proj_California_CS27_IV"}, - {10405, "Proj_California_CS27_V"}, - {10406, "Proj_California_CS27_VI"}, - {10407, "Proj_California_CS27_VII"}, - {10431, "Proj_California_CS83_1"}, - {10432, "Proj_California_CS83_2"}, - {10433, "Proj_California_CS83_3"}, - {10434, "Proj_California_CS83_4"}, - {10435, "Proj_California_CS83_5"}, - {10436, "Proj_California_CS83_6"}, - {10501, "Proj_Colorado_CS27_North"}, - {10502, "Proj_Colorado_CS27_Central"}, - {10503, "Proj_Colorado_CS27_South"}, - {10531, "Proj_Colorado_CS83_North"}, - {10532, "Proj_Colorado_CS83_Central"}, - {10533, "Proj_Colorado_CS83_South"}, - {10600, "Proj_Connecticut_CS27"}, - {10630, "Proj_Connecticut_CS83"}, - {10700, "Proj_Delaware_CS27"}, - {10730, "Proj_Delaware_CS83"}, - {10901, "Proj_Florida_CS27_East"}, - {10902, "Proj_Florida_CS27_West"}, - {10903, "Proj_Florida_CS27_North"}, - {10931, "Proj_Florida_CS83_East"}, - {10932, "Proj_Florida_CS83_West"}, - {10933, "Proj_Florida_CS83_North"}, - {11001, "Proj_Georgia_CS27_East"}, - {11002, "Proj_Georgia_CS27_West"}, - {11031, "Proj_Georgia_CS83_East"}, - {11032, "Proj_Georgia_CS83_West"}, - {11101, "Proj_Idaho_CS27_East"}, - {11102, "Proj_Idaho_CS27_Central"}, - {11103, "Proj_Idaho_CS27_West"}, - {11131, "Proj_Idaho_CS83_East"}, - {11132, "Proj_Idaho_CS83_Central"}, - {11133, "Proj_Idaho_CS83_West"}, - {11201, "Proj_Illinois_CS27_East"}, - {11202, "Proj_Illinois_CS27_West"}, - {11231, "Proj_Illinois_CS83_East"}, - {11232, "Proj_Illinois_CS83_West"}, - {11301, "Proj_Indiana_CS27_East"}, - {11302, "Proj_Indiana_CS27_West"}, - {11331, "Proj_Indiana_CS83_East"}, - {11332, "Proj_Indiana_CS83_West"}, - {11401, "Proj_Iowa_CS27_North"}, - {11402, "Proj_Iowa_CS27_South"}, - {11431, "Proj_Iowa_CS83_North"}, - {11432, "Proj_Iowa_CS83_South"}, - {11501, "Proj_Kansas_CS27_North"}, - {11502, "Proj_Kansas_CS27_South"}, - {11531, "Proj_Kansas_CS83_North"}, - {11532, "Proj_Kansas_CS83_South"}, - {11601, "Proj_Kentucky_CS27_North"}, - {11602, "Proj_Kentucky_CS27_South"}, - {11631, "Proj_Kentucky_CS83_North"}, - {11632, "Proj_Kentucky_CS83_South"}, - {11701, "Proj_Louisiana_CS27_North"}, - {11702, "Proj_Louisiana_CS27_South"}, - {11731, "Proj_Louisiana_CS83_North"}, - {11732, "Proj_Louisiana_CS83_South"}, - {11801, "Proj_Maine_CS27_East"}, - {11802, "Proj_Maine_CS27_West"}, - {11831, "Proj_Maine_CS83_East"}, - {11832, "Proj_Maine_CS83_West"}, - {11900, "Proj_Maryland_CS27"}, - {11930, "Proj_Maryland_CS83"}, - {12001, "Proj_Massachusetts_CS27_Mainland"}, - {12002, "Proj_Massachusetts_CS27_Island"}, - {12031, "Proj_Massachusetts_CS83_Mainland"}, - {12032, "Proj_Massachusetts_CS83_Island"}, - {12101, "Proj_Michigan_State_Plane_East"}, - {12102, "Proj_Michigan_State_Plane_Old_Central"}, - {12103, "Proj_Michigan_State_Plane_West"}, - {12111, "Proj_Michigan_CS27_North"}, - {12112, "Proj_Michigan_CS27_Central"}, - {12113, "Proj_Michigan_CS27_South"}, - {12141, "Proj_Michigan_CS83_North"}, - {12142, "Proj_Michigan_CS83_Central"}, - {12143, "Proj_Michigan_CS83_South"}, - {12201, "Proj_Minnesota_CS27_North"}, - {12202, "Proj_Minnesota_CS27_Central"}, - {12203, "Proj_Minnesota_CS27_South"}, - {12231, "Proj_Minnesota_CS83_North"}, - {12232, "Proj_Minnesota_CS83_Central"}, - {12233, "Proj_Minnesota_CS83_South"}, - {12301, "Proj_Mississippi_CS27_East"}, - {12302, "Proj_Mississippi_CS27_West"}, - {12331, "Proj_Mississippi_CS83_East"}, - {12332, "Proj_Mississippi_CS83_West"}, - {12401, "Proj_Missouri_CS27_East"}, - {12402, "Proj_Missouri_CS27_Central"}, - {12403, "Proj_Missouri_CS27_West"}, - {12431, "Proj_Missouri_CS83_East"}, - {12432, "Proj_Missouri_CS83_Central"}, - {12433, "Proj_Missouri_CS83_West"}, - {12501, "Proj_Montana_CS27_North"}, - {12502, "Proj_Montana_CS27_Central"}, - {12503, "Proj_Montana_CS27_South"}, - {12530, "Proj_Montana_CS83"}, - {12601, "Proj_Nebraska_CS27_North"}, - {12602, "Proj_Nebraska_CS27_South"}, - {12630, "Proj_Nebraska_CS83"}, - {12701, "Proj_Nevada_CS27_East"}, - {12702, "Proj_Nevada_CS27_Central"}, - {12703, "Proj_Nevada_CS27_West"}, - {12731, "Proj_Nevada_CS83_East"}, - {12732, "Proj_Nevada_CS83_Central"}, - {12733, "Proj_Nevada_CS83_West"}, - {12800, "Proj_New_Hampshire_CS27"}, - {12830, "Proj_New_Hampshire_CS83"}, - {12900, "Proj_New_Jersey_CS27"}, - {12930, "Proj_New_Jersey_CS83"}, - {13001, "Proj_New_Mexico_CS27_East"}, - {13002, "Proj_New_Mexico_CS27_Central"}, - {13003, "Proj_New_Mexico_CS27_West"}, - {13031, "Proj_New_Mexico_CS83_East"}, - {13032, "Proj_New_Mexico_CS83_Central"}, - {13033, "Proj_New_Mexico_CS83_West"}, - {13101, "Proj_New_York_CS27_East"}, - {13102, "Proj_New_York_CS27_Central"}, - {13103, "Proj_New_York_CS27_West"}, - {13104, "Proj_New_York_CS27_Long_Island"}, - {13131, "Proj_New_York_CS83_East"}, - {13132, "Proj_New_York_CS83_Central"}, - {13133, "Proj_New_York_CS83_West"}, - {13134, "Proj_New_York_CS83_Long_Island"}, - {13200, "Proj_North_Carolina_CS27"}, - {13230, "Proj_North_Carolina_CS83"}, - {13301, "Proj_North_Dakota_CS27_North"}, - {13302, "Proj_North_Dakota_CS27_South"}, - {13331, "Proj_North_Dakota_CS83_North"}, - {13332, "Proj_North_Dakota_CS83_South"}, - {13401, "Proj_Ohio_CS27_North"}, - {13402, "Proj_Ohio_CS27_South"}, - {13431, "Proj_Ohio_CS83_North"}, - {13432, "Proj_Ohio_CS83_South"}, - {13501, "Proj_Oklahoma_CS27_North"}, - {13502, "Proj_Oklahoma_CS27_South"}, - {13531, "Proj_Oklahoma_CS83_North"}, - {13532, "Proj_Oklahoma_CS83_South"}, - {13601, "Proj_Oregon_CS27_North"}, - {13602, "Proj_Oregon_CS27_South"}, - {13631, "Proj_Oregon_CS83_North"}, - {13632, "Proj_Oregon_CS83_South"}, - {13701, "Proj_Pennsylvania_CS27_North"}, - {13702, "Proj_Pennsylvania_CS27_South"}, - {13731, "Proj_Pennsylvania_CS83_North"}, - {13732, "Proj_Pennsylvania_CS83_South"}, - {13800, "Proj_Rhode_Island_CS27"}, - {13830, "Proj_Rhode_Island_CS83"}, - {13901, "Proj_South_Carolina_CS27_North"}, - {13902, "Proj_South_Carolina_CS27_South"}, - {13930, "Proj_South_Carolina_CS83"}, - {14001, "Proj_South_Dakota_CS27_North"}, - {14002, "Proj_South_Dakota_CS27_South"}, - {14031, "Proj_South_Dakota_CS83_North"}, - {14032, "Proj_South_Dakota_CS83_South"}, - {14100, "Proj_Tennessee_CS27"}, - {14130, "Proj_Tennessee_CS83"}, - {14201, "Proj_Texas_CS27_North"}, - {14202, "Proj_Texas_CS27_North_Central"}, - {14203, "Proj_Texas_CS27_Central"}, - {14204, "Proj_Texas_CS27_South_Central"}, - {14205, "Proj_Texas_CS27_South"}, - {14231, "Proj_Texas_CS83_North"}, - {14232, "Proj_Texas_CS83_North_Central"}, - {14233, "Proj_Texas_CS83_Central"}, - {14234, "Proj_Texas_CS83_South_Central"}, - {14235, "Proj_Texas_CS83_South"}, - {14301, "Proj_Utah_CS27_North"}, - {14302, "Proj_Utah_CS27_Central"}, - {14303, "Proj_Utah_CS27_South"}, - {14331, "Proj_Utah_CS83_North"}, - {14332, "Proj_Utah_CS83_Central"}, - {14333, "Proj_Utah_CS83_South"}, - {14400, "Proj_Vermont_CS27"}, - {14430, "Proj_Vermont_CS83"}, - {14501, "Proj_Virginia_CS27_North"}, - {14502, "Proj_Virginia_CS27_South"}, - {14531, "Proj_Virginia_CS83_North"}, - {14532, "Proj_Virginia_CS83_South"}, - {14601, "Proj_Washington_CS27_North"}, - {14602, "Proj_Washington_CS27_South"}, - {14631, "Proj_Washington_CS83_North"}, - {14632, "Proj_Washington_CS83_South"}, - {14701, "Proj_West_Virginia_CS27_North"}, - {14702, "Proj_West_Virginia_CS27_South"}, - {14731, "Proj_West_Virginia_CS83_North"}, - {14732, "Proj_West_Virginia_CS83_South"}, - {14801, "Proj_Wisconsin_CS27_North"}, - {14802, "Proj_Wisconsin_CS27_Central"}, - {14803, "Proj_Wisconsin_CS27_South"}, - {14831, "Proj_Wisconsin_CS83_North"}, - {14832, "Proj_Wisconsin_CS83_Central"}, - {14833, "Proj_Wisconsin_CS83_South"}, - {14901, "Proj_Wyoming_CS27_East"}, - {14902, "Proj_Wyoming_CS27_East_Central"}, - {14903, "Proj_Wyoming_CS27_West_Central"}, - {14904, "Proj_Wyoming_CS27_West"}, - {14931, "Proj_Wyoming_CS83_East"}, - {14932, "Proj_Wyoming_CS83_East_Central"}, - {14933, "Proj_Wyoming_CS83_West_Central"}, - {14934, "Proj_Wyoming_CS83_West"}, - {15001, "Proj_Alaska_CS27_1"}, - {15002, "Proj_Alaska_CS27_2"}, - {15003, "Proj_Alaska_CS27_3"}, - {15004, "Proj_Alaska_CS27_4"}, - {15005, "Proj_Alaska_CS27_5"}, - {15006, "Proj_Alaska_CS27_6"}, - {15007, "Proj_Alaska_CS27_7"}, - {15008, "Proj_Alaska_CS27_8"}, - {15009, "Proj_Alaska_CS27_9"}, - {15010, "Proj_Alaska_CS27_10"}, - {15031, "Proj_Alaska_CS83_1"}, - {15032, "Proj_Alaska_CS83_2"}, - {15033, "Proj_Alaska_CS83_3"}, - {15034, "Proj_Alaska_CS83_4"}, - {15035, "Proj_Alaska_CS83_5"}, - {15036, "Proj_Alaska_CS83_6"}, - {15037, "Proj_Alaska_CS83_7"}, - {15038, "Proj_Alaska_CS83_8"}, - {15039, "Proj_Alaska_CS83_9"}, - {15040, "Proj_Alaska_CS83_10"}, - {15101, "Proj_Hawaii_CS27_1"}, - {15102, "Proj_Hawaii_CS27_2"}, - {15103, "Proj_Hawaii_CS27_3"}, - {15104, "Proj_Hawaii_CS27_4"}, - {15105, "Proj_Hawaii_CS27_5"}, - {15131, "Proj_Hawaii_CS83_1"}, - {15132, "Proj_Hawaii_CS83_2"}, - {15133, "Proj_Hawaii_CS83_3"}, - {15134, "Proj_Hawaii_CS83_4"}, - {15135, "Proj_Hawaii_CS83_5"}, - {15201, "Proj_Puerto_Rico_CS27"}, - {15202, "Proj_St_Croix"}, - {15230, "Proj_Puerto_Rico_Virgin_Is"}, - {15914, "Proj_BLM_14N_feet"}, - {15915, "Proj_BLM_15N_feet"}, - {15916, "Proj_BLM_16N_feet"}, - {15917, "Proj_BLM_17N_feet"}, - {17348, "Proj_Map_Grid_of_Australia_48"}, - {17349, "Proj_Map_Grid_of_Australia_49"}, - {17350, "Proj_Map_Grid_of_Australia_50"}, - {17351, "Proj_Map_Grid_of_Australia_51"}, - {17352, "Proj_Map_Grid_of_Australia_52"}, - {17353, "Proj_Map_Grid_of_Australia_53"}, - {17354, "Proj_Map_Grid_of_Australia_54"}, - {17355, "Proj_Map_Grid_of_Australia_55"}, - {17356, "Proj_Map_Grid_of_Australia_56"}, - {17357, "Proj_Map_Grid_of_Australia_57"}, - {17358, "Proj_Map_Grid_of_Australia_58"}, - {17448, "Proj_Australian_Map_Grid_48"}, - {17449, "Proj_Australian_Map_Grid_49"}, - {17450, "Proj_Australian_Map_Grid_50"}, - {17451, "Proj_Australian_Map_Grid_51"}, - {17452, "Proj_Australian_Map_Grid_52"}, - {17453, "Proj_Australian_Map_Grid_53"}, - {17454, "Proj_Australian_Map_Grid_54"}, - {17455, "Proj_Australian_Map_Grid_55"}, - {17456, "Proj_Australian_Map_Grid_56"}, - {17457, "Proj_Australian_Map_Grid_57"}, - {17458, "Proj_Australian_Map_Grid_58"}, - {18031, "Proj_Argentina_1"}, - {18032, "Proj_Argentina_2"}, - {18033, "Proj_Argentina_3"}, - {18034, "Proj_Argentina_4"}, - {18035, "Proj_Argentina_5"}, - {18036, "Proj_Argentina_6"}, - {18037, "Proj_Argentina_7"}, - {18051, "Proj_Colombia_3W"}, - {18052, "Proj_Colombia_Bogota"}, - {18053, "Proj_Colombia_3E"}, - {18054, "Proj_Colombia_6E"}, - {18072, "Proj_Egypt_Red_Belt"}, - {18073, "Proj_Egypt_Purple_Belt"}, - {18074, "Proj_Extended_Purple_Belt"}, - {18141, "Proj_New_Zealand_North_Island_Nat_Grid"}, - {18142, "Proj_New_Zealand_South_Island_Nat_Grid"}, - {19900, "Proj_Bahrain_Grid"}, - {19905, "Proj_Netherlands_E_Indies_Equatorial"}, - {19912, "Proj_RSO_Borneo"} -}; - -const char *const ff_tiff_coord_trans_codes[] = { - "CT_TransverseMercator", - "CT_TransvMercator_Modified_Alaska", - "CT_ObliqueMercator", - "CT_ObliqueMercator_Laborde", - "CT_ObliqueMercator_Rosenmund", - "CT_ObliqueMercator_Spherical", - "CT_Mercator", - "CT_LambertConfConic_2SP", - "CT_LambertConfConic_Helmert", - "CT_LambertAzimEqualArea", - "CT_AlbersEqualArea", - "CT_AzimuthalEquidistant", - "CT_EquidistantConic", - "CT_Stereographic", - "CT_PolarStereographic", - "CT_ObliqueStereographic", - "CT_Equirectangular", - "CT_CassiniSoldner", - "CT_Gnomonic", - "CT_MillerCylindrical", - "CT_Orthographic", - "CT_Polyconic", - "CT_Robinson", - "CT_Sinusoidal", - "CT_VanDerGrinten", - "CT_NewZealandMapGrid", - "CT_TransvMercator_SouthOriented" -}; - -const char *const ff_tiff_vert_cs_codes[] = { - "VertCS_Airy_1830_ellipsoid", - "VertCS_Airy_Modified_1849_ellipsoid", - "VertCS_ANS_ellipsoid", - "VertCS_Bessel_1841_ellipsoid", - "VertCS_Bessel_Modified_ellipsoid", - "VertCS_Bessel_Namibia_ellipsoid", - "VertCS_Clarke_1858_ellipsoid", - "VertCS_Clarke_1866_ellipsoid", - "VertCS_Clarke_1880_Benoit_ellipsoid", - "VertCS_Clarke_1880_IGN_ellipsoid", - "VertCS_Clarke_1880_RGS_ellipsoid", - "VertCS_Clarke_1880_Arc_ellipsoid", - "VertCS_Clarke_1880_SGA_1922_ellipsoid", - "VertCS_Everest_1830_1937_Adjustment_ellipsoid", - "VertCS_Everest_1830_1967_Definition_ellipsoid", - "VertCS_Everest_1830_1975_Definition_ellipsoid", - "VertCS_Everest_1830_Modified_ellipsoid", - "VertCS_GRS_1980_ellipsoid", - "VertCS_Helmert_1906_ellipsoid", - "VertCS_INS_ellipsoid", - "VertCS_International_1924_ellipsoid", - "VertCS_International_1967_ellipsoid", - "VertCS_Krassowsky_1940_ellipsoid", - "VertCS_NWL_9D_ellipsoid", - "VertCS_NWL_10D_ellipsoid", - "VertCS_Plessis_1817_ellipsoid", - "VertCS_Struve_1860_ellipsoid", - "VertCS_War_Office_ellipsoid", - "VertCS_WGS_84_ellipsoid", - "VertCS_GEM_10C_ellipsoid", - "VertCS_OSU86F_ellipsoid", - "VertCS_OSU91A_ellipsoid" -}; - -const char *const ff_tiff_ortho_vert_cs_codes[] = { - "VertCS_Newlyn", - "VertCS_North_American_Vertical_Datum_1929", - "VertCS_North_American_Vertical_Datum_1988", - "VertCS_Yellow_Sea_1956", - "VertCS_Baltic_Sea", - "VertCS_Caspian_Sea" -}; diff --git a/libavcodec/tiff_data.h b/libavcodec/tiff_data.h index 57515f9030..9b123ca8df 100644 --- a/libavcodec/tiff_data.h +++ b/libavcodec/tiff_data.h @@ -33,60 +33,1863 @@ #include "tiff.h" #define TIFF_CONF_KEY_ID_OFFSET 1024 -extern const TiffGeoTagNameType ff_tiff_conf_name_type_map[3]; +static const TiffGeoTagNameType tiff_conf_name_type_map[] = { + {"GTModelTypeGeoKey", GEOTIFF_SHORT }, + {"GTRasterTypeGeoKey", GEOTIFF_SHORT }, + {"GTCitationGeoKey", GEOTIFF_STRING} +}; #define TIFF_GEOG_KEY_ID_OFFSET 2048 -extern const TiffGeoTagNameType ff_tiff_geog_name_type_map[14]; +static const TiffGeoTagNameType tiff_geog_name_type_map[] = { + {"GeographicTypeGeoKey", GEOTIFF_SHORT }, + {"GeogCitationGeoKey", GEOTIFF_STRING}, + {"GeogGeodeticDatumGeoKey", GEOTIFF_SHORT }, + {"GeogPrimeMeridianGeoKey", GEOTIFF_SHORT }, + {"GeogLinearUnitsGeoKey", GEOTIFF_SHORT }, + {"GeogLinearUnitSizeGeoKey", GEOTIFF_DOUBLE}, + {"GeogAngularUnitsGeoKey", GEOTIFF_SHORT }, + {"GeogAngularUnitSizeGeoKey", GEOTIFF_DOUBLE}, + {"GeogEllipsoidGeoKey", GEOTIFF_SHORT }, + {"GeogSemiMajorAxisGeoKey", GEOTIFF_DOUBLE}, + {"GeogSemiMinorAxisGeoKey", GEOTIFF_DOUBLE}, + {"GeogInvFlatteningGeoKey", GEOTIFF_DOUBLE}, + {"GeogAzimuthUnitsGeoKey", GEOTIFF_SHORT }, + {"GeogPrimeMeridianLongGeoKey", GEOTIFF_DOUBLE} +}; #define TIFF_PROJ_KEY_ID_OFFSET 3072 -extern const TiffGeoTagNameType ff_tiff_proj_name_type_map[24]; +static const TiffGeoTagNameType tiff_proj_name_type_map[] = { + {"ProjectedCSTypeGeoKey", GEOTIFF_SHORT }, + {"PCSCitationGeoKey", GEOTIFF_STRING}, + {"ProjectionGeoKey", GEOTIFF_SHORT }, + {"ProjCoordTransGeoKey", GEOTIFF_SHORT }, + {"ProjLinearUnitsGeoKey", GEOTIFF_SHORT }, + {"ProjLinearUnitSizeGeoKey", GEOTIFF_DOUBLE}, + {"ProjStdParallel1GeoKey", GEOTIFF_DOUBLE}, + {"ProjStdParallel2GeoKey", GEOTIFF_DOUBLE}, + {"ProjNatOriginLongGeoKey", GEOTIFF_DOUBLE}, + {"ProjNatOriginLatGeoKey", GEOTIFF_DOUBLE}, + {"ProjFalseEastingGeoKey", GEOTIFF_DOUBLE}, + {"ProjFalseNorthingGeoKey", GEOTIFF_DOUBLE}, + {"ProjFalseOriginLongGeoKey", GEOTIFF_DOUBLE}, + {"ProjFalseOriginLatGeoKey", GEOTIFF_DOUBLE}, + {"ProjFalseOriginEastingGeoKey", GEOTIFF_DOUBLE}, + {"ProjFalseOriginNorthingGeoKey", GEOTIFF_DOUBLE}, + {"ProjCenterLongGeoKey", GEOTIFF_DOUBLE}, + {"ProjCenterLatGeoKey", GEOTIFF_DOUBLE}, + {"ProjCenterEastingGeoKey", GEOTIFF_DOUBLE}, + {"ProjCenterNorthingGeoKey", GEOTIFF_DOUBLE}, + {"ProjScaleAtNatOriginGeoKey", GEOTIFF_DOUBLE}, + {"ProjScaleAtCenterGeoKey", GEOTIFF_DOUBLE}, + {"ProjAzimuthAngleGeoKey", GEOTIFF_DOUBLE}, + {"ProjStraightVertPoleLongGeoKey", GEOTIFF_DOUBLE} +}; #define TIFF_VERT_KEY_ID_OFFSET 4096 -extern const TiffGeoTagNameType ff_tiff_vert_name_type_map[4]; +static const TiffGeoTagNameType tiff_vert_name_type_map[] = { + {"VerticalCSTypeGeoKey", GEOTIFF_SHORT }, + {"VerticalCitationGeoKey", GEOTIFF_STRING}, + {"VerticalDatumGeoKey", GEOTIFF_SHORT }, + {"VerticalUnitsGeoKey", GEOTIFF_SHORT } +}; #define TIFF_GEO_KEY_UNDEFINED 0 #define TIFF_GEO_KEY_USER_DEFINED 32767 #define TIFF_GT_MODEL_TYPE_OFFSET 1 -extern const char *const ff_tiff_gt_model_type_codes[3]; +static const char *const tiff_gt_model_type_codes[] = { + "ModelTypeProjected", + "ModelTypeGeographic", + "ModelTypeGeocentric" +}; #define TIFF_GT_RASTER_TYPE_OFFSET 1 -extern const char *const ff_tiff_gt_raster_type_codes[2]; +static const char *const tiff_gt_raster_type_codes[] = { + "RasterPixelIsArea", + "RasterPixelIsPoint" +}; #define TIFF_LINEAR_UNIT_OFFSET 9001 -extern const char *const ff_tiff_linear_unit_codes[15]; +static const char *const tiff_linear_unit_codes[] = { + "Linear_Meter", + "Linear_Foot", + "Linear_Foot_US_Survey", + "Linear_Foot_Modified_American", + "Linear_Foot_Clarke", + "Linear_Foot_Indian", + "Linear_Link", + "Linear_Link_Benoit", + "Linear_Link_Sears", + "Linear_Chain_Benoit", + "Linear_Chain_Sears", + "Linear_Yard_Sears", + "Linear_Yard_Indian", + "Linear_Fathom", + "Linear_Mile_International_Nautical" +}; #define TIFF_ANGULAR_UNIT_OFFSET 9101 -extern const char *const ff_tiff_angular_unit_codes[8]; +static const char *const tiff_angular_unit_codes[] = { + "Angular_Radian", + "Angular_Degree", + "Angular_Arc_Minute", + "Angular_Arc_Second", + "Angular_Grad", + "Angular_Gon", + "Angular_DMS", + "Angular_DMS_Hemisphere" +}; #define TIFF_GCS_TYPE_OFFSET 4201 -extern const char *const ff_tiff_gcs_type_codes[133]; +static const char *const tiff_gcs_type_codes[] = { + "GCS_Adindan", + "GCS_AGD66", + "GCS_AGD84", + "GCS_Ain_el_Abd", + "GCS_Afgooye", + "GCS_Agadez", + "GCS_Lisbon", + "GCS_Aratu", + "GCS_Arc_1950", + "GCS_Arc_1960", + "GCS_Batavia", + "GCS_Barbados", + "GCS_Beduaram", + "GCS_Beijing_1954", + "GCS_Belge_1950", + "GCS_Bermuda_1957", + "GCS_Bern_1898", + "GCS_Bogota", + "GCS_Bukit_Rimpah", + "GCS_Camacupa", + "GCS_Campo_Inchauspe", + "GCS_Cape", + "GCS_Carthage", + "GCS_Chua", + "GCS_Corrego_Alegre", + "GCS_Cote_d_Ivoire", + "GCS_Deir_ez_Zor", + "GCS_Douala", + "GCS_Egypt_1907", + "GCS_ED50", + "GCS_ED87", + "GCS_Fahud", + "GCS_Gandajika_1970", + "GCS_Garoua", + "GCS_Guyane_Francaise", + "GCS_Hu_Tzu_Shan", + "GCS_HD72", + "GCS_ID74", + "GCS_Indian_1954", + "GCS_Indian_1975", + "GCS_Jamaica_1875", + "GCS_JAD69", + "GCS_Kalianpur", + "GCS_Kandawala", + "GCS_Kertau", + "GCS_KOC", + "GCS_La_Canoa", + "GCS_PSAD56", + "GCS_Lake", + "GCS_Leigon", + "GCS_Liberia_1964", + "GCS_Lome", + "GCS_Luzon_1911", + "GCS_Hito_XVIII_1963", + "GCS_Herat_North", + "GCS_Mahe_1971", + "GCS_Makassar", + "GCS_EUREF89", + "GCS_Malongo_1987", + "GCS_Manoca", + "GCS_Merchich", + "GCS_Massawa", + "GCS_Minna", + "GCS_Mhast", + "GCS_Monte_Mario", + "GCS_M_poraloko", + "GCS_NAD27", + "GCS_NAD_Michigan", + "GCS_NAD83", + "GCS_Nahrwan_1967", + "GCS_Naparima_1972", + "GCS_GD49", + "GCS_NGO_1948", + "GCS_Datum_73", + "GCS_NTF", + "GCS_NSWC_9Z_2", + "GCS_OSGB_1936", + "GCS_OSGB70", + "GCS_OS_SN80", + "GCS_Padang", + "GCS_Palestine_1923", + "GCS_Pointe_Noire", + "GCS_GDA94", + "GCS_Pulkovo_1942", + "GCS_Qatar", + "GCS_Qatar_1948", + "GCS_Qornoq", + "GCS_Loma_Quintana", + "GCS_Amersfoort", + "GCS_RT38", + "GCS_SAD69", + "GCS_Sapper_Hill_1943", + "GCS_Schwarzeck", + "GCS_Segora", + "GCS_Serindung", + "GCS_Sudan", + "GCS_Tananarive", + "GCS_Timbalai_1948", + "GCS_TM65", + "GCS_TM75", + "GCS_Tokyo", + "GCS_Trinidad_1903", + "GCS_TC_1948", + "GCS_Voirol_1875", + "GCS_Voirol_Unifie", + "GCS_Bern_1938", + "GCS_Nord_Sahara_1959", + "GCS_Stockholm_1938", + "GCS_Yacare", + "GCS_Yoff", + "GCS_Zanderij", + "GCS_MGI", + "GCS_Belge_1972", + "GCS_DHDN", + "GCS_Conakry_1905", + "GCS_WGS_72", + "GCS_WGS_72BE", + "GCS_WGS_84", + "GCS_Bern_1898_Bern", + "GCS_Bogota_Bogota", + "GCS_Lisbon_Lisbon", + "GCS_Makassar_Jakarta", + "GCS_MGI_Ferro", + "GCS_Monte_Mario_Rome", + "GCS_NTF_Paris", + "GCS_Padang_Jakarta", + "GCS_Belge_1950_Brussels", + "GCS_Tananarive_Paris", + "GCS_Voirol_1875_Paris", + "GCS_Voirol_Unifie_Paris", + "GCS_Batavia_Jakarta", + "GCS_ATF_Paris", + "GCS_NDG_Paris" +}; #define TIFF_GCSE_TYPE_OFFSET 4001 -extern const char *const ff_tiff_gcse_type_codes[35]; +static const char *const tiff_gcse_type_codes[] = { + "GCSE_Airy1830", + "GCSE_AiryModified1849", + "GCSE_AustralianNationalSpheroid", + "GCSE_Bessel1841", + "GCSE_BesselModified", + "GCSE_BesselNamibia", + "GCSE_Clarke1858", + "GCSE_Clarke1866", + "GCSE_Clarke1866Michigan", + "GCSE_Clarke1880_Benoit", + "GCSE_Clarke1880_IGN", + "GCSE_Clarke1880_RGS", + "GCSE_Clarke1880_Arc", + "GCSE_Clarke1880_SGA1922", + "GCSE_Everest1830_1937Adjustment", + "GCSE_Everest1830_1967Definition", + "GCSE_Everest1830_1975Definition", + "GCSE_Everest1830Modified", + "GCSE_GRS1980", + "GCSE_Helmert1906", + "GCSE_IndonesianNationalSpheroid", + "GCSE_International1924", + "GCSE_International1967", + "GCSE_Krassowsky1940", + "GCSE_NWL9D", + "GCSE_NWL10D", + "GCSE_Plessis1817", + "GCSE_Struve1860", + "GCSE_WarOffice", + "GCSE_WGS84", + "GCSE_GEM10C", + "GCSE_OSU86F", + "GCSE_OSU91A", + "GCSE_Clarke1880", + "GCSE_Sphere" +}; #define TIFF_GEODETIC_DATUM_OFFSET 6201 -extern const char *const ff_tiff_geodetic_datum_codes[120]; +static const char *const tiff_geodetic_datum_codes[] = { + "Datum_Adindan", + "Datum_Australian_Geodetic_Datum_1966", + "Datum_Australian_Geodetic_Datum_1984", + "Datum_Ain_el_Abd_1970", + "Datum_Afgooye", + "Datum_Agadez", + "Datum_Lisbon", + "Datum_Aratu", + "Datum_Arc_1950", + "Datum_Arc_1960", + "Datum_Batavia", + "Datum_Barbados", + "Datum_Beduaram", + "Datum_Beijing_1954", + "Datum_Reseau_National_Belge_1950", + "Datum_Bermuda_1957", + "Datum_Bern_1898", + "Datum_Bogota", + "Datum_Bukit_Rimpah", + "Datum_Camacupa", + "Datum_Campo_Inchauspe", + "Datum_Cape", + "Datum_Carthage", + "Datum_Chua", + "Datum_Corrego_Alegre", + "Datum_Cote_d_Ivoire", + "Datum_Deir_ez_Zor", + "Datum_Douala", + "Datum_Egypt_1907", + "Datum_European_Datum_1950", + "Datum_European_Datum_1987", + "Datum_Fahud", + "Datum_Gandajika_1970", + "Datum_Garoua", + "Datum_Guyane_Francaise", + "Datum_Hu_Tzu_Shan", + "Datum_Hungarian_Datum_1972", + "Datum_Indonesian_Datum_1974", + "Datum_Indian_1954", + "Datum_Indian_1975", + "Datum_Jamaica_1875", + "Datum_Jamaica_1969", + "Datum_Kalianpur", + "Datum_Kandawala", + "Datum_Kertau", + "Datum_Kuwait_Oil_Company", + "Datum_La_Canoa", + "Datum_Provisional_S_American_Datum_1956", + "Datum_Lake", + "Datum_Leigon", + "Datum_Liberia_1964", + "Datum_Lome", + "Datum_Luzon_1911", + "Datum_Hito_XVIII_1963", + "Datum_Herat_North", + "Datum_Mahe_1971", + "Datum_Makassar", + "Datum_European_Reference_System_1989", + "Datum_Malongo_1987", + "Datum_Manoca", + "Datum_Merchich", + "Datum_Massawa", + "Datum_Minna", + "Datum_Mhast", + "Datum_Monte_Mario", + "Datum_M_poraloko", + "Datum_North_American_Datum_1927", + "Datum_NAD_Michigan", + "Datum_North_American_Datum_1983", + "Datum_Nahrwan_1967", + "Datum_Naparima_1972", + "Datum_New_Zealand_Geodetic_Datum_1949", + "Datum_NGO_1948", + "Datum_Datum_73", + "Datum_Nouvelle_Triangulation_Francaise", + "Datum_NSWC_9Z_2", + "Datum_OSGB_1936", + "Datum_OSGB_1970_SN", + "Datum_OS_SN_1980", + "Datum_Padang_1884", + "Datum_Palestine_1923", + "Datum_Pointe_Noire", + "Datum_Geocentric_Datum_of_Australia_1994", + "Datum_Pulkovo_1942", + "Datum_Qatar", + "Datum_Qatar_1948", + "Datum_Qornoq", + "Datum_Loma_Quintana", + "Datum_Amersfoort", + "Datum_RT38", + "Datum_South_American_Datum_1969", + "Datum_Sapper_Hill_1943", + "Datum_Schwarzeck", + "Datum_Segora", + "Datum_Serindung", + "Datum_Sudan", + "Datum_Tananarive_1925", + "Datum_Timbalai_1948", + "Datum_TM65", + "Datum_TM75", + "Datum_Tokyo", + "Datum_Trinidad_1903", + "Datum_Trucial_Coast_1948", + "Datum_Voirol_1875", + "Datum_Voirol_Unifie_1960", + "Datum_Bern_1938", + "Datum_Nord_Sahara_1959", + "Datum_Stockholm_1938", + "Datum_Yacare", + "Datum_Yoff", + "Datum_Zanderij", + "Datum_Militar_Geographische_Institut", + "Datum_Reseau_National_Belge_1972", + "Datum_Deutsche_Hauptdreiecksnetz", + "Datum_Conakry_1905", + "Datum_WGS72", + "Datum_WGS72_Transit_Broadcast_Ephemeris", + "Datum_WGS84", + "Datum_Ancienne_Triangulation_Francaise", + "Datum_Nord_de_Guerre" +}; #define TIFF_GEODETIC_DATUM_E_OFFSET 6001 -extern const char *const ff_tiff_geodetic_datum_e_codes[35]; +static const char *const tiff_geodetic_datum_e_codes[] = { + "DatumE_Airy1830", + "DatumE_AiryModified1849", + "DatumE_AustralianNationalSpheroid", + "DatumE_Bessel1841", + "DatumE_BesselModified", + "DatumE_BesselNamibia", + "DatumE_Clarke1858", + "DatumE_Clarke1866", + "DatumE_Clarke1866Michigan", + "DatumE_Clarke1880_Benoit", + "DatumE_Clarke1880_IGN", + "DatumE_Clarke1880_RGS", + "DatumE_Clarke1880_Arc", + "DatumE_Clarke1880_SGA1922", + "DatumE_Everest1830_1937Adjustment", + "DatumE_Everest1830_1967Definition", + "DatumE_Everest1830_1975Definition", + "DatumE_Everest1830Modified", + "DatumE_GRS1980", + "DatumE_Helmert1906", + "DatumE_IndonesianNationalSpheroid", + "DatumE_International1924", + "DatumE_International1967", + "DatumE_Krassowsky1960", + "DatumE_NWL9D", + "DatumE_NWL10D", + "DatumE_Plessis1817", + "DatumE_Struve1860", + "DatumE_WarOffice", + "DatumE_WGS84", + "DatumE_GEM10C", + "DatumE_OSU86F", + "DatumE_OSU91A", + "DatumE_Clarke1880", + "DatumE_Sphere" +}; #define TIFF_ELLIPSOID_OFFSET 7001 -extern const char *const ff_tiff_ellipsoid_codes[35]; +static const char *const tiff_ellipsoid_codes[] = { + "Ellipse_Airy_1830", + "Ellipse_Airy_Modified_1849", + "Ellipse_Australian_National_Spheroid", + "Ellipse_Bessel_1841", + "Ellipse_Bessel_Modified", + "Ellipse_Bessel_Namibia", + "Ellipse_Clarke_1858", + "Ellipse_Clarke_1866", + "Ellipse_Clarke_1866_Michigan", + "Ellipse_Clarke_1880_Benoit", + "Ellipse_Clarke_1880_IGN", + "Ellipse_Clarke_1880_RGS", + "Ellipse_Clarke_1880_Arc", + "Ellipse_Clarke_1880_SGA_1922", + "Ellipse_Everest_1830_1937_Adjustment", + "Ellipse_Everest_1830_1967_Definition", + "Ellipse_Everest_1830_1975_Definition", + "Ellipse_Everest_1830_Modified", + "Ellipse_GRS_1980", + "Ellipse_Helmert_1906", + "Ellipse_Indonesian_National_Spheroid", + "Ellipse_International_1924", + "Ellipse_International_1967", + "Ellipse_Krassowsky_1940", + "Ellipse_NWL_9D", + "Ellipse_NWL_10D", + "Ellipse_Plessis_1817", + "Ellipse_Struve_1860", + "Ellipse_War_Office", + "Ellipse_WGS_84", + "Ellipse_GEM_10C", + "Ellipse_OSU86F", + "Ellipse_OSU91A", + "Ellipse_Clarke_1880", + "Ellipse_Sphere" +}; #define TIFF_PRIME_MERIDIAN_OFFSET 8901 -extern const char *const ff_tiff_prime_meridian_codes[11]; +static const char *const tiff_prime_meridian_codes[] = { + "PM_Greenwich", + "PM_Lisbon", + "PM_Paris", + "PM_Bogota", + "PM_Madrid", + "PM_Rome", + "PM_Bern", + "PM_Jakarta", + "PM_Ferro", + "PM_Brussels", + "PM_Stockholm" +}; -extern const TiffGeoTagKeyName ff_tiff_proj_cs_type_codes[978]; +static const TiffGeoTagKeyName tiff_proj_cs_type_codes[] = { + {20137, "PCS_Adindan_UTM_zone_37N"}, + {20138, "PCS_Adindan_UTM_zone_38N"}, + {20248, "PCS_AGD66_AMG_zone_48"}, + {20249, "PCS_AGD66_AMG_zone_49"}, + {20250, "PCS_AGD66_AMG_zone_50"}, + {20251, "PCS_AGD66_AMG_zone_51"}, + {20252, "PCS_AGD66_AMG_zone_52"}, + {20253, "PCS_AGD66_AMG_zone_53"}, + {20254, "PCS_AGD66_AMG_zone_54"}, + {20255, "PCS_AGD66_AMG_zone_55"}, + {20256, "PCS_AGD66_AMG_zone_56"}, + {20257, "PCS_AGD66_AMG_zone_57"}, + {20258, "PCS_AGD66_AMG_zone_58"}, + {20348, "PCS_AGD84_AMG_zone_48"}, + {20349, "PCS_AGD84_AMG_zone_49"}, + {20350, "PCS_AGD84_AMG_zone_50"}, + {20351, "PCS_AGD84_AMG_zone_51"}, + {20352, "PCS_AGD84_AMG_zone_52"}, + {20353, "PCS_AGD84_AMG_zone_53"}, + {20354, "PCS_AGD84_AMG_zone_54"}, + {20355, "PCS_AGD84_AMG_zone_55"}, + {20356, "PCS_AGD84_AMG_zone_56"}, + {20357, "PCS_AGD84_AMG_zone_57"}, + {20358, "PCS_AGD84_AMG_zone_58"}, + {20437, "PCS_Ain_el_Abd_UTM_zone_37N"}, + {20438, "PCS_Ain_el_Abd_UTM_zone_38N"}, + {20439, "PCS_Ain_el_Abd_UTM_zone_39N"}, + {20499, "PCS_Ain_el_Abd_Bahrain_Grid"}, + {20538, "PCS_Afgooye_UTM_zone_38N"}, + {20539, "PCS_Afgooye_UTM_zone_39N"}, + {20700, "PCS_Lisbon_Portugese_Grid"}, + {20822, "PCS_Aratu_UTM_zone_22S"}, + {20823, "PCS_Aratu_UTM_zone_23S"}, + {20824, "PCS_Aratu_UTM_zone_24S"}, + {20973, "PCS_Arc_1950_Lo13"}, + {20975, "PCS_Arc_1950_Lo15"}, + {20977, "PCS_Arc_1950_Lo17"}, + {20979, "PCS_Arc_1950_Lo19"}, + {20981, "PCS_Arc_1950_Lo21"}, + {20983, "PCS_Arc_1950_Lo23"}, + {20985, "PCS_Arc_1950_Lo25"}, + {20987, "PCS_Arc_1950_Lo27"}, + {20989, "PCS_Arc_1950_Lo29"}, + {20991, "PCS_Arc_1950_Lo31"}, + {20993, "PCS_Arc_1950_Lo33"}, + {20995, "PCS_Arc_1950_Lo35"}, + {21100, "PCS_Batavia_NEIEZ"}, + {21148, "PCS_Batavia_UTM_zone_48S"}, + {21149, "PCS_Batavia_UTM_zone_49S"}, + {21150, "PCS_Batavia_UTM_zone_50S"}, + {21413, "PCS_Beijing_Gauss_zone_13"}, + {21414, "PCS_Beijing_Gauss_zone_14"}, + {21415, "PCS_Beijing_Gauss_zone_15"}, + {21416, "PCS_Beijing_Gauss_zone_16"}, + {21417, "PCS_Beijing_Gauss_zone_17"}, + {21418, "PCS_Beijing_Gauss_zone_18"}, + {21419, "PCS_Beijing_Gauss_zone_19"}, + {21420, "PCS_Beijing_Gauss_zone_20"}, + {21421, "PCS_Beijing_Gauss_zone_21"}, + {21422, "PCS_Beijing_Gauss_zone_22"}, + {21423, "PCS_Beijing_Gauss_zone_23"}, + {21473, "PCS_Beijing_Gauss_13N"}, + {21474, "PCS_Beijing_Gauss_14N"}, + {21475, "PCS_Beijing_Gauss_15N"}, + {21476, "PCS_Beijing_Gauss_16N"}, + {21477, "PCS_Beijing_Gauss_17N"}, + {21478, "PCS_Beijing_Gauss_18N"}, + {21479, "PCS_Beijing_Gauss_19N"}, + {21480, "PCS_Beijing_Gauss_20N"}, + {21481, "PCS_Beijing_Gauss_21N"}, + {21482, "PCS_Beijing_Gauss_22N"}, + {21483, "PCS_Beijing_Gauss_23N"}, + {21500, "PCS_Belge_Lambert_50"}, + {21790, "PCS_Bern_1898_Swiss_Old"}, + {21817, "PCS_Bogota_UTM_zone_17N"}, + {21818, "PCS_Bogota_UTM_zone_18N"}, + {21891, "PCS_Bogota_Colombia_3W"}, + {21892, "PCS_Bogota_Colombia_Bogota"}, + {21893, "PCS_Bogota_Colombia_3E"}, + {21894, "PCS_Bogota_Colombia_6E"}, + {22032, "PCS_Camacupa_UTM_32S"}, + {22033, "PCS_Camacupa_UTM_33S"}, + {22191, "PCS_C_Inchauspe_Argentina_1"}, + {22192, "PCS_C_Inchauspe_Argentina_2"}, + {22193, "PCS_C_Inchauspe_Argentina_3"}, + {22194, "PCS_C_Inchauspe_Argentina_4"}, + {22195, "PCS_C_Inchauspe_Argentina_5"}, + {22196, "PCS_C_Inchauspe_Argentina_6"}, + {22197, "PCS_C_Inchauspe_Argentina_7"}, + {22332, "PCS_Carthage_UTM_zone_32N"}, + {22391, "PCS_Carthage_Nord_Tunisie"}, + {22392, "PCS_Carthage_Sud_Tunisie"}, + {22523, "PCS_Corrego_Alegre_UTM_23S"}, + {22524, "PCS_Corrego_Alegre_UTM_24S"}, + {22832, "PCS_Douala_UTM_zone_32N"}, + {22992, "PCS_Egypt_1907_Red_Belt"}, + {22993, "PCS_Egypt_1907_Purple_Belt"}, + {22994, "PCS_Egypt_1907_Ext_Purple"}, + {23028, "PCS_ED50_UTM_zone_28N"}, + {23029, "PCS_ED50_UTM_zone_29N"}, + {23030, "PCS_ED50_UTM_zone_30N"}, + {23031, "PCS_ED50_UTM_zone_31N"}, + {23032, "PCS_ED50_UTM_zone_32N"}, + {23033, "PCS_ED50_UTM_zone_33N"}, + {23034, "PCS_ED50_UTM_zone_34N"}, + {23035, "PCS_ED50_UTM_zone_35N"}, + {23036, "PCS_ED50_UTM_zone_36N"}, + {23037, "PCS_ED50_UTM_zone_37N"}, + {23038, "PCS_ED50_UTM_zone_38N"}, + {23239, "PCS_Fahud_UTM_zone_39N"}, + {23240, "PCS_Fahud_UTM_zone_40N"}, + {23433, "PCS_Garoua_UTM_zone_33N"}, + {23846, "PCS_ID74_UTM_zone_46N"}, + {23847, "PCS_ID74_UTM_zone_47N"}, + {23848, "PCS_ID74_UTM_zone_48N"}, + {23849, "PCS_ID74_UTM_zone_49N"}, + {23850, "PCS_ID74_UTM_zone_50N"}, + {23851, "PCS_ID74_UTM_zone_51N"}, + {23852, "PCS_ID74_UTM_zone_52N"}, + {23853, "PCS_ID74_UTM_zone_53N"}, + {23886, "PCS_ID74_UTM_zone_46S"}, + {23887, "PCS_ID74_UTM_zone_47S"}, + {23888, "PCS_ID74_UTM_zone_48S"}, + {23889, "PCS_ID74_UTM_zone_49S"}, + {23890, "PCS_ID74_UTM_zone_50S"}, + {23891, "PCS_ID74_UTM_zone_51S"}, + {23892, "PCS_ID74_UTM_zone_52S"}, + {23893, "PCS_ID74_UTM_zone_53S"}, + {23894, "PCS_ID74_UTM_zone_54S"}, + {23947, "PCS_Indian_1954_UTM_47N"}, + {23948, "PCS_Indian_1954_UTM_48N"}, + {24047, "PCS_Indian_1975_UTM_47N"}, + {24048, "PCS_Indian_1975_UTM_48N"}, + {24100, "PCS_Jamaica_1875_Old_Grid"}, + {24200, "PCS_JAD69_Jamaica_Grid"}, + {24370, "PCS_Kalianpur_India_0"}, + {24371, "PCS_Kalianpur_India_I"}, + {24372, "PCS_Kalianpur_India_IIa"}, + {24373, "PCS_Kalianpur_India_IIIa"}, + {24374, "PCS_Kalianpur_India_IVa"}, + {24382, "PCS_Kalianpur_India_IIb"}, + {24383, "PCS_Kalianpur_India_IIIb"}, + {24384, "PCS_Kalianpur_India_IVb"}, + {24500, "PCS_Kertau_Singapore_Grid"}, + {24547, "PCS_Kertau_UTM_zone_47N"}, + {24548, "PCS_Kertau_UTM_zone_48N"}, + {24720, "PCS_La_Canoa_UTM_zone_20N"}, + {24721, "PCS_La_Canoa_UTM_zone_21N"}, + {24818, "PCS_PSAD56_UTM_zone_18N"}, + {24819, "PCS_PSAD56_UTM_zone_19N"}, + {24820, "PCS_PSAD56_UTM_zone_20N"}, + {24821, "PCS_PSAD56_UTM_zone_21N"}, + {24877, "PCS_PSAD56_UTM_zone_17S"}, + {24878, "PCS_PSAD56_UTM_zone_18S"}, + {24879, "PCS_PSAD56_UTM_zone_19S"}, + {24880, "PCS_PSAD56_UTM_zone_20S"}, + {24891, "PCS_PSAD56_Peru_west_zone"}, + {24892, "PCS_PSAD56_Peru_central"}, + {24893, "PCS_PSAD56_Peru_east_zone"}, + {25000, "PCS_Leigon_Ghana_Grid"}, + {25231, "PCS_Lome_UTM_zone_31N"}, + {25391, "PCS_Luzon_Philippines_I"}, + {25392, "PCS_Luzon_Philippines_II"}, + {25393, "PCS_Luzon_Philippines_III"}, + {25394, "PCS_Luzon_Philippines_IV"}, + {25395, "PCS_Luzon_Philippines_V"}, + {25700, "PCS_Makassar_NEIEZ"}, + {25932, "PCS_Malongo_1987_UTM_32S"}, + {26191, "PCS_Merchich_Nord_Maroc"}, + {26192, "PCS_Merchich_Sud_Maroc"}, + {26193, "PCS_Merchich_Sahara"}, + {26237, "PCS_Massawa_UTM_zone_37N"}, + {26331, "PCS_Minna_UTM_zone_31N"}, + {26332, "PCS_Minna_UTM_zone_32N"}, + {26391, "PCS_Minna_Nigeria_West"}, + {26392, "PCS_Minna_Nigeria_Mid_Belt"}, + {26393, "PCS_Minna_Nigeria_East"}, + {26432, "PCS_Mhast_UTM_zone_32S"}, + {26591, "PCS_Monte_Mario_Italy_1"}, + {26592, "PCS_Monte_Mario_Italy_2"}, + {26632, "PCS_M_poraloko_UTM_32N"}, + {26692, "PCS_M_poraloko_UTM_32S"}, + {26703, "PCS_NAD27_UTM_zone_3N"}, + {26704, "PCS_NAD27_UTM_zone_4N"}, + {26705, "PCS_NAD27_UTM_zone_5N"}, + {26706, "PCS_NAD27_UTM_zone_6N"}, + {26707, "PCS_NAD27_UTM_zone_7N"}, + {26708, "PCS_NAD27_UTM_zone_8N"}, + {26709, "PCS_NAD27_UTM_zone_9N"}, + {26710, "PCS_NAD27_UTM_zone_10N"}, + {26711, "PCS_NAD27_UTM_zone_11N"}, + {26712, "PCS_NAD27_UTM_zone_12N"}, + {26713, "PCS_NAD27_UTM_zone_13N"}, + {26714, "PCS_NAD27_UTM_zone_14N"}, + {26715, "PCS_NAD27_UTM_zone_15N"}, + {26716, "PCS_NAD27_UTM_zone_16N"}, + {26717, "PCS_NAD27_UTM_zone_17N"}, + {26718, "PCS_NAD27_UTM_zone_18N"}, + {26719, "PCS_NAD27_UTM_zone_19N"}, + {26720, "PCS_NAD27_UTM_zone_20N"}, + {26721, "PCS_NAD27_UTM_zone_21N"}, + {26722, "PCS_NAD27_UTM_zone_22N"}, + {26729, "PCS_NAD27_Alabama_East"}, + {26730, "PCS_NAD27_Alabama_West"}, + {26731, "PCS_NAD27_Alaska_zone_1"}, + {26732, "PCS_NAD27_Alaska_zone_2"}, + {26733, "PCS_NAD27_Alaska_zone_3"}, + {26734, "PCS_NAD27_Alaska_zone_4"}, + {26735, "PCS_NAD27_Alaska_zone_5"}, + {26736, "PCS_NAD27_Alaska_zone_6"}, + {26737, "PCS_NAD27_Alaska_zone_7"}, + {26738, "PCS_NAD27_Alaska_zone_8"}, + {26739, "PCS_NAD27_Alaska_zone_9"}, + {26740, "PCS_NAD27_Alaska_zone_10"}, + {26741, "PCS_NAD27_California_I"}, + {26742, "PCS_NAD27_California_II"}, + {26743, "PCS_NAD27_California_III"}, + {26744, "PCS_NAD27_California_IV"}, + {26745, "PCS_NAD27_California_V"}, + {26746, "PCS_NAD27_California_VI"}, + {26747, "PCS_NAD27_California_VII"}, + {26748, "PCS_NAD27_Arizona_East"}, + {26749, "PCS_NAD27_Arizona_Central"}, + {26750, "PCS_NAD27_Arizona_West"}, + {26751, "PCS_NAD27_Arkansas_North"}, + {26752, "PCS_NAD27_Arkansas_South"}, + {26753, "PCS_NAD27_Colorado_North"}, + {26754, "PCS_NAD27_Colorado_Central"}, + {26755, "PCS_NAD27_Colorado_South"}, + {26756, "PCS_NAD27_Connecticut"}, + {26757, "PCS_NAD27_Delaware"}, + {26758, "PCS_NAD27_Florida_East"}, + {26759, "PCS_NAD27_Florida_West"}, + {26760, "PCS_NAD27_Florida_North"}, + {26761, "PCS_NAD27_Hawaii_zone_1"}, + {26762, "PCS_NAD27_Hawaii_zone_2"}, + {26763, "PCS_NAD27_Hawaii_zone_3"}, + {26764, "PCS_NAD27_Hawaii_zone_4"}, + {26765, "PCS_NAD27_Hawaii_zone_5"}, + {26766, "PCS_NAD27_Georgia_East"}, + {26767, "PCS_NAD27_Georgia_West"}, + {26768, "PCS_NAD27_Idaho_East"}, + {26769, "PCS_NAD27_Idaho_Central"}, + {26770, "PCS_NAD27_Idaho_West"}, + {26771, "PCS_NAD27_Illinois_East"}, + {26772, "PCS_NAD27_Illinois_West"}, + {26773, "PCS_NAD27_Indiana_East"}, + {26774, "PCS_NAD27_BLM_14N_feet"}, + {26774, "PCS_NAD27_Indiana_West"}, + {26775, "PCS_NAD27_BLM_15N_feet"}, + {26775, "PCS_NAD27_Iowa_North"}, + {26776, "PCS_NAD27_BLM_16N_feet"}, + {26776, "PCS_NAD27_Iowa_South"}, + {26777, "PCS_NAD27_BLM_17N_feet"}, + {26777, "PCS_NAD27_Kansas_North"}, + {26778, "PCS_NAD27_Kansas_South"}, + {26779, "PCS_NAD27_Kentucky_North"}, + {26780, "PCS_NAD27_Kentucky_South"}, + {26781, "PCS_NAD27_Louisiana_North"}, + {26782, "PCS_NAD27_Louisiana_South"}, + {26783, "PCS_NAD27_Maine_East"}, + {26784, "PCS_NAD27_Maine_West"}, + {26785, "PCS_NAD27_Maryland"}, + {26786, "PCS_NAD27_Massachusetts"}, + {26787, "PCS_NAD27_Massachusetts_Is"}, + {26788, "PCS_NAD27_Michigan_North"}, + {26789, "PCS_NAD27_Michigan_Central"}, + {26790, "PCS_NAD27_Michigan_South"}, + {26791, "PCS_NAD27_Minnesota_North"}, + {26792, "PCS_NAD27_Minnesota_Cent"}, + {26793, "PCS_NAD27_Minnesota_South"}, + {26794, "PCS_NAD27_Mississippi_East"}, + {26795, "PCS_NAD27_Mississippi_West"}, + {26796, "PCS_NAD27_Missouri_East"}, + {26797, "PCS_NAD27_Missouri_Central"}, + {26798, "PCS_NAD27_Missouri_West"}, + {26801, "PCS_NAD_Michigan_Michigan_East"}, + {26802, "PCS_NAD_Michigan_Michigan_Old_Central"}, + {26803, "PCS_NAD_Michigan_Michigan_West"}, + {26903, "PCS_NAD83_UTM_zone_3N"}, + {26904, "PCS_NAD83_UTM_zone_4N"}, + {26905, "PCS_NAD83_UTM_zone_5N"}, + {26906, "PCS_NAD83_UTM_zone_6N"}, + {26907, "PCS_NAD83_UTM_zone_7N"}, + {26908, "PCS_NAD83_UTM_zone_8N"}, + {26909, "PCS_NAD83_UTM_zone_9N"}, + {26910, "PCS_NAD83_UTM_zone_10N"}, + {26911, "PCS_NAD83_UTM_zone_11N"}, + {26912, "PCS_NAD83_UTM_zone_12N"}, + {26913, "PCS_NAD83_UTM_zone_13N"}, + {26914, "PCS_NAD83_UTM_zone_14N"}, + {26915, "PCS_NAD83_UTM_zone_15N"}, + {26916, "PCS_NAD83_UTM_zone_16N"}, + {26917, "PCS_NAD83_UTM_zone_17N"}, + {26918, "PCS_NAD83_UTM_zone_18N"}, + {26919, "PCS_NAD83_UTM_zone_19N"}, + {26920, "PCS_NAD83_UTM_zone_20N"}, + {26921, "PCS_NAD83_UTM_zone_21N"}, + {26922, "PCS_NAD83_UTM_zone_22N"}, + {26923, "PCS_NAD83_UTM_zone_23N"}, + {26929, "PCS_NAD83_Alabama_East"}, + {26930, "PCS_NAD83_Alabama_West"}, + {26931, "PCS_NAD83_Alaska_zone_1"}, + {26932, "PCS_NAD83_Alaska_zone_2"}, + {26933, "PCS_NAD83_Alaska_zone_3"}, + {26934, "PCS_NAD83_Alaska_zone_4"}, + {26935, "PCS_NAD83_Alaska_zone_5"}, + {26936, "PCS_NAD83_Alaska_zone_6"}, + {26937, "PCS_NAD83_Alaska_zone_7"}, + {26938, "PCS_NAD83_Alaska_zone_8"}, + {26939, "PCS_NAD83_Alaska_zone_9"}, + {26940, "PCS_NAD83_Alaska_zone_10"}, + {26941, "PCS_NAD83_California_1"}, + {26942, "PCS_NAD83_California_2"}, + {26943, "PCS_NAD83_California_3"}, + {26944, "PCS_NAD83_California_4"}, + {26945, "PCS_NAD83_California_5"}, + {26946, "PCS_NAD83_California_6"}, + {26948, "PCS_NAD83_Arizona_East"}, + {26949, "PCS_NAD83_Arizona_Central"}, + {26950, "PCS_NAD83_Arizona_West"}, + {26951, "PCS_NAD83_Arkansas_North"}, + {26952, "PCS_NAD83_Arkansas_South"}, + {26953, "PCS_NAD83_Colorado_North"}, + {26954, "PCS_NAD83_Colorado_Central"}, + {26955, "PCS_NAD83_Colorado_South"}, + {26956, "PCS_NAD83_Connecticut"}, + {26957, "PCS_NAD83_Delaware"}, + {26958, "PCS_NAD83_Florida_East"}, + {26959, "PCS_NAD83_Florida_West"}, + {26960, "PCS_NAD83_Florida_North"}, + {26961, "PCS_NAD83_Hawaii_zone_1"}, + {26962, "PCS_NAD83_Hawaii_zone_2"}, + {26963, "PCS_NAD83_Hawaii_zone_3"}, + {26964, "PCS_NAD83_Hawaii_zone_4"}, + {26965, "PCS_NAD83_Hawaii_zone_5"}, + {26966, "PCS_NAD83_Georgia_East"}, + {26967, "PCS_NAD83_Georgia_West"}, + {26968, "PCS_NAD83_Idaho_East"}, + {26969, "PCS_NAD83_Idaho_Central"}, + {26970, "PCS_NAD83_Idaho_West"}, + {26971, "PCS_NAD83_Illinois_East"}, + {26972, "PCS_NAD83_Illinois_West"}, + {26973, "PCS_NAD83_Indiana_East"}, + {26974, "PCS_NAD83_Indiana_West"}, + {26975, "PCS_NAD83_Iowa_North"}, + {26976, "PCS_NAD83_Iowa_South"}, + {26977, "PCS_NAD83_Kansas_North"}, + {26978, "PCS_NAD83_Kansas_South"}, + {26979, "PCS_NAD83_Kentucky_North"}, + {26980, "PCS_NAD83_Kentucky_South"}, + {26981, "PCS_NAD83_Louisiana_North"}, + {26982, "PCS_NAD83_Louisiana_South"}, + {26983, "PCS_NAD83_Maine_East"}, + {26984, "PCS_NAD83_Maine_West"}, + {26985, "PCS_NAD83_Maryland"}, + {26986, "PCS_NAD83_Massachusetts"}, + {26987, "PCS_NAD83_Massachusetts_Is"}, + {26988, "PCS_NAD83_Michigan_North"}, + {26989, "PCS_NAD83_Michigan_Central"}, + {26990, "PCS_NAD83_Michigan_South"}, + {26991, "PCS_NAD83_Minnesota_North"}, + {26992, "PCS_NAD83_Minnesota_Cent"}, + {26993, "PCS_NAD83_Minnesota_South"}, + {26994, "PCS_NAD83_Mississippi_East"}, + {26995, "PCS_NAD83_Mississippi_West"}, + {26996, "PCS_NAD83_Missouri_East"}, + {26997, "PCS_NAD83_Missouri_Central"}, + {26998, "PCS_NAD83_Missouri_West"}, + {27038, "PCS_Nahrwan_1967_UTM_38N"}, + {27039, "PCS_Nahrwan_1967_UTM_39N"}, + {27040, "PCS_Nahrwan_1967_UTM_40N"}, + {27120, "PCS_Naparima_UTM_20N"}, + {27200, "PCS_GD49_NZ_Map_Grid"}, + {27291, "PCS_GD49_North_Island_Grid"}, + {27292, "PCS_GD49_South_Island_Grid"}, + {27429, "PCS_Datum_73_UTM_zone_29N"}, + {27500, "PCS_ATF_Nord_de_Guerre"}, + {27581, "PCS_NTF_France_I"}, + {27582, "PCS_NTF_France_II"}, + {27583, "PCS_NTF_France_III"}, + {27591, "PCS_NTF_Nord_France"}, + {27592, "PCS_NTF_Centre_France"}, + {27593, "PCS_NTF_Sud_France"}, + {27700, "PCS_British_National_Grid"}, + {28232, "PCS_Point_Noire_UTM_32S"}, + {28348, "PCS_GDA94_MGA_zone_48"}, + {28349, "PCS_GDA94_MGA_zone_49"}, + {28350, "PCS_GDA94_MGA_zone_50"}, + {28351, "PCS_GDA94_MGA_zone_51"}, + {28352, "PCS_GDA94_MGA_zone_52"}, + {28353, "PCS_GDA94_MGA_zone_53"}, + {28354, "PCS_GDA94_MGA_zone_54"}, + {28355, "PCS_GDA94_MGA_zone_55"}, + {28356, "PCS_GDA94_MGA_zone_56"}, + {28357, "PCS_GDA94_MGA_zone_57"}, + {28358, "PCS_GDA94_MGA_zone_58"}, + {28404, "PCS_Pulkovo_Gauss_zone_4"}, + {28405, "PCS_Pulkovo_Gauss_zone_5"}, + {28406, "PCS_Pulkovo_Gauss_zone_6"}, + {28407, "PCS_Pulkovo_Gauss_zone_7"}, + {28408, "PCS_Pulkovo_Gauss_zone_8"}, + {28409, "PCS_Pulkovo_Gauss_zone_9"}, + {28410, "PCS_Pulkovo_Gauss_zone_10"}, + {28411, "PCS_Pulkovo_Gauss_zone_11"}, + {28412, "PCS_Pulkovo_Gauss_zone_12"}, + {28413, "PCS_Pulkovo_Gauss_zone_13"}, + {28414, "PCS_Pulkovo_Gauss_zone_14"}, + {28415, "PCS_Pulkovo_Gauss_zone_15"}, + {28416, "PCS_Pulkovo_Gauss_zone_16"}, + {28417, "PCS_Pulkovo_Gauss_zone_17"}, + {28418, "PCS_Pulkovo_Gauss_zone_18"}, + {28419, "PCS_Pulkovo_Gauss_zone_19"}, + {28420, "PCS_Pulkovo_Gauss_zone_20"}, + {28421, "PCS_Pulkovo_Gauss_zone_21"}, + {28422, "PCS_Pulkovo_Gauss_zone_22"}, + {28423, "PCS_Pulkovo_Gauss_zone_23"}, + {28424, "PCS_Pulkovo_Gauss_zone_24"}, + {28425, "PCS_Pulkovo_Gauss_zone_25"}, + {28426, "PCS_Pulkovo_Gauss_zone_26"}, + {28427, "PCS_Pulkovo_Gauss_zone_27"}, + {28428, "PCS_Pulkovo_Gauss_zone_28"}, + {28429, "PCS_Pulkovo_Gauss_zone_29"}, + {28430, "PCS_Pulkovo_Gauss_zone_30"}, + {28431, "PCS_Pulkovo_Gauss_zone_31"}, + {28432, "PCS_Pulkovo_Gauss_zone_32"}, + {28464, "PCS_Pulkovo_Gauss_4N"}, + {28465, "PCS_Pulkovo_Gauss_5N"}, + {28466, "PCS_Pulkovo_Gauss_6N"}, + {28467, "PCS_Pulkovo_Gauss_7N"}, + {28468, "PCS_Pulkovo_Gauss_8N"}, + {28469, "PCS_Pulkovo_Gauss_9N"}, + {28470, "PCS_Pulkovo_Gauss_10N"}, + {28471, "PCS_Pulkovo_Gauss_11N"}, + {28472, "PCS_Pulkovo_Gauss_12N"}, + {28473, "PCS_Pulkovo_Gauss_13N"}, + {28474, "PCS_Pulkovo_Gauss_14N"}, + {28475, "PCS_Pulkovo_Gauss_15N"}, + {28476, "PCS_Pulkovo_Gauss_16N"}, + {28477, "PCS_Pulkovo_Gauss_17N"}, + {28478, "PCS_Pulkovo_Gauss_18N"}, + {28479, "PCS_Pulkovo_Gauss_19N"}, + {28480, "PCS_Pulkovo_Gauss_20N"}, + {28481, "PCS_Pulkovo_Gauss_21N"}, + {28482, "PCS_Pulkovo_Gauss_22N"}, + {28483, "PCS_Pulkovo_Gauss_23N"}, + {28484, "PCS_Pulkovo_Gauss_24N"}, + {28485, "PCS_Pulkovo_Gauss_25N"}, + {28486, "PCS_Pulkovo_Gauss_26N"}, + {28487, "PCS_Pulkovo_Gauss_27N"}, + {28488, "PCS_Pulkovo_Gauss_28N"}, + {28489, "PCS_Pulkovo_Gauss_29N"}, + {28490, "PCS_Pulkovo_Gauss_30N"}, + {28491, "PCS_Pulkovo_Gauss_31N"}, + {28492, "PCS_Pulkovo_Gauss_32N"}, + {28600, "PCS_Qatar_National_Grid"}, + {28991, "PCS_RD_Netherlands_Old"}, + {28992, "PCS_RD_Netherlands_New"}, + {29118, "PCS_SAD69_UTM_zone_18N"}, + {29119, "PCS_SAD69_UTM_zone_19N"}, + {29120, "PCS_SAD69_UTM_zone_20N"}, + {29121, "PCS_SAD69_UTM_zone_21N"}, + {29122, "PCS_SAD69_UTM_zone_22N"}, + {29177, "PCS_SAD69_UTM_zone_17S"}, + {29178, "PCS_SAD69_UTM_zone_18S"}, + {29179, "PCS_SAD69_UTM_zone_19S"}, + {29180, "PCS_SAD69_UTM_zone_20S"}, + {29181, "PCS_SAD69_UTM_zone_21S"}, + {29182, "PCS_SAD69_UTM_zone_22S"}, + {29183, "PCS_SAD69_UTM_zone_23S"}, + {29184, "PCS_SAD69_UTM_zone_24S"}, + {29185, "PCS_SAD69_UTM_zone_25S"}, + {29220, "PCS_Sapper_Hill_UTM_20S"}, + {29221, "PCS_Sapper_Hill_UTM_21S"}, + {29333, "PCS_Schwarzeck_UTM_33S"}, + {29635, "PCS_Sudan_UTM_zone_35N"}, + {29636, "PCS_Sudan_UTM_zone_36N"}, + {29700, "PCS_Tananarive_Laborde"}, + {29738, "PCS_Tananarive_UTM_38S"}, + {29739, "PCS_Tananarive_UTM_39S"}, + {29800, "PCS_Timbalai_1948_Borneo"}, + {29849, "PCS_Timbalai_1948_UTM_49N"}, + {29850, "PCS_Timbalai_1948_UTM_50N"}, + {29900, "PCS_TM65_Irish_Nat_Grid"}, + {30200, "PCS_Trinidad_1903_Trinidad"}, + {30339, "PCS_TC_1948_UTM_zone_39N"}, + {30340, "PCS_TC_1948_UTM_zone_40N"}, + {30491, "PCS_Voirol_N_Algerie_ancien"}, + {30492, "PCS_Voirol_S_Algerie_ancien"}, + {30591, "PCS_Voirol_Unifie_N_Algerie"}, + {30592, "PCS_Voirol_Unifie_S_Algerie"}, + {30600, "PCS_Bern_1938_Swiss_New"}, + {30729, "PCS_Nord_Sahara_UTM_29N"}, + {30730, "PCS_Nord_Sahara_UTM_30N"}, + {30731, "PCS_Nord_Sahara_UTM_31N"}, + {30732, "PCS_Nord_Sahara_UTM_32N"}, + {31028, "PCS_Yoff_UTM_zone_28N"}, + {31121, "PCS_Zanderij_UTM_zone_21N"}, + {31291, "PCS_MGI_Austria_West"}, + {31292, "PCS_MGI_Austria_Central"}, + {31293, "PCS_MGI_Austria_East"}, + {31300, "PCS_Belge_Lambert_72"}, + {31491, "PCS_DHDN_Germany_zone_1"}, + {31492, "PCS_DHDN_Germany_zone_2"}, + {31493, "PCS_DHDN_Germany_zone_3"}, + {31494, "PCS_DHDN_Germany_zone_4"}, + {31495, "PCS_DHDN_Germany_zone_5"}, + {32001, "PCS_NAD27_Montana_North"}, + {32002, "PCS_NAD27_Montana_Central"}, + {32003, "PCS_NAD27_Montana_South"}, + {32005, "PCS_NAD27_Nebraska_North"}, + {32006, "PCS_NAD27_Nebraska_South"}, + {32007, "PCS_NAD27_Nevada_East"}, + {32008, "PCS_NAD27_Nevada_Central"}, + {32009, "PCS_NAD27_Nevada_West"}, + {32010, "PCS_NAD27_New_Hampshire"}, + {32011, "PCS_NAD27_New_Jersey"}, + {32012, "PCS_NAD27_New_Mexico_East"}, + {32013, "PCS_NAD27_New_Mexico_Cent"}, + {32014, "PCS_NAD27_New_Mexico_West"}, + {32015, "PCS_NAD27_New_York_East"}, + {32016, "PCS_NAD27_New_York_Central"}, + {32017, "PCS_NAD27_New_York_West"}, + {32018, "PCS_NAD27_New_York_Long_Is"}, + {32019, "PCS_NAD27_North_Carolina"}, + {32020, "PCS_NAD27_North_Dakota_N"}, + {32021, "PCS_NAD27_North_Dakota_S"}, + {32022, "PCS_NAD27_Ohio_North"}, + {32023, "PCS_NAD27_Ohio_South"}, + {32024, "PCS_NAD27_Oklahoma_North"}, + {32025, "PCS_NAD27_Oklahoma_South"}, + {32026, "PCS_NAD27_Oregon_North"}, + {32027, "PCS_NAD27_Oregon_South"}, + {32028, "PCS_NAD27_Pennsylvania_N"}, + {32029, "PCS_NAD27_Pennsylvania_S"}, + {32030, "PCS_NAD27_Rhode_Island"}, + {32031, "PCS_NAD27_South_Carolina_N"}, + {32033, "PCS_NAD27_South_Carolina_S"}, + {32034, "PCS_NAD27_South_Dakota_N"}, + {32035, "PCS_NAD27_South_Dakota_S"}, + {32036, "PCS_NAD27_Tennessee"}, + {32037, "PCS_NAD27_Texas_North"}, + {32038, "PCS_NAD27_Texas_North_Cen"}, + {32039, "PCS_NAD27_Texas_Central"}, + {32040, "PCS_NAD27_Texas_South_Cen"}, + {32041, "PCS_NAD27_Texas_South"}, + {32042, "PCS_NAD27_Utah_North"}, + {32043, "PCS_NAD27_Utah_Central"}, + {32044, "PCS_NAD27_Utah_South"}, + {32045, "PCS_NAD27_Vermont"}, + {32046, "PCS_NAD27_Virginia_North"}, + {32047, "PCS_NAD27_Virginia_South"}, + {32048, "PCS_NAD27_Washington_North"}, + {32049, "PCS_NAD27_Washington_South"}, + {32050, "PCS_NAD27_West_Virginia_N"}, + {32051, "PCS_NAD27_West_Virginia_S"}, + {32052, "PCS_NAD27_Wisconsin_North"}, + {32053, "PCS_NAD27_Wisconsin_Cen"}, + {32054, "PCS_NAD27_Wisconsin_South"}, + {32055, "PCS_NAD27_Wyoming_East"}, + {32056, "PCS_NAD27_Wyoming_E_Cen"}, + {32057, "PCS_NAD27_Wyoming_W_Cen"}, + {32058, "PCS_NAD27_Wyoming_West"}, + {32059, "PCS_NAD27_Puerto_Rico"}, + {32060, "PCS_NAD27_St_Croix"}, + {32100, "PCS_NAD83_Montana"}, + {32104, "PCS_NAD83_Nebraska"}, + {32107, "PCS_NAD83_Nevada_East"}, + {32108, "PCS_NAD83_Nevada_Central"}, + {32109, "PCS_NAD83_Nevada_West"}, + {32110, "PCS_NAD83_New_Hampshire"}, + {32111, "PCS_NAD83_New_Jersey"}, + {32112, "PCS_NAD83_New_Mexico_East"}, + {32113, "PCS_NAD83_New_Mexico_Cent"}, + {32114, "PCS_NAD83_New_Mexico_West"}, + {32115, "PCS_NAD83_New_York_East"}, + {32116, "PCS_NAD83_New_York_Central"}, + {32117, "PCS_NAD83_New_York_West"}, + {32118, "PCS_NAD83_New_York_Long_Is"}, + {32119, "PCS_NAD83_North_Carolina"}, + {32120, "PCS_NAD83_North_Dakota_N"}, + {32121, "PCS_NAD83_North_Dakota_S"}, + {32122, "PCS_NAD83_Ohio_North"}, + {32123, "PCS_NAD83_Ohio_South"}, + {32124, "PCS_NAD83_Oklahoma_North"}, + {32125, "PCS_NAD83_Oklahoma_South"}, + {32126, "PCS_NAD83_Oregon_North"}, + {32127, "PCS_NAD83_Oregon_South"}, + {32128, "PCS_NAD83_Pennsylvania_N"}, + {32129, "PCS_NAD83_Pennsylvania_S"}, + {32130, "PCS_NAD83_Rhode_Island"}, + {32133, "PCS_NAD83_South_Carolina"}, + {32134, "PCS_NAD83_South_Dakota_N"}, + {32135, "PCS_NAD83_South_Dakota_S"}, + {32136, "PCS_NAD83_Tennessee"}, + {32137, "PCS_NAD83_Texas_North"}, + {32138, "PCS_NAD83_Texas_North_Cen"}, + {32139, "PCS_NAD83_Texas_Central"}, + {32140, "PCS_NAD83_Texas_South_Cen"}, + {32141, "PCS_NAD83_Texas_South"}, + {32142, "PCS_NAD83_Utah_North"}, + {32143, "PCS_NAD83_Utah_Central"}, + {32144, "PCS_NAD83_Utah_South"}, + {32145, "PCS_NAD83_Vermont"}, + {32146, "PCS_NAD83_Virginia_North"}, + {32147, "PCS_NAD83_Virginia_South"}, + {32148, "PCS_NAD83_Washington_North"}, + {32149, "PCS_NAD83_Washington_South"}, + {32150, "PCS_NAD83_West_Virginia_N"}, + {32151, "PCS_NAD83_West_Virginia_S"}, + {32152, "PCS_NAD83_Wisconsin_North"}, + {32153, "PCS_NAD83_Wisconsin_Cen"}, + {32154, "PCS_NAD83_Wisconsin_South"}, + {32155, "PCS_NAD83_Wyoming_East"}, + {32156, "PCS_NAD83_Wyoming_E_Cen"}, + {32157, "PCS_NAD83_Wyoming_W_Cen"}, + {32158, "PCS_NAD83_Wyoming_West"}, + {32161, "PCS_NAD83_Puerto_Rico_Virgin_Is"}, + {32201, "PCS_WGS72_UTM_zone_1N"}, + {32202, "PCS_WGS72_UTM_zone_2N"}, + {32203, "PCS_WGS72_UTM_zone_3N"}, + {32204, "PCS_WGS72_UTM_zone_4N"}, + {32205, "PCS_WGS72_UTM_zone_5N"}, + {32206, "PCS_WGS72_UTM_zone_6N"}, + {32207, "PCS_WGS72_UTM_zone_7N"}, + {32208, "PCS_WGS72_UTM_zone_8N"}, + {32209, "PCS_WGS72_UTM_zone_9N"}, + {32210, "PCS_WGS72_UTM_zone_10N"}, + {32211, "PCS_WGS72_UTM_zone_11N"}, + {32212, "PCS_WGS72_UTM_zone_12N"}, + {32213, "PCS_WGS72_UTM_zone_13N"}, + {32214, "PCS_WGS72_UTM_zone_14N"}, + {32215, "PCS_WGS72_UTM_zone_15N"}, + {32216, "PCS_WGS72_UTM_zone_16N"}, + {32217, "PCS_WGS72_UTM_zone_17N"}, + {32218, "PCS_WGS72_UTM_zone_18N"}, + {32219, "PCS_WGS72_UTM_zone_19N"}, + {32220, "PCS_WGS72_UTM_zone_20N"}, + {32221, "PCS_WGS72_UTM_zone_21N"}, + {32222, "PCS_WGS72_UTM_zone_22N"}, + {32223, "PCS_WGS72_UTM_zone_23N"}, + {32224, "PCS_WGS72_UTM_zone_24N"}, + {32225, "PCS_WGS72_UTM_zone_25N"}, + {32226, "PCS_WGS72_UTM_zone_26N"}, + {32227, "PCS_WGS72_UTM_zone_27N"}, + {32228, "PCS_WGS72_UTM_zone_28N"}, + {32229, "PCS_WGS72_UTM_zone_29N"}, + {32230, "PCS_WGS72_UTM_zone_30N"}, + {32231, "PCS_WGS72_UTM_zone_31N"}, + {32232, "PCS_WGS72_UTM_zone_32N"}, + {32233, "PCS_WGS72_UTM_zone_33N"}, + {32234, "PCS_WGS72_UTM_zone_34N"}, + {32235, "PCS_WGS72_UTM_zone_35N"}, + {32236, "PCS_WGS72_UTM_zone_36N"}, + {32237, "PCS_WGS72_UTM_zone_37N"}, + {32238, "PCS_WGS72_UTM_zone_38N"}, + {32239, "PCS_WGS72_UTM_zone_39N"}, + {32240, "PCS_WGS72_UTM_zone_40N"}, + {32241, "PCS_WGS72_UTM_zone_41N"}, + {32242, "PCS_WGS72_UTM_zone_42N"}, + {32243, "PCS_WGS72_UTM_zone_43N"}, + {32244, "PCS_WGS72_UTM_zone_44N"}, + {32245, "PCS_WGS72_UTM_zone_45N"}, + {32246, "PCS_WGS72_UTM_zone_46N"}, + {32247, "PCS_WGS72_UTM_zone_47N"}, + {32248, "PCS_WGS72_UTM_zone_48N"}, + {32249, "PCS_WGS72_UTM_zone_49N"}, + {32250, "PCS_WGS72_UTM_zone_50N"}, + {32251, "PCS_WGS72_UTM_zone_51N"}, + {32252, "PCS_WGS72_UTM_zone_52N"}, + {32253, "PCS_WGS72_UTM_zone_53N"}, + {32254, "PCS_WGS72_UTM_zone_54N"}, + {32255, "PCS_WGS72_UTM_zone_55N"}, + {32256, "PCS_WGS72_UTM_zone_56N"}, + {32257, "PCS_WGS72_UTM_zone_57N"}, + {32258, "PCS_WGS72_UTM_zone_58N"}, + {32259, "PCS_WGS72_UTM_zone_59N"}, + {32260, "PCS_WGS72_UTM_zone_60N"}, + {32301, "PCS_WGS72_UTM_zone_1S"}, + {32302, "PCS_WGS72_UTM_zone_2S"}, + {32303, "PCS_WGS72_UTM_zone_3S"}, + {32304, "PCS_WGS72_UTM_zone_4S"}, + {32305, "PCS_WGS72_UTM_zone_5S"}, + {32306, "PCS_WGS72_UTM_zone_6S"}, + {32307, "PCS_WGS72_UTM_zone_7S"}, + {32308, "PCS_WGS72_UTM_zone_8S"}, + {32309, "PCS_WGS72_UTM_zone_9S"}, + {32310, "PCS_WGS72_UTM_zone_10S"}, + {32311, "PCS_WGS72_UTM_zone_11S"}, + {32312, "PCS_WGS72_UTM_zone_12S"}, + {32313, "PCS_WGS72_UTM_zone_13S"}, + {32314, "PCS_WGS72_UTM_zone_14S"}, + {32315, "PCS_WGS72_UTM_zone_15S"}, + {32316, "PCS_WGS72_UTM_zone_16S"}, + {32317, "PCS_WGS72_UTM_zone_17S"}, + {32318, "PCS_WGS72_UTM_zone_18S"}, + {32319, "PCS_WGS72_UTM_zone_19S"}, + {32320, "PCS_WGS72_UTM_zone_20S"}, + {32321, "PCS_WGS72_UTM_zone_21S"}, + {32322, "PCS_WGS72_UTM_zone_22S"}, + {32323, "PCS_WGS72_UTM_zone_23S"}, + {32324, "PCS_WGS72_UTM_zone_24S"}, + {32325, "PCS_WGS72_UTM_zone_25S"}, + {32326, "PCS_WGS72_UTM_zone_26S"}, + {32327, "PCS_WGS72_UTM_zone_27S"}, + {32328, "PCS_WGS72_UTM_zone_28S"}, + {32329, "PCS_WGS72_UTM_zone_29S"}, + {32330, "PCS_WGS72_UTM_zone_30S"}, + {32331, "PCS_WGS72_UTM_zone_31S"}, + {32332, "PCS_WGS72_UTM_zone_32S"}, + {32333, "PCS_WGS72_UTM_zone_33S"}, + {32334, "PCS_WGS72_UTM_zone_34S"}, + {32335, "PCS_WGS72_UTM_zone_35S"}, + {32336, "PCS_WGS72_UTM_zone_36S"}, + {32337, "PCS_WGS72_UTM_zone_37S"}, + {32338, "PCS_WGS72_UTM_zone_38S"}, + {32339, "PCS_WGS72_UTM_zone_39S"}, + {32340, "PCS_WGS72_UTM_zone_40S"}, + {32341, "PCS_WGS72_UTM_zone_41S"}, + {32342, "PCS_WGS72_UTM_zone_42S"}, + {32343, "PCS_WGS72_UTM_zone_43S"}, + {32344, "PCS_WGS72_UTM_zone_44S"}, + {32345, "PCS_WGS72_UTM_zone_45S"}, + {32346, "PCS_WGS72_UTM_zone_46S"}, + {32347, "PCS_WGS72_UTM_zone_47S"}, + {32348, "PCS_WGS72_UTM_zone_48S"}, + {32349, "PCS_WGS72_UTM_zone_49S"}, + {32350, "PCS_WGS72_UTM_zone_50S"}, + {32351, "PCS_WGS72_UTM_zone_51S"}, + {32352, "PCS_WGS72_UTM_zone_52S"}, + {32353, "PCS_WGS72_UTM_zone_53S"}, + {32354, "PCS_WGS72_UTM_zone_54S"}, + {32355, "PCS_WGS72_UTM_zone_55S"}, + {32356, "PCS_WGS72_UTM_zone_56S"}, + {32357, "PCS_WGS72_UTM_zone_57S"}, + {32358, "PCS_WGS72_UTM_zone_58S"}, + {32359, "PCS_WGS72_UTM_zone_59S"}, + {32360, "PCS_WGS72_UTM_zone_60S"}, + {32401, "PCS_WGS72BE_UTM_zone_1N"}, + {32402, "PCS_WGS72BE_UTM_zone_2N"}, + {32403, "PCS_WGS72BE_UTM_zone_3N"}, + {32404, "PCS_WGS72BE_UTM_zone_4N"}, + {32405, "PCS_WGS72BE_UTM_zone_5N"}, + {32406, "PCS_WGS72BE_UTM_zone_6N"}, + {32407, "PCS_WGS72BE_UTM_zone_7N"}, + {32408, "PCS_WGS72BE_UTM_zone_8N"}, + {32409, "PCS_WGS72BE_UTM_zone_9N"}, + {32410, "PCS_WGS72BE_UTM_zone_10N"}, + {32411, "PCS_WGS72BE_UTM_zone_11N"}, + {32412, "PCS_WGS72BE_UTM_zone_12N"}, + {32413, "PCS_WGS72BE_UTM_zone_13N"}, + {32414, "PCS_WGS72BE_UTM_zone_14N"}, + {32415, "PCS_WGS72BE_UTM_zone_15N"}, + {32416, "PCS_WGS72BE_UTM_zone_16N"}, + {32417, "PCS_WGS72BE_UTM_zone_17N"}, + {32418, "PCS_WGS72BE_UTM_zone_18N"}, + {32419, "PCS_WGS72BE_UTM_zone_19N"}, + {32420, "PCS_WGS72BE_UTM_zone_20N"}, + {32421, "PCS_WGS72BE_UTM_zone_21N"}, + {32422, "PCS_WGS72BE_UTM_zone_22N"}, + {32423, "PCS_WGS72BE_UTM_zone_23N"}, + {32424, "PCS_WGS72BE_UTM_zone_24N"}, + {32425, "PCS_WGS72BE_UTM_zone_25N"}, + {32426, "PCS_WGS72BE_UTM_zone_26N"}, + {32427, "PCS_WGS72BE_UTM_zone_27N"}, + {32428, "PCS_WGS72BE_UTM_zone_28N"}, + {32429, "PCS_WGS72BE_UTM_zone_29N"}, + {32430, "PCS_WGS72BE_UTM_zone_30N"}, + {32431, "PCS_WGS72BE_UTM_zone_31N"}, + {32432, "PCS_WGS72BE_UTM_zone_32N"}, + {32433, "PCS_WGS72BE_UTM_zone_33N"}, + {32434, "PCS_WGS72BE_UTM_zone_34N"}, + {32435, "PCS_WGS72BE_UTM_zone_35N"}, + {32436, "PCS_WGS72BE_UTM_zone_36N"}, + {32437, "PCS_WGS72BE_UTM_zone_37N"}, + {32438, "PCS_WGS72BE_UTM_zone_38N"}, + {32439, "PCS_WGS72BE_UTM_zone_39N"}, + {32440, "PCS_WGS72BE_UTM_zone_40N"}, + {32441, "PCS_WGS72BE_UTM_zone_41N"}, + {32442, "PCS_WGS72BE_UTM_zone_42N"}, + {32443, "PCS_WGS72BE_UTM_zone_43N"}, + {32444, "PCS_WGS72BE_UTM_zone_44N"}, + {32445, "PCS_WGS72BE_UTM_zone_45N"}, + {32446, "PCS_WGS72BE_UTM_zone_46N"}, + {32447, "PCS_WGS72BE_UTM_zone_47N"}, + {32448, "PCS_WGS72BE_UTM_zone_48N"}, + {32449, "PCS_WGS72BE_UTM_zone_49N"}, + {32450, "PCS_WGS72BE_UTM_zone_50N"}, + {32451, "PCS_WGS72BE_UTM_zone_51N"}, + {32452, "PCS_WGS72BE_UTM_zone_52N"}, + {32453, "PCS_WGS72BE_UTM_zone_53N"}, + {32454, "PCS_WGS72BE_UTM_zone_54N"}, + {32455, "PCS_WGS72BE_UTM_zone_55N"}, + {32456, "PCS_WGS72BE_UTM_zone_56N"}, + {32457, "PCS_WGS72BE_UTM_zone_57N"}, + {32458, "PCS_WGS72BE_UTM_zone_58N"}, + {32459, "PCS_WGS72BE_UTM_zone_59N"}, + {32460, "PCS_WGS72BE_UTM_zone_60N"}, + {32501, "PCS_WGS72BE_UTM_zone_1S"}, + {32502, "PCS_WGS72BE_UTM_zone_2S"}, + {32503, "PCS_WGS72BE_UTM_zone_3S"}, + {32504, "PCS_WGS72BE_UTM_zone_4S"}, + {32505, "PCS_WGS72BE_UTM_zone_5S"}, + {32506, "PCS_WGS72BE_UTM_zone_6S"}, + {32507, "PCS_WGS72BE_UTM_zone_7S"}, + {32508, "PCS_WGS72BE_UTM_zone_8S"}, + {32509, "PCS_WGS72BE_UTM_zone_9S"}, + {32510, "PCS_WGS72BE_UTM_zone_10S"}, + {32511, "PCS_WGS72BE_UTM_zone_11S"}, + {32512, "PCS_WGS72BE_UTM_zone_12S"}, + {32513, "PCS_WGS72BE_UTM_zone_13S"}, + {32514, "PCS_WGS72BE_UTM_zone_14S"}, + {32515, "PCS_WGS72BE_UTM_zone_15S"}, + {32516, "PCS_WGS72BE_UTM_zone_16S"}, + {32517, "PCS_WGS72BE_UTM_zone_17S"}, + {32518, "PCS_WGS72BE_UTM_zone_18S"}, + {32519, "PCS_WGS72BE_UTM_zone_19S"}, + {32520, "PCS_WGS72BE_UTM_zone_20S"}, + {32521, "PCS_WGS72BE_UTM_zone_21S"}, + {32522, "PCS_WGS72BE_UTM_zone_22S"}, + {32523, "PCS_WGS72BE_UTM_zone_23S"}, + {32524, "PCS_WGS72BE_UTM_zone_24S"}, + {32525, "PCS_WGS72BE_UTM_zone_25S"}, + {32526, "PCS_WGS72BE_UTM_zone_26S"}, + {32527, "PCS_WGS72BE_UTM_zone_27S"}, + {32528, "PCS_WGS72BE_UTM_zone_28S"}, + {32529, "PCS_WGS72BE_UTM_zone_29S"}, + {32530, "PCS_WGS72BE_UTM_zone_30S"}, + {32531, "PCS_WGS72BE_UTM_zone_31S"}, + {32532, "PCS_WGS72BE_UTM_zone_32S"}, + {32533, "PCS_WGS72BE_UTM_zone_33S"}, + {32534, "PCS_WGS72BE_UTM_zone_34S"}, + {32535, "PCS_WGS72BE_UTM_zone_35S"}, + {32536, "PCS_WGS72BE_UTM_zone_36S"}, + {32537, "PCS_WGS72BE_UTM_zone_37S"}, + {32538, "PCS_WGS72BE_UTM_zone_38S"}, + {32539, "PCS_WGS72BE_UTM_zone_39S"}, + {32540, "PCS_WGS72BE_UTM_zone_40S"}, + {32541, "PCS_WGS72BE_UTM_zone_41S"}, + {32542, "PCS_WGS72BE_UTM_zone_42S"}, + {32543, "PCS_WGS72BE_UTM_zone_43S"}, + {32544, "PCS_WGS72BE_UTM_zone_44S"}, + {32545, "PCS_WGS72BE_UTM_zone_45S"}, + {32546, "PCS_WGS72BE_UTM_zone_46S"}, + {32547, "PCS_WGS72BE_UTM_zone_47S"}, + {32548, "PCS_WGS72BE_UTM_zone_48S"}, + {32549, "PCS_WGS72BE_UTM_zone_49S"}, + {32550, "PCS_WGS72BE_UTM_zone_50S"}, + {32551, "PCS_WGS72BE_UTM_zone_51S"}, + {32552, "PCS_WGS72BE_UTM_zone_52S"}, + {32553, "PCS_WGS72BE_UTM_zone_53S"}, + {32554, "PCS_WGS72BE_UTM_zone_54S"}, + {32555, "PCS_WGS72BE_UTM_zone_55S"}, + {32556, "PCS_WGS72BE_UTM_zone_56S"}, + {32557, "PCS_WGS72BE_UTM_zone_57S"}, + {32558, "PCS_WGS72BE_UTM_zone_58S"}, + {32559, "PCS_WGS72BE_UTM_zone_59S"}, + {32560, "PCS_WGS72BE_UTM_zone_60S"}, + {32601, "PCS_WGS84_UTM_zone_1N"}, + {32602, "PCS_WGS84_UTM_zone_2N"}, + {32603, "PCS_WGS84_UTM_zone_3N"}, + {32604, "PCS_WGS84_UTM_zone_4N"}, + {32605, "PCS_WGS84_UTM_zone_5N"}, + {32606, "PCS_WGS84_UTM_zone_6N"}, + {32607, "PCS_WGS84_UTM_zone_7N"}, + {32608, "PCS_WGS84_UTM_zone_8N"}, + {32609, "PCS_WGS84_UTM_zone_9N"}, + {32610, "PCS_WGS84_UTM_zone_10N"}, + {32611, "PCS_WGS84_UTM_zone_11N"}, + {32612, "PCS_WGS84_UTM_zone_12N"}, + {32613, "PCS_WGS84_UTM_zone_13N"}, + {32614, "PCS_WGS84_UTM_zone_14N"}, + {32615, "PCS_WGS84_UTM_zone_15N"}, + {32616, "PCS_WGS84_UTM_zone_16N"}, + {32617, "PCS_WGS84_UTM_zone_17N"}, + {32618, "PCS_WGS84_UTM_zone_18N"}, + {32619, "PCS_WGS84_UTM_zone_19N"}, + {32620, "PCS_WGS84_UTM_zone_20N"}, + {32621, "PCS_WGS84_UTM_zone_21N"}, + {32622, "PCS_WGS84_UTM_zone_22N"}, + {32623, "PCS_WGS84_UTM_zone_23N"}, + {32624, "PCS_WGS84_UTM_zone_24N"}, + {32625, "PCS_WGS84_UTM_zone_25N"}, + {32626, "PCS_WGS84_UTM_zone_26N"}, + {32627, "PCS_WGS84_UTM_zone_27N"}, + {32628, "PCS_WGS84_UTM_zone_28N"}, + {32629, "PCS_WGS84_UTM_zone_29N"}, + {32630, "PCS_WGS84_UTM_zone_30N"}, + {32631, "PCS_WGS84_UTM_zone_31N"}, + {32632, "PCS_WGS84_UTM_zone_32N"}, + {32633, "PCS_WGS84_UTM_zone_33N"}, + {32634, "PCS_WGS84_UTM_zone_34N"}, + {32635, "PCS_WGS84_UTM_zone_35N"}, + {32636, "PCS_WGS84_UTM_zone_36N"}, + {32637, "PCS_WGS84_UTM_zone_37N"}, + {32638, "PCS_WGS84_UTM_zone_38N"}, + {32639, "PCS_WGS84_UTM_zone_39N"}, + {32640, "PCS_WGS84_UTM_zone_40N"}, + {32641, "PCS_WGS84_UTM_zone_41N"}, + {32642, "PCS_WGS84_UTM_zone_42N"}, + {32643, "PCS_WGS84_UTM_zone_43N"}, + {32644, "PCS_WGS84_UTM_zone_44N"}, + {32645, "PCS_WGS84_UTM_zone_45N"}, + {32646, "PCS_WGS84_UTM_zone_46N"}, + {32647, "PCS_WGS84_UTM_zone_47N"}, + {32648, "PCS_WGS84_UTM_zone_48N"}, + {32649, "PCS_WGS84_UTM_zone_49N"}, + {32650, "PCS_WGS84_UTM_zone_50N"}, + {32651, "PCS_WGS84_UTM_zone_51N"}, + {32652, "PCS_WGS84_UTM_zone_52N"}, + {32653, "PCS_WGS84_UTM_zone_53N"}, + {32654, "PCS_WGS84_UTM_zone_54N"}, + {32655, "PCS_WGS84_UTM_zone_55N"}, + {32656, "PCS_WGS84_UTM_zone_56N"}, + {32657, "PCS_WGS84_UTM_zone_57N"}, + {32658, "PCS_WGS84_UTM_zone_58N"}, + {32659, "PCS_WGS84_UTM_zone_59N"}, + {32660, "PCS_WGS84_UTM_zone_60N"}, + {32701, "PCS_WGS84_UTM_zone_1S"}, + {32702, "PCS_WGS84_UTM_zone_2S"}, + {32703, "PCS_WGS84_UTM_zone_3S"}, + {32704, "PCS_WGS84_UTM_zone_4S"}, + {32705, "PCS_WGS84_UTM_zone_5S"}, + {32706, "PCS_WGS84_UTM_zone_6S"}, + {32707, "PCS_WGS84_UTM_zone_7S"}, + {32708, "PCS_WGS84_UTM_zone_8S"}, + {32709, "PCS_WGS84_UTM_zone_9S"}, + {32710, "PCS_WGS84_UTM_zone_10S"}, + {32711, "PCS_WGS84_UTM_zone_11S"}, + {32712, "PCS_WGS84_UTM_zone_12S"}, + {32713, "PCS_WGS84_UTM_zone_13S"}, + {32714, "PCS_WGS84_UTM_zone_14S"}, + {32715, "PCS_WGS84_UTM_zone_15S"}, + {32716, "PCS_WGS84_UTM_zone_16S"}, + {32717, "PCS_WGS84_UTM_zone_17S"}, + {32718, "PCS_WGS84_UTM_zone_18S"}, + {32719, "PCS_WGS84_UTM_zone_19S"}, + {32720, "PCS_WGS84_UTM_zone_20S"}, + {32721, "PCS_WGS84_UTM_zone_21S"}, + {32722, "PCS_WGS84_UTM_zone_22S"}, + {32723, "PCS_WGS84_UTM_zone_23S"}, + {32724, "PCS_WGS84_UTM_zone_24S"}, + {32725, "PCS_WGS84_UTM_zone_25S"}, + {32726, "PCS_WGS84_UTM_zone_26S"}, + {32727, "PCS_WGS84_UTM_zone_27S"}, + {32728, "PCS_WGS84_UTM_zone_28S"}, + {32729, "PCS_WGS84_UTM_zone_29S"}, + {32730, "PCS_WGS84_UTM_zone_30S"}, + {32731, "PCS_WGS84_UTM_zone_31S"}, + {32732, "PCS_WGS84_UTM_zone_32S"}, + {32733, "PCS_WGS84_UTM_zone_33S"}, + {32734, "PCS_WGS84_UTM_zone_34S"}, + {32735, "PCS_WGS84_UTM_zone_35S"}, + {32736, "PCS_WGS84_UTM_zone_36S"}, + {32737, "PCS_WGS84_UTM_zone_37S"}, + {32738, "PCS_WGS84_UTM_zone_38S"}, + {32739, "PCS_WGS84_UTM_zone_39S"}, + {32740, "PCS_WGS84_UTM_zone_40S"}, + {32741, "PCS_WGS84_UTM_zone_41S"}, + {32742, "PCS_WGS84_UTM_zone_42S"}, + {32743, "PCS_WGS84_UTM_zone_43S"}, + {32744, "PCS_WGS84_UTM_zone_44S"}, + {32745, "PCS_WGS84_UTM_zone_45S"}, + {32746, "PCS_WGS84_UTM_zone_46S"}, + {32747, "PCS_WGS84_UTM_zone_47S"}, + {32748, "PCS_WGS84_UTM_zone_48S"}, + {32749, "PCS_WGS84_UTM_zone_49S"}, + {32750, "PCS_WGS84_UTM_zone_50S"}, + {32751, "PCS_WGS84_UTM_zone_51S"}, + {32752, "PCS_WGS84_UTM_zone_52S"}, + {32753, "PCS_WGS84_UTM_zone_53S"}, + {32754, "PCS_WGS84_UTM_zone_54S"}, + {32755, "PCS_WGS84_UTM_zone_55S"}, + {32756, "PCS_WGS84_UTM_zone_56S"}, + {32757, "PCS_WGS84_UTM_zone_57S"}, + {32758, "PCS_WGS84_UTM_zone_58S"}, + {32759, "PCS_WGS84_UTM_zone_59S"}, + {32760, "PCS_WGS84_UTM_zone_60S"} +}; -extern const TiffGeoTagKeyName ff_tiff_projection_codes[298]; +static const TiffGeoTagKeyName tiff_projection_codes[] = { + {10101, "Proj_Alabama_CS27_East"}, + {10102, "Proj_Alabama_CS27_West"}, + {10131, "Proj_Alabama_CS83_East"}, + {10132, "Proj_Alabama_CS83_West"}, + {10201, "Proj_Arizona_Coordinate_System_east"}, + {10202, "Proj_Arizona_Coordinate_System_Central"}, + {10203, "Proj_Arizona_Coordinate_System_west"}, + {10231, "Proj_Arizona_CS83_east"}, + {10232, "Proj_Arizona_CS83_Central"}, + {10233, "Proj_Arizona_CS83_west"}, + {10301, "Proj_Arkansas_CS27_North"}, + {10302, "Proj_Arkansas_CS27_South"}, + {10331, "Proj_Arkansas_CS83_North"}, + {10332, "Proj_Arkansas_CS83_South"}, + {10401, "Proj_California_CS27_I"}, + {10402, "Proj_California_CS27_II"}, + {10403, "Proj_California_CS27_III"}, + {10404, "Proj_California_CS27_IV"}, + {10405, "Proj_California_CS27_V"}, + {10406, "Proj_California_CS27_VI"}, + {10407, "Proj_California_CS27_VII"}, + {10431, "Proj_California_CS83_1"}, + {10432, "Proj_California_CS83_2"}, + {10433, "Proj_California_CS83_3"}, + {10434, "Proj_California_CS83_4"}, + {10435, "Proj_California_CS83_5"}, + {10436, "Proj_California_CS83_6"}, + {10501, "Proj_Colorado_CS27_North"}, + {10502, "Proj_Colorado_CS27_Central"}, + {10503, "Proj_Colorado_CS27_South"}, + {10531, "Proj_Colorado_CS83_North"}, + {10532, "Proj_Colorado_CS83_Central"}, + {10533, "Proj_Colorado_CS83_South"}, + {10600, "Proj_Connecticut_CS27"}, + {10630, "Proj_Connecticut_CS83"}, + {10700, "Proj_Delaware_CS27"}, + {10730, "Proj_Delaware_CS83"}, + {10901, "Proj_Florida_CS27_East"}, + {10902, "Proj_Florida_CS27_West"}, + {10903, "Proj_Florida_CS27_North"}, + {10931, "Proj_Florida_CS83_East"}, + {10932, "Proj_Florida_CS83_West"}, + {10933, "Proj_Florida_CS83_North"}, + {11001, "Proj_Georgia_CS27_East"}, + {11002, "Proj_Georgia_CS27_West"}, + {11031, "Proj_Georgia_CS83_East"}, + {11032, "Proj_Georgia_CS83_West"}, + {11101, "Proj_Idaho_CS27_East"}, + {11102, "Proj_Idaho_CS27_Central"}, + {11103, "Proj_Idaho_CS27_West"}, + {11131, "Proj_Idaho_CS83_East"}, + {11132, "Proj_Idaho_CS83_Central"}, + {11133, "Proj_Idaho_CS83_West"}, + {11201, "Proj_Illinois_CS27_East"}, + {11202, "Proj_Illinois_CS27_West"}, + {11231, "Proj_Illinois_CS83_East"}, + {11232, "Proj_Illinois_CS83_West"}, + {11301, "Proj_Indiana_CS27_East"}, + {11302, "Proj_Indiana_CS27_West"}, + {11331, "Proj_Indiana_CS83_East"}, + {11332, "Proj_Indiana_CS83_West"}, + {11401, "Proj_Iowa_CS27_North"}, + {11402, "Proj_Iowa_CS27_South"}, + {11431, "Proj_Iowa_CS83_North"}, + {11432, "Proj_Iowa_CS83_South"}, + {11501, "Proj_Kansas_CS27_North"}, + {11502, "Proj_Kansas_CS27_South"}, + {11531, "Proj_Kansas_CS83_North"}, + {11532, "Proj_Kansas_CS83_South"}, + {11601, "Proj_Kentucky_CS27_North"}, + {11602, "Proj_Kentucky_CS27_South"}, + {11631, "Proj_Kentucky_CS83_North"}, + {11632, "Proj_Kentucky_CS83_South"}, + {11701, "Proj_Louisiana_CS27_North"}, + {11702, "Proj_Louisiana_CS27_South"}, + {11731, "Proj_Louisiana_CS83_North"}, + {11732, "Proj_Louisiana_CS83_South"}, + {11801, "Proj_Maine_CS27_East"}, + {11802, "Proj_Maine_CS27_West"}, + {11831, "Proj_Maine_CS83_East"}, + {11832, "Proj_Maine_CS83_West"}, + {11900, "Proj_Maryland_CS27"}, + {11930, "Proj_Maryland_CS83"}, + {12001, "Proj_Massachusetts_CS27_Mainland"}, + {12002, "Proj_Massachusetts_CS27_Island"}, + {12031, "Proj_Massachusetts_CS83_Mainland"}, + {12032, "Proj_Massachusetts_CS83_Island"}, + {12101, "Proj_Michigan_State_Plane_East"}, + {12102, "Proj_Michigan_State_Plane_Old_Central"}, + {12103, "Proj_Michigan_State_Plane_West"}, + {12111, "Proj_Michigan_CS27_North"}, + {12112, "Proj_Michigan_CS27_Central"}, + {12113, "Proj_Michigan_CS27_South"}, + {12141, "Proj_Michigan_CS83_North"}, + {12142, "Proj_Michigan_CS83_Central"}, + {12143, "Proj_Michigan_CS83_South"}, + {12201, "Proj_Minnesota_CS27_North"}, + {12202, "Proj_Minnesota_CS27_Central"}, + {12203, "Proj_Minnesota_CS27_South"}, + {12231, "Proj_Minnesota_CS83_North"}, + {12232, "Proj_Minnesota_CS83_Central"}, + {12233, "Proj_Minnesota_CS83_South"}, + {12301, "Proj_Mississippi_CS27_East"}, + {12302, "Proj_Mississippi_CS27_West"}, + {12331, "Proj_Mississippi_CS83_East"}, + {12332, "Proj_Mississippi_CS83_West"}, + {12401, "Proj_Missouri_CS27_East"}, + {12402, "Proj_Missouri_CS27_Central"}, + {12403, "Proj_Missouri_CS27_West"}, + {12431, "Proj_Missouri_CS83_East"}, + {12432, "Proj_Missouri_CS83_Central"}, + {12433, "Proj_Missouri_CS83_West"}, + {12501, "Proj_Montana_CS27_North"}, + {12502, "Proj_Montana_CS27_Central"}, + {12503, "Proj_Montana_CS27_South"}, + {12530, "Proj_Montana_CS83"}, + {12601, "Proj_Nebraska_CS27_North"}, + {12602, "Proj_Nebraska_CS27_South"}, + {12630, "Proj_Nebraska_CS83"}, + {12701, "Proj_Nevada_CS27_East"}, + {12702, "Proj_Nevada_CS27_Central"}, + {12703, "Proj_Nevada_CS27_West"}, + {12731, "Proj_Nevada_CS83_East"}, + {12732, "Proj_Nevada_CS83_Central"}, + {12733, "Proj_Nevada_CS83_West"}, + {12800, "Proj_New_Hampshire_CS27"}, + {12830, "Proj_New_Hampshire_CS83"}, + {12900, "Proj_New_Jersey_CS27"}, + {12930, "Proj_New_Jersey_CS83"}, + {13001, "Proj_New_Mexico_CS27_East"}, + {13002, "Proj_New_Mexico_CS27_Central"}, + {13003, "Proj_New_Mexico_CS27_West"}, + {13031, "Proj_New_Mexico_CS83_East"}, + {13032, "Proj_New_Mexico_CS83_Central"}, + {13033, "Proj_New_Mexico_CS83_West"}, + {13101, "Proj_New_York_CS27_East"}, + {13102, "Proj_New_York_CS27_Central"}, + {13103, "Proj_New_York_CS27_West"}, + {13104, "Proj_New_York_CS27_Long_Island"}, + {13131, "Proj_New_York_CS83_East"}, + {13132, "Proj_New_York_CS83_Central"}, + {13133, "Proj_New_York_CS83_West"}, + {13134, "Proj_New_York_CS83_Long_Island"}, + {13200, "Proj_North_Carolina_CS27"}, + {13230, "Proj_North_Carolina_CS83"}, + {13301, "Proj_North_Dakota_CS27_North"}, + {13302, "Proj_North_Dakota_CS27_South"}, + {13331, "Proj_North_Dakota_CS83_North"}, + {13332, "Proj_North_Dakota_CS83_South"}, + {13401, "Proj_Ohio_CS27_North"}, + {13402, "Proj_Ohio_CS27_South"}, + {13431, "Proj_Ohio_CS83_North"}, + {13432, "Proj_Ohio_CS83_South"}, + {13501, "Proj_Oklahoma_CS27_North"}, + {13502, "Proj_Oklahoma_CS27_South"}, + {13531, "Proj_Oklahoma_CS83_North"}, + {13532, "Proj_Oklahoma_CS83_South"}, + {13601, "Proj_Oregon_CS27_North"}, + {13602, "Proj_Oregon_CS27_South"}, + {13631, "Proj_Oregon_CS83_North"}, + {13632, "Proj_Oregon_CS83_South"}, + {13701, "Proj_Pennsylvania_CS27_North"}, + {13702, "Proj_Pennsylvania_CS27_South"}, + {13731, "Proj_Pennsylvania_CS83_North"}, + {13732, "Proj_Pennsylvania_CS83_South"}, + {13800, "Proj_Rhode_Island_CS27"}, + {13830, "Proj_Rhode_Island_CS83"}, + {13901, "Proj_South_Carolina_CS27_North"}, + {13902, "Proj_South_Carolina_CS27_South"}, + {13930, "Proj_South_Carolina_CS83"}, + {14001, "Proj_South_Dakota_CS27_North"}, + {14002, "Proj_South_Dakota_CS27_South"}, + {14031, "Proj_South_Dakota_CS83_North"}, + {14032, "Proj_South_Dakota_CS83_South"}, + {14100, "Proj_Tennessee_CS27"}, + {14130, "Proj_Tennessee_CS83"}, + {14201, "Proj_Texas_CS27_North"}, + {14202, "Proj_Texas_CS27_North_Central"}, + {14203, "Proj_Texas_CS27_Central"}, + {14204, "Proj_Texas_CS27_South_Central"}, + {14205, "Proj_Texas_CS27_South"}, + {14231, "Proj_Texas_CS83_North"}, + {14232, "Proj_Texas_CS83_North_Central"}, + {14233, "Proj_Texas_CS83_Central"}, + {14234, "Proj_Texas_CS83_South_Central"}, + {14235, "Proj_Texas_CS83_South"}, + {14301, "Proj_Utah_CS27_North"}, + {14302, "Proj_Utah_CS27_Central"}, + {14303, "Proj_Utah_CS27_South"}, + {14331, "Proj_Utah_CS83_North"}, + {14332, "Proj_Utah_CS83_Central"}, + {14333, "Proj_Utah_CS83_South"}, + {14400, "Proj_Vermont_CS27"}, + {14430, "Proj_Vermont_CS83"}, + {14501, "Proj_Virginia_CS27_North"}, + {14502, "Proj_Virginia_CS27_South"}, + {14531, "Proj_Virginia_CS83_North"}, + {14532, "Proj_Virginia_CS83_South"}, + {14601, "Proj_Washington_CS27_North"}, + {14602, "Proj_Washington_CS27_South"}, + {14631, "Proj_Washington_CS83_North"}, + {14632, "Proj_Washington_CS83_South"}, + {14701, "Proj_West_Virginia_CS27_North"}, + {14702, "Proj_West_Virginia_CS27_South"}, + {14731, "Proj_West_Virginia_CS83_North"}, + {14732, "Proj_West_Virginia_CS83_South"}, + {14801, "Proj_Wisconsin_CS27_North"}, + {14802, "Proj_Wisconsin_CS27_Central"}, + {14803, "Proj_Wisconsin_CS27_South"}, + {14831, "Proj_Wisconsin_CS83_North"}, + {14832, "Proj_Wisconsin_CS83_Central"}, + {14833, "Proj_Wisconsin_CS83_South"}, + {14901, "Proj_Wyoming_CS27_East"}, + {14902, "Proj_Wyoming_CS27_East_Central"}, + {14903, "Proj_Wyoming_CS27_West_Central"}, + {14904, "Proj_Wyoming_CS27_West"}, + {14931, "Proj_Wyoming_CS83_East"}, + {14932, "Proj_Wyoming_CS83_East_Central"}, + {14933, "Proj_Wyoming_CS83_West_Central"}, + {14934, "Proj_Wyoming_CS83_West"}, + {15001, "Proj_Alaska_CS27_1"}, + {15002, "Proj_Alaska_CS27_2"}, + {15003, "Proj_Alaska_CS27_3"}, + {15004, "Proj_Alaska_CS27_4"}, + {15005, "Proj_Alaska_CS27_5"}, + {15006, "Proj_Alaska_CS27_6"}, + {15007, "Proj_Alaska_CS27_7"}, + {15008, "Proj_Alaska_CS27_8"}, + {15009, "Proj_Alaska_CS27_9"}, + {15010, "Proj_Alaska_CS27_10"}, + {15031, "Proj_Alaska_CS83_1"}, + {15032, "Proj_Alaska_CS83_2"}, + {15033, "Proj_Alaska_CS83_3"}, + {15034, "Proj_Alaska_CS83_4"}, + {15035, "Proj_Alaska_CS83_5"}, + {15036, "Proj_Alaska_CS83_6"}, + {15037, "Proj_Alaska_CS83_7"}, + {15038, "Proj_Alaska_CS83_8"}, + {15039, "Proj_Alaska_CS83_9"}, + {15040, "Proj_Alaska_CS83_10"}, + {15101, "Proj_Hawaii_CS27_1"}, + {15102, "Proj_Hawaii_CS27_2"}, + {15103, "Proj_Hawaii_CS27_3"}, + {15104, "Proj_Hawaii_CS27_4"}, + {15105, "Proj_Hawaii_CS27_5"}, + {15131, "Proj_Hawaii_CS83_1"}, + {15132, "Proj_Hawaii_CS83_2"}, + {15133, "Proj_Hawaii_CS83_3"}, + {15134, "Proj_Hawaii_CS83_4"}, + {15135, "Proj_Hawaii_CS83_5"}, + {15201, "Proj_Puerto_Rico_CS27"}, + {15202, "Proj_St_Croix"}, + {15230, "Proj_Puerto_Rico_Virgin_Is"}, + {15914, "Proj_BLM_14N_feet"}, + {15915, "Proj_BLM_15N_feet"}, + {15916, "Proj_BLM_16N_feet"}, + {15917, "Proj_BLM_17N_feet"}, + {17348, "Proj_Map_Grid_of_Australia_48"}, + {17349, "Proj_Map_Grid_of_Australia_49"}, + {17350, "Proj_Map_Grid_of_Australia_50"}, + {17351, "Proj_Map_Grid_of_Australia_51"}, + {17352, "Proj_Map_Grid_of_Australia_52"}, + {17353, "Proj_Map_Grid_of_Australia_53"}, + {17354, "Proj_Map_Grid_of_Australia_54"}, + {17355, "Proj_Map_Grid_of_Australia_55"}, + {17356, "Proj_Map_Grid_of_Australia_56"}, + {17357, "Proj_Map_Grid_of_Australia_57"}, + {17358, "Proj_Map_Grid_of_Australia_58"}, + {17448, "Proj_Australian_Map_Grid_48"}, + {17449, "Proj_Australian_Map_Grid_49"}, + {17450, "Proj_Australian_Map_Grid_50"}, + {17451, "Proj_Australian_Map_Grid_51"}, + {17452, "Proj_Australian_Map_Grid_52"}, + {17453, "Proj_Australian_Map_Grid_53"}, + {17454, "Proj_Australian_Map_Grid_54"}, + {17455, "Proj_Australian_Map_Grid_55"}, + {17456, "Proj_Australian_Map_Grid_56"}, + {17457, "Proj_Australian_Map_Grid_57"}, + {17458, "Proj_Australian_Map_Grid_58"}, + {18031, "Proj_Argentina_1"}, + {18032, "Proj_Argentina_2"}, + {18033, "Proj_Argentina_3"}, + {18034, "Proj_Argentina_4"}, + {18035, "Proj_Argentina_5"}, + {18036, "Proj_Argentina_6"}, + {18037, "Proj_Argentina_7"}, + {18051, "Proj_Colombia_3W"}, + {18052, "Proj_Colombia_Bogota"}, + {18053, "Proj_Colombia_3E"}, + {18054, "Proj_Colombia_6E"}, + {18072, "Proj_Egypt_Red_Belt"}, + {18073, "Proj_Egypt_Purple_Belt"}, + {18074, "Proj_Extended_Purple_Belt"}, + {18141, "Proj_New_Zealand_North_Island_Nat_Grid"}, + {18142, "Proj_New_Zealand_South_Island_Nat_Grid"}, + {19900, "Proj_Bahrain_Grid"}, + {19905, "Proj_Netherlands_E_Indies_Equatorial"}, + {19912, "Proj_RSO_Borneo"} +}; #define TIFF_COORD_TRANS_OFFSET 1 -extern const char *const ff_tiff_coord_trans_codes[27]; +static const char *const tiff_coord_trans_codes[] = { + "CT_TransverseMercator", + "CT_TransvMercator_Modified_Alaska", + "CT_ObliqueMercator", + "CT_ObliqueMercator_Laborde", + "CT_ObliqueMercator_Rosenmund", + "CT_ObliqueMercator_Spherical", + "CT_Mercator", + "CT_LambertConfConic_2SP", + "CT_LambertConfConic_Helmert", + "CT_LambertAzimEqualArea", + "CT_AlbersEqualArea", + "CT_AzimuthalEquidistant", + "CT_EquidistantConic", + "CT_Stereographic", + "CT_PolarStereographic", + "CT_ObliqueStereographic", + "CT_Equirectangular", + "CT_CassiniSoldner", + "CT_Gnomonic", + "CT_MillerCylindrical", + "CT_Orthographic", + "CT_Polyconic", + "CT_Robinson", + "CT_Sinusoidal", + "CT_VanDerGrinten", + "CT_NewZealandMapGrid", + "CT_TransvMercator_SouthOriented" +}; #define TIFF_VERT_CS_OFFSET 5001 -extern const char *const ff_tiff_vert_cs_codes[32]; +static const char *const tiff_vert_cs_codes[] = { + "VertCS_Airy_1830_ellipsoid", + "VertCS_Airy_Modified_1849_ellipsoid", + "VertCS_ANS_ellipsoid", + "VertCS_Bessel_1841_ellipsoid", + "VertCS_Bessel_Modified_ellipsoid", + "VertCS_Bessel_Namibia_ellipsoid", + "VertCS_Clarke_1858_ellipsoid", + "VertCS_Clarke_1866_ellipsoid", + "VertCS_Clarke_1880_Benoit_ellipsoid", + "VertCS_Clarke_1880_IGN_ellipsoid", + "VertCS_Clarke_1880_RGS_ellipsoid", + "VertCS_Clarke_1880_Arc_ellipsoid", + "VertCS_Clarke_1880_SGA_1922_ellipsoid", + "VertCS_Everest_1830_1937_Adjustment_ellipsoid", + "VertCS_Everest_1830_1967_Definition_ellipsoid", + "VertCS_Everest_1830_1975_Definition_ellipsoid", + "VertCS_Everest_1830_Modified_ellipsoid", + "VertCS_GRS_1980_ellipsoid", + "VertCS_Helmert_1906_ellipsoid", + "VertCS_INS_ellipsoid", + "VertCS_International_1924_ellipsoid", + "VertCS_International_1967_ellipsoid", + "VertCS_Krassowsky_1940_ellipsoid", + "VertCS_NWL_9D_ellipsoid", + "VertCS_NWL_10D_ellipsoid", + "VertCS_Plessis_1817_ellipsoid", + "VertCS_Struve_1860_ellipsoid", + "VertCS_War_Office_ellipsoid", + "VertCS_WGS_84_ellipsoid", + "VertCS_GEM_10C_ellipsoid", + "VertCS_OSU86F_ellipsoid", + "VertCS_OSU91A_ellipsoid" +}; #define TIFF_ORTHO_VERT_CS_OFFSET 5101 -extern const char *const ff_tiff_ortho_vert_cs_codes[6]; +static const char *const tiff_ortho_vert_cs_codes[] = { + "VertCS_Newlyn", + "VertCS_North_American_Vertical_Datum_1929", + "VertCS_North_American_Vertical_Datum_1988", + "VertCS_Yellow_Sea_1956", + "VertCS_Baltic_Sea", + "VertCS_Caspian_Sea" +}; + #endif From patchwork Sat Feb 20 05:01:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25827 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 AFD09449B5A for ; Sat, 20 Feb 2021 07:01:36 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9680368A7DD; Sat, 20 Feb 2021 07:01:36 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E6F0D68921B for ; Sat, 20 Feb 2021 07:01:29 +0200 (EET) Received: by mail-wm1-f52.google.com with SMTP id a207so9481148wmd.1 for ; Fri, 19 Feb 2021 21:01:29 -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=mv6vNbRSpylU3qRuFub+kVUp8d8GlHHUVUniDQkaj6k=; b=cqmRcUGBaQI9Hee4QXngKYSUIopyFbkUZ30oKIBJ4RBTnVL5xB7SYR+xP1RBXsxcad WhvVpkqtfIhrwy09kJ3dnm3uyc5babRfCJkYvEvCfGoDrIbsp0VCJ9XWVadW2Vv8H6Uy UIO6JHJ8adLbRkFpOZd7PU3ScGwRIxe9r3yL9GNl2QAbPvDHAoM93bFuq4nScFj2HFNO Yn5e3H46DVxI8ylzf8EkbY8uGTdvT8W3M/s3LNzFqwKC91OpAB9TcZeu7zRfzU88dTWS iiDk3E3JqQ5xx0l5Yov4dgdvdlXRJxjnUYfgPWlx+rs6ZBrOqYop/rF2TUBP+tuf0Hj3 kHrA== 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=mv6vNbRSpylU3qRuFub+kVUp8d8GlHHUVUniDQkaj6k=; b=V6yrvF1RG2KQGJFClboETVr+RPIgv22e7vLwTfnU6xJ7HjNd6V7eYof2SDLeXBQ7HX w9kdJZTLxPrh/e2vVSY9vB0eEGYCYtkAsNPyUtdqIdxCUbaWXrK+cXYH1/E7TWflF3PM rx5UdhBUFAf2N1i9hv1+frbgP2GePNnYQlFjDRR7XEhv+NfRqaa7SpXvtxHGPo/Dgg3i A9EsHsS53kto15X8087eAaIf88VJj6Nr/xtXDekULy9K1ngHdYUnzq703iGKOLgiNe8Q AMVnL3+ynupA7sVRAcFU0MtsTdwkmoGLtKZ2bKFAaPbiiZfTnxYkfxi/9z4I5buqN2Bu rzsA== X-Gm-Message-State: AOAM530IIEc0QUbCcO21h+XXFJwl8Wim/HZje2QdJzpGraj0Y7Rl6lJ9 VQBuLw7ekD7S3EnAwrGbBKeCjFlDqes= X-Google-Smtp-Source: ABdhPJwPlRZZbU61aar3br8jXdrxv4H9mseKOzULWVcqqlLUEIb5eeZmnCol3try9B2XsO2G+rZdSA== X-Received: by 2002:a1c:4603:: with SMTP id t3mr11104881wma.135.1613797289158; Fri, 19 Feb 2021 21:01:29 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id g18sm4074893wmh.17.2021.02.19.21.01.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 21:01:28 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 20 Feb 2021 06:01:06 +0100 Message-Id: <20210220050107.2572205-2-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 31/32] avcodec/ac3tab: Move ff_ac3_enc_channel_map to its only user 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" and make it static. Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 11 ++++++++++- libavcodec/ac3tab.c | 18 ------------------ libavcodec/ac3tab.h | 9 ++++++++- 3 files changed, 18 insertions(+), 20 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index bae7405fff..65602d2021 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -161,6 +161,15 @@ const uint64_t ff_ac3_channel_layouts[19] = { 0 }; +/** + * Table to remap channels from SMPTE order to AC-3 order. + * [channel_mode][lfe][ch] + */ +static const uint8_t ac3_enc_channel_map[8][2][6] = { + COMMON_CHANNEL_MAP + { { 0, 1, 2, 3, }, { 0, 1, 3, 4, 2, } }, + { { 0, 2, 1, 3, 4, }, { 0, 2, 1, 4, 5, 3 } }, +}; /** * LUT to select the bandwidth code based on the bit rate, sample rate, and @@ -2184,7 +2193,7 @@ static av_cold int set_channel_info(AC3EncodeContext *s, int channels, s->has_center = (s->channel_mode & 0x01) && s->channel_mode != AC3_CHMODE_MONO; s->has_surround = s->channel_mode & 0x04; - s->channel_map = ff_ac3_enc_channel_map[s->channel_mode][s->lfe_on]; + s->channel_map = ac3_enc_channel_map[s->channel_mode][s->lfe_on]; *channel_layout = ch_layout; if (s->lfe_on) *channel_layout |= AV_CH_LOW_FREQUENCY; diff --git a/libavcodec/ac3tab.c b/libavcodec/ac3tab.c index 99307218cc..5a352340e7 100644 --- a/libavcodec/ac3tab.c +++ b/libavcodec/ac3tab.c @@ -97,24 +97,6 @@ const uint16_t avpriv_ac3_channel_layout_tab[8] = { AV_CH_LAYOUT_5POINT0 }; -#define COMMON_CHANNEL_MAP \ - { { 0, 1, }, { 0, 1, 2, } },\ - { { 0, }, { 0, 1, } },\ - { { 0, 1, }, { 0, 1, 2, } },\ - { { 0, 2, 1, }, { 0, 2, 1, 3, } },\ - { { 0, 1, 2, }, { 0, 1, 3, 2, } },\ - { { 0, 2, 1, 3, }, { 0, 2, 1, 4, 3, } }, - -/** - * Table to remap channels from SMPTE order to AC-3 order. - * [channel_mode][lfe][ch] - */ -const uint8_t ff_ac3_enc_channel_map[8][2][6] = { - COMMON_CHANNEL_MAP - { { 0, 1, 2, 3, }, { 0, 1, 3, 4, 2, } }, - { { 0, 2, 1, 3, 4, }, { 0, 2, 1, 4, 5, 3 } }, -}; - /** * Table to remap channels from AC-3 order to SMPTE order. * [channel_mode][lfe][ch] diff --git a/libavcodec/ac3tab.h b/libavcodec/ac3tab.h index a0036a301b..f41f7b6da0 100644 --- a/libavcodec/ac3tab.h +++ b/libavcodec/ac3tab.h @@ -31,7 +31,6 @@ extern const uint16_t ff_ac3_frame_size_tab[38][3]; extern const uint8_t ff_ac3_channels_tab[8]; extern av_export_avcodec const uint16_t avpriv_ac3_channel_layout_tab[8]; -extern const uint8_t ff_ac3_enc_channel_map[8][2][6]; extern const uint8_t ff_ac3_dec_channel_map[8][2][6]; extern const int ff_ac3_sample_rate_tab[]; extern const uint16_t ff_ac3_bitrate_tab[19]; @@ -67,4 +66,12 @@ enum CustomChannelMapLocation{ AC3_CHMAP_LFE = 1<<(15-15) }; +#define COMMON_CHANNEL_MAP \ + { { 0, 1, }, { 0, 1, 2, } },\ + { { 0, }, { 0, 1, } },\ + { { 0, 1, }, { 0, 1, 2, } },\ + { { 0, 2, 1, }, { 0, 2, 1, 3, } },\ + { { 0, 1, 2, }, { 0, 1, 3, 2, } },\ + { { 0, 2, 1, 3, }, { 0, 2, 1, 4, 3, } }, + #endif /* AVCODEC_AC3TAB_H */ From patchwork Sat Feb 20 05:01:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25828 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 AE769449B5A for ; Sat, 20 Feb 2021 07:01:39 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8BF6A68A817; Sat, 20 Feb 2021 07:01:39 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 55DA268921B for ; Sat, 20 Feb 2021 07:01:33 +0200 (EET) Received: by mail-wr1-f44.google.com with SMTP id v15so11971664wrx.4 for ; Fri, 19 Feb 2021 21:01:33 -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=YoXhAYJYQhT+9g4USDUiz6EgpuKEkZNpAj7kr7KtAzg=; b=Y29ZQrwi8JglYrZn8dER1hnqoP3UP5h4+KDOezQ2S7QvX7ZubuE10Q0Y2EK2NPtaj7 DrvCohQ1KPWCt0mTDT/gEwBIg/wvPzKieowcYC5LkbzEcLQqH+m1Zyf0WOrvwjwy9HGR 2Klk1Jn/EjlIXt/A67uLA82JrRXbGaCWAMd7orceNvq+O3HgmX9eGIptqEoXIohRZsXS w11Nk8nAqAb6yIEDgI82+jlNCyD4vi8i3RZpk3mvUZI4zHh86IswDFs4yR6GzTy+RCKT 4e5vO4B8vAjT5u/GtejG7YUx5Hq/B+q91B45NjuktQWUzynUgi8qKIUW7Pu4jaUv8spP lDxQ== 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=YoXhAYJYQhT+9g4USDUiz6EgpuKEkZNpAj7kr7KtAzg=; b=PBqumI5+3EsIZ0/VMXxbAxap1JgKyVwsCrqVzqE3WI9TxFp7K1cDdKsXzs+uJDlAiu 95pdEklNx5LFVnF35znpK2VpF4DVWHRuF9h2cBigc/8kVkQDwGGOD99/iLMs/XET2SA1 /cxR/i3+oQfOqkh9wsd6Zjta2W1CoODceZelThsctD24JZ+yKNaGBtFnUiiP5g3eT8Vb kcgY/IJJ2GICTEJHHl9ymoSvALgv8TswejbtjLPB54YFwOuMeCYX+TRMERZqmOL8GSyS D3G7Wnf5P5bP2neYswrvuHFl7RRCDsENgkN+9G7skdstDCA0E4udaBZgfb1o5ScNnEp9 OMLQ== X-Gm-Message-State: AOAM533O67K76A5qT6WSOT6HcaM2YWI/K977k0oYUL9SA58Zo9cI98l7 qkaN0zMk2s2GMc4BOE2ivRz6c9bkklw= X-Google-Smtp-Source: ABdhPJzreSCAhz2VRK0gTJtrNXQD6si72aDl7pPYgrV+lLtbh4lglV+K7pfIXV+ufoCUxBS5OyFrjA== X-Received: by 2002:adf:e802:: with SMTP id o2mr12001791wrm.133.1613797292654; Fri, 19 Feb 2021 21:01:32 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id g18sm4074893wmh.17.2021.02.19.21.01.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 21:01:32 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 20 Feb 2021 06:01:07 +0100 Message-Id: <20210220050107.2572205-3-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 32/32] avcodec/dirac_vlc: Make ff_dirac_golomb_lut static 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" Only used here. Signed-off-by: Andreas Rheinhardt --- libavcodec/dirac_vlc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libavcodec/dirac_vlc.c b/libavcodec/dirac_vlc.c index 2c07440df0..c5a0371dae 100644 --- a/libavcodec/dirac_vlc.c +++ b/libavcodec/dirac_vlc.c @@ -45,7 +45,7 @@ typedef struct LUTState { uint16_t state; /* Expected state for the next byte */ } LUTState; -const DECLARE_ALIGNED(32, LUTState, ff_dirac_golomb_lut)[1024] = { +static const DECLARE_ALIGNED(32, LUTState, dirac_golomb_lut)[1024] = { { +16, 0, 0, 0, 0, 5, +1, 0, 0, STATE_FOLLOW }, { +17, 0, 0, 0, 0, 5, +1, 0, 0, STATE_FOLLOW }, { +8, 0, 0, 0, 0, 4, +1, 1, 0, STATE_START }, @@ -1089,13 +1089,13 @@ const DECLARE_ALIGNED(32, LUTState, ff_dirac_golomb_lut)[1024] = { dst += lut.num; \ if (dst >= last) \ return coeffs; \ - lut = ff_dirac_golomb_lut[lut.state + *buf++]; \ + lut = dirac_golomb_lut[lut.state + *buf++]; \ } while (0) int ff_dirac_golomb_read_16bit(const uint8_t *buf, int bytes, uint8_t *_dst, int coeffs) { - LUTState lut = ff_dirac_golomb_lut[*buf++]; + LUTState lut = dirac_golomb_lut[*buf++]; int16_t *dst = (int16_t *)_dst, *last = dst + coeffs; uint16_t val = 0; @@ -1115,7 +1115,7 @@ int ff_dirac_golomb_read_16bit(const uint8_t *buf, int bytes, int ff_dirac_golomb_read_32bit(const uint8_t *buf, int bytes, uint8_t *_dst, int coeffs) { - LUTState lut = ff_dirac_golomb_lut[*buf++]; + LUTState lut = dirac_golomb_lut[*buf++]; int32_t *dst = (int32_t *)_dst, *last = dst + coeffs; uint32_t val = 0;