diff options
Diffstat (limited to 'abs/core-testing/mythtv/trunk/mythtv-svn/hdpvr-v4lchannel-tweak.patch')
-rw-r--r-- | abs/core-testing/mythtv/trunk/mythtv-svn/hdpvr-v4lchannel-tweak.patch | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/hdpvr-v4lchannel-tweak.patch b/abs/core-testing/mythtv/trunk/mythtv-svn/hdpvr-v4lchannel-tweak.patch deleted file mode 100644 index 3535310..0000000 --- a/abs/core-testing/mythtv/trunk/mythtv-svn/hdpvr-v4lchannel-tweak.patch +++ /dev/null @@ -1,139 +0,0 @@ -Index: libs/libmythtv/v4lchannel.h -=================================================================== ---- libs/libmythtv/v4lchannel.h (revision 18874) -+++ libs/libmythtv/v4lchannel.h (working copy) -@@ -103,6 +103,8 @@ - VidModV4L2 videomode_v4l2; ///< Current video mode if 'usingv4l2' is true - - int defaultFreqTable; -+ int prev_inputNumV4L; -+ v4l2_std_id prev_vid_mode; - }; - - #endif -Index: libs/libmythtv/v4lchannel.cpp -=================================================================== ---- libs/libmythtv/v4lchannel.cpp (revision 18874) -+++ libs/libmythtv/v4lchannel.cpp (working copy) -@@ -40,7 +40,8 @@ - device_name(QString::null), driver_name(QString::null), - curList(NULL), totalChannels(0), - currentFormat(""), is_dtv(false), -- usingv4l2(false), defaultFreqTable(1) -+ usingv4l2(false), defaultFreqTable(1), -+ prev_inputNumV4L(-1), prev_vid_mode(-1) - { - } - -@@ -795,62 +796,75 @@ - { - VERBOSE(VB_CHANNEL, LOC + msg + "(v4l v2)"); - -- int ioctlval = ioctl(videofd, VIDIOC_S_INPUT, &inputNumV4L); -+ int ioctlval; -+ bool streamingDisabled = false; -+ int streamType = V4L2_BUF_TYPE_VIDEO_CAPTURE; - -- // ConvertX (wis-go7007) requires streaming to be disabled -- // before an input switch, do this if initial switch failed. -- bool streamingDisabled = false; -- int streamType = V4L2_BUF_TYPE_VIDEO_CAPTURE; -- if ((ioctlval < 0) && (errno == EBUSY)) -+ if (prev_inputNumV4L != inputNumV4L) - { -- ioctlval = ioctl(videofd, VIDIOC_STREAMOFF, &streamType); -+ ioctlval = ioctl(videofd, VIDIOC_S_INPUT, &inputNumV4L); -+ -+ // ConvertX (wis-go7007) requires streaming to be disabled -+ // before an input switch, do this if initial switch failed. -+ if ((ioctlval < 0) && (errno == EBUSY)) -+ { -+ ioctlval = ioctl(videofd, VIDIOC_STREAMOFF, &streamType); -+ if (ioctlval < 0) -+ { -+ VERBOSE(VB_IMPORTANT, LOC_ERR + msg + -+ "\n\t\t\twhile disabling streaming (v4l v2)" + ENO); -+ -+ ok = false; -+ ioctlval = 0; -+ } -+ else -+ { -+ streamingDisabled = true; -+ -+ // Resend the input switch ioctl. -+ ioctlval = ioctl(videofd, VIDIOC_S_INPUT, &inputNumV4L); -+ } -+ } -+ - if (ioctlval < 0) - { - VERBOSE(VB_IMPORTANT, LOC_ERR + msg + -- "\n\t\t\twhile disabling streaming (v4l v2)" + ENO); -+ "\n\t\t\twhile setting input (v4l v2)" + ENO); - - ok = false; -- ioctlval = 0; - } -- else -- { -- streamingDisabled = true; - -- // Resend the input switch ioctl. -- ioctlval = ioctl(videofd, VIDIOC_S_INPUT, &inputNumV4L); -- } -+ prev_inputNumV4L = inputNumV4L; - } - -- if (ioctlval < 0) -- { -- VERBOSE(VB_IMPORTANT, LOC_ERR + msg + -- "\n\t\t\twhile setting input (v4l v2)" + ENO); -- -- ok = false; -- } -- - v4l2_std_id vid_mode = format_to_mode(newFmt, 2); -- ioctlval = ioctl(videofd, VIDIOC_S_STD, &vid_mode); -- if (ioctlval < 0) -- { -- VERBOSE(VB_IMPORTANT, LOC_ERR + msg + -- "\n\t\t\twhile setting format (v4l v2)" + ENO); - -- ok = false; -- } -- -- // ConvertX (wis-go7007) requires streaming to be disabled -- // before an input switch, here we try to re-enable streaming. -- if (streamingDisabled) -+ if (prev_vid_mode != vid_mode) - { -- ioctlval = ioctl(videofd, VIDIOC_STREAMON, &streamType); -+ ioctlval = ioctl(videofd, VIDIOC_S_STD, &vid_mode); - if (ioctlval < 0) - { - VERBOSE(VB_IMPORTANT, LOC_ERR + msg + -- "\n\t\t\twhile reenabling streaming (v4l v2)" + ENO); -+ "\n\t\t\twhile setting format (v4l v2)" + ENO); - - ok = false; - } -+ -+ // ConvertX (wis-go7007) requires streaming to be disabled -+ // before an input switch, here we try to re-enable streaming. -+ if (streamingDisabled) -+ { -+ ioctlval = ioctl(videofd, VIDIOC_STREAMON, &streamType); -+ if (ioctlval < 0) -+ { -+ VERBOSE(VB_IMPORTANT, LOC_ERR + msg + -+ "\n\t\t\twhile reenabling streaming (v4l v2)" + -+ ENO); -+ -+ ok = false; -+ } -+ } -+ prev_vid_mode = vid_mode; - } - } - |