On Tue, May 3, 2016 at 7:06 PM, Christophe Gisquet <christophe.gisq...@gmail.com> wrote: > The slice prefix is 0 in the reference encoder and the decoder ignores it. > Writing 0 there seems like the best temporary solution. > > The padding could have contained uninitialized data, but its standardized > value > is 0xFF, hence the memset value. > > Overall this allows producing bistreams with no random data for use by fate. > --- > libavcodec/vc2enc.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/libavcodec/vc2enc.c b/libavcodec/vc2enc.c > index 943198b..bec513c 100644 > --- a/libavcodec/vc2enc.c > +++ b/libavcodec/vc2enc.c > @@ -777,7 +777,10 @@ static int encode_hq_slice(AVCodecContext *avctx, void > *arg) > uint8_t quants[MAX_DWT_LEVELS][4]; > int p, level, orientation; > > + // The reference decoder ignores it, and its typical length is 0 > + memset(put_bits_ptr(pb), 0, s->prefix_bytes); > skip_put_bytes(pb, s->prefix_bytes); > +
I don't suppose we have a function to just write zero bytes instead of these shenangans of written to the buffer and skiping? > put_bits(pb, 8, quant_idx); > > /* Slice quantization (slice_quantizers() in the specs) */ > @@ -809,6 +812,7 @@ static int encode_hq_slice(AVCodecContext *avctx, void > *arg) > } > pb->buf[bytes_start] = pad_s; > flush_put_bits(pb); > + memset(pb->buf_ptr, 0, pad_c); > skip_put_bytes(pb, pad_c); Both occurances use different ways to access the buffer, once put_bits_ptr(pb) and one pb->buf_ptr, if this is the only way to do this, maybe stick to one? > } > > -- > 2.8.1 > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel