Commit Graph

96 Commits

Author SHA1 Message Date
Andreas Rheinhardt 367cf961ea avcodec/get_bits: Add get_bits_bytesize()
And use it to avoid accesses to GetBitContext.buffer_end.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-07-11 15:13:21 +02:00
James Almer fa469545ba avcodec: move leb reading functions to its own header
Signed-off-by: James Almer <jamrial@gmail.com>
2024-01-31 11:19:16 -03:00
James Almer 0cc0d8c0b5 avcodec/get_bits: add get_leb()
Signed-off-by: James Almer <jamrial@gmail.com>
2023-12-18 15:19:36 -03:00
Paul B Mahol 29b9fca4b3 avcodec: add multi vlc reader
Heavily based and inspired by Christophe's cache branches.

Co-Authored-by: Christophe Gisquet
2023-09-07 00:23:30 +02:00
Anton Khirnov 0b33310cd0 lavc/bitstream: avoid UB in bits_{read,peek}_signed(0)
bits_*_signed(0) will currently invoke an undefined shift by
8 * sizeof(int).

Add bits_*_signed_nz() that only works for n>0, analogous to
bits_read_nz(). Add an explicit check for n=0 in bits_*_signed().

Found-by: James Almer
2023-01-18 09:41:32 +01:00
Anton Khirnov 9177970bca lavc/bitstream: templatize for BE/LE
Allows using both BE and LE bitstream readers in the same file.
2023-01-06 10:49:42 +01:00
Alexandra Hájková 8fe551eca0 lavc: add standalone cached bitstream reader
The cached bitstream reader was originally written by Alexandra Hájková
for Libav, with significant input from Kostya Shishkov and Luca Barbato.
It was then committed to FFmpeg in ca079b0954, by merging it with the
implementation of the current bitstream reader.

This merge makes the code of get_bits.h significantly harder to read,
since it now contains two different bitstream readers interleaved with
 #ifdefs. Additionally, the code was committed without proper authorship
attribution.

This commit re-adds the cached bitstream reader as a standalone header,
as it was originally developed. It will be made useful in following
commits.

Integration by Anton Khirnov.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2023-01-06 10:48:56 +01:00
Stefano Sabatini 9106a698e7 Rename bitstream.h to get_bits.h.
Originally committed as revision 18494 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-13 16:20:26 +00:00
Stefano Sabatini b275500706 Split bitstream.h, put the bitstream writer stuff in the new file
put_bits.h.

Originally committed as revision 18461 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-12 08:35:26 +00:00
Stefano Sabatini 4af615b81e Document the 'size' parameter of set_put_bits_buffer_size().
Originally committed as revision 18448 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-11 21:04:26 +00:00
Stefano Sabatini 930cab5944 Document ff_put_string().
Originally committed as revision 18447 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-11 21:01:30 +00:00
Stefano Sabatini 54b02ccda2 Rename the 'put_zero' parameter of ff_put_string() to
'terminate_string'.

Originally committed as revision 18442 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-11 15:54:21 +00:00
Stefano Sabatini 980f54513e Add documentation for skip_put_bytes().
Originally committed as revision 18441 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-11 14:49:46 +00:00
Stefano Sabatini 093364da30 Doxygenate ff_copy_bits().
Originally committed as revision 18440 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-11 14:47:35 +00:00
Stefano Sabatini 86755e82f7 Factorize declaration for the two variants of put_bits().
Originally committed as revision 18439 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-11 14:19:09 +00:00
Stefano Sabatini 0a73e94fd6 Clarify documentation for put_bits_count().
Originally committed as revision 18432 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-11 13:04:33 +00:00
Stefano Sabatini facf521daa Document align_put_bits().
Originally committed as revision 18427 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-10 22:29:56 +00:00
Stefano Sabatini fc660a0143 Doxygenate flush_put_bits() documentation.
Originally committed as revision 18426 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-10 22:27:29 +00:00
Stefano Sabatini e46ddebd14 Doxygenate put_bits_count() documentation.
Originally committed as revision 18425 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-10 22:14:45 +00:00
Stefano Sabatini f7a2aab7d8 Doxygenate init_put_bits().
Originally committed as revision 18423 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-10 17:30:42 +00:00
Stefano Sabatini f9f74ab97b Add a notice telling that the behavior of skip_put_bits() is undefined
if n is 0.

Originally committed as revision 18285 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-31 19:57:53 +00:00
Justin Ruggles 017c0811a1 Add a get_sbits_long() function.
Originally committed as revision 17740 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 02:00:47 +00:00
Reimar Döffinger edd532db64 Simplify show_bits_long and copy the GetBitsContext around only once instead of twice.
Originally committed as revision 17736 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-02 19:42:31 +00:00
Michael Niedermayer 71a48ff23c Add size_in_bits to PutBitContext
Originally committed as revision 17006 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-05 18:25:01 +00:00
Diego Biurrun bad5537e2c Use full internal pathname in doxygen @file directives.
Otherwise doxygen complains about ambiguous filenames when files exist
under the same name in different subdirectories.

