Lines Matching refs:pic
55 static void do_vflip(AVCodecContext *avctx, AVFrame *pic, int vflip)
60 switch (pic->format) {
62 pic->data[1] += (avctx->height - 1) * pic->linesize[1];
63 pic->linesize[1] = -pic->linesize[1];
64 pic->data[2] += (avctx->height - 1) * pic->linesize[2];
65 pic->linesize[2] = -pic->linesize[2];
70 pic->data[0] += (avctx->height - 1) * pic->linesize[0];
71 pic->linesize[0] = -pic->linesize[0];
74 pic->data[0] += (avctx->height - 1) * pic->linesize[0];
75 pic->linesize[0] = -pic->linesize[0];
76 pic->data[1] += (AV_CEIL_RSHIFT(avctx->height, 2) - 1) * pic->linesize[1];
77 pic->linesize[1] = -pic->linesize[1];
78 pic->data[2] += (AV_CEIL_RSHIFT(avctx->height, 2) - 1) * pic->linesize[2];
79 pic->linesize[2] = -pic->linesize[2];
82 pic->data[0] += (avctx->height - 1) * pic->linesize[0];
83 pic->linesize[0] = -pic->linesize[0];
84 pic->data[1] += (AV_CEIL_RSHIFT(avctx->height, 1) - 1) * pic->linesize[1];
85 pic->linesize[1] = -pic->linesize[1];
86 pic->data[2] += (AV_CEIL_RSHIFT(avctx->height, 1) - 1) * pic->linesize[2];
87 pic->linesize[2] = -pic->linesize[2];
92 static int dxtory_decode_v1_rgb(AVCodecContext *avctx, AVFrame *pic,
106 if ((ret = ff_thread_get_buffer(avctx, pic, 0)) < 0)
109 do_vflip(avctx, pic, vflipped);
111 dst = pic->data[0];
115 dst += pic->linesize[0];
118 do_vflip(avctx, pic, vflipped);
123 static int dxtory_decode_v1_410(AVCodecContext *avctx, AVFrame *pic,
139 if ((ret = ff_thread_get_buffer(avctx, pic, 0)) < 0)
142 do_vflip(avctx, pic, vflipped);
150 Y1 = pic->data[0];
151 Y2 = pic->data[0] + pic->linesize[0];
152 Y3 = pic->data[0] + pic->linesize[0] * 2;
153 Y4 = pic->data[0] + pic->linesize[0] * 3;
154 U = pic->data[1];
155 V = pic->data[2];
178 Y1 += pic->linesize[0] * 4;
179 Y2 += pic->linesize[0] * 4;
180 Y3 += pic->linesize[0] * 4;
181 Y4 += pic->linesize[0] * 4;
182 U += pic->linesize[1];
183 V += pic->linesize[2];
213 do_vflip(avctx, pic, vflipped);
218 static int dxtory_decode_v1_420(AVCodecContext *avctx, AVFrame *pic,
234 if ((ret = ff_thread_get_buffer(avctx, pic, 0)) < 0)
237 do_vflip(avctx, pic, vflipped);
245 Y1 = pic->data[0];
246 Y2 = pic->data[0] + pic->linesize[0];
247 U = pic->data[1];
248 V = pic->data[2];
264 Y1 += pic->linesize[0] * 2;
265 Y2 += pic->linesize[0] * 2;
266 U += pic->linesize[1];
267 V += pic->linesize[2];
285 do_vflip(avctx, pic, vflipped);
290 static int dxtory_decode_v1_444(AVCodecContext *avctx, AVFrame *pic,
304 if ((ret = ff_thread_get_buffer(avctx, pic, 0)) < 0)
307 do_vflip(avctx, pic, vflipped);
309 Y = pic->data[0];
310 U = pic->data[1];
311 V = pic->data[2];
318 Y += pic->linesize[0];
319 U += pic->linesize[1];
320 V += pic->linesize[2];
323 do_vflip(avctx, pic, vflipped);
422 static int dxtory_decode_v2(AVCodecContext *avctx, AVFrame *pic,
455 if ((ret = ff_thread_get_buffer(avctx, pic, 0)) < 0)
458 do_vflip(avctx, pic, vflipped);
472 line += decode_slice(&gb2, pic, line, avctx->height - line, lru);
481 do_vflip(avctx, pic, vflipped);
539 static int dxtory_decode_v2_565(AVCodecContext *avctx, AVFrame *pic,
545 return dxtory_decode_v2(avctx, pic, src, src_size,
550 return dxtory_decode_v2(avctx, pic, src, src_size,
585 static int dxtory_decode_v2_rgb(AVCodecContext *avctx, AVFrame *pic,
589 return dxtory_decode_v2(avctx, pic, src, src_size,
664 static int dxtory_decode_v2_410(AVCodecContext *avctx, AVFrame *pic,
668 return dxtory_decode_v2(avctx, pic, src, src_size,
736 static int dxtory_decode_v2_420(AVCodecContext *avctx, AVFrame *pic,
740 return dxtory_decode_v2(avctx, pic, src, src_size,
777 static int dxtory_decode_v2_444(AVCodecContext *avctx, AVFrame *pic,
781 return dxtory_decode_v2(avctx, pic, src, src_size,
787 static int decode_frame(AVCodecContext *avctx, AVFrame *pic,
805 ret = dxtory_decode_v1_rgb(avctx, pic, src + 16, avpkt->size - 16,
810 ret = dxtory_decode_v2_rgb(avctx, pic, src + 16, avpkt->size - 16, vflipped);
814 ret = dxtory_decode_v1_420(avctx, pic, src + 16, avpkt->size - 16, vflipped);
818 ret = dxtory_decode_v2_420(avctx, pic, src + 16, avpkt->size - 16, vflipped);
822 ret = dxtory_decode_v1_410(avctx, pic, src + 16, avpkt->size - 16, vflipped);
826 ret = dxtory_decode_v2_410(avctx, pic, src + 16, avpkt->size - 16, vflipped);
830 ret = dxtory_decode_v1_444(avctx, pic, src + 16, avpkt->size - 16, vflipped);
834 ret = dxtory_decode_v2_444(avctx, pic, src + 16, avpkt->size - 16, vflipped);
838 ret = dxtory_decode_v1_rgb(avctx, pic, src + 16, avpkt->size - 16,
843 ret = dxtory_decode_v2_565(avctx, pic, src + 16, avpkt->size - 16, 1, vflipped);
849 ret = dxtory_decode_v1_rgb(avctx, pic, src + 16, avpkt->size - 16,
856 ret = dxtory_decode_v2_565(avctx, pic, src + 16, avpkt->size - 16, 0, vflipped);
866 pic->pict_type = AV_PICTURE_TYPE_I;
867 pic->key_frame = 1;