Lines Matching defs:frame
315 const int *quant_matrix, AVFrame *frame,
337 s->idsp.idct_put(frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8,
338 frame->linesize[plane], s->wblocks + 64 * x);
348 s->idsp.idct_put(frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8,
349 frame->linesize[plane], s->block);
394 const int *quant_matrix, AVFrame *frame,
433 copy_block8(frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8,
435 frame->linesize[plane], prev->linesize[plane], 8);
440 s->idsp.add_pixels_clamped(&s->wblocks[x*64], frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8,
441 frame->linesize[plane]);
444 s->idsp.idct_put(frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8,
445 frame->linesize[plane], s->wblocks + x * 64);
470 copy_block8(frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8,
472 frame->linesize[plane], prev->linesize[plane], 8);
477 s->idsp.add_pixels_clamped(s->block, frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8,
478 frame->linesize[plane]);
481 s->idsp.idct_put(frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8,
482 frame->linesize[plane], s->block);
505 s->idsp.idct_add(frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8,
506 frame->linesize[plane], s->wblocks + 64 * x);
520 s->idsp.idct_add(frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8,
521 frame->linesize[plane], s->block);
574 static int decode_raw_intra_rgb(AVCodecContext *avctx, GetByteContext *gbyte, AVFrame *frame)
576 uint8_t *dst = frame->data[0] + (avctx->height - 1) * frame->linesize[0];
591 dst -= frame->linesize[0];
662 static int decode_runlen_rgb(AVCodecContext *avctx, GetByteContext *gbyte, AVFrame *frame)
664 uint8_t *dst = frame->data[0] + (avctx->height - 1) * frame->linesize[0];
685 if (x >= frame->width * 3) {
688 dst -= frame->linesize[0];
689 if (y >= frame->height)
701 if (x >= frame->width * 3) {
704 dst -= frame->linesize[0];
705 if (y >= frame->height)
715 static int decode_runlen(AVCodecContext *avctx, GetByteContext *gbyte, AVFrame *frame)
717 uint8_t *y0dst = frame->data[0] + (avctx->height - 1) * frame->linesize[0];
718 uint8_t *y1dst = y0dst - frame->linesize[0];
719 uint8_t *udst = frame->data[1] + ((avctx->height >> 1) - 1) * frame->linesize[1];
720 uint8_t *vdst = frame->data[2] + ((avctx->height >> 1) - 1) * frame->linesize[2];
739 frame->linesize[0],
740 frame->linesize[1],
741 frame->linesize[2],
752 frame->linesize[0],
753 frame->linesize[1],
754 frame->linesize[2],
765 static int decode_raw_intra(AVCodecContext *avctx, GetByteContext *gbyte, AVFrame *frame)
767 uint8_t *y0dst = frame->data[0] + (avctx->height - 1) * frame->linesize[0];
768 uint8_t *y1dst = y0dst - frame->linesize[0];
769 uint8_t *udst = frame->data[1] + ((avctx->height >> 1) - 1) * frame->linesize[1];
770 uint8_t *vdst = frame->data[2] + ((avctx->height >> 1) - 1) * frame->linesize[2];
789 y0dst -= 2*frame->linesize[0];
790 y1dst -= 2*frame->linesize[0];
791 udst -= frame->linesize[1];
792 vdst -= frame->linesize[2];
798 static int decode_intra(AVCodecContext *avctx, GetBitContext *gb, AVFrame *frame)
808 ret = decode_intra_plane(s, gb, s->size[0], s->luma_quant_matrix, frame, 0);
817 ret = decode_intra_plane(s, gb, s->size[1], s->chroma_quant_matrix, frame, 2);
826 ret = decode_intra_plane(s, gb, s->size[2], s->chroma_quant_matrix, frame, 1);
875 AVFrame *frame, AVFrame *prev)
891 ret = decode_inter_plane(s, gb, s->size[0], s->luma_quant_matrix, frame, prev, 0);
900 ret = decode_inter_plane(s, gb, s->size[1], s->chroma_quant_matrix, frame, prev, 2);
909 ret = decode_inter_plane(s, gb, s->size[2], s->chroma_quant_matrix, frame, prev, 1);
1097 static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
1122 frame->key_frame = s->key_frame;
1123 frame->pict_type = s->key_frame ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_P;
1127 av_log(avctx, AV_LOG_ERROR, "Missing reference frame.\n");
1190 if ((ret = ff_get_buffer(avctx, frame, AV_GET_BUFFER_FLAG_REF)) < 0)
1193 if (frame->key_frame) {
1195 ret = decode_raw_intra(avctx, gbyte, frame);
1197 ret = decode_raw_intra_rgb(avctx, gbyte, frame);
1199 ret = decode_intra(avctx, gb, frame);
1201 if (s->prev_frame-> width != frame->width ||
1202 s->prev_frame->height != frame->height)
1206 ret = av_frame_copy(frame, s->prev_frame);
1212 ret = decode_inter(avctx, gb, frame, s->prev_frame);
1214 ret = decode_runlen(avctx, gbyte, frame);
1216 ret = decode_runlen_rgb(avctx, gbyte, frame);
1223 if ((ret = av_frame_ref(s->prev_frame, frame)) < 0)
1226 frame->crop_top = avctx->coded_height - avctx->height;
1227 frame->crop_left = avctx->coded_width - avctx->width;