summaryrefslogtreecommitdiff
path: root/libavutil
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-10-22 14:23:07 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-10-28 09:29:41 +0200
commit2af5f55b2e28d3ac4f055aacba3700075268164f (patch)
tree8e24fae2efc392b6120be570464ae582b9610c6a /libavutil
parentb71e2e42ef85a1803faea9c0c4e4b0ebb90c4251 (diff)
downloadffmpeg-2af5f55b2e28d3ac4f055aacba3700075268164f.tar.gz
avutil/tx_template: Don't waste space for inexistent factors
It is possible to avoid the factors array for the power-of-two tables for which said array is unused by using a different structure for initialization for power-of-two tables than for non-power-of-two-tables. This saves 3*15*16B from .data. Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavutil')
-rw-r--r--libavutil/tx_template.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/libavutil/tx_template.c b/libavutil/tx_template.c
index 6b63cc575f..b44a6189cc 100644
--- a/libavutil/tx_template.c
+++ b/libavutil/tx_template.c
@@ -55,9 +55,14 @@ TABLE_DEF( 9, 8);
typedef struct FFSRTabsInitOnce {
void (*func)(void);
AVOnce control;
- int factors[TX_MAX_SUB]; /* Must be sorted high -> low */
} FFSRTabsInitOnce;
+typedef struct FFSRTabsInitOnceExt {
+ void (*func)(void);
+ AVOnce control;
+ int factors[TX_MAX_SUB]; /* Must be sorted high -> low */
+} FFSRTabsInitOnceExt;
+
#define INIT_FF_SR_TAB(len) \
static av_cold void TX_TAB(ff_tx_init_tab_ ##len)(void) \
{ \
@@ -145,7 +150,7 @@ static av_cold void TX_TAB(ff_tx_init_tab_9)(void)
TX_TAB(ff_tx_tab_9)[7] = TX_TAB(ff_tx_tab_9)[3] - TX_TAB(ff_tx_tab_9)[4];
}
-static FFSRTabsInitOnce nptwo_tabs_init_once[] = {
+static FFSRTabsInitOnceExt nptwo_tabs_init_once[] = {
{ TX_TAB(ff_tx_init_tab_53), AV_ONCE_INIT, { 15, 5, 3 } },
{ TX_TAB(ff_tx_init_tab_9), AV_ONCE_INIT, { 9 } },
{ TX_TAB(ff_tx_init_tab_7), AV_ONCE_INIT, { 7 } },