Lines Matching defs:frame
60 static void cmv_decode_intra(CmvContext * s, AVFrame *frame,
63 unsigned char *dst = frame->data[0];
68 dst += frame->linesize[0];
92 static void cmv_decode_inter(CmvContext *s, AVFrame *frame, const uint8_t *buf,
102 unsigned char *dst = frame->data[0] + (y*4)*frame->linesize[0] + x*4;
106 memcpy(dst + frame->linesize[0], raw+4, 4);
107 memcpy(dst + 2 * frame->linesize[0], raw+8, 4);
108 memcpy(dst + 3 * frame->linesize[0], raw+12, 4);
110 }else if(raw<buf_end) { /* inter using second-last frame as reference */
114 cmv_motcomp(frame->data[0], frame->linesize[0],
119 }else{ /* inter using last frame as reference */
123 cmv_motcomp(frame->data[0], frame->linesize[0],
172 static int cmv_decode_frame(AVCodecContext *avctx, AVFrame *frame,
197 if ((ret = ff_get_buffer(avctx, frame, AV_GET_BUFFER_FLAG_REF)) < 0)
200 memcpy(frame->data[1], s->palette, AVPALETTE_SIZE);
204 cmv_decode_inter(s, frame, buf+2, buf_end);
205 frame->key_frame = 0;
206 frame->pict_type = AV_PICTURE_TYPE_P;
208 frame->key_frame = 1;
209 frame->pict_type = AV_PICTURE_TYPE_I;
210 cmv_decode_intra(s, frame, buf+2, buf_end);
215 if ((ret = av_frame_ref(s->last_frame, frame)) < 0)