diff options
author | Diego Biurrun <diego@biurrun.de> | 2016-08-24 11:52:10 +0200 |
---|---|---|
committer | Diego Biurrun <diego@biurrun.de> | 2016-08-26 11:50:21 +0200 |
commit | 3fd22538bc0e0de84b31335266b4b1577d3d609e (patch) | |
tree | 97b7aed8f03aa6a1352934ca9407da515bfd574c /libavcodec/proresenc.c | |
parent | f81be06cf614919d71ded29b8f595bef40123ad8 (diff) |
prores: Change type of stride parameters to ptrdiff_t
This avoids SIMD-optimized functions having to sign-extend their
line size argument manually to be able to do pointer arithmetic.
Also adjust parameter names to be "linesize" everywhere.
Diffstat (limited to 'libavcodec/proresenc.c')
-rw-r--r-- | libavcodec/proresenc.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/libavcodec/proresenc.c b/libavcodec/proresenc.c index 0564b12ae2..e4842d2993 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) { @@ -1112,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; |