* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
*/
/**
*/
#include "avcodec.h"
-#include "common.h"
#include "bitstream.h"
#include "dsputil.h"
return code->recode[val];
}
-static inline int tm2_read_header(TM2Context *ctx, uint8_t *buf)
+static inline int tm2_read_header(TM2Context *ctx, const uint8_t *buf)
{
uint32_t magic;
- uint8_t *obuf;
+ const uint8_t *obuf;
int length;
obuf = buf;
return -1;
}
- return (buf - obuf);
+ return buf - obuf;
}
static int tm2_read_deltas(TM2Context *ctx, int stream_id) {
return 0;
}
-static int tm2_read_stream(TM2Context *ctx, uint8_t *buf, int stream_id) {
+static int tm2_read_stream(TM2Context *ctx, const uint8_t *buf, int stream_id) {
int i;
int cur = 0;
int skip = 0;
d = deltas[i + j * 4];
ct += d;
last[i] += ct;
- Y[i] = clip_uint8(last[i]);
+ Y[i] = av_clip_uint8(last[i]);
}
Y += stride;
ctx->D[j] = ct;
src = (ctx->cur?ctx->Y2:ctx->Y1);
for(j = 0; j < ctx->avctx->height; j++){
for(i = 0; i < ctx->avctx->width; i++){
- Y[i] = clip_uint8(*src++);
+ Y[i] = av_clip_uint8(*src++);
}
Y += p->linesize[0];
}
src = (ctx->cur?ctx->U2:ctx->U1);
for(j = 0; j < (ctx->avctx->height + 1) >> 1; j++){
for(i = 0; i < (ctx->avctx->width + 1) >> 1; i++){
- U[i] = clip_uint8(*src++);
+ U[i] = av_clip_uint8(*src++);
}
U += p->linesize[2];
}
src = (ctx->cur?ctx->V2:ctx->V1);
for(j = 0; j < (ctx->avctx->height + 1) >> 1; j++){
for(i = 0; i < (ctx->avctx->width + 1) >> 1; i++){
- V[i] = clip_uint8(*src++);
+ V[i] = av_clip_uint8(*src++);
}
V += p->linesize[1];
}
static int decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- uint8_t *buf, int buf_size)
+ const uint8_t *buf, int buf_size)
{
TM2Context * const l = avctx->priv_data;
AVFrame * const p= (AVFrame*)&l->pic;
return -1;
}
- l->dsp.bswap_buf((uint32_t*)buf, (uint32_t*)buf, buf_size >> 2);
+ l->dsp.bswap_buf((uint32_t*)buf, (const uint32_t*)buf, buf_size >> 2); //FIXME SERIOUS BUG
skip = tm2_read_header(l, buf);
if(skip == -1)
return buf_size;
}
-static int decode_init(AVCodecContext *avctx){
+static av_cold int decode_init(AVCodecContext *avctx){
TM2Context * const l = avctx->priv_data;
int i;
l->avctx = avctx;
l->pic.data[0]=NULL;
- avctx->has_b_frames = 0;
avctx->pix_fmt = PIX_FMT_YUV420P;
dsputil_init(&l->dsp, avctx);
return 0;
}
-static int decode_end(AVCodecContext *avctx){
+static av_cold int decode_end(AVCodecContext *avctx){
TM2Context * const l = avctx->priv_data;
int i;
decode_end,
decode_frame,
CODEC_CAP_DR1,
+ .long_name = NULL_IF_CONFIG_SMALL("Duck TrueMotion 2.0"),
};