[FFmpeg-devel] [PATCH] EA TGQ video fixes
Reimar Döffinger
Reimar.Doeffinger
Fri Apr 17 10:57:12 CEST 2009
On Thu, Apr 16, 2009 at 07:22:30PM +0200, Reimar D?ffinger wrote:
> Sorry for the many mails, I tried these patches, this one fixes PPC
> decoding to match:
> Index: eatgq.c
> ===================================================================
> --- eatgq.c (revision 18539)
> +++ eatgq.c (working copy)
> @@ -140,7 +140,7 @@
> }
> }
>
> -static void tgq_decode_mb(TgqContext *s, int mb_y, int mb_x, const int8_t **bs, const int8_t *buf_end){
> +static void tgq_decode_mb(TgqContext *s, int mb_y, int mb_x, const uint8_t **bs, const uint8_t *buf_end){
> int mode;
> int i;
> int8_t dc[6];
> @@ -228,7 +228,7 @@
>
> for (y=0; y<(avctx->height+15)/16; y++)
> for (x=0; x<(avctx->width+15)/16; x++)
> - tgq_decode_mb(s, y, x, (const int8_t**)&buf, (const int8_t*)buf_end);
> + tgq_decode_mb(s, y, x, &buf, buf_end);
>
> *data_size = sizeof(AVFrame);
> *(AVFrame*)data = s->frame;
Applied.
> And this one should be correct but makes no difference:
>
> --- eatgq.c 2009-04-16 17:20:15.000000000 +0000
> +++ eatgq.c.bak 2009-04-16 17:19:11.000000000 +0000
> @@ -42,6 +42,7 @@
> int width,height;
> ScanTable scantable;
> int qtable[64];
> + DECLARE_ALIGNED_16(DCTELEM, block[6][64]);
> } TgqContext;
>
> static av_cold int tgq_decode_init(AVCodecContext *avctx){
> @@ -144,7 +145,6 @@
> int mode;
> int i;
> int8_t dc[6];
> - DCTELEM block[6][64];
>
> mode = bytestream_get_byte((const uint8_t**)bs);
> if (mode>buf_end-*bs) {
> @@ -156,8 +156,8 @@
> GetBitContext gb;
> init_get_bits(&gb, *bs, mode*8);
> for(i=0; i<6; i++)
> - tgq_decode_block(s, block[i], &gb);
> - tgq_idct_put_mb(s, block, mb_x, mb_y);
> + tgq_decode_block(s, s->block[i], &gb);
> + tgq_idct_put_mb(s, s->block, mb_x, mb_y);
> }else{
> if (mode==3) {
> memset(dc, (*bs)[0], 4);
Waiting to see what the FATE results look like now before doing anything
else.
More information about the ffmpeg-devel
mailing list