#include "h263.h"
#include "internal.h"
#include "mpegutils.h"
+#include "packet_internal.h"
#include "svq1.h"
#include "svq1enc.h"
#include "svq1enc_cb.h"
s->m.first_slice_line = 0;
}
- ff_fix_long_p_mvs(&s->m);
+ ff_fix_long_p_mvs(&s->m, CANDIDATE_MB_TYPE_INTRA);
ff_fix_long_mvs(&s->m, NULL, 0, s->m.p_mv_table, s->m.f_code,
CANDIDATE_MB_TYPE_INTER, 0);
}
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);
}
s->pict_type = AV_PICTURE_TYPE_I;
s->quality = pict->quality;
-#if FF_API_CODED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->coded_frame->pict_type = s->pict_type;
- avctx->coded_frame->key_frame = s->pict_type == AV_PICTURE_TYPE_I;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
ff_side_data_set_encoder_stats(pkt, pict->quality, NULL, 0, s->pict_type);
svq1_write_header(s, s->pict_type);
}
}
- // 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;
.version = LIBAVUTIL_VERSION_INT,
};
-AVCodec ff_svq1_encoder = {
+const AVCodec ff_svq1_encoder = {
.name = "svq1",
.long_name = NULL_IF_CONFIG_SMALL("Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1"),
.type = AVMEDIA_TYPE_VIDEO,
.close = svq1_encode_end,
.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV410P,
AV_PIX_FMT_NONE },
+ .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP,
};