diff options
Diffstat (limited to 'contrib/ffmpeg/A07-cbs-av1-sint-parse.patch')
-rw-r--r-- | contrib/ffmpeg/A07-cbs-av1-sint-parse.patch | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/contrib/ffmpeg/A07-cbs-av1-sint-parse.patch b/contrib/ffmpeg/A07-cbs-av1-sint-parse.patch deleted file mode 100644 index ce09f2503..000000000 --- a/contrib/ffmpeg/A07-cbs-av1-sint-parse.patch +++ /dev/null @@ -1,89 +0,0 @@ -From a9e9303f26597b2a166374cd46b00adc0401e634 Mon Sep 17 00:00:00 2001 -From: James Almer <[email protected]> -Date: Sat, 10 Nov 2018 22:52:12 -0300 -Subject: [PATCH] avcodec/cbs_av1: fix parsing signed integer values - -Reviewed-by: Mark Thompson <[email protected]> -Signed-off-by: James Almer <[email protected]> -(cherry picked from commit f0f2832a5ce93bad9b1d29f99df6bda2380fc41c) ---- - libavcodec/cbs_av1.c | 30 +++++++++--------------------- - 1 file changed, 9 insertions(+), 21 deletions(-) - -diff --git a/libavcodec/cbs_av1.c b/libavcodec/cbs_av1.c -index ff32a6f..ed5211b 100644 ---- a/libavcodec/cbs_av1.c -+++ b/libavcodec/cbs_av1.c -@@ -189,30 +189,26 @@ static int cbs_av1_read_su(CodedBitstreamContext *ctx, GetBitContext *gbc, - int width, const char *name, - const int *subscripts, int32_t *write_to) - { -- uint32_t magnitude; -- int position, sign; -+ int position; - int32_t value; - - if (ctx->trace_enable) - position = get_bits_count(gbc); - -- if (get_bits_left(gbc) < width + 1) { -+ if (get_bits_left(gbc) < width) { - av_log(ctx->log_ctx, AV_LOG_ERROR, "Invalid signed value at " - "%s: bitstream ended.\n", name); - return AVERROR_INVALIDDATA; - } - -- magnitude = get_bits(gbc, width); -- sign = get_bits1(gbc); -- value = sign ? -(int32_t)magnitude : magnitude; -+ value = get_sbits(gbc, width); - - if (ctx->trace_enable) { - char bits[33]; - int i; - for (i = 0; i < width; i++) -- bits[i] = magnitude >> (width - i - 1) & 1 ? '1' : '0'; -- bits[i] = sign ? '1' : '0'; -- bits[i + 1] = 0; -+ bits[i] = value & (1 << (width - i - 1)) ? '1' : '0'; -+ bits[i] = 0; - - ff_cbs_trace_syntax_element(ctx, position, - name, subscripts, bits, value); -@@ -226,29 +222,21 @@ static int cbs_av1_write_su(CodedBitstreamContext *ctx, PutBitContext *pbc, - int width, const char *name, - const int *subscripts, int32_t value) - { -- uint32_t magnitude; -- int sign; -- -- if (put_bits_left(pbc) < width + 1) -+ if (put_bits_left(pbc) < width) - return AVERROR(ENOSPC); - -- sign = value < 0; -- magnitude = sign ? -value : value; -- - if (ctx->trace_enable) { - char bits[33]; - int i; - for (i = 0; i < width; i++) -- bits[i] = magnitude >> (width - i - 1) & 1 ? '1' : '0'; -- bits[i] = sign ? '1' : '0'; -- bits[i + 1] = 0; -+ bits[i] = value & (1 << (width - i - 1)) ? '1' : '0'; -+ bits[i] = 0; - - ff_cbs_trace_syntax_element(ctx, put_bits_count(pbc), - name, subscripts, bits, value); - } - -- put_bits(pbc, width, magnitude); -- put_bits(pbc, 1, sign); -+ put_sbits(pbc, width, value); - - return 0; - } --- -1.9.1 - |