From 2af5f55b2e28d3ac4f055aacba3700075268164f Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Sat, 22 Oct 2022 14:23:07 +0200 Subject: [PATCH] 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 Signed-off-by: Andreas Rheinhardt --- libavutil/tx_template.c | 9 +++++++-- 1 file 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 } },