int score[4] = { 0, 0, 0, 0 }, best;
uint8_t *temp = s->scratchbuf;
- if (s->pb.buf_end - s->pb.buf -
- (put_bits_count(&s->pb) >> 3) < 3000) { // FIXME: check size
+ if (put_bytes_left(&s->pb, 0) < 3000) { // FIXME: check size
av_log(s->avctx, AV_LOG_ERROR, "encoded frame too large\n");
return -1;
}
if (best != 2)
for (i = 5; i >= 0; i--)
- avpriv_copy_bits(&s->pb, reorder_buffer[best][i],
+ ff_copy_bits(&s->pb, reorder_buffer[best][i],
count[best][i]);
if (best == 0)
s->hdsp.put_pixels_tab[0][0](decoded, temp, stride, 16);
s->current_picture = av_frame_alloc();
s->last_picture = av_frame_alloc();
if (!s->current_picture || !s->last_picture) {
- svq1_encode_end(avctx);
return AVERROR(ENOMEM);
}
s->m.avctx = avctx;
if ((ret = ff_mpv_common_init(&s->m)) < 0) {
- svq1_encode_end(avctx);
return ret;
}
if (!s->m.me.temp || !s->m.me.scratchpad || !s->m.me.map ||
!s->m.me.score_map || !s->mb_type || !s->dummy) {
- svq1_encode_end(avctx);
return AVERROR(ENOMEM);
}
}
}
- // avpriv_align_put_bits(&s->pb);
+ // align_put_bits(&s->pb);
while (put_bits_count(&s->pb) & 31)
put_bits(&s->pb, 1, 0);
flush_put_bits(&s->pb);
- pkt->size = put_bits_count(&s->pb) / 8;
+ pkt->size = put_bytes_output(&s->pb);
if (s->pict_type == AV_PICTURE_TYPE_I)
pkt->flags |= AV_PKT_FLAG_KEY;
*got_packet = 1;
.init = svq1_encode_init,
.encode2 = svq1_encode_frame,
.close = svq1_encode_end,
+ .caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV410P,
AV_PIX_FMT_NONE },
};