Mercurial > libavcodec.hg
changeset 1488:766a2f4edbea libavcodec
avcodec const correctness patch by (Drew Hess <dhess at ilm dot com>)
author | michaelni |
---|---|
date | Mon, 29 Sep 2003 15:44:59 +0000 |
parents | dfd69e00951c |
children | 337d13aee605 |
files | avcodec.h imgconvert.c imgconvert_template.h imgresample.c |
diffstat | 4 files changed, 85 insertions(+), 70 deletions(-) [+] |
line wrap: on
line diff
--- a/avcodec.h Sun Sep 28 22:53:25 2003 +0000 +++ b/avcodec.h Mon Sep 29 15:44:59 2003 +0000 @@ -520,7 +520,7 @@ * @param offset offset into the AVFrame.data from which the slice should be read */ void (*draw_horiz_band)(struct AVCodecContext *s, - AVFrame *src, int offset[4], + const AVFrame *src, int offset[4], int y, int type, int height); /* audio only */ @@ -1483,13 +1483,13 @@ int leftBand, int rightBand); void img_resample(ImgReSampleContext *s, - AVPicture *output, AVPicture *input); + AVPicture *output, const AVPicture *input); void img_resample_close(ImgReSampleContext *s); int avpicture_fill(AVPicture *picture, uint8_t *ptr, int pix_fmt, int width, int height); -int avpicture_layout(AVPicture* src, int pix_fmt, int width, int height, +int avpicture_layout(const AVPicture* src, int pix_fmt, int width, int height, unsigned char *dest, int dest_size); int avpicture_get_size(int pix_fmt, int width, int height); void avcodec_get_chroma_sub_sample(int pix_fmt, int *h_shift, int *v_shift); @@ -1510,15 +1510,16 @@ #define FF_ALPHA_TRANSP 0x0001 /* image has some totally transparent pixels */ #define FF_ALPHA_SEMI_TRANSP 0x0002 /* image has some transparent pixels */ -int img_get_alpha_info(AVPicture *src, int pix_fmt, int width, int height); +int img_get_alpha_info(const AVPicture *src, + int pix_fmt, int width, int height); /* convert among pixel formats */ int img_convert(AVPicture *dst, int dst_pix_fmt, - AVPicture *src, int pix_fmt, + const AVPicture *src, int pix_fmt, int width, int height); /* deinterlace a picture */ -int avpicture_deinterlace(AVPicture *dst, AVPicture *src, +int avpicture_deinterlace(AVPicture *dst, const AVPicture *src, int pix_fmt, int width, int height); /* external high level API */
--- a/imgconvert.c Sun Sep 28 22:53:25 2003 +0000 +++ b/imgconvert.c Mon Sep 29 15:44:59 2003 +0000 @@ -236,7 +236,7 @@ /* Picture field are filled with 'ptr' addresses. Also return size */ int avpicture_fill(AVPicture *picture, uint8_t *ptr, - int pix_fmt, int width, int height) + int pix_fmt, int width, int height) { int size, w2, h2, size2; PixFmtInfo *pinfo; @@ -313,12 +313,12 @@ } } -int avpicture_layout(AVPicture* src, int pix_fmt, int width, int height, +int avpicture_layout(const AVPicture* src, int pix_fmt, int width, int height, unsigned char *dest, int dest_size) { PixFmtInfo* pf = &pix_fmt_info[pix_fmt]; int i, j, w, h, data_planes; - unsigned char* s; + const unsigned char* s; int size = avpicture_get_size(pix_fmt, width, height); if (size > dest_size) @@ -535,7 +535,7 @@ /** * Copy image 'src' to 'dst'. */ -void img_copy(AVPicture *dst, AVPicture *src, +void img_copy(AVPicture *dst, const AVPicture *src, int pix_fmt, int width, int height) { int bwidth, bits, i; @@ -588,7 +588,7 @@ /* XXX: totally non optimized */ -static void yuv422_to_yuv420p(AVPicture *dst, AVPicture *src, +static void yuv422_to_yuv420p(AVPicture *dst, const AVPicture *src, int width, int height) { const uint8_t *p, *p1; @@ -644,7 +644,7 @@ } } -static void yuv422_to_yuv422p(AVPicture *dst, AVPicture *src, +static void yuv422_to_yuv422p(AVPicture *dst, const AVPicture *src, int width, int height) { const uint8_t *p, *p1; @@ -677,7 +677,7 @@ } } -static void yuv422p_to_yuv422(AVPicture *dst, AVPicture *src, +static void yuv422p_to_yuv422(AVPicture *dst, const AVPicture *src, int width, int height) { uint8_t *p, *p1; @@ -1286,7 +1286,7 @@ #include "imgconvert_template.h" -static void mono_to_gray(AVPicture *dst, AVPicture *src, +static void mono_to_gray(AVPicture *dst, const AVPicture *src, int width, int height, int xor_mask) { const unsigned char *p; @@ -1327,19 +1327,19 @@ } } -static void monowhite_to_gray(AVPicture *dst, AVPicture *src, +static void monowhite_to_gray(AVPicture *dst, const AVPicture *src, int width, int height) { mono_to_gray(dst, src, width, height, 0xff); } -static void monoblack_to_gray(AVPicture *dst, AVPicture *src, +static void monoblack_to_gray(AVPicture *dst, const AVPicture *src, int width, int height) { mono_to_gray(dst, src, width, height, 0x00); } -static void gray_to_mono(AVPicture *dst, AVPicture *src, +static void gray_to_mono(AVPicture *dst, const AVPicture *src, int width, int height, int xor_mask) { int n; @@ -1383,20 +1383,21 @@ } } -static void gray_to_monowhite(AVPicture *dst, AVPicture *src, +static void gray_to_monowhite(AVPicture *dst, const AVPicture *src, int width, int height) { gray_to_mono(dst, src, width, height, 0xff); } -static void gray_to_monoblack(AVPicture *dst, AVPicture *src, +static void gray_to_monoblack(AVPicture *dst, const AVPicture *src, int width, int height) { gray_to_mono(dst, src, width, height, 0x00); } typedef struct ConvertEntry { - void (*convert)(AVPicture *dst, AVPicture *src, int width, int height); + void (*convert)(AVPicture *dst, + const AVPicture *src, int width, int height); } ConvertEntry; /* Add each new convertion function in this table. In order to be able @@ -1644,7 +1645,7 @@ /* XXX: always use linesize. Return -1 if not supported */ int img_convert(AVPicture *dst, int dst_pix_fmt, - AVPicture *src, int src_pix_fmt, + const AVPicture *src, int src_pix_fmt, int src_width, int src_height) { static int inited; @@ -1877,7 +1878,7 @@ } /* NOTE: we scan all the pixels to have an exact information */ -static int get_alpha_info_pal8(AVPicture *src, int width, int height) +static int get_alpha_info_pal8(const AVPicture *src, int width, int height) { const unsigned char *p; int src_wrap, ret, x, y; @@ -1906,7 +1907,8 @@ * Tell if an image really has transparent alpha values. * @return ored mask of FF_ALPHA_xxx constants */ -int img_get_alpha_info(AVPicture *src, int pix_fmt, int width, int height) +int img_get_alpha_info(const AVPicture *src, + int pix_fmt, int width, int height) { PixFmtInfo *pf = &pix_fmt_info[pix_fmt]; int ret; @@ -1981,8 +1983,11 @@ #endif /* filter parameters: [-1 4 2 4 -1] // 8 */ -static void deinterlace_line(uint8_t *dst, uint8_t *lum_m4, uint8_t *lum_m3, uint8_t *lum_m2, uint8_t *lum_m1, uint8_t *lum, - int size) +static void deinterlace_line(uint8_t *dst, + const uint8_t *lum_m4, const uint8_t *lum_m3, + const uint8_t *lum_m2, const uint8_t *lum_m1, + const uint8_t *lum, + int size) { #ifndef HAVE_MMX uint8_t *cm = cropTbl + MAX_NEG_CROP; @@ -2071,10 +2076,10 @@ top field is copied as is, but the bottom field is deinterlaced against the top field. */ static void deinterlace_bottom_field(uint8_t *dst, int dst_wrap, - uint8_t *src1, int src_wrap, + const uint8_t *src1, int src_wrap, int width, int height) { - uint8_t *src_m2, *src_m1, *src_0, *src_p1, *src_p2; + const uint8_t *src_m2, *src_m1, *src_0, *src_p1, *src_p2; int y; src_m2 = src1; @@ -2100,7 +2105,7 @@ } static void deinterlace_bottom_field_inplace(uint8_t *src1, int src_wrap, - int width, int height) + int width, int height) { uint8_t *src_m1, *src_0, *src_p1, *src_p2; int y; @@ -2126,7 +2131,7 @@ /* deinterlace - if not supported return -1 */ -int avpicture_deinterlace(AVPicture *dst, AVPicture *src, +int avpicture_deinterlace(AVPicture *dst, const AVPicture *src, int pix_fmt, int width, int height) { int i; @@ -2157,7 +2162,7 @@ } } if (src == dst) { - deinterlace_bottom_field_inplace(src->data[i], src->linesize[i], + deinterlace_bottom_field_inplace(dst->data[i], dst->linesize[i], width, height); } else { deinterlace_bottom_field(dst->data[i],dst->linesize[i],
--- a/imgconvert_template.h Sun Sep 28 22:53:25 2003 +0000 +++ b/imgconvert_template.h Mon Sep 29 15:44:59 2003 +0000 @@ -21,10 +21,11 @@ #define RGB_OUT(d, r, g, b) RGBA_OUT(d, r, g, b, 0xff) #endif -static void glue(yuv420p_to_, RGB_NAME)(AVPicture *dst, AVPicture *src, +static void glue(yuv420p_to_, RGB_NAME)(AVPicture *dst, const AVPicture *src, int width, int height) { - uint8_t *y1_ptr, *y2_ptr, *cb_ptr, *cr_ptr, *d, *d1, *d2; + const uint8_t *y1_ptr, *y2_ptr, *cb_ptr, *cr_ptr; + uint8_t *d, *d1, *d2; int w, y, cb, cr, r_add, g_add, b_add, width2; uint8_t *cm = cropTbl + MAX_NEG_CROP; unsigned int r, g, b; @@ -114,10 +115,11 @@ } } -static void glue(yuvj420p_to_, RGB_NAME)(AVPicture *dst, AVPicture *src, +static void glue(yuvj420p_to_, RGB_NAME)(AVPicture *dst, const AVPicture *src, int width, int height) { - uint8_t *y1_ptr, *y2_ptr, *cb_ptr, *cr_ptr, *d, *d1, *d2; + const uint8_t *y1_ptr, *y2_ptr, *cb_ptr, *cr_ptr; + uint8_t *d, *d1, *d2; int w, y, cb, cr, r_add, g_add, b_add, width2; uint8_t *cm = cropTbl + MAX_NEG_CROP; unsigned int r, g, b; @@ -207,7 +209,7 @@ } } -static void glue(RGB_NAME, _to_yuv420p)(AVPicture *dst, AVPicture *src, +static void glue(RGB_NAME, _to_yuv420p)(AVPicture *dst, const AVPicture *src, int width, int height) { int wrap, wrap3, width2; @@ -314,7 +316,7 @@ } } -static void glue(RGB_NAME, _to_gray)(AVPicture *dst, AVPicture *src, +static void glue(RGB_NAME, _to_gray)(AVPicture *dst, const AVPicture *src, int width, int height) { const unsigned char *p; @@ -340,7 +342,7 @@ } } -static void glue(gray_to_, RGB_NAME)(AVPicture *dst, AVPicture *src, +static void glue(gray_to_, RGB_NAME)(AVPicture *dst, const AVPicture *src, int width, int height) { const unsigned char *p; @@ -366,7 +368,7 @@ } } -static void glue(pal8_to_, RGB_NAME)(AVPicture *dst, AVPicture *src, +static void glue(pal8_to_, RGB_NAME)(AVPicture *dst, const AVPicture *src, int width, int height) { const unsigned char *p; @@ -409,7 +411,7 @@ #if !defined(FMT_RGBA32) && defined(RGBA_OUT) /* alpha support */ -static void glue(rgba32_to_, RGB_NAME)(AVPicture *dst, AVPicture *src, +static void glue(rgba32_to_, RGB_NAME)(AVPicture *dst, const AVPicture *src, int width, int height) { const uint8_t *s; @@ -439,7 +441,7 @@ } } -static void glue(RGB_NAME, _to_rgba32)(AVPicture *dst, AVPicture *src, +static void glue(RGB_NAME, _to_rgba32)(AVPicture *dst, const AVPicture *src, int width, int height) { const uint8_t *s; @@ -469,7 +471,7 @@ #ifndef FMT_RGB24 -static void glue(rgb24_to_, RGB_NAME)(AVPicture *dst, AVPicture *src, +static void glue(rgb24_to_, RGB_NAME)(AVPicture *dst, const AVPicture *src, int width, int height) { const uint8_t *s; @@ -497,7 +499,7 @@ } } -static void glue(RGB_NAME, _to_rgb24)(AVPicture *dst, AVPicture *src, +static void glue(RGB_NAME, _to_rgb24)(AVPicture *dst, const AVPicture *src, int width, int height) { const uint8_t *s; @@ -529,10 +531,11 @@ #ifdef FMT_RGB24 -static void yuv444p_to_rgb24(AVPicture *dst, AVPicture *src, +static void yuv444p_to_rgb24(AVPicture *dst, const AVPicture *src, int width, int height) { - uint8_t *y1_ptr, *cb_ptr, *cr_ptr, *d, *d1; + const uint8_t *y1_ptr, *cb_ptr, *cr_ptr; + uint8_t *d, *d1; int w, y, cb, cr, r_add, g_add, b_add; uint8_t *cm = cropTbl + MAX_NEG_CROP; unsigned int r, g, b; @@ -561,10 +564,11 @@ } } -static void yuvj444p_to_rgb24(AVPicture *dst, AVPicture *src, +static void yuvj444p_to_rgb24(AVPicture *dst, const AVPicture *src, int width, int height) { - uint8_t *y1_ptr, *cb_ptr, *cr_ptr, *d, *d1; + const uint8_t *y1_ptr, *cb_ptr, *cr_ptr; + uint8_t *d, *d1; int w, y, cb, cr, r_add, g_add, b_add; uint8_t *cm = cropTbl + MAX_NEG_CROP; unsigned int r, g, b; @@ -593,7 +597,7 @@ } } -static void rgb24_to_yuv444p(AVPicture *dst, AVPicture *src, +static void rgb24_to_yuv444p(AVPicture *dst, const AVPicture *src, int width, int height) { int src_wrap, x, y; @@ -625,7 +629,7 @@ } } -static void rgb24_to_yuvj420p(AVPicture *dst, AVPicture *src, +static void rgb24_to_yuvj420p(AVPicture *dst, const AVPicture *src, int width, int height) { int wrap, wrap3, width2; @@ -732,7 +736,7 @@ } } -static void rgb24_to_yuvj444p(AVPicture *dst, AVPicture *src, +static void rgb24_to_yuvj444p(AVPicture *dst, const AVPicture *src, int width, int height) { int src_wrap, x, y; @@ -768,7 +772,7 @@ #if defined(FMT_RGB24) || defined(FMT_RGBA32) -static void glue(RGB_NAME, _to_pal8)(AVPicture *dst, AVPicture *src, +static void glue(RGB_NAME, _to_pal8)(AVPicture *dst, const AVPicture *src, int width, int height) { const unsigned char *p; @@ -816,7 +820,8 @@ #ifdef RGBA_IN -static int glue(get_alpha_info_, RGB_NAME)(AVPicture *src, int width, int height) +static int glue(get_alpha_info_, RGB_NAME)(const AVPicture *src, + int width, int height) { const unsigned char *p; int src_wrap, ret, x, y;
--- a/imgresample.c Sun Sep 28 22:53:25 2003 +0000 +++ b/imgresample.c Mon Sep 29 15:44:59 2003 +0000 @@ -58,11 +58,12 @@ } /* This function must be optimized */ -static void h_resample_fast(uint8_t *dst, int dst_width, uint8_t *src, int src_width, - int src_start, int src_incr, int16_t *filters) +static void h_resample_fast(uint8_t *dst, int dst_width, const uint8_t *src, + int src_width, int src_start, int src_incr, + int16_t *filters) { int src_pos, phase, sum, i; - uint8_t *s; + const uint8_t *s; int16_t *filter; src_pos = src_start; @@ -101,11 +102,11 @@ } /* This function must be optimized */ -static void v_resample(uint8_t *dst, int dst_width, uint8_t *src, int wrap, - int16_t *filter) +static void v_resample(uint8_t *dst, int dst_width, const uint8_t *src, + int wrap, int16_t *filter) { int sum, i; - uint8_t *s; + const uint8_t *s; s = src; for(i=0;i<dst_width;i++) { @@ -160,11 +161,12 @@ #define DUMP(reg) movq_r2m(reg, tmp); printf(#reg "=%016Lx\n", tmp.uq); /* XXX: do four pixels at a time */ -static void h_resample_fast4_mmx(uint8_t *dst, int dst_width, uint8_t *src, int src_width, +static void h_resample_fast4_mmx(uint8_t *dst, int dst_width, + const uint8_t *src, int src_width, int src_start, int src_incr, int16_t *filters) { int src_pos, phase; - uint8_t *s; + const uint8_t *s; int16_t *filter; mmx_t tmp; @@ -204,11 +206,11 @@ emms(); } -static void v_resample4_mmx(uint8_t *dst, int dst_width, uint8_t *src, int wrap, - int16_t *filter) +static void v_resample4_mmx(uint8_t *dst, int dst_width, const uint8_t *src, + int wrap, int16_t *filter) { int sum, i, v; - uint8_t *s; + const uint8_t *s; mmx_t tmp; mmx_t coefs[4]; @@ -280,11 +282,11 @@ signed short s[8]; } vec_ss_t; -void v_resample16_altivec(uint8_t *dst, int dst_width, uint8_t *src, int wrap, - int16_t *filter) +void v_resample16_altivec(uint8_t *dst, int dst_width, const uint8_t *src, + int wrap, int16_t *filter) { int sum, i; - uint8_t *s; + const uint8_t *s; vector unsigned char *tv, tmp, dstv, zero; vec_ss_t srchv[4], srclv[4], fv[4]; vector signed short zeros, sumhv, sumlv; @@ -397,11 +399,12 @@ #endif /* slow version to handle limit cases. Does not need optimisation */ -static void h_resample_slow(uint8_t *dst, int dst_width, uint8_t *src, int src_width, +static void h_resample_slow(uint8_t *dst, int dst_width, + const uint8_t *src, int src_width, int src_start, int src_incr, int16_t *filters) { int src_pos, phase, sum, j, v, i; - uint8_t *s, *src_end; + const uint8_t *s, *src_end; int16_t *filter; src_end = src + src_width; @@ -432,8 +435,9 @@ } } -static void h_resample(uint8_t *dst, int dst_width, uint8_t *src, int src_width, - int src_start, int src_incr, int16_t *filters) +static void h_resample(uint8_t *dst, int dst_width, const uint8_t *src, + int src_width, int src_start, int src_incr, + int16_t *filters) { int n, src_end; @@ -607,7 +611,7 @@ } void img_resample(ImgReSampleContext *s, - AVPicture *output, AVPicture *input) + AVPicture *output, const AVPicture *input) { int i, shift;