Lines Matching refs:frame

202 static int decode_intra(AVCodecContext *avctx, GetBitContext *gb, AVFrame *frame)
235 s->idsp.idct_put(frame->data[0] + y * frame->linesize[0] + x,
236 frame->linesize[0], s->block[0]);
237 s->idsp.idct_put(frame->data[0] + y * frame->linesize[0] + x + 8,
238 frame->linesize[0], s->block[1]);
239 s->idsp.idct_put(frame->data[0] + (y + 8) * frame->linesize[0] + x,
240 frame->linesize[0], s->block[2]);
241 s->idsp.idct_put(frame->data[0] + (y + 8) * frame->linesize[0] + x + 8,
242 frame->linesize[0], s->block[3]);
243 s->idsp.idct_put(frame->data[1] + (y >> 1) * frame->linesize[1] + (x >> 1),
244 frame->linesize[1], s->block[4]);
245 s->idsp.idct_put(frame->data[2] + (y >> 1) * frame->linesize[2] + (x >> 1),
246 frame->linesize[2], s->block[5]);
254 AVFrame *frame, AVFrame *prev)
280 copy_block16(frame->data[0] + y * frame->linesize[0] + x,
282 frame->linesize[0], prev->linesize[0], 16);
283 copy_block8(frame->data[1] + (y >> 1) * frame->linesize[1] + (x >> 1),
285 frame->linesize[1], prev->linesize[1], 8);
286 copy_block8(frame->data[2] + (y >> 1) * frame->linesize[2] + (x >> 1),
288 frame->linesize[2], prev->linesize[2], 8);
308 s->idsp.idct_put(frame->data[0] + y * frame->linesize[0] + x,
309 frame->linesize[0], s->block[0]);
310 s->idsp.idct_put(frame->data[0] + y * frame->linesize[0] + x + 8,
311 frame->linesize[0], s->block[1]);
312 s->idsp.idct_put(frame->data[0] + (y + 8) * frame->linesize[0] + x,
313 frame->linesize[0], s->block[2]);
314 s->idsp.idct_put(frame->data[0] + (y + 8) * frame->linesize[0] + x + 8,
315 frame->linesize[0], s->block[3]);
316 s->idsp.idct_put(frame->data[1] + (y >> 1) * frame->linesize[1] + (x >> 1),
317 frame->linesize[1], s->block[4]);
318 s->idsp.idct_put(frame->data[2] + (y >> 1) * frame->linesize[2] + (x >> 1),
319 frame->linesize[2], s->block[5]);
327 copy_block16(frame->data[0] + y * frame->linesize[0] + x,
329 frame->linesize[0], prev->linesize[0], 16);
330 copy_block8(frame->data[1] + (y >> 1) * frame->linesize[1] + (x >> 1),
332 frame->linesize[1], prev->linesize[1], 8);
333 copy_block8(frame->data[2] + (y >> 1) * frame->linesize[2] + (x >> 1),
335 frame->linesize[2], prev->linesize[2], 8);
337 s->idsp.idct_add(frame->data[0] + y * frame->linesize[0] + x,
338 frame->linesize[0], s->block[0]);
339 s->idsp.idct_add(frame->data[0] + y * frame->linesize[0] + x + 8,
340 frame->linesize[0], s->block[1]);
341 s->idsp.idct_add(frame->data[0] + (y + 8) * frame->linesize[0] + x,
342 frame->linesize[0], s->block[2]);
343 s->idsp.idct_add(frame->data[0] + (y + 8) * frame->linesize[0] + x + 8,
344 frame->linesize[0], s->block[3]);
345 s->idsp.idct_add(frame->data[1] + (y >> 1) * frame->linesize[1] + (x >> 1),
346 frame->linesize[1], s->block[4]);
347 s->idsp.idct_add(frame->data[2] + (y >> 1) * frame->linesize[2] + (x >> 1),
348 frame->linesize[2], s->block[5]);
356 static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
425 frame->key_frame = 1;
426 frame->pict_type = AV_PICTURE_TYPE_I;
429 frame->key_frame = 0;
430 frame->pict_type = AV_PICTURE_TYPE_P;
439 if (!frame->key_frame) {
450 if ((ret = ff_get_buffer(avctx, frame, frame->key_frame ? AV_GET_BUFFER_FLAG_REF : 0)) < 0)
453 if (frame->key_frame) {
454 ret = decode_intra(avctx, gb, frame);
459 if ((ret = av_frame_ref(s->prev_frame, frame)) < 0)
463 av_log(avctx, AV_LOG_ERROR, "Missing reference frame.\n");
467 ret = decode_inter(avctx, gb, frame, s->prev_frame);