|
|
|
@ -40,7 +40,7 @@ |
|
|
|
|
|
|
|
|
|
#include "avcodec.h" |
|
|
|
|
#include "bytestream.h" |
|
|
|
|
#include "dsputil.h" |
|
|
|
|
#include "hpeldsp.h" |
|
|
|
|
#define BITSTREAM_READER_LE |
|
|
|
|
#include "get_bits.h" |
|
|
|
|
#include "internal.h" |
|
|
|
@ -50,7 +50,7 @@ |
|
|
|
|
typedef struct IpvideoContext { |
|
|
|
|
|
|
|
|
|
AVCodecContext *avctx; |
|
|
|
|
DSPContext dsp; |
|
|
|
|
HpelDSPContext hdsp; |
|
|
|
|
AVFrame *second_last_frame; |
|
|
|
|
AVFrame *last_frame; |
|
|
|
|
const unsigned char *decoding_map; |
|
|
|
@ -83,8 +83,8 @@ static int copy_from(IpvideoContext *s, AVFrame *src, AVFrame *dst, int delta_x, |
|
|
|
|
av_log(s->avctx, AV_LOG_ERROR, "Invalid decode type, corrupted header?\n"); |
|
|
|
|
return AVERROR(EINVAL); |
|
|
|
|
} |
|
|
|
|
s->dsp.put_pixels_tab[!s->is_16bpp][0](s->pixel_ptr, src->data[0] + motion_offset, |
|
|
|
|
dst->linesize[0], 8); |
|
|
|
|
s->hdsp.put_pixels_tab[!s->is_16bpp][0](s->pixel_ptr, src->data[0] + motion_offset, |
|
|
|
|
dst->linesize[0], 8); |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -939,7 +939,7 @@ static av_cold int ipvideo_decode_init(AVCodecContext *avctx) |
|
|
|
|
s->is_16bpp = avctx->bits_per_coded_sample == 16; |
|
|
|
|
avctx->pix_fmt = s->is_16bpp ? AV_PIX_FMT_RGB555 : AV_PIX_FMT_PAL8; |
|
|
|
|
|
|
|
|
|
ff_dsputil_init(&s->dsp, avctx); |
|
|
|
|
ff_hpeldsp_init(&s->hdsp, avctx->flags); |
|
|
|
|
|
|
|
|
|
s->last_frame = av_frame_alloc(); |
|
|
|
|
s->second_last_frame = av_frame_alloc(); |
|
|
|
|