diff --git a/community/mythtv/PKGBUILD b/community/mythtv/PKGBUILD index e990163eb..dca9116c5 100644 --- a/community/mythtv/PKGBUILD +++ b/community/mythtv/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 47228 2011-05-19 08:27:51Z jconder $ +# $Id: PKGBUILD 48169 2011-05-29 12:28:03Z jconder $ # Maintainer: Jonathan Conder # Contributor: Giovanni Scafora # Contributor: Juergen Hoetzel @@ -13,7 +13,7 @@ plugrel=1 pkgname=mythtv pkgver=0.24.1 -pkgrel=1 +pkgrel=2 epoch=1 pkgdesc="A Homebrew PVR project" arch=('i686' 'x86_64') @@ -29,15 +29,19 @@ backup=('etc/conf.d/mythbackend') install='mythtv.install' source=("ftp://ftp.osuosl.org/pub/$pkgname/$pkgname-$pkgver.tar.bz2" 'mythbackend.rc' - 'mythbackend.conf') + 'mythbackend.conf' + 'mythtv-v4l2-fix.patch') md5sums=('6870c679619ec58456e76839745411d8' 'feadcc9ad064d93d6dceab1efc0bd9ed' - 'bb8e4033d82428d827570fae9ba15e6a') + 'bb8e4033d82428d827570fae9ba15e6a' + 'ba5c91df80f0d3f7563a873e71a3725c') build() { cd "$srcdir/$pkgname-$pkgver" find 'bindings/python' 'contrib' -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@' + patch -Np2 -i ${srcdir}/mythtv-v4l2-fix.patch + [[ $CARCH == "arm" ]] && ARCH="armv5te" [[ $CARCH == "armv7" ]] && ARCH="armv7-a" ./configure --prefix=/usr --cpu="$ARCH" \ @@ -64,7 +68,8 @@ build() { --enable-xrandr \ --enable-xv \ --enable-x11 \ - --with-bindings=perl,python --python=python2 + --with-bindings=perl,python \ + --python=python2 make } diff --git a/community/mythtv/mythtv-v4l2-fix.patch b/community/mythtv/mythtv-v4l2-fix.patch new file mode 100644 index 000000000..e26e16615 --- /dev/null +++ b/community/mythtv/mythtv-v4l2-fix.patch @@ -0,0 +1,724 @@ +diff --git a/mythtv/configure b/mythtv/configure +index 1efe803..7bcdf06 100755 +--- a/mythtv/configure ++++ b/mythtv/configure +@@ -109,7 +109,8 @@ Advanced options (experts only): + --disable-iptv disable support for recording RTSP/UDP/RTP streams + --disable-hdhomerun disable support for HDHomeRun boxes + --disable-v4l disable Video4Linux support +- --disable-ivtv disable ivtv support (PVR-x50) req. v4l support ++ --disable-v4l2 disable Video4Linux2 support ++ --disable-ivtv disable ivtv support (PVR-x50) req. v4l2 support + --disable-hdpvr disable HD-PVR support + --disable-dvb disable DVB support + --dvb-path=HDRLOC location of directory containing +@@ -1315,6 +1316,7 @@ MYTHTV_CONFIG_LIST=' + qtwebkit + quartz_video + v4l ++ v4l2 + valgrind + x11 + xrandr +@@ -1706,8 +1708,8 @@ audio_oss_deps_any="soundcard_h sys_soundcard_h" + dvb_deps="backend" + firewire_deps="backend" + iptv_deps="backend" +-ivtv_deps="backend v4l" +-hdpvr_deps="backend v4l" ++ivtv_deps="backend v4l2" ++hdpvr_deps="backend v4l2" + hdhomerun_deps="backend" + mpegtsraw_demuxer_deps="merge_libavformat_mpegts_c" + mythtranscode_deps="backend frontend" +@@ -1715,6 +1717,7 @@ opengl_deps_any="agl_h GL_gl_h darwin windows x11" + opengl_video_deps="opengl" + opengl_vsync_deps="opengl" + v4l_deps="backend linux_videodev_h linux_videodev2_h" ++v4l2_deps="backend linux_videodev2_h" + vdpau_deps="opengl vdpau_vdpau_h vdpau_vdpau_x11_h" + xrandr_deps="x11" + xv_deps="x11" +@@ -1933,6 +1936,7 @@ enable opengl_vsync + enable opengl_video + enable quartz_video + enable v4l ++enable v4l2 + enable x11 + enable xrandr + enable xv +@@ -3062,6 +3066,7 @@ EOF + fi + disable opengl_vsync + disable v4l ++ disable v4l2 + disable x11 + # Workaround compile errors from missing gmtime_r/localtime_r/uint def + CFLAGS=`echo $CFLAGS | sed 's/-D_POSIX_C_SOURCE=200112//'` +@@ -3106,6 +3111,7 @@ EOF + fi + disable symver + disable v4l ++ disable v4l2 + enable windows + disable x11 + ###### Standard ffmpeg configure stuff follows: +@@ -4375,6 +4381,7 @@ enabled stripping || strip="echo skipping strip" + + if enabled backend; then + echo "Video4Linux sup. ${v4l-no}" ++ echo "Video4Linux2 sup. ${v4l2-no}" + echo "ivtv support ${ivtv-no}" + echo "HD-PVR support ${hdpvr-no}" + echo "FireWire support ${firewire-no}" +diff --git a/mythtv/libs/libmythtv/NuppelVideoRecorder.cpp b/mythtv/libs/libmythtv/NuppelVideoRecorder.cpp +index 739634d..39e5956 100644 +--- a/mythtv/libs/libmythtv/NuppelVideoRecorder.cpp ++++ b/mythtv/libs/libmythtv/NuppelVideoRecorder.cpp +@@ -42,9 +42,13 @@ extern "C" { + #include "libswscale/swscale.h" + } + ++#if defined(USING_V4L) || defined(USING_V4L2) + #ifdef USING_V4L + #include ++#endif ++#ifdef USING_V4L2 + #include ++#endif + + #include "go7007_myth.h" + +@@ -55,9 +59,9 @@ extern "C" { + extern "C" { + #include "vbitext/vbi.h" + } +-#else // USING_V4l ++#else // USING_V4L || USING_V4L2 + #define VT_WIDTH 0 +-#endif // USING_V4l ++#endif // USING_V4l || USING_V4L2 + + #define KEYFRAMEDIST 30 + +@@ -1019,7 +1023,7 @@ bool NuppelVideoRecorder::Open(void) + + void NuppelVideoRecorder::ProbeV4L2(void) + { +-#ifdef USING_V4L ++#if defined(USING_V4L) || defined(USING_V4L2) + usingv4l2 = true; + + struct v4l2_capability vcap; +@@ -1049,7 +1053,7 @@ void NuppelVideoRecorder::ProbeV4L2(void) + QString driver = (char *)vcap.driver; + if (driver == "go7007") + go7007 = true; +-#endif // USING_V4L ++#endif // USING_V4L || USING_V4L2 + } + + void NuppelVideoRecorder::StartRecording(void) +@@ -2460,7 +2464,7 @@ void NuppelVideoRecorder::doAudioThread(void) + audio_device->Close(); + } + +-#ifdef USING_V4L ++#if defined(USING_V4L) || defined(USING_V4L2) + struct VBIData + { + NuppelVideoRecorder *nvr; +@@ -2634,9 +2638,9 @@ void NuppelVideoRecorder::FormatTeletextSubtitles(struct VBIData *vbidata) + act_text_buffer = 0; + textbuffer[act]->freeToEncode = 1; + } +-#else // USING_V4L ++#else // USING_V4L || USING_V4L2 + void NuppelVideoRecorder::FormatTeletextSubtitles(struct VBIData *vbidata) {} +-#endif // USING_V4L ++#endif // USING_V4L || USING_V4L2 + + void NuppelVideoRecorder::FormatCC(struct cc *cc) + { +@@ -2863,7 +2867,7 @@ void NuppelVideoRecorder::doVbiThread(void) + //VERBOSE(VB_RECORD, LOC + "vbi end"); + } + +-#else // USING_V4L ++#else // USING_V4L + void NuppelVideoRecorder::doVbiThread(void) { } + #endif // USING_V4L + +diff --git a/mythtv/libs/libmythtv/analogsignalmonitor.cpp b/mythtv/libs/libmythtv/analogsignalmonitor.cpp +index 2a4f4c5..fa5823a 100644 +--- a/mythtv/libs/libmythtv/analogsignalmonitor.cpp ++++ b/mythtv/libs/libmythtv/analogsignalmonitor.cpp +@@ -6,7 +6,9 @@ + #include + #include + ++#ifdef USING_V4L + #include ++#endif + + #include "mythverbose.h" + #include "analogsignalmonitor.h" +@@ -151,6 +153,7 @@ void AnalogSignalMonitor::UpdateValues(void) + } + else + { ++#ifdef USING_V4L + struct video_tuner tuner; + bzero(&tuner, sizeof(tuner)); + +@@ -163,6 +166,7 @@ void AnalogSignalMonitor::UpdateValues(void) + { + isLocked = tuner.signal; + } ++#endif + } + + { +diff --git a/mythtv/libs/libmythtv/cardutil.cpp b/mythtv/libs/libmythtv/cardutil.cpp +index 8852682..494f48a 100644 +--- a/mythtv/libs/libmythtv/cardutil.cpp ++++ b/mythtv/libs/libmythtv/cardutil.cpp +@@ -4,7 +4,7 @@ + + #include + +-#if defined(USING_V4L) || defined(USING_DVB) ++#if defined(USING_V4L) || defined(USING_V4L2) || defined(USING_DVB) + #include + #endif + +@@ -28,6 +28,8 @@ + + #ifdef USING_V4L + #include ++#endif ++#ifdef USING_V4L2 + #include + #endif + +@@ -1455,15 +1457,15 @@ uint CardUtil::GetQuickTuning(uint cardid, const QString &input_name) + bool CardUtil::hasV4L2(int videofd) + { + (void) videofd; +-#ifdef USING_V4L ++#ifdef USING_V4L2 + struct v4l2_capability vcap; + bzero(&vcap, sizeof(vcap)); + + return ((ioctl(videofd, VIDIOC_QUERYCAP, &vcap) >= 0) && + (vcap.capabilities & V4L2_CAP_VIDEO_CAPTURE)); +-#else // if !USING_V4L ++#else // if !USING_V4L2 + return false; +-#endif // !USING_V4L ++#endif // !USING_V4L2 + } + + bool CardUtil::GetV4LInfo( +@@ -1475,7 +1477,7 @@ bool CardUtil::GetV4LInfo( + if (videofd < 0) + return false; + +-#ifdef USING_V4L ++#if defined(USING_V4L) || defined(USING_V4L2) + // First try V4L2 query + struct v4l2_capability capability; + bzero(&capability, sizeof(struct v4l2_capability)); +@@ -1487,11 +1489,13 @@ bool CardUtil::GetV4LInfo( + } + else // Fallback to V4L1 query + { ++#ifdef USING_V4L + struct video_capability capability; + if (ioctl(videofd, VIDIOCGCAP, &capability) >= 0) + card = QString::fromAscii((const char*)capability.name); ++#endif //USING_V4L + } +-#endif // !USING_V4L ++#endif // !USING_V4L || USING_V4L2 + + if (!driver.isEmpty()) + driver.remove( QRegExp("\\[[0-9]\\]$") ); +@@ -1506,9 +1510,9 @@ InputNames CardUtil::ProbeV4LVideoInputs(int videofd, bool &ok) + InputNames list; + ok = false; + +-#ifdef USING_V4L ++#if defined(USING_V4L) || defined(USING_V4L2) + bool usingv4l2 = hasV4L2(videofd); +- ++#ifdef USING_V4L2 + // V4L v2 query + struct v4l2_input vin; + bzero(&vin, sizeof(vin)); +@@ -1523,8 +1527,10 @@ InputNames CardUtil::ProbeV4LVideoInputs(int videofd, bool &ok) + ok = true; + return list; + } ++#endif + + // V4L v1 query ++#ifdef USING_V4L + struct video_capability vidcap; + bzero(&vidcap, sizeof(vidcap)); + if (ioctl(videofd, VIDIOCGCAP, &vidcap) != 0) +@@ -1552,15 +1558,15 @@ InputNames CardUtil::ProbeV4LVideoInputs(int videofd, bool &ok) + + list[i] = test.name; + } +- ++#endif + // Create an input on single input cards that don't advertise input + if (!list.size()) + list[0] = "Television"; + + ok = true; +-#else // if !USING_V4L ++#else // if !USING_V4L || USING_V4L2 + list[-1] += QObject::tr("ERROR, Compile with V4L support to query inputs"); +-#endif // !USING_V4L ++#endif // !USING_V4L || USING_V4L2 + return list; + } + +diff --git a/mythtv/libs/libmythtv/channelscan/channelscan_sm.cpp b/mythtv/libs/libmythtv/channelscan/channelscan_sm.cpp +index 832d0a8..e35b186 100644 +--- a/mythtv/libs/libmythtv/channelscan/channelscan_sm.cpp ++++ b/mythtv/libs/libmythtv/channelscan/channelscan_sm.cpp +@@ -1394,7 +1394,7 @@ const DVBChannel *ChannelScanSM::GetDVBChannel(void) const + + V4LChannel *ChannelScanSM::GetV4LChannel(void) + { +-#ifdef USING_V4L ++#if defined(USING_V4L) || defined(USING_V4L2) + return dynamic_cast(channel); + #else + return NULL; +diff --git a/mythtv/libs/libmythtv/channelscan/channelscanner.cpp b/mythtv/libs/libmythtv/channelscan/channelscanner.cpp +index 1595d6a..4d2b2cf 100644 +--- a/mythtv/libs/libmythtv/channelscan/channelscanner.cpp ++++ b/mythtv/libs/libmythtv/channelscan/channelscanner.cpp +@@ -342,7 +342,7 @@ void ChannelScanner::PreScanCommon( + channel = new DVBChannel(device); + #endif + +-#ifdef USING_V4L ++#if defined(USING_V4L) || defined(USING_V4L2) + if (("V4L" == card_type) || ("MPEG" == card_type)) + channel = new V4LChannel(NULL, device); + #endif +diff --git a/mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp b/mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp +index 00fd9d3..70e3469 100644 +--- a/mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp ++++ b/mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp +@@ -27,14 +27,14 @@ static QString card_types(void) + cardTypes += "'DVB'"; + #endif // USING_DVB + +-#ifdef USING_V4L ++#if defined(USING_V4L) || defined(USING_V4L2) + if (!cardTypes.isEmpty()) + cardTypes += ","; + cardTypes += "'V4L'"; + # ifdef USING_IVTV + cardTypes += ",'MPEG'"; + # endif // USING_IVTV +-#endif // USING_V4L ++#endif // USING_V4L || USING_V4L2 + + #ifdef USING_IPTV + if (!cardTypes.isEmpty()) +diff --git a/mythtv/libs/libmythtv/libmythtv.pro b/mythtv/libs/libmythtv/libmythtv.pro +index 3d26e0a..ea06ee7 100644 +--- a/mythtv/libs/libmythtv/libmythtv.pro ++++ b/mythtv/libs/libmythtv/libmythtv.pro +@@ -119,7 +119,7 @@ cygwin:DEFINES += _WIN32 + using_valgrind:DEFINES += USING_VALGRIND + + # old libvbitext (Caption decoder) +-using_v4l { ++using_v4l || using_v4l2 { + HEADERS += vbitext/cc.h vbitext/dllist.h vbitext/hamm.h vbitext/lang.h + HEADERS += vbitext/vbi.h vbitext/vt.h + SOURCES += vbitext/cc.cpp vbitext/vbi.c vbitext/hamm.c vbitext/lang.c +@@ -471,11 +471,17 @@ using_backend { + SOURCES += channelchangemonitor.cpp + + # Support for Video4Linux devices +- using_v4l { ++ using_v4l || using_v4l2 { + HEADERS += v4lchannel.h analogsignalmonitor.h + SOURCES += v4lchannel.cpp analogsignalmonitor.cpp + +- DEFINES += USING_V4L ++ using_v4l { ++ DEFINES += USING_V4L ++ } ++ ++ using_v4l2 { ++ DEFINES += USING_V4L2 ++ } + } + + # Support for cable boxes that provide Firewire out +diff --git a/mythtv/libs/libmythtv/signalmonitor.cpp b/mythtv/libs/libmythtv/signalmonitor.cpp +index 221efef..c199b3b 100644 +--- a/mythtv/libs/libmythtv/signalmonitor.cpp ++++ b/mythtv/libs/libmythtv/signalmonitor.cpp +@@ -23,7 +23,7 @@ extern "C" { + # include "dvbchannel.h" + #endif + +-#ifdef USING_V4L ++#ifdef USING_V4L2 + # include "analogsignalmonitor.h" + # include "v4lchannel.h" + #endif +@@ -95,7 +95,7 @@ SignalMonitor *SignalMonitor::Init(QString cardtype, int db_cardnum, + } + #endif + +-#ifdef USING_V4L ++#ifdef USING_V4L2 + if ((cardtype.toUpper() == "HDPVR")) + { + V4LChannel *chan = dynamic_cast(channel); +diff --git a/mythtv/libs/libmythtv/tv_rec.cpp b/mythtv/libs/libmythtv/tv_rec.cpp +index b885eaa..3d9c7ad 100644 +--- a/mythtv/libs/libmythtv/tv_rec.cpp ++++ b/mythtv/libs/libmythtv/tv_rec.cpp +@@ -57,7 +57,7 @@ using namespace std; + + #include "channelgroup.h" + +-#ifdef USING_V4L ++#if defined(USING_V4L) || defined(USING_V4L2) + #include "v4lchannel.h" + #endif + +@@ -206,7 +206,7 @@ bool TVRec::CreateChannel(const QString &startchannel) + } + else // "V4L" or "MPEG", ie, analog TV + { +-#ifdef USING_V4L ++#if defined(USING_V4L) || defined(USING_V4L2) + channel = new V4LChannel(this, genOpt.videodev); + if (!channel->Open()) + return false; +@@ -1082,11 +1082,11 @@ bool TVRec::SetupRecorder(RecordingProfile &profile) + } + else + { +-#ifdef USING_V4L ++#if defined(USING_V4L) || defined(USING_V4L2) + // V4L/MJPEG/GO7007 from here on + recorder = new NuppelVideoRecorder(this, channel); + recorder->SetOption("skipbtaudio", genOpt.skip_btaudio); +-#endif // USING_V4L ++#endif // USING_V4L || USING_V4L2 + } + + if (recorder) +@@ -1292,11 +1292,11 @@ FirewireChannel *TVRec::GetFirewireChannel(void) + + V4LChannel *TVRec::GetV4LChannel(void) + { +-#ifdef USING_V4L ++#if defined(USING_V4L) || defined(USING_V4L2) + return dynamic_cast(channel); + #else + return NULL; +-#endif // USING_V4L ++#endif // USING_V4L || USING_V4L2 + } + + /** \fn TVRec::EventThread(void*) +@@ -4137,7 +4137,7 @@ void TVRec::TuningNewRecorder(MPEGStreamData *streamData) + channel->GetCurrentName()); + } + +-#ifdef USING_V4L ++#if defined(USING_V4L) || defined(USING_V4L2) + if (GetV4LChannel()) + { + channel->InitPictureAttributes(); +diff --git a/mythtv/libs/libmythtv/v4lchannel.cpp b/mythtv/libs/libmythtv/v4lchannel.cpp +index bc82b49..7aa47ef 100644 +--- a/mythtv/libs/libmythtv/v4lchannel.cpp ++++ b/mythtv/libs/libmythtv/v4lchannel.cpp +@@ -16,8 +16,12 @@ + #include + using namespace std; + ++#ifdef USING_V4L + #include ++#endif ++#ifdef USING_V4L2 + #include ++#endif + + // MythTV headers + #include "v4lchannel.h" +@@ -150,8 +154,10 @@ static int format_to_mode(const QString &fmt, int v4l_version) + { + if (fmt == "NTSC-JP") + return 6; ++#ifdef USING_V4L + else if (fmt.left(5) == "SECAM") + return VIDEO_MODE_SECAM; ++#endif + else if (fmt == "PAL-NC") + return 3; + else if (fmt == "PAL-M") +@@ -159,6 +165,7 @@ static int format_to_mode(const QString &fmt, int v4l_version) + else if (fmt == "PAL-N") + return 5; + // generics... ++#ifdef USING_V4L + else if (fmt.left(3) == "PAL") + return VIDEO_MODE_PAL; + else if (fmt.left(4) == "NTSC") +@@ -166,6 +173,7 @@ static int format_to_mode(const QString &fmt, int v4l_version) + else if (fmt.left(4) == "ATSC") + return VIDEO_MODE_NTSC; // We've dropped V4L ATSC support... + return VIDEO_MODE_NTSC; ++#endif + } + + VERBOSE(VB_IMPORTANT, +@@ -237,6 +245,7 @@ static QString mode_to_format(int mode, int v4l_version) + } + else if (1 == v4l_version) + { ++#ifdef USING_V4L + if (mode == VIDEO_MODE_NTSC) + return "NTSC"; + else if (mode == VIDEO_MODE_PAL) +@@ -249,6 +258,7 @@ static QString mode_to_format(int mode, int v4l_version) + return "PAL-N"; + else if (mode == 6) + return "NTSC-JP"; ++#endif + } + else + { +@@ -676,6 +686,7 @@ bool V4LChannel::Tune(uint frequency, QString inputname, + return true; + } + ++#ifdef USING_V4L + // Video4Linux version 1 tuning + uint freq = frequency / 62500; + ioctlval = ioctl(videofd, VIDIOCSFREQ, &freq); +@@ -687,6 +698,7 @@ bool V4LChannel::Tune(uint frequency, QString inputname, + .arg(device).arg(ioctlval).arg(strerror(errno))); + return false; + } ++#endif + + SetSIStandard(si_std); + +@@ -858,6 +870,7 @@ bool V4LChannel::SetInputAndFormat(int inputNum, QString newFmt) + + if (usingv4l1) + { ++#ifdef USING_V4L + VERBOSE(VB_CHANNEL, LOC + msg + "(v4l v1)"); + + // read in old settings +@@ -875,8 +888,9 @@ bool V4LChannel::SetInputAndFormat(int inputNum, QString newFmt) + { + VERBOSE(VB_IMPORTANT, LOC_ERR + msg + + "\n\t\t\twhile setting format (v4l v1)" + ENO); +- } +- else if (usingv4l2) ++ } else ++#endif ++ if (usingv4l2) + { + VERBOSE(VB_IMPORTANT, LOC + msg + + "\n\t\t\tSetting video mode with v4l version 1 worked"); +@@ -951,6 +965,7 @@ bool V4LChannel::SwitchToInput(int inputnum, bool setstarting) + return ok; + } + ++#ifdef USING_V4L + static unsigned short *get_v4l1_field( + int v4l2_attrib, struct video_picture &vid_pic) + { +@@ -970,6 +985,7 @@ static unsigned short *get_v4l1_field( + } + return NULL; + } ++#endif + + static int get_v4l2_attribute(const QString &db_col_name) + { +@@ -1067,6 +1083,7 @@ bool V4LChannel::InitPictureAttribute(const QString db_col_name) + } + + // V4L1 ++#ifdef USING_V4L + unsigned short *setfield; + struct video_picture vid_pic; + bzero(&vid_pic, sizeof(vid_pic)); +@@ -1087,7 +1104,7 @@ bool V4LChannel::InitPictureAttribute(const QString db_col_name) + VERBOSE(VB_IMPORTANT, loc_err + "failed to set controls." + ENO); + return false; + } +- ++#endif + return true; + } + +@@ -1154,6 +1171,7 @@ static int get_v4l2_attribute_value(int videofd, int v4l2_attrib) + + static int get_v4l1_attribute_value(int videofd, int v4l2_attrib) + { ++#ifdef USING_V4L + struct video_picture vid_pic; + bzero(&vid_pic, sizeof(vid_pic)); + +@@ -1167,6 +1185,7 @@ static int get_v4l1_attribute_value(int videofd, int v4l2_attrib) + unsigned short *setfield = get_v4l1_field(v4l2_attrib, vid_pic); + if (setfield) + return *setfield; ++#endif + + return -1; + } +@@ -1210,6 +1229,7 @@ static int set_v4l2_attribute_value(int videofd, int v4l2_attrib, int newvalue) + + static int set_v4l1_attribute_value(int videofd, int v4l2_attrib, int newvalue) + { ++#ifdef USING_V4L + unsigned short *setfield; + struct video_picture vid_pic; + bzero(&vid_pic, sizeof(vid_pic)); +@@ -1236,7 +1256,7 @@ static int set_v4l1_attribute_value(int videofd, int v4l2_attrib, int newvalue) + // ??? + return -1; + } +- ++#endif + return 0; + } + +diff --git a/mythtv/libs/libmythtv/v4lchannel.h b/mythtv/libs/libmythtv/v4lchannel.h +index b059c64..aa6d934 100644 +--- a/mythtv/libs/libmythtv/v4lchannel.h ++++ b/mythtv/libs/libmythtv/v4lchannel.h +@@ -4,11 +4,11 @@ + #define CHANNEL_H + + #include "dtvchannel.h" +-#ifdef USING_V4L ++#ifdef USING_V4L2 + #include // needed for v4l2_std_id type + #else + typedef uint64_t v4l2_std_id; +-#endif //USING_V4L ++#endif //USING_V4L2 + + using namespace std; + +diff --git a/mythtv/libs/libmythtv/vbitext/vbi.c b/mythtv/libs/libmythtv/vbitext/vbi.c +index 15f8d85..4c50e8d 100644 +--- a/mythtv/libs/libmythtv/vbitext/vbi.c ++++ b/mythtv/libs/libmythtv/vbitext/vbi.c +@@ -14,8 +14,12 @@ + // compiling with -std=c99. We could remove this in the .pro file, + // but that would disable it for all .c files. + #undef __STRICT_ANSI__ ++#ifdef USING_V4L + #include ++#endif ++#ifdef USING_V4L2 + #include ++#endif + + // vbitext headers + #include "vt.h" +@@ -29,8 +33,13 @@ static int rawbuf_size; // its current size + + + /***** bttv api *****/ ++#ifdef USING_V4L + #define BTTV_VBISIZE _IOR('v' , BASE_VIDIOCPRIVATE+8, int) +- ++#else // !USING_V4L ++#ifdef USING_V4L2 ++#define BTTV_VBISIZE _IOR('v' , BASE_VIDIOC_PRIVATE+8, int) ++#endif // USING_V4L2 ++#endif // !USING_V4L + + static void + error(const char *str, ...) +diff --git a/mythtv/libs/libmythtv/videosource.cpp b/mythtv/libs/libmythtv/videosource.cpp +index 5d7a508..635faeb 100644 +--- a/mythtv/libs/libmythtv/videosource.cpp ++++ b/mythtv/libs/libmythtv/videosource.cpp +@@ -45,7 +45,7 @@ using namespace std; + #include "dvbtypes.h" + #endif + +-#ifdef USING_V4L ++#ifdef USING_V4L2 + #include + #endif + +@@ -2012,7 +2012,7 @@ CaptureCardGroup::CaptureCardGroup(CaptureCard &parent) : + setTrigger(cardtype); + setSaveAll(false); + +-#ifdef USING_V4L ++#if defined(USING_V4L) || defined(USING_V4L2) + addTarget("V4L", new V4LConfigurationGroup(parent)); + # ifdef USING_IVTV + addTarget("MPEG", new MPEGConfigurationGroup(parent)); +@@ -2020,7 +2020,7 @@ CaptureCardGroup::CaptureCardGroup(CaptureCard &parent) : + # ifdef USING_HDPVR + addTarget("HDPVR", new HDPVRConfigurationGroup(parent)); + # endif // USING_HDPVR +-#endif // USING_V4L ++#endif // USING_V4L || USING_V4L2 + + #ifdef USING_DVB + addTarget("DVB", new DVBConfigurationGroup(parent)); +@@ -2201,7 +2201,7 @@ CardType::CardType(const CaptureCard &parent) : + + void CardType::fillSelections(SelectSetting* setting) + { +-#ifdef USING_V4L ++#if defined(USING_V4L) || defined(USING_V4L2) + setting->addSelection( + QObject::tr("Analog V4L capture card"), "V4L"); + setting->addSelection( +@@ -2214,7 +2214,7 @@ void CardType::fillSelections(SelectSetting* setting) + setting->addSelection( + QObject::tr("H.264 encoder card (HD-PVR)"), "HDPVR"); + # endif // USING_HDPVR +-#endif // USING_V4L ++#endif // USING_V4L || USING_V4L2 + + #ifdef USING_DVB + setting->addSelection( +@@ -2226,11 +2226,11 @@ void CardType::fillSelections(SelectSetting* setting) + QObject::tr("FireWire cable box"), "FIREWIRE"); + #endif // USING_FIREWIRE + +-#ifdef USING_V4L ++#if defined(USING_V4L) || defined(USING_V4L2) + setting->addSelection( + QObject::tr("USB MPEG-4 encoder box (Plextor ConvertX, etc)"), + "GO7007"); +-#endif // USING_V4L ++#endif // USING_V4L || USING_V4L2 + + #ifdef USING_HDHOMERUN + setting->addSelection(