Commit graph

10 commits

Author SHA1 Message Date
Andreas Rheinhardt
2d764069be avcodec/vlc: Use structure instead of VLC_TYPE array as VLC element
In C, qualifiers for arrays are broken:
const VLC_TYPE (*foo)[2] is a pointer to an array of two const VLC_TYPE
elements and unfortunately this is not compatible with a pointer
to a const array of two VLC_TYPE, because the latter does not exist
as array types are never qualified (the qualifier applies to the base
type instead). This is the reason why get_vlc2() doesn't accept
a const VLC table despite not modifying the table at all, as
there is no automatic conversion from VLC_TYPE (*)[2] to
const VLC_TYPE (*)[2].

Fix this by using a structure VLCElem for the VLC table.
This also has the advantage of making it clear which
element is which.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-06-17 16:47:29 +02:00
Andreas Rheinhardt
495de744fa avcodec/bitstream: Move code for initializing VLCs to file of its own
bitstream.c is currently the disjoint union of three parts:
The first part is ff_log2_run, the second part are some auxiliary
functions for the PutBits-API; and the third part is the code
for creating VLCs. This commit moves the latter into a file of its own.
This has the advantage of making one of the hacks in tableprint_vlc.h
redundant as vlc.c does not include config.h (whereas the PutBits-API
part does).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-03-21 23:25:36 +01:00
Andreas Rheinhardt
84f16bb5e6 avutil/avassert: Don't include avutil.h
Reviewed-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-24 12:56:49 +01:00
Andreas Rheinhardt
5be809fed9 avcodec/tableprint_vlc: Fix building with hardcoded tables
This has been broken in 25c8507818,
because the hacks for headers that are incompatible with building
for the host in libavcodec/tableprint_vlc.h have not been adjusted.

Moving AV_INPUT_BUFFER_PADDING_SIZE to defs.h which is valid for
both the target as well as the host allowed to remove some of the hacks.

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-07-23 14:43:52 +02:00
Carl Eugen Hoyos
c8232e5007 lavc/tableprint_vlc: Remove avpriv_request_sample() from included files.
Fixes compilation with --enable-hardcoded-tables.
Fixes ticket #7962.
2019-06-24 00:19:03 +02:00
Michael Niedermayer
5c75438b89 avcodec/tableprint_vlc: Fix build failure with --enable-hardcoded-tables
Found-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-03-29 01:11:45 +02:00
Alexis Ballier
4f74efa76d libavcodec/tableprint_vlc.h: include lavu/reverse.c for ff_reverse.
Fixes the build with --enable-hardcoded-tables since ff_reverse has moved to lavu.
2015-08-12 11:37:24 +02:00
Michael Niedermayer
0c015aa95c avcodec/tableprint_vlc: Do not define functions to nothing
This avoids potential warnings

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 00:52:47 +02:00
Alexis Ballier
6fe2afaa71 Adapt libavcodec/tableprint_vlc.h to the av_dlog -> ff_dlog change.
This fixes the build with --enable-hardcoded-tables that was broken since [8f7b022c8c].

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-27 17:57:50 +02:00
Reimar Döffinger
70d80ed40f qdm2: Allow hard-coding VLC tables.
Also adds a lot of infrastructure necessary for it.
Some of it is a bit ugly though.
Increases binary size for hardcoded tables by about 12 kB,
which is about 15 kB from qdm2_table minus data and code
saved that was only used for creating it.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-12-18 23:51:07 +01:00