X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fproresenc.c;h=e4842d2993c028f5441f8fd39496d0acddd11a5c;hb=788544ff0ed6fe67fda80ad6d3a0796ace035584;hp=b71a7db9b436734f579d204388e71170d3d51319;hpb=05fb4c9aaf84b59f8ab1ce8d4c0f49dd12113024;p=ffmpeg diff --git a/libavcodec/proresenc.c b/libavcodec/proresenc.c index b71a7db9b43..e4842d2993c 100644 --- a/libavcodec/proresenc.c +++ b/libavcodec/proresenc.c @@ -192,7 +192,7 @@ typedef struct ProresContext { const uint8_t *scantable; void (*fdct)(FDCTDSPContext *fdsp, const uint16_t *src, - int linesize, int16_t *block); + ptrdiff_t linesize, int16_t *block); FDCTDSPContext fdsp; const AVFrame *pic; @@ -223,13 +223,13 @@ typedef struct ProresContext { } ProresContext; static void get_slice_data(ProresContext *ctx, const uint16_t *src, - int linesize, int x, int y, int w, int h, + ptrdiff_t linesize, int x, int y, int w, int h, int16_t *blocks, uint16_t *emu_buf, int mbs_per_slice, int blocks_per_mb, int is_chroma) { const uint16_t *esrc; const int mb_width = 4 * blocks_per_mb; - int elinesize; + ptrdiff_t elinesize; int i, j, k; for (i = 0; i < mbs_per_slice; i++, src += mb_width) { @@ -294,7 +294,7 @@ static void get_slice_data(ProresContext *ctx, const uint16_t *src, } static void get_alpha_data(ProresContext *ctx, const uint16_t *src, - int linesize, int x, int y, int w, int h, + ptrdiff_t linesize, int x, int y, int w, int h, int16_t *blocks, int mbs_per_slice, int abits) { const int slice_width = 16 * mbs_per_slice; @@ -417,7 +417,7 @@ static void encode_acs(PutBitContext *pb, int16_t *blocks, } static int encode_slice_plane(ProresContext *ctx, PutBitContext *pb, - const uint16_t *src, int linesize, + const uint16_t *src, ptrdiff_t linesize, int mbs_per_slice, int16_t *blocks, int blocks_per_mb, int plane_size_factor, const int16_t *qmat) @@ -511,7 +511,8 @@ static int encode_slice(AVCodecContext *avctx, const AVFrame *pic, int total_size = 0; const uint16_t *src; int slice_width_factor = av_log2(mbs_per_slice); - int num_cblocks, pwidth, linesize, line_add; + int num_cblocks, pwidth, line_add; + ptrdiff_t linesize; int plane_factor, is_chroma; uint16_t *qmat; @@ -667,7 +668,7 @@ static int estimate_acs(int *error, int16_t *blocks, int blocks_per_slice, } static int estimate_slice_plane(ProresContext *ctx, int *error, int plane, - const uint16_t *src, int linesize, + const uint16_t *src, ptrdiff_t linesize, int mbs_per_slice, int blocks_per_mb, int plane_size_factor, const int16_t *qmat, ProresThreadData *td) @@ -701,7 +702,7 @@ static int est_alpha_diff(int cur, int prev, int abits) } static int estimate_alpha_plane(ProresContext *ctx, int *error, - const uint16_t *src, int linesize, + const uint16_t *src, ptrdiff_t linesize, int mbs_per_slice, int quant, int16_t *blocks) { @@ -939,12 +940,16 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, uint8_t frame_flags; ctx->pic = pic; +#if FF_API_CODED_FRAME +FF_DISABLE_DEPRECATION_WARNINGS avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I; avctx->coded_frame->key_frame = 1; +FF_ENABLE_DEPRECATION_WARNINGS +#endif pkt_size = ctx->frame_size_upper_bound; - if ((ret = ff_alloc_packet(pkt, pkt_size + FF_MIN_BUFFER_SIZE)) < 0) { + if ((ret = ff_alloc_packet(pkt, pkt_size + AV_INPUT_BUFFER_MIN_SIZE)) < 0) { av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n"); return ret; } @@ -965,7 +970,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, bytestream_put_be16 (&buf, avctx->height); frame_flags = ctx->chroma_factor << 6; - if (avctx->flags & CODEC_FLAG_INTERLACED_DCT) + if (avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) frame_flags |= pic->top_field_first ? 0x04 : 0x08; bytestream_put_byte (&buf, frame_flags); @@ -1097,8 +1102,6 @@ static av_cold int encode_close(AVCodecContext *avctx) ProresContext *ctx = avctx->priv_data; int i; - av_freep(&avctx->coded_frame); - if (ctx->tdata) { for (i = 0; i < avctx->thread_count; i++) av_free(ctx->tdata[i].nodes); @@ -1110,7 +1113,7 @@ static av_cold int encode_close(AVCodecContext *avctx) } static void prores_fdct(FDCTDSPContext *fdsp, const uint16_t *src, - int linesize, int16_t *block) + ptrdiff_t linesize, int16_t *block) { int x, y; const uint16_t *tsrc = src; @@ -1129,12 +1132,9 @@ static av_cold int encode_init(AVCodecContext *avctx) int mps; int i, j; int min_quant, max_quant; - int interlaced = !!(avctx->flags & CODEC_FLAG_INTERLACED_DCT); + int interlaced = !!(avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT); avctx->bits_per_raw_sample = 10; - avctx->coded_frame = av_frame_alloc(); - if (!avctx->coded_frame) - return AVERROR(ENOMEM); ctx->fdct = prores_fdct; ctx->scantable = interlaced ? ff_prores_interlaced_scan @@ -1333,7 +1333,7 @@ AVCodec ff_prores_encoder = { .init = encode_init, .close = encode_close, .encode2 = encode_frame, - .capabilities = CODEC_CAP_SLICE_THREADS, + .capabilities = AV_CODEC_CAP_SLICE_THREADS, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUVA444P10, AV_PIX_FMT_NONE