summaryrefslogtreecommitdiffstats
path: root/abs
diff options
context:
space:
mode:
authorJames Meyer <james.meyer@operamail.com>2009-06-17 16:52:54 (GMT)
committerJames Meyer <james.meyer@operamail.com>2009-06-17 16:52:54 (GMT)
commitbc2a5f737e0f0402b31ab0a5a59ee11a204f48c6 (patch)
tree23d6feed4a2e00603e72a1060c05976ba7722c57 /abs
parent57e9c8d25f393eefa467cdd61de9d0f58aafabd5 (diff)
parentdd91ca69386ad656407707148bb9242cf861b0a1 (diff)
downloadlinhes_pkgbuild-bc2a5f737e0f0402b31ab0a5a59ee11a204f48c6.zip
linhes_pkgbuild-bc2a5f737e0f0402b31ab0a5a59ee11a204f48c6.tar.gz
linhes_pkgbuild-bc2a5f737e0f0402b31ab0a5a59ee11a204f48c6.tar.bz2
Merge branch 'HEAD' of ssh://jams@knoppmyth.net/mount/repository/LinHES-PKGBUILD
Diffstat (limited to 'abs')
-rw-r--r--abs/core-testing/linhes-scripts/PKGBUILD4
-rw-r--r--abs/core-testing/mplayer-wrapper/PKGBUILD16
-rwxr-xr-xabs/core-testing/mplayer-wrapper/bin/mplayer-resumer.pl188
-rwxr-xr-xabs/core-testing/mplayer-wrapper/bin/mplayer-wrapper.pl110
-rw-r--r--abs/core-testing/mythtv/trunk/morethemes/PKGBUILD7
-rwxr-xr-xabs/core-testing/mythtv/trunk/mp_all.sh7
-rw-r--r--abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD7
-rw-r--r--abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD7
-rw-r--r--abs/core-testing/mythtv/trunk/mythflix/PKGBUILD7
-rw-r--r--abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD7
-rw-r--r--abs/core-testing/mythtv/trunk/mythgame/PKGBUILD7
-rw-r--r--abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD7
-rw-r--r--abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD7
-rw-r--r--abs/core-testing/mythtv/trunk/mythnews/PKGBUILD7
-rwxr-xr-xabs/core-testing/mythtv/trunk/myththemes/PKGBUILD7
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv/H264Parser-fixes-v1.1.patch368
-rwxr-xr-xabs/core-testing/mythtv/trunk/mythtv/PKGBUILD12
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv/hdpvr-signalmonitor.patch292
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv/ringbuffer_reset_v2.diff91
-rw-r--r--abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD7
-rw-r--r--abs/core-testing/mythtv/trunk/mythweather/PKGBUILD7
-rw-r--r--abs/core-testing/mythtv/trunk/mythweb/PKGBUILD4
-rw-r--r--abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD7
-rw-r--r--abs/core-testing/tweaker/PKGBUILD2
-rw-r--r--abs/core-testing/tweaker/lib/Tweaker/Script.pm2
-rw-r--r--abs/extra-testing/community/xbmc-svn/CHANGELOG30
-rw-r--r--abs/extra-testing/community/xbmc-svn/PKGBUILD72
-rw-r--r--abs/extra-testing/community/xbmc-svn/libcurl-not-in-lib64.patch2
-rw-r--r--abs/extra-testing/community/xbmc-svn/libfaad2-enable-AC_PROG_CXX.patch13
-rw-r--r--abs/extra-testing/community/xbmc-svn/xbmc-safe-fullscreen.patch16
-rw-r--r--abs/extra-testing/community/xbmc-svn/xbmc-svn.install4
31 files changed, 1240 insertions, 84 deletions
diff --git a/abs/core-testing/linhes-scripts/PKGBUILD b/abs/core-testing/linhes-scripts/PKGBUILD
index bd8279e..8875c69 100644
--- a/abs/core-testing/linhes-scripts/PKGBUILD
+++ b/abs/core-testing/linhes-scripts/PKGBUILD
@@ -3,7 +3,7 @@
pkgname=linhes-scripts
pkgver=1
-pkgrel=14
+pkgrel=15
pkgdesc="Various scripts that help to make LinHES, LinHES."
arch=('i686' 'x86_64')
license=('GPL2')
@@ -14,7 +14,7 @@ source=(ftp://ftp.knoppmyth.net/R6/sources/linhes-scripts.tar.bz2)
build() {
cd $startdir/src/
mkdir -p $startdir/pkg/usr/LH/bin
- cp 770* idle.sh imp* myth* shoo* pau*sh mplayer* vdpau* screen* mplayer* $startdir/pkg/usr/LH/bin
+ install -D -m755 myt2* 770* idle.sh imp* myth* shoo* pau*sh mplayer* vdpau* screen* mplayer* $startdir/pkg/usr/LH/bin
mkdir -p $startdir/pkg/etc/sv/pause-mythcommflag/supervise
cp run $startdir/pkg/etc/sv/pause-mythcommflag/
mkdir -p $startdir/pkg/etc/logrotate.d/
diff --git a/abs/core-testing/mplayer-wrapper/PKGBUILD b/abs/core-testing/mplayer-wrapper/PKGBUILD
new file mode 100644
index 0000000..82f1082
--- /dev/null
+++ b/abs/core-testing/mplayer-wrapper/PKGBUILD
@@ -0,0 +1,16 @@
+pkgname=mplayer-wrapper
+pkgver=1
+pkgrel=1
+pkgdesc="wrapper for mplayer and mplayer derivatives"
+arch=('i686' 'x86_64')
+
+depends=('perl')
+
+source=(mplayer-wrapper.pl)
+
+license=('GPL2')
+
+build() {
+ cd $startdir
+ install -m0777 -D bin/* $startdir/pkg/usr/LH/bin/
+}
diff --git a/abs/core-testing/mplayer-wrapper/bin/mplayer-resumer.pl b/abs/core-testing/mplayer-wrapper/bin/mplayer-resumer.pl
new file mode 100755
index 0000000..c785a25
--- /dev/null
+++ b/abs/core-testing/mplayer-wrapper/bin/mplayer-resumer.pl
@@ -0,0 +1,188 @@
+#!/usr/bin/perl
+
+use Shell;
+use strict;
+use POSIX qw(floor);
+
+# Written by Bob Igo from the MythTV Store at http://MythiC.TV
+# Email: bob@stormlogic.com
+#
+# If you run into problems with this script, please send me email
+
+# PURPOSE:
+# --------------------------
+# This is a wrapper script to prove the concept of having MythTV
+# resume playback of previously-stopped video where you left off.
+# It's likely that a good solution will look different than this
+# initial code.
+
+# RATIONALE:
+# --------------------------
+# Watching 90% of a video and stopping causes you to return to the
+# beginning again the next time you watch it. Remembering where
+# you were in the video and resuming at that position is a much nicer
+# behavior for the user.
+#
+# By default, mplayer spits out timecode information that tells you
+# where you are in the video, to the tenth of a second. Mplayer also
+# supports a seek feature on the command-line. We can make use of these
+# features to write an mplayer wrapper that will remember the last
+# position in a video file and resume to it on playback.
+
+# PARAMETERS:
+# --------------------------
+# see print_usage() below
+
+# FILES:
+# --------------------------
+# $infile, the video to play
+# $resumefile, the video's resume file (see get_resume_filename() below)
+
+# KNOWN ISSUES:
+# --------------------------
+# Mplayer misreports the timecodes on .nuv MPEG-2 files. Currently, anything
+# captured via an HDTV tuner card and put into your /myth/video directory
+# will fail with this resumer.
+#
+# Current theories include the timecode having to do with the show's broadcast
+# time, recording time, or perhaps its upload time to the station that
+# broadcast it.
+
+# DESIGN LIMITATION:
+# -------------------------
+# If the video file to be played is on a read-only filesystem, or otherwise
+# lives in a location that cannot be written to, resume will fail. This is
+# because the current implementation uses a file parallel to the video file
+# to store the timecode.
+#
+
+# CHANGE LOG:
+# 5/3/2006
+# Added last time started checking.
+# If this script is restarted within $tdiff (default 5 seconds)
+# then it will delete the file used to keep track of the videos
+# resume position.
+
+
+my $infile;
+my $resumefile;
+my $mplayer_parameters;
+my $fudge_factor=2; # number of additional seconds to skip back before playback
+my $tnow; # Time now.
+my $tprev; # Time the prog was last started.
+ # Returned from the modification time of the xx.resume file.
+my $tdiff=5; # How many seconds before we should start from
+ # the beginning of the movie
+#DEBUG
+#open(DEBUG,">/tmp/debug") || die "unable to open debug file";
+
+sub init () {
+ $tnow = time();
+ $infile = @ARGV[$#ARGV];
+
+ $resumefile = &get_resume_filename($infile);
+ # This returns the 9th element of the 13 element array
+ # created by the stat function.
+ $tprev = (stat ($resumefile))[9];
+ # if this file is restarted in less than 5 seconds then
+ # remove the .resume file
+ if ( ($tnow - $tprev) < $tdiff ) {
+ unlink($resumefile);
+ }
+
+ $mplayer_parameters = join(' ',@ARGV[0..$#ARGV-1]);
+}
+
+&init();
+&save_time_offset(&mplayer($mplayer_parameters,$infile), $resumefile);
+
+#close(DEBUG);
+
+# For $pathname, return $path.$filename.resume
+sub get_resume_filename () {
+ my($pathname)=@_;
+
+ my $idx = rindex($pathname,"/");
+
+ if ($idx == -1) { # There was no "/" in $pathname
+ return ".".$pathname.".resume";
+ } else {
+ # Now we need to split out the path from the filename.
+ my $path = substr($pathname,0,$idx+1);
+ my $filename = substr($pathname,$idx+1);
+ return "$path.$filename.resume";
+ }
+}
+
+# Calls mplayer and returns the last known video position
+sub mplayer () {
+ my($parameters,$infile)=@_;
+ my $seconds=0;
+ my $timecode=&get_time_offset($infile);
+ my $command = "mplayer $parameters -ss $timecode \"$infile\" 2>&1 2>/dev/null |";
+
+ open(SHELL, $command);
+ # The kind of line we care about looks like this example:
+ # A:1215.2 V:1215.2 A-V: 0.006 ct: 0.210 207/201 13% 0% 1.9% 0 0 68%
+ # But all we care to look at is the first number.
+
+ while (<SHELL>) {
+ #print DEBUG $_;
+ if (m/A: *[0-9]+\.[0-9]/) { # See if this line has timecodes on it
+ my $last_timecode_line = &extract_last_timecode_line($_);
+ if ($last_timecode_line =~ m/ *([0-9]+\.[0-9]) V/) {
+ $seconds=$1;
+ }
+ }
+ }
+ close(SHELL);
+
+ return $seconds;
+
+ sub extract_last_timecode_line () {
+ my ($line)=@_;
+ my @lines=split('A:',$line);
+ return @lines[$#lines-1];
+ }
+}
+
+# Save the last known video position
+sub save_time_offset () {
+ my($seconds, $resumefile)=@_;
+
+ open(RESUMEFILE, ">$resumefile") || die "Unable to open $resumefile for writing";
+ print RESUMEFILE "$seconds";
+ close(RESUMEFILE);
+}
+
+# returns the number of seconds corresponding to the last known video position,
+# in hh:mm:ss format, compatible with the "-ss" parameter to mplayer
+sub get_time_offset () {
+ my($videofile)=@_;
+ my($resumefile) = &get_resume_filename($videofile);
+ my $seconds=0;
+ my $timecode;
+
+ open(RESUMEFILE, "<$resumefile") || return "00:00:00";
+ while(<RESUMEFILE>) {
+ $seconds=$_;
+ }
+ close(RESUMEFILE);
+
+ my $hours = floor($seconds/3600);
+ $seconds = $seconds - $hours*3600;
+
+ my $minutes = floor($seconds/60);
+ $seconds = int($seconds - $minutes*60) - $fudge_factor;
+
+ $timecode = sprintf "%02d:%02d:%02d",$hours,$minutes,$seconds;
+# print "TIMECODE: $timecode\n";
+ return $timecode;
+}
+
+sub print_usage () {
+ print "USAGE:\n";
+ print "\t",$ARGV[0], "[mplayer parameters] video_file\n";
+ print "\t","e.g. ",$ARGV[0], "-fs -zoom my.mpg\n";
+ print "\t","Version 5/3/2006\n";
+}
diff --git a/abs/core-testing/mplayer-wrapper/bin/mplayer-wrapper.pl b/abs/core-testing/mplayer-wrapper/bin/mplayer-wrapper.pl
new file mode 100755
index 0000000..583786d
--- /dev/null
+++ b/abs/core-testing/mplayer-wrapper/bin/mplayer-wrapper.pl
@@ -0,0 +1,110 @@
+#!/usr/bin/perl
+
+use Shell;
+use strict;
+use POSIX qw(floor);
+
+# Written by Bob Igo from the MythTV Store at http://MythiC.TV
+# including some original code and contributions from Nick C.
+# and graysky.
+# Email: bob@stormlogic.com
+#
+# If you run into problems with this script, please send me email
+
+# PURPOSE:
+# --------------------------
+# This is a wrapper script that tries to find the best parameters
+# for calling an underlying video player. The outer layer determines
+# the best playback parameters, while the inner layer picks the best
+# player to call.
+
+# RATIONALE:
+# --------------------------
+# Default video playback options are not optimal on all hardware or
+# for all video types. In addition, common video players do not
+# offer to bookmark video so that you can resume where you left off.
+# Both of these problems can be addressed by this wrapper.
+
+# PARAMETERS:
+# --------------------------
+# The same parameters you'd use for mplayer, some of which may be
+# translated automatically for use with smplayer.
+
+# FILES:
+# --------------------------
+# $mediafile, the file to play
+
+sub run () {
+ my $mediafile = @ARGV[$#ARGV];
+ my $player = &pick_player();
+
+ my $player_parameters = join(' ',
+ &translate_parameters($player,@ARGV[0..$#ARGV-1]),
+ &dynamic_parameters($mediafile));
+ &player($player,$player_parameters,$mediafile);
+}
+
+&run();
+
+# Translates any parameters into ones that will be compatible with the given player.
+sub translate_parameters() {
+ my($player,@parameters)=@_;
+
+ if ($player eq "smplayer") {
+ # Stupidly, smplayer uses a different set of command-line parameters than generic
+ # mplayer, so we need to translate mplayer-centric ones into the few that are
+ # available in smplayer-ese.
+ my %smplayer_parameter_translation_array = (
+ "-fs" => "-fullscreen",
+ "-zoom" => " "
+ );
+
+ sub translate() {
+ my($flag)=@_;
+ return $smplayer_parameter_translation_array{$flag};
+ }
+
+ return map(&translate($_), @parameters);
+ } else {
+ return @parameters;
+ }
+}
+
+# Returns an array of dynamic parameters based in part on the media.
+sub dynamic_parameters () {
+ my($mediafile)=@_;
+ return(); # ??? empty for now; further development required
+}
+
+# Find the best player for use on this system. The script prefers smplayer,
+# which has built-in bookmarking, falling back to mplayer-resumer.pl, which
+# implements bookmarking as an mplayer wrapper, if smplayer cannot be found.
+# Finally, if no bookmarking players can be found, a barebones mplayer is used.
+sub pick_player () {
+ my @possible_players = ("smplayer", "mplayer-resumer.pl", "mplayer");
+ my $command;
+ my $candidate_player;
+ foreach (@possible_players) {
+ $candidate_player = $_;
+ $command = "which $candidate_player |";
+ open(SHELL, $command);
+ if (<SHELL>) {
+ #print "player $candidate_player : $_\n";
+ return $candidate_player;
+ }
+ close(SHELL);
+ }
+}
+
+# Calls player
+sub player () {
+ my($player,$parameters,$mediafile)=@_;
+ my $command = "$player $parameters \"$mediafile\" 2>&1 2>/dev/null |";
+
+ #print "DEBUG: command is:\n$command\n";
+ open(SHELL, $command);
+ while (<SHELL>) {
+ print $_;
+ }
+ close(SHELL);
+}
diff --git a/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD b/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
index 5f12179..350cf2f 100644
--- a/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
@@ -1,5 +1,5 @@
pkgname=morethemes-svn
-pkgver=20684
+pkgver=20713
pkgrel=1
pkgdesc="Additional themes for MythTV"
url="http://www.mythtv.org"
@@ -19,7 +19,7 @@ _svnmod=themes
build() {
svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-# svn co $_svntrunk --config-dir ./ $_svnmod
+ svn revert -R $_svnmod
cd $startdir/src/$_svnmod
@@ -35,6 +35,9 @@ build() {
[ "$CARCH" = "i686" ] && ARCH="i686"
[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+ # clean up
+ make distclean
+
# configure
./configure --prefix=/usr || return 1
diff --git a/abs/core-testing/mythtv/trunk/mp_all.sh b/abs/core-testing/mythtv/trunk/mp_all.sh
index 47f70ba..45ea44e 100755
--- a/abs/core-testing/mythtv/trunk/mp_all.sh
+++ b/abs/core-testing/mythtv/trunk/mp_all.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-_svnver=20684
+_svnver=20713
# NOTE: Make sure to build and install mythtv first BEFORE building anything else
buildlist=('mythtv' 'mytharchive' 'mythbrowser' 'mythflix' 'mythgallery' 'mythgame' 'mythmovies' 'mythmusic' 'mythnews' 'mythvideo' 'mythweather' 'mythzoneminder' 'mythweb' 'myththemes' 'morethemes')
@@ -9,9 +9,8 @@ for i in `echo ${buildlist[@]:0}`
do
echo "---------- building $i ----------"
cd ./$i
- mp -f --holdver || exit 1
- pacman -U /data/pkg_repo/i686/core-testing/$i-svn-$_svnver* || exit 1
- rm -rf pkg src
+ mp -f -i --holdver || exit 1
+ rm -rf pkg
rm -f *~
cd ..
done
diff --git a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
index 917d741..14230b1 100644
--- a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
@@ -1,5 +1,5 @@
pkgname=mytharchive-svn
-pkgver=20684
+pkgver=20713
pkgrel=1
pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows."
url="http://www.mythtv.org"
@@ -19,7 +19,7 @@ _svnmod=mythplugins
build() {
svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-# svn co $_svntrunk --config-dir ./ $_svnmod
+ svn revert -R $_svnmod
cd $startdir/src/$_svnmod
@@ -35,6 +35,9 @@ build() {
[ "$CARCH" = "i686" ] && ARCH="i686"
[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+ # clean up
+ make distclean
+
# configure
./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
--enable-mytharchive || return 1
diff --git a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
index 466263b..3bd4d74 100644
--- a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
@@ -1,5 +1,5 @@
pkgname=mythbrowser-svn
-pkgver=20684
+pkgver=20713
pkgrel=1
pkgdesc="Mini web browser for MythTV"
url="http://www.mythtv.org"
@@ -19,7 +19,7 @@ _svnmod=mythplugins
build() {
svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-# svn co $_svntrunk --config-dir ./ $_svnmod
+ svn revert -R $_svnmod
cd $startdir/src/$_svnmod
@@ -35,6 +35,9 @@ build() {
[ "$CARCH" = "i686" ] && ARCH="i686"
[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+ # clean up
+ make distclean
+
# configure
./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
--enable-mythbrowser || return 1
diff --git a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
index 7f12ef5..b3fa81c 100644
--- a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
@@ -1,5 +1,5 @@
pkgname=mythflix-svn
-pkgver=20684
+pkgver=20713
pkgrel=1
pkgdesc="Netflix access plugin for MythTV"
url="http://www.mythtv.org"
@@ -19,7 +19,7 @@ _svnmod=mythplugins
build() {
svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-# svn co $_svntrunk --config-dir ./ $_svnmod
+ svn revert -R $_svnmod
cd $startdir/src/$_svnmod
@@ -35,6 +35,9 @@ build() {
[ "$CARCH" = "i686" ] && ARCH="i686"
[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+ # clean up
+ make distclean
+
# configure
./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
--enable-mythflix || return 1
diff --git a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
index 77100ed..521a1e2 100644
--- a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
@@ -1,5 +1,5 @@
pkgname=mythgallery-svn
-pkgver=20684
+pkgver=20713
pkgrel=1
pkgdesc="Image gallery plugin for MythTV"
url="http://www.mythtv.org"
@@ -19,7 +19,7 @@ _svnmod=mythplugins
build() {
svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-# svn co $_svntrunk --config-dir ./ $_svnmod
+ svn revert -R $_svnmod
cd $startdir/src/$_svnmod
@@ -35,6 +35,9 @@ build() {
[ "$CARCH" = "i686" ] && ARCH="i686"
[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+ # clean up
+ make distclean
+
# configure
./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
--enable-mythgallery || return 1
diff --git a/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
index 6bbd780..d6e8922 100644
--- a/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
@@ -1,5 +1,5 @@
pkgname=mythgame-svn
-pkgver=20684
+pkgver=20713
pkgrel=1
pkgdesc="Emulation plugin for MythTV"
url="http://www.mythtv.org"
@@ -19,7 +19,7 @@ _svnmod=mythplugins
build() {
svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-# svn co $_svntrunk --config-dir ./ $_svnmod
+ svn revert -R $_svnmod
cd $startdir/src/$_svnmod
@@ -35,6 +35,9 @@ build() {
[ "$CARCH" = "i686" ] && ARCH="i686"
[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+ # clean up
+ make distclean
+
# configure
./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
--enable-mythgame || return 1
diff --git a/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
index 6b6fc7c..8b9aeb1 100644
--- a/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
@@ -1,5 +1,5 @@
pkgname=mythmovies-svn
-pkgver=20684
+pkgver=20713
pkgrel=1
pkgdesc="Displays information about movies playing in the area."
url="http://www.mythtv.org"
@@ -19,7 +19,7 @@ _svnmod=mythplugins
build() {
svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-# svn co $_svntrunk --config-dir ./ $_svnmod
+ svn revert -R $_svnmod
cd $startdir/src/$_svnmod
@@ -35,6 +35,9 @@ build() {
[ "$CARCH" = "i686" ] && ARCH="i686"
[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+ # clean up
+ make distclean
+
# configure
./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
--enable-mythmovies || return 1
diff --git a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
index 4c255df..8754ba0 100644
--- a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
@@ -1,5 +1,5 @@
pkgname=mythmusic-svn
-pkgver=20684
+pkgver=20713
pkgrel=1
pkgdesc="Music playing plugin for MythTV"
url="http://www.mythtv.org"
@@ -21,7 +21,7 @@ _svnmod=mythplugins
build() {
svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-# svn co $_svntrunk --config-dir ./ $_svnmod
+ svn revert -R $_svnmod
cd $startdir/src/$_svnmod
@@ -37,6 +37,9 @@ build() {
[ "$CARCH" = "i686" ] && ARCH="i686"
[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+ # clean up
+ make distclean
+
# configure
./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
--enable-mythmusic --enable-libvisual --enable-fftw --enable-sdl \
diff --git a/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD b/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
index 0bb3b5a..8bf0298 100644
--- a/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
@@ -1,5 +1,5 @@
pkgname=mythnews-svn
-pkgver=20684
+pkgver=20713
pkgrel=1
pkgdesc="News checking plugin for MythTV"
url="http://www.mythtv.org"
@@ -19,7 +19,7 @@ _svnmod=mythplugins
build() {
svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-# svn co $_svntrunk --config-dir ./ $_svnmod
+ svn revert -R $_svnmod
cd $startdir/src/$_svnmod
@@ -35,6 +35,9 @@ build() {
[ "$CARCH" = "i686" ] && ARCH="i686"
[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+ # clean up
+ make distclean
+
# configure
./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
--enable-mythnews || return 1
diff --git a/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD b/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
index dd58a50..b031fde 100755
--- a/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
@@ -1,5 +1,5 @@
pkgname=myththemes-svn
-pkgver=20684
+pkgver=20713
pkgrel=1
pkgdesc="Themes for MythTV"
url="http://www.mythtv.org"
@@ -19,7 +19,7 @@ _svnmod=myththemes
build() {
svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-# svn co $_svntrunk --config-dir ./ $_svnmod
+ svn revert -R $_svnmod
cd $startdir/src/$_svnmod
@@ -35,6 +35,9 @@ build() {
[ "$CARCH" = "i686" ] && ARCH="i686"
[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+ # clean up
+ make distclean
+
# configure
./configure --prefix=/usr || return 1
diff --git a/abs/core-testing/mythtv/trunk/mythtv/H264Parser-fixes-v1.1.patch b/abs/core-testing/mythtv/trunk/mythtv/H264Parser-fixes-v1.1.patch
new file mode 100644
index 0000000..f8e2100
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/H264Parser-fixes-v1.1.patch
@@ -0,0 +1,368 @@
+Index: libs/libmythtv/mpeg/H264Parser.cpp
+===================================================================
+--- libs/libmythtv/mpeg/H264Parser.cpp.orig
++++ libs/libmythtv/mpeg/H264Parser.cpp
+@@ -3,7 +3,9 @@
+
+ extern "C" {
+ // from libavcodec
+- extern const uint8_t *ff_find_start_code(const uint8_t * p, const uint8_t *end, uint32_t * state);
++ extern const uint8_t *ff_find_start_code(const uint8_t * p,
++ const uint8_t *end,
++ uint32_t * state);
+ #include "avcodec.h"
+ }
+
+@@ -88,19 +90,18 @@ static const float eps = 1E-5;
+ H264Parser::H264Parser(void)
+ {
+ Reset();
++ I_is_keyframe = false;
+ }
+
+ void H264Parser::Reset(void)
+ {
+ state_changed = false;
+- seen_sps = seen_IDR = false;
++ seen_sps = false;
++ is_keyframe = false;
+
+ sync_accumulator = 0xffffffff;
+- find_AU = false;
+ AU_pending = false;
+
+- NAL_type = UNKNOWN;
+-
+ frame_num = prev_frame_num = -1;
+ slice_type = SLICE_UNDEF;
+ prev_pic_parameter_set_id = pic_parameter_set_id = -1;
+@@ -112,7 +113,7 @@ void H264Parser::Reset(void)
+ prev_delta_pic_order_cnt_bottom = delta_pic_order_cnt_bottom = 0;
+ prev_delta_pic_order_cnt[0] = delta_pic_order_cnt[0] = 0;
+ prev_delta_pic_order_cnt[1] = delta_pic_order_cnt[1] = 0;
+- prev_nal_unit_type = nal_unit_type = 0;
++ prev_nal_unit_type = nal_unit_type = UNKNOWN;
+ prev_idr_pic_id = idr_pic_id = 0;
+
+ log2_max_frame_num = log2_max_pic_order_cnt_lsb = 0;
+@@ -136,8 +137,6 @@ void H264Parser::Reset(void)
+
+ AU_offset = frame_start_offset = keyframe_start_offset = 0;
+ on_frame = on_key_frame = false;
+-
+- wait_for_IDR = false;
+ }
+
+
+@@ -214,13 +213,7 @@ bool H264Parser::new_AU(void)
+ {
+ // Need previous slice information for comparison
+
+- if (NAL_type == AU_DELIMITER ||
+- NAL_type == SPS ||
+- NAL_type == PPS ||
+- NAL_type == SEI ||
+- (NAL_type > SPS_EXT && NAL_type < AUXILIARY_SLICE))
+- result = true;
+- else if (NAL_type != SLICE_IDR && frame_num != prev_frame_num)
++ if (nal_unit_type != SLICE_IDR && frame_num != prev_frame_num)
+ result = true;
+ else if (prev_pic_parameter_set_id != -1 &&
+ pic_parameter_set_id != prev_pic_parameter_set_id)
+@@ -230,9 +223,6 @@ bool H264Parser::new_AU(void)
+ else if ((bottom_field_flag != -1 && prev_bottom_field_flag != -1) &&
+ bottom_field_flag != prev_bottom_field_flag)
+ result = true;
+- else if ((nal_ref_idc == 0 || prev_nal_ref_idc == 0) &&
+- nal_ref_idc != prev_nal_ref_idc)
+- result = true;
+ else if ((pic_order_cnt_type == 0 && prev_pic_order_cnt_type == 0) &&
+ (pic_order_cnt_lsb != prev_pic_order_cnt_lsb ||
+ delta_pic_order_cnt_bottom !=
+@@ -256,7 +246,6 @@ bool H264Parser::new_AU(void)
+ prev_pic_parameter_set_id = pic_parameter_set_id;
+ prev_field_pic_flag = field_pic_flag;
+ prev_bottom_field_flag = bottom_field_flag;
+- prev_nal_ref_idc = nal_ref_idc;
+ prev_pic_order_cnt_lsb = pic_order_cnt_lsb;
+ prev_delta_pic_order_cnt_bottom = delta_pic_order_cnt_bottom;
+ prev_delta_pic_order_cnt[0] = delta_pic_order_cnt[0];
+@@ -273,7 +262,7 @@ uint32_t H264Parser::addBytes(const uint
+ {
+ const uint8_t *byteP = bytes;
+ const uint8_t *endP = bytes + byte_count;
+-
++ const uint8_t *nalP;
+ uint8_t first_byte;
+
+ state_changed = false;
+@@ -305,10 +294,11 @@ uint32_t H264Parser::addBytes(const uint
+ 11 End of stream end_of_stream_rbsp( )
+ */
+ first_byte = *(byteP - 1);
+- NAL_type = first_byte & 0x1f;
++ nal_unit_type = first_byte & 0x1f;
+ nal_ref_idc = (first_byte >> 5) & 0x3;
+
+- if (NALisSlice(NAL_type) || NAL_type == SPS || NAL_type == PPS)
++ if (nal_unit_type == SPS || nal_unit_type == PPS ||
++ nal_unit_type == SEI || NALisSlice(nal_unit_type))
+ {
+ /*
+ bitstream buffer, must be FF_INPUT_BUFFER_PADDING_SIZE
+@@ -318,27 +308,51 @@ uint32_t H264Parser::addBytes(const uint
+ {
+ init_get_bits(&gb, byteP, 8 * (endP - byteP));
+
+- if (NAL_type == SPS)
++ if (nal_unit_type == SEI)
++ {
++ nalP = ff_find_start_code(byteP+1, endP,
++ &sync_accumulator) - 8;
++ decode_SEI(&gb, (nalP - byteP) * 8);
++ set_AU_pending(stream_offset);
++ }
++ else if (nal_unit_type == SPS)
++ {
+ decode_SPS(&gb);
+- else if (NAL_type == PPS)
++ set_AU_pending(stream_offset);
++ }
++ else if (nal_unit_type == PPS)
++ {
+ decode_PPS(&gb);
++ set_AU_pending(stream_offset);
++ }
+ else
+- find_AU = decode_Header(&gb);
++ {
++ decode_Header(&gb);
++ if (new_AU())
++ set_AU_pending(stream_offset);
++ }
+
+ byteP += (get_bits_count(&gb) / 8);
+ }
+ }
+-
+- if (find_AU && new_AU())
++ else if (!AU_pending)
+ {
+- /* After finding a new AU, don't look for another one
+- until we decode a SLICE */
+- find_AU = false;
+- AU_pending = true;
+- AU_offset = stream_offset;
++ if (nal_unit_type == AU_DELIMITER ||
++ (nal_unit_type > SPS_EXT &&
++ nal_unit_type < AUXILIARY_SLICE))
++ {
++ AU_pending = true;
++ AU_offset = stream_offset;
++ }
++ else if ((nal_ref_idc == 0 || prev_nal_ref_idc == 0) &&
++ nal_ref_idc != prev_nal_ref_idc)
++ {
++ AU_pending = true;
++ AU_offset = stream_offset;
++ }
+ }
+-
+- if (AU_pending && NALisSlice(NAL_type))
++
++ if (AU_pending && NALisSlice(nal_unit_type))
+ {
+ /* Once we know the slice type of a new AU, we can
+ * determine if it is a keyframe or just a frame */
+@@ -349,10 +363,11 @@ uint32_t H264Parser::addBytes(const uint
+ on_frame = true;
+ frame_start_offset = AU_offset;
+
+- if (isKeySlice(slice_type) && (!wait_for_IDR || seen_IDR))
++ if (is_keyframe)
+ {
+ on_key_frame = true;
+ keyframe_start_offset = AU_offset;
++ is_keyframe = false;
+ }
+ else
+ on_key_frame = false;
+@@ -360,6 +375,8 @@ uint32_t H264Parser::addBytes(const uint
+ else
+ on_frame = on_key_frame = false;
+
++ prev_nal_ref_idc = nal_ref_idc;
++
+ return byteP - bytes;
+ }
+ }
+@@ -440,8 +457,6 @@ bool H264Parser::decode_Header(GetBitCon
+ */
+
+ frame_num = get_bits(gb, log2_max_frame_num);
+- if (NAL_type == SLICE_IDR || frame_num == 0)
+- seen_IDR = true;
+
+ /*
+ field_pic_flag equal to 1 specifies that the slice is a slice of a
+@@ -475,8 +490,14 @@ bool H264Parser::decode_Header(GetBitCon
+ second such IDR access unit. The value of idr_pic_id shall be in
+ the range of 0 to 65535, inclusive.
+ */
++
+ if (nal_unit_type == SLICE_IDR)
++ {
++ is_keyframe = true;
+ idr_pic_id = get_ue_golomb(gb);
++ }
++ else
++ is_keyframe |= (I_is_keyframe && isKeySlice(slice_type));
+
+ /*
+ pic_order_cnt_lsb specifies the picture order count modulo
+@@ -806,6 +827,44 @@ void H264Parser::decode_PPS(GetBitContex
+ #endif
+ }
+
++void H264Parser::decode_SEI(GetBitContext * gb, int bitlen)
++{
++ int recovery_frame_cnt = -1;
++ bool exact_match_flag = false;
++ bool broken_link_flag = false;
++ int changing_group_slice_idc = -1;
++
++ while (get_bits_count(gb) < bitlen)
++ {
++ int type = 0, size = 0;
++
++ do {
++ type += show_bits(gb, 8);
++ } while (get_bits(gb, 8) == 255);
++
++ do {
++ size += show_bits(gb, 8);
++ } while (get_bits(gb, 8) == 255);
++
++ switch (type)
++ {
++ case SEI_TYPE_RECOVERY_POINT:
++ recovery_frame_cnt = get_ue_golomb(gb);
++ exact_match_flag = get_bits1(gb);
++ broken_link_flag = get_bits1(gb);
++ changing_group_slice_idc = get_bits(gb, 2);
++ is_keyframe |= (recovery_frame_cnt >= 0);
++ return;
++
++ default:
++ skip_bits(gb, size * 8);
++ break;
++ }
++
++ align_get_bits(gb);
++ }
++}
++
+ void H264Parser::vui_parameters(GetBitContext * gb)
+ {
+ /*
+Index: libs/libmythtv/mpeg/H264Parser.h
+===================================================================
+--- libs/libmythtv/mpeg/H264Parser.h.orig
++++ libs/libmythtv/mpeg/H264Parser.h
+@@ -53,6 +53,12 @@ class H264Parser {
+ AUXILIARY_SLICE = 19
+ };
+
++ enum SEI_type {
++ SEI_TYPE_PIC_TIMING = 1,
++ SEI_TYPE_USER_DATA_UNREGISTERED = 5,
++ SEI_TYPE_RECOVERY_POINT = 6
++ };
++
+ /*
+ slice_type values in the range 5..9 specify, in addition to the
+ coding type of the current slice, that all other slices of the
+@@ -90,9 +96,7 @@ class H264Parser {
+
+ bool stateChanged(void) const { return state_changed; }
+
+- // seenIDR implies that a SPS has also been seen
+- bool seenIDR(void) const { return seen_IDR; }
+- uint8_t lastNALtype(void) const { return NAL_type; }
++ uint8_t lastNALtype(void) const { return nal_unit_type; }
+
+ frame_type FieldType(void) const
+ {
+@@ -130,29 +134,36 @@ class H264Parser {
+ nal_type == SLICE_IDR);
+ }
+
+- void waitForIDR(bool wait) { wait_for_IDR = wait; }
++ void use_I_forKeyframes(bool val) { I_is_keyframe = val; }
+
+ private:
+ enum constants {EXTENDED_SAR = 255};
+
+- bool is_first_VCL_NAL_unit(void);
++ inline void set_AU_pending(const uint64_t & stream_offset)
++ {
++ if (!AU_pending)
++ {
++ AU_pending = true;
++ AU_offset = stream_offset;
++ }
++ }
++
+ bool new_AU(void);
+ bool decode_Header(GetBitContext *gb);
+ void decode_SPS(GetBitContext *gb);
+ void decode_PPS(GetBitContext * gb);
++ void decode_SEI(GetBitContext * gb, int len);
+ void vui_parameters(GetBitContext * gb);
+
+- bool find_AU;
+ bool AU_pending;
+ bool state_changed;
+ bool seen_sps;
+- bool seen_IDR;
++ bool is_keyframe;
++ bool I_is_keyframe;
+
+ uint32_t sync_accumulator;
+ GetBitContext gb;
+
+- uint8_t NAL_type;
+-
+ int prev_frame_num, frame_num;
+ uint slice_type;
+ int prev_pic_parameter_set_id, pic_parameter_set_id;
+@@ -188,8 +199,6 @@ class H264Parser {
+
+ uint64_t AU_offset, frame_start_offset, keyframe_start_offset;
+ bool on_frame, on_key_frame;
+-
+- bool wait_for_IDR;
+ };
+
+ #endif /* H264PARSER_H */
+Index: libs/libmythtv/mpegrecorder.cpp
+===================================================================
+--- libs/libmythtv/mpegrecorder.cpp.orig
++++ libs/libmythtv/mpegrecorder.cpp
+@@ -423,6 +423,7 @@ bool MpegRecorder::OpenV4L2DeviceAsInput
+ bzero(_stream_id, sizeof(_stream_id));
+ bzero(_pid_status, sizeof(_pid_status));
+ memset(_continuity_counter, 0xff, sizeof(_continuity_counter));
++ m_h264_parser.use_I_forKeyframes(true);
+ }
+ else
+ {
+@@ -1373,8 +1374,6 @@ void MpegRecorder::ResetForNewFile(void)
+ bzero(_stream_id, sizeof(_stream_id));
+ bzero(_pid_status, sizeof(_pid_status));
+ memset(_continuity_counter, 0xff, sizeof(_continuity_counter));
+-
+- m_h264_parser.waitForIDR(true);
+ }
+
+ void MpegRecorder::Reset(void)
diff --git a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
index a4cbd8d..73842f5 100755
--- a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
@@ -1,5 +1,5 @@
pkgname=mythtv-svn
-pkgver=20684
+pkgver=20713
pkgrel=1
pkgdesc="A personal video recorder for Linux"
url="http://www.mythtv.org"
@@ -16,7 +16,8 @@ groups=('pvr')
#MAKEFLAGS="-j6"
install='mythtv.install'
-patchs=('smolt_jump.patch' 'myththemedmenu.h.patch' 'myththemedmenu.cpp.patch')
+patchs=('smolt_jump.patch' 'myththemedmenu.h.patch' 'myththemedmenu.cpp.patch' 'H264Parser-fixes-v1.1.patch' \
+ 'hdpvr-signalmonitor.patch' 'ringbuffer_reset_v2.diff' )
#patchs=('svn_main_menu_popup.patch' 'smolt_jump.patch')
source=('mythbackend' 'myth.sh' `echo ${patchs[@]:0}` 'mythbackend.lr' 'mythfrontend.lr' 'pretty')
arch=('i686' 'x86_64')
@@ -27,11 +28,13 @@ _svnmod=mythtv
build() {
+ # get clean copy from SVN repo
svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-# svn co $_svntrunk --config-dir ./ $_svnmod
+ svn revert -R $_svnmod
cd $startdir/src/mythtv
+ # apply patches
echo "--------------------------applying patches----------------------------------------------------"
for i in `echo ${patchs[@]:0} `
do
@@ -46,6 +49,9 @@ build() {
[ "$CARCH" = "i686" ] && ARCH="i686"
[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+ # clean up from last build
+ make distclean
+
# configure
./configure --prefix=/usr --arch=${ARCH} \
--enable-vdpau --enable-xvmc --enable-xvmc-pro \
diff --git a/abs/core-testing/mythtv/trunk/mythtv/hdpvr-signalmonitor.patch b/abs/core-testing/mythtv/trunk/mythtv/hdpvr-signalmonitor.patch
new file mode 100644
index 0000000..2465cfe
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/hdpvr-signalmonitor.patch
@@ -0,0 +1,292 @@
+Index: libs/libmythtv/analogsignalmonitor.cpp
+===================================================================
+--- libs/libmythtv/analogsignalmonitor.cpp.orig
++++ libs/libmythtv/analogsignalmonitor.cpp
+@@ -4,23 +4,92 @@
+ #include <cerrno>
+ #include <unistd.h>
+ #include <sys/ioctl.h>
++#include <poll.h>
+
+ #include "videodev_myth.h"
+ #include "mythcontext.h"
+ #include "analogsignalmonitor.h"
+ #include "v4lchannel.h"
+
+-#define LOC QString("AnalogSM: ").arg(channel->GetDevice())
+-#define LOC_ERR QString("AnalogSM, Error: ").arg(channel->GetDevice())
++#define LOC QString("AnalogSM: %1 ").arg(channel->GetDevice())
++#define LOC_ERR QString("AnalogSM, Error: %1 ").arg(channel->GetDevice())
+
+-AnalogSignalMonitor::AnalogSignalMonitor(
+- int db_cardnum, V4LChannel *_channel, uint64_t _flags) :
++AnalogSignalMonitor::AnalogSignalMonitor(int db_cardnum, V4LChannel *_channel,
++ uint64_t _flags) :
+ SignalMonitor(db_cardnum, _channel, _flags),
+- usingv4l2(false)
++ m_usingv4l2(false),
++ m_stage(0)
+ {
+ int videofd = channel->GetFd();
+ if (videofd >= 0)
+- usingv4l2 = CardUtil::hasV4L2(videofd);
++ {
++ m_usingv4l2 = CardUtil::hasV4L2(videofd);
++ CardUtil::GetV4LInfo(videofd, m_card, m_driver, m_version);
++ VERBOSE(VB_RECORD, LOC + QString("card '%1' driver '%2' version '%3'")
++ .arg(m_card).arg(m_driver).arg(m_version));
++ }
++}
++
++bool AnalogSignalMonitor::handleHDPVR(int videofd)
++{
++ struct v4l2_encoder_cmd command;
++ struct pollfd polls;
++ int idx;
++
++ if (m_stage == 0)
++ {
++ VERBOSE(VB_RECORD, LOC + "hd-pvr start encoding");
++ // Tell it to start encoding, then wait for it to actually feed us
++ // some data.
++ memset(&command, 0, sizeof(struct v4l2_encoder_cmd));
++ command.cmd = V4L2_ENC_CMD_START;
++ if (ioctl(videofd, VIDIOC_ENCODER_CMD, &command) == 0)
++ m_stage = 1;
++ else
++ VERBOSE(VB_IMPORTANT, LOC_ERR + "Start encoding failed" + ENO);
++ }
++
++ if (m_stage == 1)
++ {
++ VERBOSE(VB_RECORD, LOC + "hd-pvr wait for data");
++
++ polls.fd = videofd;
++ polls.events = POLLIN;
++ polls.revents = 0;
++
++ if (poll(&polls, 1, 1500) > 0)
++ m_stage = 2;
++ else
++ {
++ VERBOSE(VB_RECORD, LOC + "Poll timed-out. Resetting");
++ memset(&command, 0, sizeof(struct v4l2_encoder_cmd));
++ command.cmd = V4L2_ENC_CMD_STOP;
++ ioctl(videofd, VIDIOC_ENCODER_CMD, &command);
++ m_stage = 0;
++ }
++ }
++
++ if (m_stage == 2)
++ {
++ VERBOSE(VB_RECORD, LOC + "hd-pvr data ready. Stop encoding");
++
++ command.cmd = V4L2_ENC_CMD_STOP;
++ if (ioctl(videofd, VIDIOC_ENCODER_CMD, &command) == 0)
++ m_stage = 3;
++ }
++
++ if (m_stage == 3)
++ {
++ struct v4l2_format vfmt;
++ memset(&vfmt, 0, sizeof(vfmt));
++ vfmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
++
++ VERBOSE(VB_RECORD, LOC + "hd-pvr waiting for valid resolution");
++ if ((ioctl(videofd, VIDIOC_G_FMT, &vfmt) == 0) && vfmt.fmt.pix.width)
++ m_stage = 4;
++ }
++
++ return (m_stage == 4);
+ }
+
+ void AnalogSignalMonitor::UpdateValues(void)
+@@ -33,19 +102,24 @@ void AnalogSignalMonitor::UpdateValues(v
+ return;
+
+ bool isLocked = false;
+- if (usingv4l2)
++ if (m_usingv4l2)
+ {
+- struct v4l2_tuner tuner;
+- bzero(&tuner, sizeof(tuner));
+-
+- if (ioctl(videofd, VIDIOC_G_TUNER, &tuner, 0) < 0)
+- {
+- VERBOSE(VB_IMPORTANT,
+- LOC_ERR + "Failed to probe signal (v4l2)" + ENO);
+- }
++ if (m_driver == "hdpvr")
++ isLocked = handleHDPVR(videofd);
+ else
+ {
+- isLocked = tuner.signal;
++ struct v4l2_tuner tuner;
++ bzero(&tuner, sizeof(tuner));
++
++ if (ioctl(videofd, VIDIOC_G_TUNER, &tuner, 0) < 0)
++ {
++ VERBOSE(VB_IMPORTANT,
++ LOC_ERR + "Failed to probe signal (v4l2)" + ENO);
++ }
++ else
++ {
++ isLocked = tuner.signal;
++ }
+ }
+ }
+ else
+Index: libs/libmythtv/analogsignalmonitor.h
+===================================================================
+--- libs/libmythtv/analogsignalmonitor.h.orig
++++ libs/libmythtv/analogsignalmonitor.h
+@@ -19,7 +19,13 @@ class AnalogSignalMonitor : public Signa
+ virtual void UpdateValues(void);
+
+ private:
+- bool usingv4l2;
++ bool handleHDPVR(int videofd);
++
++ bool m_usingv4l2;
++ QString m_card;
++ QString m_driver;
++ uint32_t m_version;
++ int m_stage;
+ };
+
+ #endif // _ANALOG_SIGNAL_MONITOR_H_
+Index: libs/libmythtv/mpegrecorder.cpp
+===================================================================
+--- libs/libmythtv/mpegrecorder.cpp.orig
++++ libs/libmythtv/mpegrecorder.cpp
+@@ -1041,14 +1041,6 @@ void MpegRecorder::StartRecording(void)
+
+ if (driver == "hdpvr")
+ {
+- if (curRecording->recgroup == "LiveTV")
+- {
+- // Don't bother checking resolution, always use best bitrate
+- int maxbitrate = std::max(high_mpeg4peakbitrate,
+- high_mpeg4avgbitrate);
+- SetBitrate(high_mpeg4avgbitrate, maxbitrate, "LiveTV");
+- }
+-
+ int progNum = 1;
+ MPEGStreamData *sd = new MPEGStreamData(progNum, true);
+ sd->SetRecordingType(_recording_type);
+@@ -1492,7 +1484,7 @@ bool MpegRecorder::StartEncoding(int fd)
+ memset(&command, 0, sizeof(struct v4l2_encoder_cmd));
+ command.cmd = V4L2_ENC_CMD_START;
+
+- if (driver == "hdpvr" && curRecording->recgroup != "LiveTV")
++ if (driver == "hdpvr")
+ HandleResolutionChanges();
+
+ VERBOSE(VB_RECORD, LOC + "StartEncoding");
+@@ -1615,64 +1607,6 @@ void MpegRecorder::HandleSingleProgramPM
+ DTVRecorder::BufferedWrite(*(reinterpret_cast<TSPacket*>(&buf[i])));
+ }
+
+-/// After a resolution change, it can take the HD-PVR a few
+-/// seconds before it is usable again.
+-bool MpegRecorder::WaitFor_HDPVR(void)
+-{
+- struct v4l2_encoder_cmd command;
+- struct v4l2_format vfmt;
+- struct pollfd polls;
+- int idx;
+-
+- // Tell it to start encoding, then wait for it to actually feed us
+- // some data.
+- QMutexLocker locker(&start_stop_encoding_lock);
+-
+- // Sleep any less than 1.5 seconds, and the HD-PVR will
+- // return the old resolution, when the resolution is changing.
+- usleep(1500 * 1000);
+-
+- memset(&command, 0, sizeof(struct v4l2_encoder_cmd));
+- command.cmd = V4L2_ENC_CMD_START;
+-
+- for (idx = 0; idx < 20; ++idx)
+- {
+- if (ioctl(readfd, VIDIOC_ENCODER_CMD, &command) == 0)
+- break;
+- usleep(100 * 1000);
+- }
+-
+- if (idx == 20)
+- return false;
+-
+- polls.fd = readfd;
+- polls.events = POLLIN;
+- polls.revents = 0;
+-
+- if (poll(&polls, 1, 5000) <= 0)
+- return false;
+-
+- // HD-PVR should now be "ready"
+- command.cmd = V4L2_ENC_CMD_STOP;
+-
+- if (ioctl(readfd, VIDIOC_ENCODER_CMD, &command) < 0)
+- return false;
+-
+- memset(&vfmt, 0, sizeof(vfmt));
+- vfmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+-
+- for (idx = 0; idx < 20; ++idx)
+- {
+- if (0 == ioctl(chanfd, VIDIOC_G_FMT, &vfmt))
+- return true;
+- // Typically takes 0.9 seconds after a resolution change
+- usleep(100 * 1000);
+- }
+-
+- VERBOSE(VB_RECORD, LOC + "WaitForHDPVR failed");
+- return false;
+-}
+-
+ void MpegRecorder::SetBitrate(int bitrate, int maxbitrate,
+ const QString & reason)
+ {
+@@ -1710,9 +1644,6 @@ void MpegRecorder::HandleResolutionChang
+ memset(&vfmt, 0, sizeof(vfmt));
+ vfmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+
+- if (driver == "hdpvr")
+- WaitFor_HDPVR();
+-
+ if (0 == ioctl(chanfd, VIDIOC_G_FMT, &vfmt))
+ {
+ VERBOSE(VB_RECORD, LOC + QString("Got Resolution %1x%2")
+Index: libs/libmythtv/mpegrecorder.h
+===================================================================
+--- libs/libmythtv/mpegrecorder.h.orig
++++ libs/libmythtv/mpegrecorder.h
+@@ -86,7 +86,6 @@ class MpegRecorder : public DTVRecorder,
+
+ void ResetForNewFile(void);
+
+- bool WaitFor_HDPVR(void);
+ void SetBitrate(int bitrate, int maxbitrate, const QString & reason);
+ void HandleResolutionChanges(void);
+
+Index: libs/libmythtv/signalmonitor.h
+===================================================================
+--- libs/libmythtv/signalmonitor.h.orig
++++ libs/libmythtv/signalmonitor.h
+@@ -287,6 +287,7 @@ inline bool SignalMonitor::IsRequired(co
+ return (CardUtil::IsDVBCardType(cardtype) ||
+ (cardtype.toUpper() == "HDTV") ||
+ (cardtype.toUpper() == "HDHOMERUN") ||
++ (cardtype.toUpper() == "HDPVR") ||
+ (cardtype.toUpper() == "FIREWIRE") ||
+ (cardtype.toUpper() == "FREEBOX"));
+ }
+@@ -295,6 +296,7 @@ inline bool SignalMonitor::IsSupported(c
+ {
+ return (IsRequired(cardtype) ||
+ (cardtype.toUpper() == "V4L") ||
++ (cardtype.toUpper() == "HDPVR") ||
+ (cardtype.toUpper() == "MPEG"));
+ }
+
diff --git a/abs/core-testing/mythtv/trunk/mythtv/ringbuffer_reset_v2.diff b/abs/core-testing/mythtv/trunk/mythtv/ringbuffer_reset_v2.diff
new file mode 100644
index 0000000..7876a2e
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/ringbuffer_reset_v2.diff
@@ -0,0 +1,91 @@
+Index: libs/libmythtv/recorderbase.cpp
+===================================================================
+--- libs/libmythtv/recorderbase.cpp (revision 20635)
++++ libs/libmythtv/recorderbase.cpp (working copy)
+@@ -241,6 +241,8 @@
+ rb_changed = true;
+
+ StartNewFile();
++
++ ResetStreamParser();
+ }
+ nextRingBufferLock.unlock();
+
+Index: libs/libmythtv/mpegrecorder.h
+===================================================================
+--- libs/libmythtv/mpegrecorder.h (revision 20635)
++++ libs/libmythtv/mpegrecorder.h (working copy)
+@@ -63,6 +63,9 @@
+ // ReaderPausedCB
+ virtual void ReaderPaused(int fd) { pauseWait.wakeAll(); }
+
++ // Reset stream parsers when necessary
++ virtual void ResetStreamParser(void);
++
+ private:
+ void SetIntOption(RecordingProfile *profile, const QString &name);
+ void SetStrOption(RecordingProfile *profile, const QString &name);
+Index: libs/libmythtv/recorderbase.h
+===================================================================
+--- libs/libmythtv/recorderbase.h (revision 20635)
++++ libs/libmythtv/recorderbase.h (working copy)
+@@ -212,6 +212,11 @@
+ */
+ virtual void CheckForRingBufferSwitch(void);
+
++ /** \brief Inherited method for the stream parser to be reset after
++ a ringbuffer change. Used mainly in mpegrecorder for H264Parser.
++ */
++ virtual void ResetStreamParser(void) { };
++
+ /** \brief Save the seektable to the DB
+ */
+ void SavePositionMap(bool force = false);
+Index: libs/libmythtv/mpegrecorder.cpp
+===================================================================
+--- libs/libmythtv/mpegrecorder.cpp (revision 20635)
++++ libs/libmythtv/mpegrecorder.cpp (working copy)
+@@ -1430,12 +1430,7 @@
+ {
+ VERBOSE(VB_RECORD, LOC + "PauseAndWait unpause");
+
+- if (driver == "hdpvr")
+- {
+- m_h264_parser.Reset();
+- _wait_for_keyframe_option = true;
+- _seen_sps = false;
+- }
++ ResetStreamParser();
+
+ // Some drivers require streaming to be disabled before
+ // an input switch and other channel format setting.
+@@ -1500,12 +1495,7 @@
+
+ if (ioctl(fd, VIDIOC_ENCODER_CMD, &command) == 0)
+ {
+- if (driver == "hdpvr")
+- {
+- m_h264_parser.Reset();
+- _wait_for_keyframe_option = true;
+- _seen_sps = false;
+- }
++ ResetStreamParser();
+
+ VERBOSE(VB_RECORD, LOC + "Encoding started");
+ return true;
+@@ -1762,3 +1752,15 @@
+ SetBitrate(bitrate, maxbitrate, "New");
+ }
+ }
++
++void MpegRecorder::ResetStreamParser(void)
++{
++ if (driver == "hdpvr")
++ {
++ m_h264_parser.Reset();
++ _wait_for_keyframe_option = true;
++ _seen_sps = false;
++ }
++
++ RecorderBase::ResetStreamParser();
++}
diff --git a/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD b/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
index 9611b87..43a5699 100644
--- a/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
@@ -1,5 +1,5 @@
pkgname=mythvideo-svn
-pkgver=20684
+pkgver=20713
pkgrel=1
pkgdesc="Video playback and browsing plugin for MythTV"
url="http://www.mythtv.org"
@@ -19,7 +19,7 @@ _svnmod=mythplugins
build() {
svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-# svn co $_svntrunk --config-dir ./ $_svnmod
+ svn revert -R $_svnmod
cd $startdir/src/$_svnmod
@@ -35,6 +35,9 @@ build() {
[ "$CARCH" = "i686" ] && ARCH="i686"
[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+ # clean up
+ make distclean
+
# configure
./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
--enable-mythvideo || return 1
diff --git a/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD b/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
index 675418c..d1f888f 100644
--- a/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
@@ -1,5 +1,5 @@
pkgname=mythweather-svn
-pkgver=20684
+pkgver=20713
pkgrel=1
pkgdesc="Weather checking plugin for MythTV"
url="http://www.mythtv.org"
@@ -19,7 +19,7 @@ _svnmod=mythplugins
build() {
svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-# svn co $_svntrunk --config-dir ./ $_svnmod
+ svn revert -R $_svnmod
cd $startdir/src/$_svnmod
@@ -35,6 +35,9 @@ build() {
[ "$CARCH" = "i686" ] && ARCH="i686"
[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+ # clean up
+ make distclean
+
# configure
./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
--enable-mythweather || return 1
diff --git a/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD b/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
index 11d02c0..9a7f892 100644
--- a/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
@@ -1,5 +1,5 @@
pkgname=mythweb-svn
-pkgver=20684
+pkgver=20713
pkgrel=1
pkgdesc="Web interface for MythTV's backend"
url="http://www.mythtv.org"
@@ -21,7 +21,7 @@ DOCROOT=/data/srv/httpd/htdocs/mythweb
build() {
svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-# svn co $_svntrunk --config-dir ./ $_svnmod
+ svn revert -R $_svnmod
cd $startdir/src/$_svnmod
diff --git a/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD b/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
index c01bef8..4403524 100644
--- a/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
@@ -1,5 +1,5 @@
pkgname=mythzoneminder-svn
-pkgver=20684
+pkgver=20713
pkgrel=1
pkgdesc="Integrates ZoneMinder into MythTV"
url="http://www.mythtv.org"
@@ -19,7 +19,7 @@ _svnmod=mythplugins
build() {
svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-# svn co $_svntrunk --config-dir ./ $_svnmod
+ svn revert -R $_svnmod
cd $startdir/src/$_svnmod
@@ -35,6 +35,9 @@ build() {
[ "$CARCH" = "i686" ] && ARCH="i686"
[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+ # clean up
+ make distclean
+
# configure
./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
--enable-mythzoneminder || return 1
diff --git a/abs/core-testing/tweaker/PKGBUILD b/abs/core-testing/tweaker/PKGBUILD
index 9617e49..44d8846 100644
--- a/abs/core-testing/tweaker/PKGBUILD
+++ b/abs/core-testing/tweaker/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=tweaker
pkgver=1
-pkgrel=31
+pkgrel=32
pkgdesc=""
arch=('i686' 'x86_64')
diff --git a/abs/core-testing/tweaker/lib/Tweaker/Script.pm b/abs/core-testing/tweaker/lib/Tweaker/Script.pm
index 7dd2c8f..8474f0b 100644
--- a/abs/core-testing/tweaker/lib/Tweaker/Script.pm
+++ b/abs/core-testing/tweaker/lib/Tweaker/Script.pm
@@ -80,7 +80,7 @@ sub get_mythtv_connection_string {
# we want something like mythconverg:localhost
my $dbname = "";
my $dbhostname = "";
- open(MYSQLTXT, "< /usr/share/mythtv/mysql.txt");
+ open(MYSQLTXT, "< /usr/MythVantage/templates/mysql.txt");
while(<MYSQLTXT>) {
if (/DBName=(.*)/) {
$dbname=$1;
diff --git a/abs/extra-testing/community/xbmc-svn/CHANGELOG b/abs/extra-testing/community/xbmc-svn/CHANGELOG
index 170990b..258e5ef 100644
--- a/abs/extra-testing/community/xbmc-svn/CHANGELOG
+++ b/abs/extra-testing/community/xbmc-svn/CHANGELOG
@@ -1,5 +1,35 @@
xbmc-svn Change log:
--------------------
+3rd June 2009
+20896 haggy: enabled external libs for every lib supported despite python and ffmpeg
+ enabling external python breaks python support in xbmc due to Arch's python
+ compiled with UCS2 support whereas xbmc expects UCS4. Enabling external ffmpeg
+ disables VDPAU and we don't want that for sure.
+
+ IMPORTANT NOTE: If compilation breaks at configure step with some message about
+ not being able to compute the size of int or size_t, try running makepkg as root
+ with 'sudo makepkg --asroot'. This is a known issue and happens only on systems
+ linked to nvidia's libgl which causes binaries to segfault within a fakeroot
+ environment. pacman 3.3 will fix this by splitting configure and installation steps.
+
+1st June 2009
+20818 haggy: this is the last revision before external-libs-support got patched
+ in. Unfortunately this will not compile with fakeroot. waiting for
+ pacman 3.3 which can split up configure and make install steps.
+
+30th May 2009
+20793 haggy: removed gcc44-fixes.patch - got merged into svn
+
+29th May 2009
+20755 haggy: pushed rev as requested
+
+27th May 2009
+20705 haggy: added a patch which fixed compilation with GCC 4.4.
+
+21th May 2009
+20509 haggy: xbmc got updates on goom due to the jaunty build system update. i
+ i wiped all goom specific hacks from the PKGBUILD and it compiled
+ fine, so let's see what you guys achieve.
19th May 2009
20449-1 richy: 1. Removed the autoreconf line as it didn't seem to help
diff --git a/abs/extra-testing/community/xbmc-svn/PKGBUILD b/abs/extra-testing/community/xbmc-svn/PKGBUILD
index e583600..57efdca 100644
--- a/abs/extra-testing/community/xbmc-svn/PKGBUILD
+++ b/abs/extra-testing/community/xbmc-svn/PKGBUILD
@@ -5,7 +5,7 @@
# for his xbmc-vdpau-vdr PKGBUILD at https://archvdr.svn.sourceforge.net/svnroot/archvdr/trunk/archvdr/xbmc-vdpau-vdr/PKGBUILD
pkgname=xbmc-svn
-pkgver=20449
+pkgver=20948
pkgrel=1
pkgdesc="XBMC Media Center from SVN (linuxport branch)"
provides=('xbmc')
@@ -13,10 +13,12 @@ conflicts=('xbmc' 'xbmc-smoothvideo' 'xbmc-vdpau')
arch=('i686' 'x86_64')
url="http://xbmc.org"
license=('GPL' 'LGPL')
-depends=('alsa-lib' 'curl' 'enca' 'faac' 'freetype2' 'fribidi' 'gawk' 'glew' \
- 'hal' 'jasper' 'libgl' 'libjpeg>=6b-5' 'libmad' 'libmysqlclient' \
- 'libxinerama' 'libxrandr' 'lzo2' 'sdl_image' 'sdl_mixer' 'sqlite3' \
- 'tre' 'unzip' 'libcdio' 'libsamplerate' 'python')
+depends=('alsa-lib' 'curl' 'enca' 'faac' 'freetype2' 'fribidi' 'gawk' 'glew'
+ 'hal' 'jasper' 'libgl' 'libjpeg>=6b-5' 'libmad' 'libmysqlclient'
+ 'libxinerama' 'libxrandr' 'lzo2' 'sdl_image' 'sdl_mixer' 'sqlite3'
+ 'tre' 'unzip' 'libcdio' 'libsamplerate' 'python' 'avahi' 'libmad'
+ 'a52dec' 'libdca' 'faad2' 'libmpeg2' 'libvorbis' 'libogg'
+ 'libmpcdec' 'flac' 'wavpack' 'xorg-utils')
makedepends=('subversion' 'autoconf' 'automake' 'boost' 'cmake' 'gcc' 'gperf'
'libtool>=2.2.6a-1' 'make' 'nasm' 'patch' 'pkgconfig' 'zip' 'flex' 'bison')
optdepends=('lirc: remote controller support'
@@ -24,17 +26,14 @@ optdepends=('lirc: remote controller support'
'smbclient: access windows shares'
'unrar: access compressed files without unpacking them')
install=("${pkgname}.install")
-source=('libcurl-not-in-lib64.patch' \
- 'libfaad2-enable-AC_PROG_CXX.patch' \
+source=('libcurl-not-in-lib64.patch'
'xbmc-safe-fullscreen.patch'
'Lircmap.xml')
-noextract=('libcurl-not-in-lib64.patch' \
- 'libfaad2-enable-AC_PROG_CXX.patch' \
- 'xbmc-safe-fullscreen.patch')
-
-md5sums=('96636ee964e37b78ca62235eb10d29c1'
- '6864778d6adc3ccc79130c294f2fffd9'
- 'c4d53522773846d8670884cc38f94aa0'
+noextract=('libcurl-not-in-lib64.patch'
+ 'xbmc-safe-fullscreen.patch'
+ 'Lircmap.xml')
+md5sums=('ac1244a5b4aad0e7d59e86a0d318df1b'
+ '809c684287b68621d3b19923bb57adfe'
'3f93186f1ea4aad73011d00754c7265a')
options=(!makeflags)
@@ -60,36 +59,48 @@ build() {
# Experimental safe fullscreen patch from the forums (by motd2k)
msg "Patching with xbmc-safe-fullscreen.patch"
- patch --quiet -p0 < "$srcdir/xbmc-safe-fullscreen.patch" || return 1
+ patch -p0 < "$srcdir/xbmc-safe-fullscreen.patch" || return 1
# Arch's libcurl lives in /usr/lib, not /usr/lib64 - fix the path:
msg "Patching with libcurl-not-in-lib64.patch"
- patch --quiet -p0 < "$srcdir/libcurl-not-in-lib64.patch" || return 1
-
- # libfaad2 complains about a missing AC_PROG_CXX - add it and bootstrap:
- msg "Patching with libfaad2-enable-AC_PROG_CXX.patch"
- patch --quiet -p0 < "$srcdir/libfaad2-enable-AC_PROG_CXX.patch" || return 1
- autoreconf -vif xbmc/cores/dvdplayer/Codecs/libfaad2
-
- # libass needs a bootstrap due to newer autotools in Arch Linux
- autoreconf -vif xbmc/lib/libass
-
- # Another autotools mismatch between Arch and Ubuntu (xbmc-linuxport is developed against Ubuntu)
- autoreconf -vif "$srcdir/$_svnmod/xbmc/cores/dvdplayer/Codecs/libdvd/libdvdcss"
+ patch -p0 < "$srcdir/libcurl-not-in-lib64.patch" || return 1
# Goom also needs a fixup due to newer autotools
cd "$srcdir/$_svnmod/xbmc/visualizations/Goom/goom2k4-0"
aclocal
libtoolize --copy --force
./autogen.sh --enable-static --with-pic
-
+
# Configure XBMC
+ #
+ # Note on external-libs:
+ # - We cannot use external python because Arch's python was built with
+ # UCS2 unicode support, whereas xbmc expects UCS4 support
+ # - We cannot use external ffmpeg as we would loose VDPAU functionality
+ # because Arch's ffmpeg package does not support VDPAU
+ # - We don't want to rely on AUR packages, so we also don't use libass
+ # as long as it's in AUR
+ msg "Configuring XBMC"
cd "$srcdir/$_svnmod"
make distclean
./configure --prefix=${_prefix} \
+ --enable-external-libmad \
+ --enable-external-liba52 \
+ --enable-external-libdts \
+ --enable-external-libfaad \
+ --enable-external-libmpeg2 \
+ --enable-external-libvorbis \
+ --enable-external-libogg \
+ --enable-external-libmpcdec \
+ --enable-external-libflac \
+ --enable-external-libwavpack \
+ --disable-external-libass \
+ --disable-external-python \
+ --disable-external-ffmpeg \
--disable-debug || return 1
# Fix false negative detections of realloc that happens some times
+ msg "Fixing false negative detections of realloc"
if grep -q 'HAVE_REALLOC 0' config.h; then
sed -e 's|#define HAVE_REALLOC 0|#define HAVE_REALLOC 1|' \
-e 's|#define realloc rpl_realloc|/* #define realloc rpl_realloc */|' \
@@ -97,11 +108,14 @@ build() {
fi
# XBMCTex will segfault on systems with nvidia installed if linked to OpenGL
+ msg "Fixing XBMCTex on systems using the nvidia driver blob"
sed -e 's/-lGLU -lGLEW -lGL//' \
-i ${srcdir}/$_svnmod/tools/XBMCTex/Makefile
# Now (finally) build
+ msg "Running make"
make || return 1
+ msg "Running make install"
make prefix=${pkgdir}${_prefix} install || return 1
# Install
@@ -127,5 +141,5 @@ build() {
done
# Use custom Lircmap to support StreamZap remote
- cp $srcdir/Lircmap.xml ${pkgdir}${_prefix}/share/xbmc/system/Lircmap.xml
+ cp ${srcdir}/Lircmap.xml ${pkgdir}${_prefix}/share/xbmc/system/Lircmap.xml
}
diff --git a/abs/extra-testing/community/xbmc-svn/libcurl-not-in-lib64.patch b/abs/extra-testing/community/xbmc-svn/libcurl-not-in-lib64.patch
index b89db5a..54402ab 100644
--- a/abs/extra-testing/community/xbmc-svn/libcurl-not-in-lib64.patch
+++ b/abs/extra-testing/community/xbmc-svn/libcurl-not-in-lib64.patch
@@ -2,7 +2,7 @@ Index: Makefile.include.in
===================================================================
--- Makefile.include.in (revision 20149)
+++ Makefile.include.in (working copy)
-@@ -24,7 +24,7 @@
+@@ -30,7 +30,7 @@
ifeq (linux,$(findstring linux, $(ARCH)))
ifeq ($(ARCH), x86_64-linux)
diff --git a/abs/extra-testing/community/xbmc-svn/libfaad2-enable-AC_PROG_CXX.patch b/abs/extra-testing/community/xbmc-svn/libfaad2-enable-AC_PROG_CXX.patch
deleted file mode 100644
index 89d7497..0000000
--- a/abs/extra-testing/community/xbmc-svn/libfaad2-enable-AC_PROG_CXX.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: xbmc/cores/dvdplayer/Codecs/libfaad2/configure.in
-===================================================================
---- xbmc/cores/dvdplayer/Codecs/libfaad2/configure.in (revision 19486)
-+++ xbmc/cores/dvdplayer/Codecs/libfaad2/configure.in (working copy)
-@@ -18,7 +18,7 @@
- AC_PROG_CC
- AC_PROG_CPP
- dnl disable for mpeg4ip plugin
--dnl AC_PROG_CXX
-+AC_PROG_CXX
- AC_PROG_INSTALL
- AC_PROG_LN_S
- AC_PROG_MAKE_SET
diff --git a/abs/extra-testing/community/xbmc-svn/xbmc-safe-fullscreen.patch b/abs/extra-testing/community/xbmc-svn/xbmc-safe-fullscreen.patch
index d112e52..2da0c91 100644
--- a/abs/extra-testing/community/xbmc-svn/xbmc-safe-fullscreen.patch
+++ b/abs/extra-testing/community/xbmc-svn/xbmc-safe-fullscreen.patch
@@ -2,7 +2,7 @@ Index: xbmc/Application.cpp
===================================================================
--- xbmc/Application.cpp (revision 20059)
+++ xbmc/Application.cpp (working copy)
-@@ -873,6 +873,8 @@
+@@ -877,6 +877,8 @@
#endif
// set GUI res and force the clear of the screen
@@ -11,7 +11,7 @@ Index: xbmc/Application.cpp
g_graphicsContext.SetVideoResolution(g_guiSettings.m_LookAndFeelResolution, TRUE, true);
#ifdef _WIN32PC
-@@ -949,6 +951,9 @@
+@@ -953,6 +955,9 @@
time(&seconds);
srand((unsigned int)seconds);
@@ -21,3 +21,15 @@ Index: xbmc/Application.cpp
return CXBApplicationEx::Create(hWnd);
}
+Index: GUISettings.cpp
+===================================================================
+--- xbmc/GUISettings.cpp (revision 20824)
++++ xbmc/GUISettings.cpp (working copy)
+@@ -651,6 +651,7 @@
+ #else
+ AddInt(6, "videoscreen.vsync", 13105, DEFAULT_VSYNC, VSYNC_DISABLED, 1, VSYNC_DRIVER, SPIN_CONTROL_TEXT);
+ #endif
++ AddBool(7, "videoscreen.safefull", 13121, false);
+ AddCategory(7, "filelists", 14018);
+ AddBool(1, "filelists.hideparentdiritems", 13306, false);
+ AddBool(2, "filelists.hideextensions", 497, false);
diff --git a/abs/extra-testing/community/xbmc-svn/xbmc-svn.install b/abs/extra-testing/community/xbmc-svn/xbmc-svn.install
index 9316bc8..acf409c 100644
--- a/abs/extra-testing/community/xbmc-svn/xbmc-svn.install
+++ b/abs/extra-testing/community/xbmc-svn/xbmc-svn.install
@@ -3,6 +3,10 @@ post_install() {
echo ">> so that your display depth is at least 24-bit. Eg: change "
echo ">> \"DefaultDepth 16\" under the \"Screen\" section so it says 24 instead"
echo ">> of 16."
+ echo ">> If you have problems or suggestions for this PKGBUILD, have a look at its"
+ echo ">> dedicated forum thread: http://bbs.archlinux.org/viewtopic.php?pid=559107"
+ echo ">> or the wiki: http://xbmc.org/wiki/?title=XBMC_on_Arch_Linux_(Unofficial)"
+ echo
/bin/true
}