From: Darren S. <li...@yo...> - 2010-01-26 02:25:47
|
# HG changeset patch # User Darren Salt <li...@yo...> # Date 1264121213 0 # Node ID 3778ec23177c43054af8b5aa37e486457fc9ce41 # Parent 5de17893619143f2724b5397cd67ec077370df96 v4l2: set stream audio/video flags; check for VIDIOC_S_FMT failure. diff --git a/src/input/input_v4l2.c b/src/input/input_v4l2.c --- a/src/input/input_v4l2.c +++ b/src/input/input_v4l2.c @@ -186,15 +186,23 @@ fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; /* TODO: Other formats? MPEG support? */ fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV; - v4l2_ioctl(this->fd, VIDIOC_S_FMT, &fmt); + if (-1 == v4l2_ioctl(this->fd, VIDIOC_S_FMT, &fmt)) + goto fail; this->video->resolution.width = fmt.fmt.pix.width; this->video->resolution.height = fmt.fmt.pix.height; - if (-1 == v4l2_ioctl(this->fd, VIDIOC_STREAMON, &reqbuf.type)) { - lprintf("Couldn't start streaming: %s\n", strerror(errno)); - return 0; - } + if (-1 == v4l2_ioctl(this->fd, VIDIOC_STREAMON, &reqbuf.type)) + goto fail; + + _x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_AUDIO, 1); + _x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_VIDEO, 0); + return 1; + + fail: + lprintf("Couldn't start streaming: %s\n", strerror(errno)); + return 0; } + static buf_element_t* v4l2_input_read_block(input_plugin_t *this_gen, fifo_buffer_t *fifo, off_t len) { lprintf("Reading block\n"); |