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(