On 19/12/2018 02:40, Michael Niedermayer wrote:
Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc>
---
  libavcodec/ffv1enc.c          | 10 +++-------
  libavcodec/rangecoder.c       |  4 +++-
  libavcodec/rangecoder.h       |  2 +-
  libavcodec/snowenc.c          |  2 +-
  libavcodec/sonic.c            |  2 +-
  libavcodec/tests/rangecoder.c |  2 +-
  6 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c
index f5eb0feb4e..796d81f7c6 100644
--- a/libavcodec/ffv1enc.c
+++ b/libavcodec/ffv1enc.c
@@ -449,7 +449,7 @@ static int write_extradata(FFV1Context *f)
          put_symbol(c, state, f->intra = (f->avctx->gop_size < 2), 0);
      }
- f->avctx->extradata_size = ff_rac_terminate(c);
+    f->avctx->extradata_size = ff_rac_terminate(c, 0);
      v = av_crc(av_crc_get_table(AV_CRC_32_IEEE), 0, f->avctx->extradata, 
f->avctx->extradata_size);
      AV_WL32(f->avctx->extradata + f->avctx->extradata_size, v);
      f->avctx->extradata_size += 4;
@@ -1065,9 +1065,7 @@ retry:
          encode_slice_header(f, fs);
      }
      if (fs->ac == AC_GOLOMB_RICE) {
-        if (f->version > 2)
-            put_rac(&fs->c, (uint8_t[]) { 129 }, 0);
-        fs->ac_byte_count = f->version > 2 || (!x && !y) ? 
ff_rac_terminate(&fs->c) : 0;
+        fs->ac_byte_count = f->version > 2 || (!x && !y) ? ff_rac_terminate(&fs->c, 
f->version > 2) : 0;

Moving the "129" stuff from FFV1 encoder code to rangecoder encoding part is good for factorization, but there is no more mirroring of FFV1 encoding and FFV1 decoding in that case ("129" stuff is still present in FFV1 decoder code, not rangecoder decoding part), IMO this makes the FFV1 code more difficult to understand.

Isn't it possible to have the same kind of modification for the decoding part?
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to