Browse Source

fbdev: Use av_strerror

tags/n2.5
Luca Barbato Vittorio Giovara 10 years ago
parent
commit
043ea6f7bf
1 changed files with 14 additions and 6 deletions
  1. +14
    -6
      libavdevice/fbdev.c

+ 14
- 6
libavdevice/fbdev.c View File

@@ -100,6 +100,7 @@ static av_cold int fbdev_read_header(AVFormatContext *avctx)
AVStream *st = NULL;
enum AVPixelFormat pix_fmt;
int ret, flags = O_RDONLY;
char errbuf[128];

ret = av_parse_video_rate(&fbdev->framerate_q, fbdev->framerate);
if (ret < 0) {
@@ -117,23 +118,26 @@ static av_cold int fbdev_read_header(AVFormatContext *avctx)

if ((fbdev->fd = avpriv_open(avctx->filename, flags)) == -1) {
ret = AVERROR(errno);
av_strerror(ret, errbuf, sizeof(errbuf));
av_log(avctx, AV_LOG_ERROR,
"Could not open framebuffer device '%s': %s\n",
avctx->filename, strerror(ret));
avctx->filename, errbuf);
return ret;
}

if (ioctl(fbdev->fd, FBIOGET_VSCREENINFO, &fbdev->varinfo) < 0) {
ret = AVERROR(errno);
av_strerror(ret, errbuf, sizeof(errbuf));
av_log(avctx, AV_LOG_ERROR,
"FBIOGET_VSCREENINFO: %s\n", strerror(errno));
"FBIOGET_VSCREENINFO: %s\n", errbuf);
goto fail;
}

if (ioctl(fbdev->fd, FBIOGET_FSCREENINFO, &fbdev->fixinfo) < 0) {
ret = AVERROR(errno);
av_strerror(ret, errbuf, sizeof(errbuf));
av_log(avctx, AV_LOG_ERROR,
"FBIOGET_FSCREENINFO: %s\n", strerror(errno));
"FBIOGET_FSCREENINFO: %s\n", errbuf);
goto fail;
}

@@ -154,7 +158,8 @@ static av_cold int fbdev_read_header(AVFormatContext *avctx)
fbdev->data = mmap(NULL, fbdev->fixinfo.smem_len, PROT_READ, MAP_SHARED, fbdev->fd, 0);
if (fbdev->data == MAP_FAILED) {
ret = AVERROR(errno);
av_log(avctx, AV_LOG_ERROR, "Error in mmap(): %s\n", strerror(errno));
av_strerror(ret, errbuf, sizeof(errbuf));
av_log(avctx, AV_LOG_ERROR, "Error in mmap(): %s\n", errbuf);
goto fail;
}

@@ -211,9 +216,12 @@ static int fbdev_read_packet(AVFormatContext *avctx, AVPacket *pkt)
return ret;

/* refresh fbdev->varinfo, visible data position may change at each call */
if (ioctl(fbdev->fd, FBIOGET_VSCREENINFO, &fbdev->varinfo) < 0)
if (ioctl(fbdev->fd, FBIOGET_VSCREENINFO, &fbdev->varinfo) < 0) {
char errbuf[128];
av_strerror(AVERROR(errno), errbuf, sizeof(errbuf));
av_log(avctx, AV_LOG_WARNING,
"Error refreshing variable info: %s\n", strerror(errno));
"Error refreshing variable info: %s\n", errbuf);
}

pkt->pts = curtime;



Loading…
Cancel
Save