summaryrefslogtreecommitdiff
path: root/ffmpeg1/doc/tablegen.txt
diff options
context:
space:
mode:
Diffstat (limited to 'ffmpeg1/doc/tablegen.txt')
-rw-r--r--ffmpeg1/doc/tablegen.txt70
1 files changed, 0 insertions, 70 deletions
diff --git a/ffmpeg1/doc/tablegen.txt b/ffmpeg1/doc/tablegen.txt
deleted file mode 100644
index 4c4f036..0000000
--- a/ffmpeg1/doc/tablegen.txt
+++ /dev/null
@@ -1,70 +0,0 @@
-Writing a table generator
-
-This documentation is preliminary.
-Parts of the API are not good and should be changed.
-
-Basic concepts
-
-A table generator consists of two files, *_tablegen.c and *_tablegen.h.
-The .h file will provide the variable declarations and initialization
-code for the tables, the .c calls the initialization code and then prints
-the tables as a header file using the tableprint.h helpers.
-Both of these files will be compiled for the host system, so to avoid
-breakage with cross-compilation neither of them may include, directly
-or indirectly, config.h or avconfig.h.
-This means that e.g. libavutil/mathematics.h is ok but libavutil/libm.h is not.
-Due to this, the .c file or Makefile may have to provide additional defines
-or stubs, though if possible this should be avoided.
-In particular, CONFIG_HARDCODED_TABLES should always be defined to 0.
-
-The .c file
-
-This file should include the *_tablegen.h and tableprint.h files and
-anything else it needs as long as it does not depend on config.h or
-avconfig.h.
-In addition to that it must contain a main() function which initializes
-all tables by calling the init functions from the .h file and then prints
-them.
-The printing code typically looks like this:
- write_fileheader();
- printf("static const uint8_t my_array[100] = {\n");
- write_uint8_t_array(my_array, 100);
- printf("};\n");
-
-This is the more generic form, in case you need to do something special.
-Usually you should instead use the short form:
- write_fileheader();
- WRITE_ARRAY("static const", uint8_t, my_array);
-
-write_fileheader() adds some minor things like a "this is a generated file"
-comment and some standard includes.
-tablegen.h defines some write functions for one- and two-dimensional arrays
-for standard types - they print only the "core" parts so they are easier
-to reuse for multi-dimensional arrays so the outermost {} must be printed
-separately.
-If there's no standard function for printing the type you need, the
-WRITE_1D_FUNC_ARGV macro is a very quick way to create one.
-See libavcodec/dv_tablegen.c for an example.
-
-
-The .h file
-
-This file should contain:
- - one or more initialization functions
- - the table variable declarations
-If CONFIG_HARDCODED_TABLES is set, the initialization functions should
-not do anything, and instead of the variable declarations the
-generated *_tables.h file should be included.
-Since that will be generated in the build directory, the path must be
-included, i.e.
-#include "libavcodec/example_tables.h"
-not
-#include "example_tables.h"
-
-Makefile changes
-
-To make the automatic table creation work, you must manually declare the
-new dependency.
-For this add a line similar to this:
-$(SUBDIR)example.o: $(SUBDIR)example_tables.h
-under the "ifdef CONFIG_HARDCODED_TABLES" section in the Makefile.