diff options
author | Moonchild <mcwerewolf@gmail.com> | 2018-10-02 00:21:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-02 00:21:32 +0200 |
commit | 69d83c8fbe47b89d1d14f75ee99e638cbfb5dc31 (patch) | |
tree | ce4b486ac8e13e1f5a8a918e532826c3ae09415d /media/ffvpx/libavcodec/get_bits.h | |
parent | 8e8fcee4a55de171303ebe526d3cf051522111bf (diff) | |
parent | 41ccd52bfd7f3604d3ad3917af5f030994e13762 (diff) | |
download | UXP-69d83c8fbe47b89d1d14f75ee99e638cbfb5dc31.tar UXP-69d83c8fbe47b89d1d14f75ee99e638cbfb5dc31.tar.gz UXP-69d83c8fbe47b89d1d14f75ee99e638cbfb5dc31.tar.lz UXP-69d83c8fbe47b89d1d14f75ee99e638cbfb5dc31.tar.xz UXP-69d83c8fbe47b89d1d14f75ee99e638cbfb5dc31.zip |
Merge pull request #806 from trav90/ffvpx-resync
Update ffvpx code to 4.0.2 (take 2)
Diffstat (limited to 'media/ffvpx/libavcodec/get_bits.h')
-rw-r--r-- | media/ffvpx/libavcodec/get_bits.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/media/ffvpx/libavcodec/get_bits.h b/media/ffvpx/libavcodec/get_bits.h index 0c7f5ff0c..56ef5f0cb 100644 --- a/media/ffvpx/libavcodec/get_bits.h +++ b/media/ffvpx/libavcodec/get_bits.h @@ -32,6 +32,7 @@ #include "libavutil/intreadwrite.h" #include "libavutil/log.h" #include "libavutil/avassert.h" +#include "avcodec.h" #include "mathops.h" #include "vlc.h" @@ -201,6 +202,13 @@ static inline int get_bits_count(const GetBitContext *s) return s->index; } +/** + * Skips the specified number of bits. + * @param n the number of bits to skip, + * For the UNCHECKED_BITSTREAM_READER this must not cause the distance + * from the start to overflow int32_t. Staying within the bitstream + padding + * is sufficient, too. + */ static inline void skip_bits_long(GetBitContext *s, int n) { #if UNCHECKED_BITSTREAM_READER @@ -428,7 +436,7 @@ static inline int init_get_bits(GetBitContext *s, const uint8_t *buffer, int buffer_size; int ret = 0; - if (bit_size >= INT_MAX - 7 || bit_size < 0 || !buffer) { + if (bit_size >= INT_MAX - FFMAX(7, AV_INPUT_BUFFER_PADDING_SIZE*8) || bit_size < 0 || !buffer) { bit_size = 0; buffer = NULL; ret = AVERROR_INVALIDDATA; |