From: The M. M. M. <tm...@us...> - 2002-08-28 03:37:20
|
Update of /cvsroot/xine/xine-lib/src/libxinevdec In directory usw-pr-cvs1:/tmp/cvs-serv1954 Modified Files: fli.c msrle.c rgb.c idcinvideo.c Log Message: revised palette conversion subsystem to make a little more sense Index: fli.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/libxinevdec/fli.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- fli.c 15 Jul 2002 21:42:34 -0000 1.2 +++ fli.c 28 Aug 2002 03:37:17 -0000 1.3 @@ -183,7 +183,7 @@ stream_ptr += 2; if (line_packets < 0) { line_packets = -line_packets; - y_ptr += (line_packets * this->yuv_planes.row_stride); + y_ptr += (line_packets * this->yuv_planes.row_width); ghost_y_ptr += (line_packets * this->width); } else { pixel_ptr = y_ptr; @@ -232,18 +232,7 @@ } } - // take care of the extra 2 pixels on the C lines - this->yuv_planes.u[pixel_ptr] = - this->yuv_planes.u[pixel_ptr - 1]; - this->yuv_planes.u[pixel_ptr + 1] = - this->yuv_planes.u[pixel_ptr - 2]; - - this->yuv_planes.v[pixel_ptr] = - this->yuv_planes.v[pixel_ptr - 1]; - this->yuv_planes.v[pixel_ptr + 1] = - this->yuv_planes.v[pixel_ptr - 2]; - - y_ptr += this->yuv_planes.row_stride; + y_ptr += this->yuv_planes.row_width; ghost_y_ptr += this->width; compressed_lines--; } @@ -254,7 +243,7 @@ /* line compressed */ starting_line = LE_16(&this->buf[stream_ptr]); stream_ptr += 2; - y_ptr = starting_line * this->yuv_planes.row_stride; + y_ptr = starting_line * this->yuv_planes.row_width; ghost_y_ptr = starting_line * this->width; compressed_lines = LE_16(&this->buf[stream_ptr]); @@ -299,18 +288,7 @@ } } - // take care of the extra 2 pixels on the C lines - this->yuv_planes.u[pixel_ptr] = - this->yuv_planes.u[pixel_ptr - 1]; - this->yuv_planes.u[pixel_ptr + 1] = - this->yuv_planes.u[pixel_ptr - 2]; - - this->yuv_planes.v[pixel_ptr] = - this->yuv_planes.v[pixel_ptr - 1]; - this->yuv_planes.v[pixel_ptr + 1] = - this->yuv_planes.v[pixel_ptr - 2]; - - y_ptr += this->yuv_planes.row_stride; + y_ptr += this->yuv_planes.row_width; ghost_y_ptr += this->width; compressed_lines--; } @@ -362,18 +340,7 @@ } } - // take care of the extra 2 pixels on the C lines - this->yuv_planes.u[pixel_ptr] = - this->yuv_planes.u[pixel_ptr - 1]; - this->yuv_planes.u[pixel_ptr + 1] = - this->yuv_planes.u[pixel_ptr - 2]; - - this->yuv_planes.v[pixel_ptr] = - this->yuv_planes.v[pixel_ptr - 1]; - this->yuv_planes.v[pixel_ptr + 1] = - this->yuv_planes.v[pixel_ptr - 2]; - - y_ptr += this->yuv_planes.row_stride; + y_ptr += this->yuv_planes.row_width; ghost_y_ptr += this->width; } break; @@ -418,18 +385,6 @@ this->yuv_planes.v[pixel_ptr] = this->yuv_palette[palette_ptr1 + 2]; pixel_ptr++; } - - // take care of the extra 2 pixels on the C lines - this->yuv_planes.u[pixel_ptr] = - this->yuv_planes.u[pixel_ptr - 1]; - this->yuv_planes.u[pixel_ptr + 1] = - this->yuv_planes.u[pixel_ptr - 2]; - - // take care of the extra 2 pixels on the C lines - this->yuv_planes.v[pixel_ptr] = - this->yuv_planes.v[pixel_ptr - 1]; - this->yuv_planes.v[pixel_ptr + 1] = - this->yuv_planes.v[pixel_ptr - 2]; pixel_ptr += 2; } Index: msrle.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/libxinevdec/msrle.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- msrle.c 20 Jul 2002 04:24:59 -0000 1.3 +++ msrle.c 28 Aug 2002 03:37:17 -0000 1.4 @@ -78,9 +78,9 @@ unsigned char extra_byte; unsigned char stream_byte; int pixel_ptr = 0; - int row_dec = this->yuv_planes.row_stride; + int row_dec = this->yuv_planes.row_width; int row_ptr = (this->height - 1) * row_dec; - int frame_size = this->yuv_planes.row_stride * this->height; + int frame_size = this->yuv_planes.row_width * this->height; unsigned char y, u, v; while (row_ptr >= 0) { @@ -90,22 +90,13 @@ /* fetch the next byte to see how to handle escape code */ FETCH_NEXT_STREAM_BYTE(); if (stream_byte == 0) { - /* take care of the extra 2 pixels on the C lines */ - FINISH_LINE(this->yuv_planes, row_ptr); - /* line is done, goto the next one */ row_ptr -= row_dec; pixel_ptr = 0; } else if (stream_byte == 1) { - /* take care of the extra 2 pixels on the C lines */ - FINISH_LINE(this->yuv_planes, row_ptr); - /* decode is done */ return; } else if (stream_byte == 2) { - /* take care of the extra 2 pixels on the C lines */ - FINISH_LINE(this->yuv_planes, row_ptr); - /* reposition frame decode coordinates */ FETCH_NEXT_STREAM_BYTE(); pixel_ptr += stream_byte; Index: rgb.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/libxinevdec/rgb.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- rgb.c 20 Jul 2002 04:24:59 -0000 1.3 +++ rgb.c 28 Aug 2002 03:37:17 -0000 1.4 @@ -162,9 +162,9 @@ /* iterate through each row */ buf_ptr = 0; - row_ptr = this->yuv_planes.row_stride * + row_ptr = this->yuv_planes.row_width * (this->yuv_planes.row_count - 1); - for (; row_ptr >= 0; row_ptr -= this->yuv_planes.row_stride) { + for (; row_ptr >= 0; row_ptr -= this->yuv_planes.row_width) { for (pixel_ptr = 0; pixel_ptr < this->width; pixel_ptr++) { if (this->bytes_per_pixel == 1) { @@ -206,9 +206,6 @@ } } - - /* take care of the extra 2 pixels on the C lines */ - FINISH_LINE(this->yuv_planes, row_ptr); } yuv444_to_yuy2(&this->yuv_planes, img->base[0], img->pitches[0]); Index: idcinvideo.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/libxinevdec/idcinvideo.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- idcinvideo.c 12 Aug 2002 00:16:54 -0000 1.1 +++ idcinvideo.c 28 Aug 2002 03:37:17 -0000 1.2 @@ -91,7 +91,6 @@ int prev; unsigned char v = 0; int bit_pos, node_num, dat_pos; - int width_countdown = this->width; int plane_ptr = 0; prev = bit_pos = dat_pos = 0; @@ -118,12 +117,6 @@ this->yuv_planes.u[plane_ptr] = this->yuv_palette[node_num * 4 + 1]; this->yuv_planes.v[plane_ptr] = this->yuv_palette[node_num * 4 + 2]; plane_ptr++; - width_countdown--; - if (!width_countdown) { - FINISH_LINE(this->yuv_planes, plane_ptr - this->width); - width_countdown = this->width; - plane_ptr += 2; - } prev = node_num; } |