Originally committed as revision 16912 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-01 02:00:19 +00:00
Reimar Döffinger 724cc2dfaa Use AV_WL32/AV_WB32 in bitstream.h
Originally committed as revision 16778 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-25 18:12:13 +00:00
Aurelien Jacobs b250f9c66d Change semantic of CONFIG_*, HAVE_* and ARCH_*.
They are now always defined to either 0 or 1.

Originally committed as revision 16590 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-13 23:44:16 +00:00
Måns Rullgård 23ae2b68b0 Replace UNALIGNED_STORES_ARE_BAD with !HAVE_FAST_UNALIGNED
Originally committed as revision 16364 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-27 23:12:00 +00:00
Måns Rullgård a2fc0f6a6d ARM: replace "armv4l" with "arm"
Originally committed as revision 16179 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-17 00:54:54 +00:00
Diego Pettenò be449fca79 Convert asm keyword into __asm__.
Neither the asm() nor the __asm__() keyword is part of the C99
standard, but while GCC accepts the former in C89 syntax, it is not
accepted in C99 unless GNU extensions are turned on (with -fasm). The
latter form is accepted in any syntax as an extension (without
requiring further command-line options).

Sun Studio C99 compiler also does not accept asm() while accepting
__asm__(), albeit reporting warnings that it's not valid C99 syntax.

Originally committed as revision 15627 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-16 13:34:09 +00:00
Stefano Sabatini 987903826b Globally rename the header inclusion guard names.
Consistently apply this rule: the guard name is obtained from the
filename by stripping the leading "lib", converting '/' and '.'  to
'_' and uppercasing the resulting name. Guard names in the root
directory have to be prefixed by "FFMPEG_".

Originally committed as revision 15120 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-31 07:39:47 +00:00
Stefano Sabatini 7a7c4a7bf7 Fix typo.
Originally committed as revision 15034 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-29 18:43:20 +00:00
Bartlomiej Wolowiec 8580314463 Little-endian bitstream writer
Originally committed as revision 14965 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-25 08:53:14 +00:00
Måns Rullgård 29c8b6263a Remove dead code in bitstream.h
Originally committed as revision 14238 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-15 18:43:26 +00:00
Ramiro Polla 6647ab80e3 bitstream: move put_sbits() from flacenc.c to bitstream.h and use it
throughout libavcodec.

Originally committed as revision 14204 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-13 14:27:48 +00:00
Måns Rullgård 71c465a151 Bitstream: use AV_RB16() in LIBMPEG2_BITSTREAM_READER
This makes LIBMPEG2_BITSTREAM_READER_HACK redundant, so remove it.

Originally committed as revision 14197 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-13 00:07:43 +00:00
Michael Niedermayer d05b24ff89 Little helper macro to make the use of INIT_VLC_USE_NEW_STATIC easier.
Originally committed as revision 13562 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-30 20:00:19 +00:00
Michael Niedermayer ccc54864fe Make init_vlc* support proper static tables instead of this broken beyond
imagination alloc_static() trash.

Originally committed as revision 13561 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-30 19:48:02 +00:00
Diego Biurrun 245976da2a Use full path for #includes from another directory.
Originally committed as revision 13098 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-09 11:56:36 +00:00
Michael Niedermayer 1701cbfafc const
Originally committed as revision 11846 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-04 00:49:14 +00:00
Kostya Shishkov b44665c4e6 Make decode210() common function.
Originally committed as revision 11382 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-03 09:16:56 +00:00
Diego Biurrun 5b21bdabe4 Add FFMPEG_ prefix to all multiple inclusion guards.
Originally committed as revision 10765 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-17 09:37:46 +00:00
Aurelien Jacobs 28296f9c9e move get_unary() to its own file
Originally committed as revision 10240 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-26 22:33:48 +00:00
Roman Shaposhnik 67c1b32f3d * getting rid of code duplication
Originally committed as revision 9997 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-08 23:58:23 +00:00
Alex Beregszaszi 971e878dca copy get_unary from vc1
Originally committed as revision 9994 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-08 20:38:30 +00:00
Michael Niedermayer 1ae7a85116 indent
Originally committed as revision 9894 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-04 12:21:00 +00:00
Diego Biurrun df3a80b50a cosmetics: misc typo fixes
Originally committed as revision 9815 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-28 12:46:26 +00:00
Aurelien Jacobs 98f7b56bb6 move ff_copy_bits to bitstream.c
Originally committed as revision 9503 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-06 14:13:25 +00:00
Måns Rullgård 99545457bf include all prerequisites in header files
Originally committed as revision 9344 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-16 22:59:13 +00:00
Diego Biurrun 755bfeabcc misc spelling fixes
Originally committed as revision 9289 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-12 09:29:25 +00:00