diff --git a/libavcodec/vc2enc.c b/libavcodec/vc2enc.c index 5cb6e0d198..82d11462aa 100644 --- a/libavcodec/vc2enc.c +++ b/libavcodec/vc2enc.c @@ -233,7 +233,7 @@ static void encode_parse_info(VC2EncContext *s, enum DiracParseCodes pcode) align_put_bits(&s->pb); - cur_pos = put_bits_count(&s->pb) >> 3; + cur_pos = put_bytes_count(&s->pb, 0); /* Magic string */ ff_put_string(&s->pb, "BBCD", 0); @@ -746,7 +746,7 @@ static int encode_hq_slice(AVCodecContext *avctx, void *arg) /* Luma + 2 Chroma planes */ for (p = 0; p < 3; p++) { int bytes_start, bytes_len, pad_s, pad_c; - bytes_start = put_bits_count(pb) >> 3; + bytes_start = put_bytes_count(pb, 0); put_bits(pb, 8, 0); for (level = 0; level < s->wavelet_depth; level++) { for (orientation = !!level; orientation < 4; orientation++) { @@ -755,10 +755,10 @@ static int encode_hq_slice(AVCodecContext *avctx, void *arg) quants[level][orientation]); } } - align_put_bits(pb); - bytes_len = (put_bits_count(pb) >> 3) - bytes_start - 1; + flush_put_bits(pb); + bytes_len = put_bytes_output(pb) - bytes_start - 1; if (p == 2) { - int len_diff = slice_bytes_max - (put_bits_count(pb) >> 3); + int len_diff = slice_bytes_max - put_bytes_output(pb); pad_s = FFALIGN((bytes_len + len_diff), s->size_scaler)/s->size_scaler; pad_c = (pad_s*s->size_scaler) - bytes_len; } else { @@ -766,7 +766,6 @@ static int encode_hq_slice(AVCodecContext *avctx, void *arg) pad_c = (pad_s*s->size_scaler) - bytes_len; } pb->buf[bytes_start] = pad_s; - flush_put_bits(pb); /* vc2-reference uses that padding that decodes to '0' coeffs */ memset(put_bits_ptr(pb), 0xFF, pad_c); skip_put_bytes(pb, pad_c);