Lines Matching defs:fbdev
27 * @see http://linux-fbdev.sourceforge.net/
66 FBDevContext *fbdev = avctx->priv_data;
76 /* NONBLOCK is ignored by the fbdev driver, only set for consistency */
85 if ((fbdev->fd = avpriv_open(device, flags)) == -1) {
93 if (ioctl(fbdev->fd, FBIOGET_VSCREENINFO, &fbdev->varinfo) < 0) {
100 if (ioctl(fbdev->fd, FBIOGET_FSCREENINFO, &fbdev->fixinfo) < 0) {
107 pix_fmt = ff_get_pixfmt_from_fb_varinfo(&fbdev->varinfo);
115 fbdev->width = fbdev->varinfo.xres;
116 fbdev->height = fbdev->varinfo.yres;
117 fbdev->bytes_per_pixel = (fbdev->varinfo.bits_per_pixel + 7) >> 3;
118 fbdev->frame_linesize = fbdev->width * fbdev->bytes_per_pixel;
119 fbdev->frame_size = fbdev->frame_linesize * fbdev->height;
120 fbdev->time_frame = AV_NOPTS_VALUE;
121 fbdev->data = mmap(NULL, fbdev->fixinfo.smem_len, PROT_READ, MAP_SHARED, fbdev->fd, 0);
122 if (fbdev->data == MAP_FAILED) {
130 st->codecpar->width = fbdev->width;
131 st->codecpar->height = fbdev->height;
133 st->avg_frame_rate = fbdev->framerate_q;
135 fbdev->width * fbdev->height * fbdev->bytes_per_pixel * av_q2d(fbdev->framerate_q) * 8;
139 fbdev->width, fbdev->height, fbdev->varinfo.bits_per_pixel,
141 fbdev->framerate_q.num, fbdev->framerate_q.den,
146 close(fbdev->fd);
152 FBDevContext *fbdev = avctx->priv_data;
158 if (fbdev->time_frame == AV_NOPTS_VALUE)
159 fbdev->time_frame = av_gettime_relative();
164 delay = fbdev->time_frame - curtime;
167 fbdev->time_frame, curtime, delay);
169 fbdev->time_frame += INT64_C(1000000) / av_q2d(fbdev->framerate_q);
179 if ((ret = av_new_packet(pkt, fbdev->frame_size)) < 0)
182 /* refresh fbdev->varinfo, visible data position may change at each call */
183 if (ioctl(fbdev->fd, FBIOGET_VSCREENINFO, &fbdev->varinfo) < 0) {
191 pin = fbdev->data + fbdev->bytes_per_pixel * fbdev->varinfo.xoffset +
192 fbdev->varinfo.yoffset * fbdev->fixinfo.line_length;
195 for (i = 0; i < fbdev->height; i++) {
196 memcpy(pout, pin, fbdev->frame_linesize);
197 pin += fbdev->fixinfo.line_length;
198 pout += fbdev->frame_linesize;
201 return fbdev->frame_size;
206 FBDevContext *fbdev = avctx->priv_data;
208 munmap(fbdev->data, fbdev->fixinfo.smem_len);
209 close(fbdev->fd);
227 .class_name = "fbdev indev",
235 .name = "fbdev",