diff --git a/mythtv/libs/libmythtv/recorders/mpegrecorder.cpp b/mythtv/libs/libmythtv/recorders/mpegrecorder.cpp
index 371fb13..d6b1f96 100644
a
|
b
|
bool MpegRecorder::SetVBIOptions(int chanfd) |
853 | 853 | #ifdef V4L2_CAP_SLICED_VBI_CAPTURE |
854 | 854 | if (supports_sliced_vbi) |
855 | 855 | { |
| 856 | int fd; |
| 857 | |
| 858 | if (OpenVBIDevice() >= 0) |
| 859 | fd = vbi_fd; |
| 860 | else |
| 861 | fd = chanfd; |
| 862 | |
856 | 863 | struct v4l2_format vbifmt; |
857 | 864 | memset(&vbifmt, 0, sizeof(struct v4l2_format)); |
858 | 865 | vbifmt.type = V4L2_BUF_TYPE_SLICED_VBI_CAPTURE; |
859 | 866 | vbifmt.fmt.sliced.service_set |= (VBIMode::PAL_TT == vbimode) ? |
860 | 867 | V4L2_SLICED_VBI_625 : V4L2_SLICED_VBI_525; |
861 | 868 | |
862 | | if (ioctl(chanfd, VIDIOC_S_FMT, &vbifmt) < 0) |
| 869 | if (ioctl(fd, VIDIOC_S_FMT, &vbifmt) < 0) |
863 | 870 | { |
864 | | LOG(VB_GENERAL, LOG_WARNING, LOC + |
865 | | "Unable to enable VBI embedding" + ENO); |
| 871 | if (vbi_fd >= 0) |
| 872 | { |
| 873 | fd = chanfd; // Retry with video device instead |
| 874 | if (ioctl(fd, VIDIOC_S_FMT, &vbifmt) < 0) |
| 875 | { |
| 876 | LOG(VB_GENERAL, LOG_WARNING, LOC + |
| 877 | "Unable to enable VBI embedding (/dev/vbiX)" + ENO); |
| 878 | return false; |
| 879 | } |
| 880 | } |
| 881 | else |
| 882 | { |
| 883 | LOG(VB_GENERAL, LOG_WARNING, LOC + |
| 884 | "Unable to enable VBI embedding (/dev/videoX)" + ENO); |
| 885 | return false; |
| 886 | } |
866 | 887 | } |
867 | | else if (ioctl(chanfd, VIDIOC_G_FMT, &vbifmt) >= 0) |
| 888 | |
| 889 | if (ioctl(fd, VIDIOC_G_FMT, &vbifmt) >= 0) |
868 | 890 | { |
869 | 891 | LOG(VB_RECORD, LOG_INFO, |
870 | 892 | LOC + QString("VBI service: %1, io size: %2") |
… |
… |
bool MpegRecorder::SetVBIOptions(int chanfd) |
881 | 903 | ctrls.count = 1; |
882 | 904 | ctrls.controls = &vbi_ctrl; |
883 | 905 | |
884 | | if (ioctl(chanfd, VIDIOC_S_EXT_CTRLS, &ctrls) < 0) |
| 906 | if (ioctl(fd, VIDIOC_S_EXT_CTRLS, &ctrls) < 0) |
885 | 907 | { |
886 | 908 | LOG(VB_GENERAL, LOG_WARNING, LOC + |
887 | 909 | "Unable to set VBI embedding format" + ENO); |