Lines Matching +refs:frame +refs:width
42 AVFrame frame;
46 unsigned char* back_frame; ///< background frame
51 * Run Length Decode a single 320x200 frame
57 * @param video_base offset of the rle data inside the frame
61 int base_x = video_base % s->avctx->width;
62 int base_y = video_base / s->avctx->width;
63 int stride_adj = stride - s->avctx->width;
68 unsigned char* line_end = out + s->avctx->width;
70 /** copy start of the background frame */
73 memcpy(out,back_frame,s->avctx->width);
75 back_frame += s->avctx->width;
77 back_frame += base_x - s->avctx->width;
81 /** decode the variable part of the frame */
113 /** copy the rest from the background frame */
148 if(s->video_base >= avctx->width * avctx->height){
157 /** decode background frame if present */
161 unsigned char* back_frame = av_mallocz(avctx->width*avctx->height);
165 back_frame,avctx->width,0);
173 * Decode a single frame
175 * @param data decoded frame
176 * @param data_size size of the decoded frame
189 if(s->frame.data[0])
190 avctx->release_buffer(avctx, &s->frame);
193 s->frame.reference= 0;
194 if(avctx->get_buffer(avctx, &s->frame)) {
200 rl2_rle_decode(s,buf,buf_size,s->frame.data[0],s->frame.linesize[0],s->video_base);
203 memcpy(s->frame.data[1], s->palette, AVPALETTE_SIZE);
206 *(AVFrame*)data = s->frame;
222 if(s->frame.data[0])
223 avctx->release_buffer(avctx, &s->frame);