OLD | NEW |
1 /* | 1 /* |
2 * Electronic Arts TGQ Video Decoder | 2 * Electronic Arts TGQ Video Decoder |
3 * Copyright (c) 2007-2008 Peter Ross <pross@xvid.org> | 3 * Copyright (c) 2007-2008 Peter Ross <pross@xvid.org> |
4 * | 4 * |
5 * This file is part of FFmpeg. | 5 * This file is part of FFmpeg. |
6 * | 6 * |
7 * FFmpeg is free software; you can redistribute it and/or | 7 * FFmpeg is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Lesser General Public | 8 * modify it under the terms of the GNU Lesser General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2.1 of the License, or (at your option) any later version. | 10 * version 2.1 of the License, or (at your option) any later version. |
(...skipping 24 matching lines...) Expand all Loading... |
35 #include "dsputil.h" | 35 #include "dsputil.h" |
36 #include "aandcttab.h" | 36 #include "aandcttab.h" |
37 | 37 |
38 typedef struct TgqContext { | 38 typedef struct TgqContext { |
39 AVCodecContext *avctx; | 39 AVCodecContext *avctx; |
40 DSPContext dsp; | 40 DSPContext dsp; |
41 AVFrame frame; | 41 AVFrame frame; |
42 int width,height; | 42 int width,height; |
43 ScanTable scantable; | 43 ScanTable scantable; |
44 int qtable[64]; | 44 int qtable[64]; |
45 DECLARE_ALIGNED_16(DCTELEM, block)[6][64]; | 45 DECLARE_ALIGNED(16, DCTELEM, block)[6][64]; |
46 } TgqContext; | 46 } TgqContext; |
47 | 47 |
48 static av_cold int tgq_decode_init(AVCodecContext *avctx){ | 48 static av_cold int tgq_decode_init(AVCodecContext *avctx){ |
49 TgqContext *s = avctx->priv_data; | 49 TgqContext *s = avctx->priv_data; |
50 s->avctx = avctx; | 50 s->avctx = avctx; |
51 if(avctx->idct_algo==FF_IDCT_AUTO) | 51 if(avctx->idct_algo==FF_IDCT_AUTO) |
52 avctx->idct_algo=FF_IDCT_EA; | 52 avctx->idct_algo=FF_IDCT_EA; |
53 dsputil_init(&s->dsp, avctx); | 53 dsputil_init(&s->dsp, avctx); |
54 ff_init_scantable(s->dsp.idct_permutation, &s->scantable, ff_zigzag_direct); | 54 ff_init_scantable(s->dsp.idct_permutation, &s->scantable, ff_zigzag_direct); |
55 avctx->time_base = (AVRational){1, 15}; | 55 avctx->time_base = (AVRational){1, 15}; |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 CODEC_TYPE_VIDEO, | 248 CODEC_TYPE_VIDEO, |
249 CODEC_ID_TGQ, | 249 CODEC_ID_TGQ, |
250 sizeof(TgqContext), | 250 sizeof(TgqContext), |
251 tgq_decode_init, | 251 tgq_decode_init, |
252 NULL, | 252 NULL, |
253 tgq_decode_end, | 253 tgq_decode_end, |
254 tgq_decode_frame, | 254 tgq_decode_frame, |
255 CODEC_CAP_DR1, | 255 CODEC_CAP_DR1, |
256 .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts TGQ video"), | 256 .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts TGQ video"), |
257 }; | 257 }; |
OLD | NEW |