summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Freeman <rich0@gentoo.org>2011-12-18 04:15:55 +0000
committerRichard Freeman <rich0@gentoo.org>2011-12-18 04:15:55 +0000
commit31c47065222c3113438f2057c971ef5bc683b574 (patch)
tree3c0707e056f903fd356cc5cd743f15c9f83e773f /media-tv/mythtv
parentBump to 3.0.9 and add 3.1.5. Include new patchsets for both that fix an issu... (diff)
downloadgentoo-2-31c47065222c3113438f2057c971ef5bc683b574.tar.gz
gentoo-2-31c47065222c3113438f2057c971ef5bc683b574.tar.bz2
gentoo-2-31c47065222c3113438f2057c971ef5bc683b574.zip
Introduce mythtv 0.24.1
(Portage version: 2.1.10.11/cvs/Linux x86_64)
Diffstat (limited to 'media-tv/mythtv')
-rw-r--r--media-tv/mythtv/ChangeLog9
-rw-r--r--media-tv/mythtv/files/ffmpeg-sync.patch16
-rw-r--r--media-tv/mythtv/files/fixLdconfSandbox.patch10
-rw-r--r--media-tv/mythtv/files/mythtv-v4l2-fix.2.patch724
-rw-r--r--media-tv/mythtv/metadata.xml1
-rw-r--r--media-tv/mythtv/mythtv-0.24.1_p20110524.ebuild354
6 files changed, 1113 insertions, 1 deletions
diff --git a/media-tv/mythtv/ChangeLog b/media-tv/mythtv/ChangeLog
index fa2b88877f5b..8273b62fbc93 100644
--- a/media-tv/mythtv/ChangeLog
+++ b/media-tv/mythtv/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for media-tv/mythtv
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-tv/mythtv/ChangeLog,v 1.334 2011/07/28 21:10:59 neurogeek Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-tv/mythtv/ChangeLog,v 1.335 2011/12/18 04:15:55 rich0 Exp $
+
+*mythtv-0.24.1_p20110524 (17 Dec 2011)
+
+ 17 Dec 2011; Richard Freeman <rich0@gentoo.org> +files/ffmpeg-sync.patch,
+ +files/fixLdconfSandbox.patch, +files/mythtv-v4l2-fix.2.patch,
+ +mythtv-0.24.1_p20110524.ebuild:
+ Introduce mythtv 0.24.1
28 Jul 2011; Jesus Rivero <neurogeek@gentoo.org>
mythtv-0.23.1_p27077.ebuild:
diff --git a/media-tv/mythtv/files/ffmpeg-sync.patch b/media-tv/mythtv/files/ffmpeg-sync.patch
new file mode 100644
index 000000000000..ca7b3a2a13a0
--- /dev/null
+++ b/media-tv/mythtv/files/ffmpeg-sync.patch
@@ -0,0 +1,16 @@
+Index: configure
+===================================================================
+--- configure (revision 25841)
++++ configure (working copy)
+@@ -4745,7 +4745,7 @@
+ cat >> external/FFmpeg/config.mak <<EOF
+ LIBDIR=\$(INSTALL_ROOT)$libdir
+ SHLIBDIR=\$(INSTALL_ROOT)$shlibdir
+-INCDIR=\$(INSTALL_ROOT)$incdir
++INCDIR=$incdir
+-BINDIR=\$(INSTALL_ROOT)$bindir
++BINDIR=$bindir
+-DATADIR=\$(INSTALL_ROOT)$datadir
++DATADIR=$datadir
+ MANDIR=\$(INSTALL_ROOT)$mandir
+
diff --git a/media-tv/mythtv/files/fixLdconfSandbox.patch b/media-tv/mythtv/files/fixLdconfSandbox.patch
new file mode 100644
index 000000000000..075b220570c5
--- /dev/null
+++ b/media-tv/mythtv/files/fixLdconfSandbox.patch
@@ -0,0 +1,10 @@
+Index: programs/mythfrontend/mythfrontend.pro
+===================================================================
+--- programs/mythfrontend/mythfrontend.pro (revision 26148)
++++ programs/mythfrontend/mythfrontend.pro (working copy)
+@@ -86,3 +86,5 @@
+ using_jack:DEFINES += USING_JACK
+ using_oss: DEFINES += USING_OSS
+ macx: DEFINES += USING_COREAUDIO
++
++setting.extra -= -ldconfig
diff --git a/media-tv/mythtv/files/mythtv-v4l2-fix.2.patch b/media-tv/mythtv/files/mythtv-v4l2-fix.2.patch
new file mode 100644
index 000000000000..e26e16615f00
--- /dev/null
+++ b/media-tv/mythtv/files/mythtv-v4l2-fix.2.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 <linux/videodev.h>
++#endif
++#ifdef USING_V4L2
+ #include <linux/videodev2.h>
++#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 <sys/ioctl.h>
+ #include <poll.h>
+
++#ifdef USING_V4L
+ #include <linux/videodev.h>
++#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 <algorithm>
+
+-#if defined(USING_V4L) || defined(USING_DVB)
++#if defined(USING_V4L) || defined(USING_V4L2) || defined(USING_DVB)
+ #include <sys/ioctl.h>
+ #endif
+
+@@ -28,6 +28,8 @@
+
+ #ifdef USING_V4L
+ #include <linux/videodev.h>
++#endif
++#ifdef USING_V4L2
+ #include <linux/videodev2.h>
+ #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<V4LChannel*>(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<V4LChannel*>(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<V4LChannel*>(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 <iostream>
+ using namespace std;
+
++#ifdef USING_V4L
+ #include <linux/videodev.h>
++#endif
++#ifdef USING_V4L2
+ #include <linux/videodev2.h>
++#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 <linux/videodev2.h> // 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 <linux/videodev.h>
++#endif
++#ifdef USING_V4L2
+ #include <linux/videodev2.h>
++#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 <linux/videodev2.h>
+ #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(
diff --git a/media-tv/mythtv/metadata.xml b/media-tv/mythtv/metadata.xml
index ed1acca600dd..3bff68eebd98 100644
--- a/media-tv/mythtv/metadata.xml
+++ b/media-tv/mythtv/metadata.xml
@@ -19,6 +19,7 @@
experience with MythTV since its early versions and discussed with
other MythTV maintainers and users. Does not rely on KDE being installed
like most methods do.</flag>
+ <flag name="bluray">Pulls in libbluray for BluRay support.</flag>
<flag name="debug">Instructs Qt to use the 'debug' target instead of
'release' target. If your MythTV is crashing or you need a backtrace,
you need to compile it with this option otherwise the debugging data is
diff --git a/media-tv/mythtv/mythtv-0.24.1_p20110524.ebuild b/media-tv/mythtv/mythtv-0.24.1_p20110524.ebuild
new file mode 100644
index 000000000000..7d3e62caf1e8
--- /dev/null
+++ b/media-tv/mythtv/mythtv-0.24.1_p20110524.ebuild
@@ -0,0 +1,354 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-tv/mythtv/mythtv-0.24.1_p20110524.ebuild,v 1.1 2011/12/18 04:15:55 rich0 Exp $
+
+EAPI=3
+PYTHON_DEPEND="2"
+MYTHTV_VERSION="v0.24.1-1-g347cd24"
+MYTHTV_BRANCH="fixes/0.24"
+MYTHTV_REV="347cd2477ad82a7aa75ebe7c686db77465f415dc"
+MYTHTV_SREV="347cd24"
+
+inherit flag-o-matic multilib eutils qt4 toolchain-funcs python linux-info versionator
+
+DESCRIPTION="Homebrew PVR project"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE_VIDEO_CARDS="video_cards_nvidia"
+IUSE="altivec autostart dvb \
+dvd bluray \
+ieee1394 jack lcd lirc \
+alsa jack \
+debug profile \
+perl python \
+xvmc vdpau \
+${IUSE_VIDEO_CARDS} \
+input_devices_joystick \
+"
+
+RDEPEND=">=media-libs/freetype-2.0
+ >=media-sound/lame-3.93.1
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXinerama
+ x11-libs/libXv
+ x11-libs/libXrandr
+ x11-libs/libXxf86vm
+ x11-libs/qt-core:4[qt3support]
+ x11-libs/qt-gui:4[qt3support]
+ x11-libs/qt-sql:4[qt3support,mysql]
+ x11-libs/qt-opengl:4[qt3support]
+ x11-libs/qt-webkit:4
+ virtual/mysql
+ virtual/opengl
+ virtual/glu
+ || ( >=net-misc/wget-1.9.1 >=media-tv/xmltv-0.5.43 )
+ alsa? ( >=media-libs/alsa-lib-0.9 )
+ autostart? ( net-dialup/mingetty
+ x11-wm/evilwm
+ x11-apps/xset )
+ dvb? ( media-libs/libdvb media-tv/linuxtv-dvb-headers )
+ dvd? ( media-libs/libdvdcss )
+ ieee1394? ( >=sys-libs/libraw1394-1.2.0
+ >=sys-libs/libavc1394-0.5.3
+ >=media-libs/libiec61883-1.0.0 )
+ jack? ( media-sound/jack-audio-connection-kit )
+ lcd? ( app-misc/lcdproc )
+ lirc? ( app-misc/lirc )
+ perl? ( dev-perl/DBD-mysql
+ dev-perl/Net-UPnP
+ >=dev-perl/libwww-perl-6 )
+ python? ( dev-python/mysql-python
+ dev-python/lxml )
+ xvmc? ( x11-libs/libXvMC )
+ bluray? ( media-libs/libbluray )
+ video_cards_nvidia? ( >=x11-drivers/nvidia-drivers-180.06 )
+ media-fonts/corefonts
+ media-fonts/dejavu
+ !media-tv/mythtv-bindings
+ "
+
+DEPEND="${RDEPEND}
+ dev-lang/yasm
+ x11-proto/xineramaproto
+ x11-proto/xf86vidmodeproto
+ x11-apps/xinit
+ "
+
+MYTHTV_GROUPS="video,audio,tty,uucp"
+
+# Release version
+MY_PV="${PV%_*}"
+
+# what product do we want
+case "${PN}" in
+ mythtv)
+ REPO="mythtv"
+ MY_PN="mythtv"
+ S="${WORKDIR}/MythTV-${REPO}-${MYTHTV_SREV}/${MY_PN}"
+ ;;
+ mythtv-bindings)
+ REPO="mythtv"
+ MY_PN="mythtv"
+ S="${WORKDIR}/MythTV-${REPO}-${MYTHTV_SREV}/${MY_PN}"
+ ;;
+ mythweb)
+ REPO="mythweb"
+ MY_PN="mythweb"
+ S="${WORKDIR}/MythTV-${REPO}-${MYTHTV_SREV}/"
+ ;;
+ nuvexport)
+ REPO="nuvexport"
+ MY_PN="nuvexport"
+ MYTHTV_REV="$NUVEXPORT_REV"
+ S="${WORKDIR}/MythTV-${REPO}-${NUVEXPORT_SREV}/"
+ ;;
+ *)
+ REPO="mythtv"
+ MY_PN="mythplugins"
+ S="${WORKDIR}/MythTV-${REPO}-${MYTHTV_SREV}/${MY_PN}"
+ ;;
+esac
+
+# _pre is from SVN trunk while _p and _beta are from SVN ${MY_PV}-fixes
+# TODO: probably ought to do something smart if the regex doesn't match anything
+[[ "${PV}" =~ (_alpha|_beta|_pre|_rc|_p)([0-9]+) ]] || {
+ # assume a tagged release
+ MYTHTV_REV="v${PV}"
+}
+
+HOMEPAGE="http://www.mythtv.org"
+LICENSE="GPL-2"
+SRC_URI="https://github.com/MythTV/${REPO}/tarball/${MYTHTV_REV} -> ${REPO}-${PV}.tar.gz"
+
+pkg_setup() {
+ einfo "This ebuild now uses a heavily stripped down version of your CFLAGS"
+
+ if use xvmc && use video_cards_nvidia
+ then
+ elog
+ elog "For NVIDIA based cards, the XvMC renderer only works on"
+ elog "the NVIDIA 4, 5, 6 & 7 series cards."
+ fi
+
+ python_set_active_version 2
+
+ enewuser mythtv -1 /bin/bash /home/mythtv ${MYTHTV_GROUPS}
+ usermod -a -G ${MYTHTV_GROUPS} mythtv
+}
+
+src_prepare() {
+# upstream wants the revision number in their version.cpp
+# since the subversion.eclass strips out the .svn directory
+# svnversion in MythTV's build doesn't work
+sed -e "s#\${SOURCE_VERSION}#${MYTHTV_VERSION}#g" -e "s#\${BRANCH}#${MYTHTV_BRANCH}#g" -i "${S}"/version.sh
+
+# Perl bits need to go into vender_perl and not site_perl
+ sed -e "s:pure_install:pure_install INSTALLDIRS=vendor:" \
+ -i "${S}"/bindings/perl/Makefile
+
+ epatch "${FILESDIR}/ffmpeg-sync.patch"
+ epatch "${FILESDIR}/fixLdconfSandbox.patch"
+
+ if kernel_is -ge 2 6 38
+ then
+ epatch "${FILESDIR}/mythtv-v4l2-fix.2.patch"
+ fi
+
+}
+
+src_configure() {
+ local myconf="--prefix=/usr"
+ myconf="${myconf} --mandir=/usr/share/man"
+ myconf="${myconf} --libdir-name=$(get_libdir)"
+
+ myconf="${myconf} --enable-pic"
+ myconf="${myconf} --enable-proc-opt"
+
+ myconf="${myconf} --enable-disable-mmx-for-debugging"
+
+ use alsa || myconf="${myconf} --disable-audio-alsa"
+ use altivec || myconf="${myconf} --disable-altivec"
+ use jack || myconf="${myconf} --disable-audio-jack"
+
+#from bug #220857
+ if use xvmc; then
+ myconf="${myconf} --enable-xvmc"
+ myconf="${myconf} --enable-xvmcw"
+ myconf="${myconf} --disable-xvmc-vld"
+ else
+ myconf="${myconf} --disable-xvmc"
+ myconf="${myconf} --disable-xvmcw"
+ fi
+
+ myconf="${myconf} $(use_enable dvb)"
+ myconf="${myconf} $(use_enable ieee1394 firewire)"
+ myconf="${myconf} $(use_enable lirc)"
+ myconf="${myconf} --disable-directfb"
+ myconf="${myconf} --dvb-path=/usr/include"
+ myconf="${myconf} --enable-opengl-vsync"
+ myconf="${myconf} --enable-xrandr"
+ myconf="${myconf} --enable-xv"
+ myconf="${myconf} --enable-x11"
+
+ if use perl && use python
+ then
+ myconf="${myconf} --with-bindings=perl,python"
+ elif use perl
+ then
+ myconf="${myconf} --without-bindings=python"
+ myconf="${myconf} --with-bindings=perl"
+ elif use python
+ then
+ myconf="${myconf} --without-bindings=perl"
+ myconf="${myconf} --with-bindings=python"
+ else
+ myconf="${myconf} --without-bindings=perl,python"
+ fi
+
+ if use debug
+ then
+ myconf="${myconf} --compile-type=debug"
+ elif use profile
+ then
+ myconf="${myconf} --compile-type=profile"
+ else
+ myconf="${myconf} --compile-type=release"
+ myconf="${myconf} --enable-proc-opt"
+ fi
+
+ if use xvmc && use video_cards_nvidia
+ then
+ myconf="${myconf} --xvmc-lib=XvMCNVIDIA"
+ myconf="${myconf} --enable-opengl-video"
+ fi
+
+ if use vdpau && use video_cards_nvidia
+ then
+ myconf="${myconf} --enable-vdpau"
+ fi
+
+ use input_devices_joystick || myconf="${myconf} --disable-joystick-menu"
+
+## CFLAG cleaning so it compiles
+ strip-flags
+ filter-flags "-march=*" "-mtune=*" "-mcpu=*"
+ filter-flags "-O" "-O?"
+
+ has distcc ${FEATURES} || myconf="${myconf} --disable-distcc"
+ has ccache ${FEATURES} || myconf="${myconf} --disable-ccache"
+
+# let MythTV come up with our CFLAGS. Upstream will support this
+ CFLAGS=""
+ CXXFLAGS=""
+
+ chmod +x ./external/FFmpeg/version.sh
+
+ einfo "Running ./configure ${myconf}"
+ chmod +x ./configure
+ ./configure ${myconf} || die "configure died"
+}
+
+src_compile() {
+# eqmake4 mythtv.pro -o "Makefile" || die "eqmake4 failed"
+ emake || die "emake failed"
+}
+
+src_install() {
+ einstall INSTALL_ROOT="${D}" || die "install failed"
+ dodoc AUTHORS FAQ UPGRADING README
+
+ insinto /usr/share/mythtv/database
+ doins database/*
+
+ exeinto /usr/share/mythtv
+
+ newinitd "${FILESDIR}"/mythbackend-0.18.2.rc mythbackend
+ newconfd "${FILESDIR}"/mythbackend-0.18.2.conf mythbackend
+
+ dodoc keys.txt docs/*.{txt,pdf}
+ dohtml docs/*.html
+
+ keepdir /etc/mythtv
+ chown -R mythtv "${D}"/etc/mythtv
+ keepdir /var/log/mythtv
+ chown -R mythtv "${D}"/var/log/mythtv
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}"/mythtv.logrotate.d-r1 mythtv
+
+ insinto /usr/share/mythtv/contrib
+ doins -r contrib/*
+
+ dobin "${FILESDIR}"/runmythfe
+
+ if use autostart
+ then
+ dodir /etc/env.d/
+ echo 'CONFIG_PROTECT="/home/mythtv/"' > "${D}"/etc/env.d/95mythtv
+
+ insinto /home/mythtv
+ newins "${FILESDIR}"/bash_profile .bash_profile
+ newins "${FILESDIR}"/xinitrc .xinitrc
+ fi
+
+ for file in `find "${D}" -type f -name \*.py`; do chmod a+x "$file"; done
+ for file in `find "${D}" -type f -name \*.sh`; do chmod a+x "$file"; done
+ for file in `find "${D}" -type f -name \*.pl`; do chmod a+x "$file"; done
+}
+
+pkg_preinst() {
+ export CONFIG_PROTECT="${CONFIG_PROTECT} ${ROOT}/home/mythtv/"
+}
+
+pkg_postinst() {
+ use python && python_mod_optimize MythTV
+
+ elog "Want mythfrontend to start automatically?"
+ elog "Set USE=autostart. Details can be found at:"
+ elog "http://dev.gentoo.org/~cardoe/mythtv/autostart.html"
+
+ elog
+ elog "To always have MythBackend running and available run the following:"
+ elog "rc-update add mythbackend default"
+ elog
+ ewarn "Your recordings folder must be owned by the user 'mythtv' now"
+ ewarn "chown -R mythtv /path/to/store"
+ ewarn
+ elog "Note that USE=-mmx now works with mythtv, but you could suffer"
+ elog "from performance issues if you use it."
+
+ if use xvmc && [[ ! -s "${ROOT}/etc/X11/XvMCConfig" ]]
+ then
+ ewarn
+ ewarn "No XvMC implementation has been selected yet"
+ ewarn "Use 'eselect xvmc list' for a list of available choices"
+ ewarn "Then use 'eselect xvmc set <choice>' to choose"
+ ewarn "'eselect xvmc set nvidia' for example"
+ fi
+
+ if use autostart
+ then
+ elog
+ elog "Please add the following to your /etc/inittab file at the end of"
+ elog "the TERMINALS section"
+ elog "c8:2345:respawn:/sbin/mingetty --autologin mythtv tty8"
+ fi
+
+}
+
+pkg_postrm()
+{
+ use python && python_mod_cleanup MythTV
+}
+
+pkg_info() {
+ "${ROOT}"/usr/bin/mythfrontend --version
+}
+
+pkg_config() {
+ echo "Creating mythtv MySQL user and mythconverg database if it does not"
+ echo "already exist. You will be prompted for your MySQL root password."
+ "${ROOT}"/usr/bin/mysql -u root -p < "${ROOT}"/usr/share/mythtv/database/mc.sql
+}