comparison 8bps.c @ 6268:ce3cc7f7fb53 libavcodec

const
author michael
date Fri, 01 Feb 2008 15:11:24 +0000
parents 2b72f9bc4f06
children 48759bfbd073
comparison
equal deleted inserted replaced
6267:8af6a717f905 6268:ce3cc7f7fb53
55 /* 55 /*
56 * 56 *
57 * Decode a frame 57 * Decode a frame
58 * 58 *
59 */ 59 */
60 static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, uint8_t *buf, int buf_size) 60 static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size)
61 { 61 {
62 EightBpsContext * const c = avctx->priv_data; 62 EightBpsContext * const c = avctx->priv_data;
63 unsigned char *encoded = (unsigned char *)buf; 63 const unsigned char *encoded = buf;
64 unsigned char *pixptr, *pixptr_end; 64 unsigned char *pixptr, *pixptr_end;
65 unsigned int height = avctx->height; // Real image height 65 unsigned int height = avctx->height; // Real image height
66 unsigned int dlen, p, row; 66 unsigned int dlen, p, row;
67 unsigned char *lp, *dp; 67 const unsigned char *lp, *dp;
68 unsigned char count; 68 unsigned char count;
69 unsigned int px_inc; 69 unsigned int px_inc;
70 unsigned int planes = c->planes; 70 unsigned int planes = c->planes;
71 unsigned char *planemap = c->planemap; 71 unsigned char *planemap = c->planemap;
72 72
95 95
96 /* Decode a plane */ 96 /* Decode a plane */
97 for(row = 0; row < height; row++) { 97 for(row = 0; row < height; row++) {
98 pixptr = c->pic.data[0] + row * c->pic.linesize[0] + planemap[p]; 98 pixptr = c->pic.data[0] + row * c->pic.linesize[0] + planemap[p];
99 pixptr_end = pixptr + c->pic.linesize[0]; 99 pixptr_end = pixptr + c->pic.linesize[0];
100 dlen = be2me_16(*(unsigned short *)(lp+row*2)); 100 dlen = be2me_16(*(const unsigned short *)(lp+row*2));
101 /* Decode a row of this plane */ 101 /* Decode a row of this plane */
102 while(dlen > 0) { 102 while(dlen > 0) {
103 if(dp + 1 >= buf+buf_size) return -1; 103 if(dp + 1 >= buf+buf_size) return -1;
104 if ((count = *dp++) <= 127) { 104 if ((count = *dp++) <= 127) {
105 count++; 105 count++;