rpms/rt3070-kmod/F-13 rt3070-kmod.spec,1.30,1.31
by Thorsten Leemhuis
Author: thl
Update of /cvs/free/rpms/rt3070-kmod/F-13
In directory se02.es.rpmfusion.net:/tmp/cvs-serv32304
Modified Files:
rt3070-kmod.spec
Log Message:
* Fri Jun 18 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.1.1.0-3.15
- rebuild for new kernel
Index: rt3070-kmod.spec
===================================================================
RCS file: /cvs/free/rpms/rt3070-kmod/F-13/rt3070-kmod.spec,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- rt3070-kmod.spec 28 May 2010 14:33:43 -0000 1.30
+++ rt3070-kmod.spec 18 Jun 2010 12:54:55 -0000 1.31
@@ -7,7 +7,7 @@
Name: rt3070-kmod
Version: 2.1.1.0
-Release: 3%{?dist}.14
+Release: 3%{?dist}.15
Summary: Kernel module for wireless devices with Ralink's rt307x chipsets
Group: System Environment/Kernel
@@ -87,6 +87,9 @@
rm -rf $RPM_BUILD_ROOT
%changelog
+* Fri Jun 18 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.1.1.0-3.15
+- rebuild for new kernel
+
* Fri May 28 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.1.1.0-3.14
- rebuild for new kernel
14 years, 5 months
rpms/rt2870-kmod/F-13 rt2870-kmod.spec,1.64,1.65
by Thorsten Leemhuis
Author: thl
Update of /cvs/free/rpms/rt2870-kmod/F-13
In directory se02.es.rpmfusion.net:/tmp/cvs-serv32141
Modified Files:
rt2870-kmod.spec
Log Message:
* Fri Jun 18 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.1.2.0-6.8
- rebuild for new kernel
Index: rt2870-kmod.spec
===================================================================
RCS file: /cvs/free/rpms/rt2870-kmod/F-13/rt2870-kmod.spec,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -r1.64 -r1.65
--- rt2870-kmod.spec 28 May 2010 14:33:31 -0000 1.64
+++ rt2870-kmod.spec 18 Jun 2010 12:54:43 -0000 1.65
@@ -7,7 +7,7 @@
Name: rt2870-kmod
Version: 2.1.2.0
-Release: 6%{?dist}.7
+Release: 6%{?dist}.8
Summary: Kernel module for wireless devices with Ralink's rt2870 chipsets
Group: System Environment/Kernel
@@ -80,6 +80,9 @@
rm -rf $RPM_BUILD_ROOT
%changelog
+* Fri Jun 18 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.1.2.0-6.8
+- rebuild for new kernel
+
* Fri May 28 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.1.2.0-6.7
- rebuild for new kernel
14 years, 5 months
rpms/rt2860-kmod/F-13 rt2860-kmod.spec,1.62,1.63
by Thorsten Leemhuis
Author: thl
Update of /cvs/free/rpms/rt2860-kmod/F-13
In directory se02.es.rpmfusion.net:/tmp/cvs-serv32020
Modified Files:
rt2860-kmod.spec
Log Message:
* Fri Jun 18 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.3.0.0-1.4
- rebuild for new kernel
Index: rt2860-kmod.spec
===================================================================
RCS file: /cvs/free/rpms/rt2860-kmod/F-13/rt2860-kmod.spec,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- rt2860-kmod.spec 28 May 2010 14:33:19 -0000 1.62
+++ rt2860-kmod.spec 18 Jun 2010 12:54:30 -0000 1.63
@@ -7,7 +7,7 @@
Name: rt2860-kmod
Version: 2.3.0.0
-Release: 1%{?dist}.3
+Release: 1%{?dist}.4
Summary: Kernel module for RaLink 802.11 wireless devices rt2760/rt2790/rt2860/rt2890
Group: System Environment/Kernel
@@ -72,6 +72,9 @@
rm -rf $RPM_BUILD_ROOT
%changelog
+* Fri Jun 18 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.3.0.0-1.4
+- rebuild for new kernel
+
* Fri May 28 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.3.0.0-1.3
- rebuild for new kernel
14 years, 5 months
rpms/open-vm-tools-kmod/F-13 open-vm-tools-kmod.spec,1.55,1.56
by Thorsten Leemhuis
Author: thl
Update of /cvs/free/rpms/open-vm-tools-kmod/F-13
In directory se02.es.rpmfusion.net:/tmp/cvs-serv31895
Modified Files:
open-vm-tools-kmod.spec
Log Message:
* Fri Jun 18 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 0.0.0.243334-1.8
- rebuild for new kernel
Index: open-vm-tools-kmod.spec
===================================================================
RCS file: /cvs/free/rpms/open-vm-tools-kmod/F-13/open-vm-tools-kmod.spec,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -r1.55 -r1.56
--- open-vm-tools-kmod.spec 28 May 2010 14:33:07 -0000 1.55
+++ open-vm-tools-kmod.spec 18 Jun 2010 12:54:17 -0000 1.56
@@ -13,7 +13,7 @@
Name: open-vm-tools-kmod
Version: 0.0.0.%{buildver}
-Release: 1%{?dist}.7
+Release: 1%{?dist}.8
Summary: VMware Tools Kernel Modules
Group: System Environment/Kernel
License: GPLv2
@@ -76,6 +76,9 @@
%changelog
+* Fri Jun 18 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 0.0.0.243334-1.8
+- rebuild for new kernel
+
* Fri May 28 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 0.0.0.243334-1.7
- rebuild for new kernel
14 years, 5 months
rpms/openafs-kmod/F-13 openafs-kmod.spec,1.2,1.3
by Thorsten Leemhuis
Author: thl
Update of /cvs/free/rpms/openafs-kmod/F-13
In directory se02.es.rpmfusion.net:/tmp/cvs-serv31769
Modified Files:
openafs-kmod.spec
Log Message:
* Fri Jun 18 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 1.4.12.1-1.2
- rebuild for new kernel
Index: openafs-kmod.spec
===================================================================
RCS file: /cvs/free/rpms/openafs-kmod/F-13/openafs-kmod.spec,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- openafs-kmod.spec 28 May 2010 14:32:54 -0000 1.2
+++ openafs-kmod.spec 18 Jun 2010 12:54:04 -0000 1.3
@@ -23,7 +23,7 @@
Name: %{kmod_name}-kmod
Version: 1.4.12.1
-Release: 1%{?dist}.1
+Release: 1%{?dist}.2
Summary: Kernel module(s)
Group: System Environment/Kernel
@@ -102,6 +102,9 @@
%changelog
+* Fri Jun 18 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 1.4.12.1-1.2
+- rebuild for new kernel
+
* Fri May 28 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 1.4.12.1-1.1
- rebuild for new kernel
14 years, 5 months
rpms/omnibook-kmod/F-13 omnibook-kmod.spec,1.12,1.13
by Thorsten Leemhuis
Author: thl
Update of /cvs/free/rpms/omnibook-kmod/F-13
In directory se02.es.rpmfusion.net:/tmp/cvs-serv31640
Modified Files:
omnibook-kmod.spec
Log Message:
* Fri Jun 18 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.20090714-0.4.svn288.8
- rebuild for new kernel
Index: omnibook-kmod.spec
===================================================================
RCS file: /cvs/free/rpms/omnibook-kmod/F-13/omnibook-kmod.spec,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- omnibook-kmod.spec 28 May 2010 14:32:42 -0000 1.12
+++ omnibook-kmod.spec 18 Jun 2010 12:53:50 -0000 1.13
@@ -8,7 +8,7 @@
Name: omnibook-kmod
Version: 2.20090714
-Release: 0.4.svn288%{?dist}.7
+Release: 0.4.svn288%{?dist}.8
Summary: Kernel module for HP Omnibook/Pavillon, Toshiba Satellite and Compal laptops
Group: System Environment/Kernel
@@ -82,6 +82,9 @@
%changelog
+* Fri Jun 18 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.20090714-0.4.svn288.8
+- rebuild for new kernel
+
* Fri May 28 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.20090714-0.4.svn288.7
- rebuild for new kernel
14 years, 5 months
rpms/mythtv/F-11 mythtv-0.23-shutup-vuvuzela.patch, NONE, 1.1 mythbackend.init, 1.2, 1.3 mythplugins-0.23-svnfixes.patch, 1.2, 1.3 mythtv-0.23-svnfixes.patch, 1.2, 1.3 mythtv.spec, 1.45, 1.46
by Jarod Wilson
Author: jarod
Update of /cvs/free/rpms/mythtv/F-11
In directory se02.es.rpmfusion.net:/tmp/cvs-serv27703
Modified Files:
mythbackend.init mythplugins-0.23-svnfixes.patch
mythtv-0.23-svnfixes.patch mythtv.spec
Added Files:
mythtv-0.23-shutup-vuvuzela.patch
Log Message:
* Wed Jun 16 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.23-4
- Update to release-0-23-fixes branch, svn revision 25124
- Add anti-vuvuzela-filter patch from mythtv ticket #8568, because
I likes me some World Cup w/o the headache
- Fix 32-bit x86 build on F11 i586 target
- Fix a flub in the initscript from the prior build
mythtv-0.23-shutup-vuvuzela.patch:
libs/libmyth/audiooutput.h | 2
libs/libmyth/audiooutputbase.cpp | 86 +++++++++++++++---
libs/libmyth/audiooutputbase.h | 7 +
libs/libmyth/audiooutpututil.cpp | 143 +++++++++++++++++++++++++++++++
libs/libmyth/audiooutpututil.h | 71 +++++++++++++++
libs/libmyth/libmyth.pro | 4
libs/libmythtv/NuppelVideoPlayer.cpp | 15 +++
libs/libmythtv/NuppelVideoPlayer.h | 2
libs/libmythtv/avformatdecoder.cpp | 1
libs/libmythtv/tv_play.cpp | 20 ++++
libs/libmythtv/tv_play.h | 1
libs/libmythtv/tvosdmenuentry.cpp | 6 +
programs/mythfrontend/globalsettings.cpp | 12 ++
programs/mythtranscode/transcode.cpp | 11 ++
14 files changed, 365 insertions(+), 16 deletions(-)
--- NEW FILE mythtv-0.23-shutup-vuvuzela.patch ---
Index: mythtv/libs/libmythtv/NuppelVideoPlayer.cpp
===================================================================
--- mythtv/libs/libmythtv/NuppelVideoPlayer.cpp (revision 25121)
+++ mythtv/libs/libmythtv/NuppelVideoPlayer.cpp (working copy)
@@ -5134,6 +5134,21 @@
return false;
}
+bool NuppelVideoPlayer::ToggleVuvuzela()
+{
+ bool ret = false;
+ if (audioOutput)
+ ret = audioOutput->ToggleVuvuzela();
+ if (decoder)
+ decoder->SetDisablePassThrough(ret);
+ return ret;
+}
+
+bool NuppelVideoPlayer::IsVuvuzela()
+{
+ return audioOutput ? audioOutput->IsVuvuzela() : false;
+}
+
void NuppelVideoPlayer::Zoom(ZoomDirection direction)
{
if (videoOutput)
Index: mythtv/libs/libmythtv/avformatdecoder.cpp
===================================================================
--- mythtv/libs/libmythtv/avformatdecoder.cpp (revision 25121)
+++ mythtv/libs/libmythtv/avformatdecoder.cpp (working copy)
@@ -4639,6 +4639,7 @@
else if (ctx->codec_id == CODEC_ID_DTS)
passthru = allow_dts_passthru && !internal_vol;
+ passthru &= !GetNVP()->IsVuvuzela();
passthru &= !transcoding && !disable_passthru;
// Don't know any cards that support spdif clocked at < 44100
// Some US cable transmissions have 2ch 32k AC-3 streams
Index: mythtv/libs/libmythtv/tv_play.h
===================================================================
--- mythtv/libs/libmythtv/tv_play.h (revision 25121)
+++ mythtv/libs/libmythtv/tv_play.h (working copy)
@@ -436,6 +436,7 @@
const QStringList &actions);
void ToggleUpmix(PlayerContext*);
+ void ToggleVuvuzela(PlayerContext*);
void ChangeAudioSync(PlayerContext*, int dir, bool allowEdit = true);
bool AudioSyncHandleAction(PlayerContext*, const QStringList &actions);
Index: mythtv/libs/libmythtv/NuppelVideoPlayer.h
===================================================================
--- mythtv/libs/libmythtv/NuppelVideoPlayer.h (revision 25121)
+++ mythtv/libs/libmythtv/NuppelVideoPlayer.h (working copy)
@@ -165,6 +165,8 @@
void ToggleAspectOverride(AspectOverrideMode aspectMode = kAspect_Toggle);
void ToggleAdjustFill(AdjustFillMode adjustfillMode = kAdjustFill_Toggle);
bool ToggleUpmix(void);
+ bool ToggleVuvuzela(void);
+ bool IsVuvuzela(void);
// Gets
QSize GetVideoBufferSize(void) const { return video_dim; }
Index: mythtv/libs/libmythtv/tv_play.cpp
===================================================================
--- mythtv/libs/libmythtv/tv_play.cpp (revision 25121)
+++ mythtv/libs/libmythtv/tv_play.cpp (working copy)
@@ -4516,6 +4516,8 @@
ToggleTimeStretch(ctx);
else if (has_action("TOGGLEUPMIX", actions))
ToggleUpmix(ctx);
+ else if (has_action("TOGGLEVUVUZELA", actions))
+ ToggleVuvuzela(ctx);
else if (has_action("TOGGLESLEEP", actions))
ToggleSleepTimer(ctx);
else if (has_action("TOGGLERECORD", actions) && islivetv)
@@ -8286,6 +8288,20 @@
ctx->nvp->GetOSD()->SetSettingsText(text, 5);
}
+void TV::ToggleVuvuzela(PlayerContext *ctx)
+{
+ if (!ctx->nvp || !ctx->nvp->HasAudioOut())
+ return;
+ QString text;
+ if (ctx->nvp->ToggleVuvuzela())
+ text = tr("Vuvuzela Filter On");
+ else
+ text = tr("Vuvuzela Filter Off");
+
+ if (ctx->nvp->GetOSD() && !browsemode)
+ ctx->nvp->GetOSD()->SetSettingsText(text, 5);
+}
+
// dir in 10ms jumps
void TV::ChangeAudioSync(PlayerContext *ctx, int dir, bool allowEdit)
{
@@ -9949,6 +9965,8 @@
ToggleTimeStretch(actx);
else if (action == "TOGGLEUPMIX")
ToggleUpmix(actx);
+ else if (action == "TOGGLEVUVUZELA")
+ ToggleVuvuzela(actx);
else if (action.left(13) == "ADJUSTSTRETCH")
{
bool floatRead;
@@ -10323,6 +10341,8 @@
new OSDGenericTree(treeMenu, tr("Adjust Audio Sync"), "TOGGLEAUDIOSYNC");
else if (category == "TOGGLEUPMIX")
new OSDGenericTree(treeMenu, tr("Toggle Audio Upmixer"), "TOGGLEUPMIX");
+ else if (category == "TOGGLEVUVUZELA")
+ new OSDGenericTree(treeMenu, tr("Toggle Vuvuzela Filter"), "TOGGLEVUVUZELA");
else if (category == "TIMESTRETCH")
FillMenuTimeStretch(ctx, treeMenu);
else if (category == "VIDEOSCAN")
Index: mythtv/libs/libmythtv/tvosdmenuentry.cpp
===================================================================
--- mythtv/libs/libmythtv/tvosdmenuentry.cpp (revision 25121)
+++ mythtv/libs/libmythtv/tvosdmenuentry.cpp (working copy)
@@ -236,6 +236,12 @@
"AUDIOSYNC", 1, 1, 1, 1, "Audio Sync"));
curMenuEntries.append(new TVOSDMenuEntry(
"TOGGLEUPMIX", 1, 1, 1, 1, "Toggle Upmixer"));
+ if (gContext->GetNumSetting("AdvancedAudioSettings", false) &&
+ gContext->GetNumSetting("VuvuzelaFilter", false))
+ {
+ curMenuEntries.append(new TVOSDMenuEntry(
+ "TOGGLEVUVUZELA", 1, 1, 1, 1, "Toggle Vuvuzela Filter"));
+ }
curMenuEntries.append(new TVOSDMenuEntry(
"TIMESTRETCH", 1, 1, 1, 1, "Time Stretch"));
curMenuEntries.append(new TVOSDMenuEntry(
Index: mythtv/libs/libmyth/audiooutputbase.h
===================================================================
--- mythtv/libs/libmyth/audiooutputbase.h (revision 25121)
+++ mythtv/libs/libmyth/audiooutputbase.h (working copy)
@@ -16,6 +16,7 @@
// MythTV headers
#include "audiooutput.h"
+#include "audiooutpututil.h"
#include "samplerate.h"
#include "mythverbose.h"
@@ -44,6 +45,8 @@
virtual void SetStretchFactor(float factor);
virtual float GetStretchFactor(void) const;
virtual bool ToggleUpmix(void);
+ virtual bool ToggleVuvuzela(void);
+ virtual bool IsVuvuzela(void) { return vuvuzela; }
virtual void Reset(void);
@@ -230,6 +233,10 @@
/** main audio buffer */
unsigned char audiobuffer[kAudioRingBufferSize];
uint memory_corruption_test4;
+
+ //Vuvuzela filter
+ bool vuvuzela, last_vuvuzela;
+ AudioOutputUtil::Notch *notch_instance;
};
#endif
Index: mythtv/libs/libmyth/audiooutpututil.h
===================================================================
--- mythtv/libs/libmyth/audiooutpututil.h (revision 0)
+++ mythtv/libs/libmyth/audiooutpututil.h (revision 0)
@@ -0,0 +1,71 @@
+#ifndef AUDIOOUTPUTUTIL
+#define AUDIOOUTPUTUTIL
+
+using namespace std;
+
+#define IIR_NUM_COEFFICIENTS (3) // Assumed biquads
+
+class AudioOutputUtil
+{
+ public:
+
+ //Notch Filter / IRR transformation
+ // Parameters
+ typedef struct
+ {
+ uint N;
+ uint num_biquads;
+ float b[IIR_NUM_COEFFICIENTS];
+ float a[IIR_NUM_COEFFICIENTS];
+ } IIR_Parameters;
+
+ // State information
+ typedef struct
+ {
+ float a[IIR_NUM_COEFFICIENTS];
+ float b[IIR_NUM_COEFFICIENTS];
+ float x_mem[IIR_NUM_COEFFICIENTS];
+ float y_mem[IIR_NUM_COEFFICIENTS];
+ } IIR_State;
+
+ // Instance
+ typedef struct
+ {
+ IIR_Parameters parameters;
+ IIR_State state;
+ } IIR;
+
+ // Parameters
+ typedef struct
+ {
+ uint N;
+ float frequency; // Notch frequency
+ float attenuation_dB; // Notch attenuation
+ } Notch_Parameters;
+
+ // State information
+
+ typedef struct
+ {
+ float pole_position;
+ float frequency_offset;
+ float a1s;
+ float a2;
+ float depth_factor;
+ float w0; // Input weight
+ float w1; // Output weight
+ } Notch_State;
+
+ // Instance
+ typedef struct
+ {
+ Notch_Parameters parameters;
+ Notch_State state;
+ IIR iir;
+ } Notch;
+
+ static void notch_update(Notch &instance, float fs);
+ static void notch_execute(Notch &instance, float *in, float *out);
+};
+
+#endif
Index: mythtv/libs/libmyth/audiooutputbase.cpp
===================================================================
--- mythtv/libs/libmyth/audiooutputbase.cpp (revision 25121)
+++ mythtv/libs/libmyth/audiooutputbase.cpp (working copy)
@@ -13,6 +13,7 @@
#include "compat.h"
#include "audiooutputbase.h"
#include "audiooutputdigitalencoder.h"
+#include "audiooutpututil.h"
#include "SoundTouch.h"
#include "freesurround.h"
@@ -73,7 +74,9 @@
memory_corruption_test1(0xdeadbeef),
memory_corruption_test2(0xdeadbeef),
memory_corruption_test3(0xdeadbeef),
- memory_corruption_test4(0xdeadbeef)
+ memory_corruption_test4(0xdeadbeef),
+ vuvuzela(false), last_vuvuzela(false),
+ notch_instance(NULL)
{
// The following are not bzero() because MS Windows doesn't like it.
memset(&src_data, 0, sizeof(SRC_DATA));
@@ -197,7 +200,17 @@
return (configured_audio_channels == 6);
}
+bool AudioOutputBase::ToggleVuvuzela(void)
+{
+ vuvuzela = !vuvuzela;
+ const AudioSettings settings(audio_bits, source_audio_channels,
+ audio_codec, source_audio_samplerate,
+ audio_passthru);
+ Reconfigure(settings);
+ return vuvuzela;
+}
+
void AudioOutputBase::Reconfigure(const AudioSettings &orig_settings)
{
AudioSettings settings = orig_settings;
@@ -229,6 +242,7 @@
settings.samplerate == audio_samplerate && !need_resampler &&
settings.use_passthru == audio_passthru &&
lneeds_upmix == needs_upmix &&
+ last_vuvuzela == vuvuzela &&
laudio_reenc == audio_reenc);
bool upmix_deps =
(lsource_audio_channels == source_audio_channels);
@@ -247,6 +261,8 @@
return;
}
+ last_vuvuzela = vuvuzela;
+
KillAudio();
QMutexLocker lock1(&audio_buflock);
@@ -264,6 +280,7 @@
audio_codec = settings.codec;
audio_passthru = settings.use_passthru;
needs_upmix = lneeds_upmix;
+ vuvuzela = last_vuvuzela;
if (audio_bits != 8 && audio_bits != 16)
{
@@ -341,6 +358,13 @@
need_resampler = true;
}
+ if (vuvuzela)
+ {
+ VERBOSE(VB_AUDIO, LOC + "Vuvuzela filter enabled. Go Socceroos Go!");
+ if (!notch_instance)
+ notch_instance = new AudioOutputUtil::Notch;
+ }
+
if (audio_enc)
{
VERBOSE(VB_AUDIO, LOC + "Creating AC-3 Encoder");
@@ -497,6 +521,13 @@
needs_upmix = false;
audio_enc = false;
+ if (notch_instance)
+ {
+ delete notch_instance;
+ notch_instance = NULL;
+ }
+ vuvuzela = false;
+
CloseDevice();
killAudioLock.unlock();
@@ -790,7 +821,6 @@
VERBOSE(VB_IMPORTANT, LOC_ERR +
QString("Error occurred while resampling audio: %1")
.arg(src_strerror(error)));
-
src_float_to_short_array(src_data.data_out, (short int*)tmp_buff,
src_data.output_frames_gen*audio_channels);
@@ -844,7 +874,7 @@
QMutexLocker lock1(&audio_buflock);
// resample input if necessary
- if (need_resampler && src_ctx)
+ if ((need_resampler && src_ctx) || (vuvuzela && notch_instance))
{
// Convert to floats
short *buf_ptr = (short*)buffer;
@@ -853,17 +883,47 @@
src_in[sample] = (float)buf_ptr[sample] / (1.0 * 0x8000);
}
- src_data.input_frames = samples;
- src_data.end_of_input = 0;
- int error = src_process(src_ctx, &src_data);
- if (error)
- VERBOSE(VB_IMPORTANT, LOC_ERR +
- QString("Error occurred while resampling audio: %1")
- .arg(src_strerror(error)));
- src_float_to_short_array(src_data.data_out, (short int*)tmp_buff,
- src_data.output_frames_gen*audio_channels);
+ if (vuvuzela)
+ {
+ notch_instance->parameters.N = samples * audio_channels;
+ // Notch attenuation
+ notch_instance->parameters.attenuation_dB = 35.0f;
+
+ // Notch frequency
+ notch_instance->parameters.frequency = 233.0f;
+ AudioOutputUtil::notch_update (*notch_instance, (float)source_audio_samplerate);
+ AudioOutputUtil::notch_execute (*notch_instance, src_in, src_out);
+ notch_instance->parameters.frequency = 466.0f; // 1st harmonic
+ AudioOutputUtil::notch_update (*notch_instance, (float)source_audio_samplerate);
+ AudioOutputUtil::notch_execute (*notch_instance, src_out, src_in);
+ notch_instance->parameters.frequency = 932.0f; // 2nd harmonic
+ AudioOutputUtil::notch_update (*notch_instance, (float)source_audio_samplerate);
+ AudioOutputUtil::notch_execute (*notch_instance, src_in, src_out);
+ notch_instance->parameters.frequency = 1864.0f; // 3rd harmonic
+ AudioOutputUtil::notch_update (*notch_instance, (float)source_audio_samplerate);
+ AudioOutputUtil::notch_execute (*notch_instance, src_out, src_in);
+ }
- _AddSamples(tmp_buff, true, src_data.output_frames_gen, timecode);
+ if (need_resampler)
+ {
+ src_data.input_frames = samples;
+ src_data.end_of_input = 0;
+ int error = src_process(src_ctx, &src_data);
+ if (error)
+ VERBOSE(VB_IMPORTANT, LOC_ERR +
+ QString("Error occurred while resampling audio: %1")
+ .arg(src_strerror(error)));
+ src_float_to_short_array(src_data.data_out, (short int*)tmp_buff,
+ src_data.output_frames_gen*audio_channels);
+
+ _AddSamples(tmp_buff, true, src_data.output_frames_gen, timecode);
+ }
+ else
+ {
+ src_float_to_short_array(src_in, (short int*)tmp_buff,
+ samples * audio_channels);
+ _AddSamples(tmp_buff, true, samples, timecode);
+ }
}
else
{
Index: mythtv/libs/libmyth/libmyth.pro
===================================================================
--- mythtv/libs/libmyth/libmyth.pro (revision 25121)
+++ mythtv/libs/libmyth/libmyth.pro (working copy)
@@ -30,7 +30,7 @@
HEADERS += audiopulseutil.h
HEADERS += programinfo.h programlist.h programinfoupdater.h
HEADERS += recordingtypes.h remoteutil.h
-HEADERS += rawsettingseditor.h
+HEADERS += rawsettingseditor.h audiooutpututil.h
# remove when everything is switched to mythui
HEADERS += virtualkeyboard_qt.h
@@ -54,7 +54,7 @@
SOURCES += audiopulseutil.cpp
SOURCES += programinfo.cpp programlist.cpp programinfoupdater.cpp
SOURCES += recordingtypes.cpp remoteutil.cpp
-SOURCES += rawsettingseditor.cpp
+SOURCES += rawsettingseditor.cpp audiooutpututil.cpp
# remove when everything is switched to mythui
SOURCES += virtualkeyboard_qt.cpp
Index: mythtv/libs/libmyth/audiooutput.h
===================================================================
--- mythtv/libs/libmyth/audiooutput.h (revision 25121)
+++ mythtv/libs/libmyth/audiooutput.h (working copy)
@@ -71,6 +71,8 @@
virtual void bufferOutputData(bool y) = 0;
virtual int readOutputData(unsigned char *read_buffer, int max_length) = 0;
virtual bool ToggleUpmix(void) = 0;
+ virtual bool ToggleVuvuzela(void) = 0;
+ virtual bool IsVuvuzela(void) = 0;
protected:
void Error(const QString &msg);
Index: mythtv/libs/libmyth/audiooutpututil.cpp
===================================================================
--- mythtv/libs/libmyth/audiooutpututil.cpp (revision 0)
+++ mythtv/libs/libmyth/audiooutpututil.cpp (revision 0)
@@ -0,0 +1,143 @@
+#include "dsputil.h"
+#include "mythconfig.h"
+#include "audiooutpututil.h"
+
+#define IIR_NUM_COEFFICIENTS (3) // Assumed biquads
+
+static void iir_update (AudioOutputUtil::IIR &instance)
+{
+ // Clear the filter state
+ bzero(&instance.state.x_mem[0], IIR_NUM_COEFFICIENTS * sizeof(float));
+ bzero(&instance.state.y_mem[0], IIR_NUM_COEFFICIENTS * sizeof(float));
+
+ memcpy(&instance.state.b[0], &instance.parameters.b[0],
+ IIR_NUM_COEFFICIENTS * sizeof(float));
+ memcpy(&instance.state.a[0], &instance.parameters.a[0],
+ IIR_NUM_COEFFICIENTS * sizeof(float));
+}
+
+/* Notch filter (c) 2010 Hydrix & Jean-Yves Avenard */
+/* www.hydrix.com */
+
+// Processes a single block of samples with a single IIR biquad stage
+// N M
+// SUM a(k+1) y(n-k) = SUM b(k+1) x(n-k) for 1<=n<=length(x)
+// k=0 k=0
+// where N=length(a)-1 and M=length(b)-1.
+// Vector s is the initial state of the system. The final state is also returned
+// The state vector is a column vector whose length is equal to the
+// length of the longest coefficient vector minus one.
+static void iir_biquad (float* x, float* y,
+ float* a, float* b,
+ float* x_mem, float* y_mem,
+ unsigned int N)
+{
+ // Direct Form I
+ // N+1 N+1
+ // y(n) = - SUM a(k) y(n-k) + SUM b(k) x(n-k) for 0 <= n <length(x)
+ // k=1 k=0
+ unsigned int n = 0;
+ unsigned int k = 0;
+ float y_n_minus_k = 0.0f;
+ float x_n_minus_k = 0.0f;
+ for (n = 0; n < N; n++)
+ {
+ y[n] = x[n] * b[0];
+
+ for (k = 1; k < IIR_NUM_COEFFICIENTS; k++)
+ {
+ signed int n_minus_k = n - k;
+ if (n_minus_k >= 0)
+ {
+ x_n_minus_k = x[n_minus_k];
+ y_n_minus_k = y[n_minus_k];
+ }
+ else
+ {
+ x_n_minus_k = x_mem[-n_minus_k-1];
+ y_n_minus_k = y_mem[-n_minus_k-1];
+ }
+
+ y[n] -= a[k] * y_n_minus_k;
+ y[n] += b[k] * x_n_minus_k;
+ }
+ }
+
+ // Save input and output state, latest first
+ unsigned int state_offset = N - 1;
+ for (n=0; n < (IIR_NUM_COEFFICIENTS-1); n++)
+ {
+ x_mem[n] = x[state_offset];
+ y_mem[n] = y[state_offset];
+ state_offset--;
+ }
+}
+
+static void iir_execute(AudioOutputUtil::IIR &instance, float* x, float* y)
+{
+ iir_biquad(x, y,
+ &instance.state.a[0], &instance.state.b[0],
+ &instance.state.x_mem[0], &instance.state.y_mem[0],
+ instance.parameters.N);
+}
+
+// Notch filter
+#define PI_FLOAT (3.14159265358979f)
+
+void AudioOutputUtil::notch_update (Notch &instance, float fs)
+{
+ instance.state.pole_position = 0.99f;
+ instance.state.frequency_offset = 0.0f; // in normalised frequency (1.0 = fs)
+ instance.state.a1s = -instance.state.pole_position;
+ instance.state.a2 = -(instance.state.pole_position * instance.state.pole_position);
+ instance.state.depth_factor = 0.999f;
+
+ // Calculate filter coefficients
+ // Direct-form IIR
+ // Ref: http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt and others
+ float normalised_notch_frequency = (2.0f * instance.parameters.frequency / fs);
+ normalised_notch_frequency += instance.state.frequency_offset;
+ float frequency_factor = -2.0f * cosf(PI_FLOAT * normalised_notch_frequency);
+ float a1 = frequency_factor * instance.state.a1s;
+ float a2 = instance.state.a2;
+ float b1 = frequency_factor * instance.state.depth_factor;
+ float b2 = instance.state.depth_factor * instance.state.depth_factor;
+ instance.iir.parameters.N = instance.parameters.N;
+ instance.iir.parameters.a[0] = 1.0f;
+ instance.iir.parameters.a[1] = -a1;
+ instance.iir.parameters.a[2] = -a2;
+ instance.iir.parameters.b[0] = 1.0f;
+ instance.iir.parameters.b[1] = b1;
+ instance.iir.parameters.b[2] = b2;
+
+ // Initialise the IIR stage
+ iir_update(instance.iir);
+
+ // The notch filter strongly attenuates at the notch frequency.
+ // The output is the weighted sum of the input and the
+ // notch-filtered input. The weights are calculated from the
+ // attenuation parameters
+ // instance.state.w0 = pow(10.0, (-instance.parameters.attenuation_dB / 20.0));
+ // instance.state.w1 = 1.0 - instance.state.w0;
+ float w0 = powf(10.0f, (-instance.parameters.attenuation_dB / 20.0f));
+ float w1 = 1.0f - w0;
+ instance.state.w0 = w0;
+ instance.state.w1 = w1;
+
+ return;
+}
+
+// Processes a single block of samples
+void AudioOutputUtil::notch_execute (Notch &instance, float *in, float *out)
+{
+ // Apply the rejection filter
+ iir_execute(instance.iir, in, out);
+
+ // The output is the weighted sum of the input and the
+ // notch-filtered input
+ for (uint i=0; i < instance.parameters.N; i++)
+ {
+ out[i] *= instance.state.w1;
+ out[i] += instance.state.w0 * in[i];
+ }
+}
Index: mythtv/programs/mythfrontend/globalsettings.cpp
===================================================================
--- mythtv/programs/mythfrontend/globalsettings.cpp (revision 25121)
+++ mythtv/programs/mythfrontend/globalsettings.cpp (working copy)
@@ -181,6 +181,17 @@
return gc;
}
+static HostCheckBox *VuvuzelaFilter()
+{
+ HostCheckBox *gc = new HostCheckBox("VuvuzelaFilter");
+ gc->setLabel(QObject::tr("Enable vuvuzela filter"));
+ gc->setValue(false);
+ gc->setHelpText(QObject::tr("With this option enabled, a dedicated vuvuzela "
+ "filter option will be accessible in the playback "
+ "menu"));
+ return gc;
+}
+
static HostCheckBox *MythControlsVolume()
{
HostCheckBox *gc = new HostCheckBox("MythControlsVolume");
@@ -3485,6 +3496,7 @@
settings2->addChild(srcqualityoverride);
settings2->addChild(sub3);
+ group2->addChild(VuvuzelaFilter());
group2->addChild(settings2);
group2->addChild(AggressiveBuffer());
Index: mythtv/programs/mythtranscode/transcode.cpp
===================================================================
--- mythtv/programs/mythtranscode/transcode.cpp (revision 25121)
+++ mythtv/programs/mythtranscode/transcode.cpp (working copy)
@@ -217,7 +217,16 @@
// Do nothing
return false;
}
-
+ virtual bool ToggleVuvuzela(void)
+ {
+ // Do nothing
+ return false;
+ }
+ virtual bool IsVuvuzela(void)
+ {
+ // Do nothing
+ return false;
+ }
virtual void SetSWVolume(int new_volume, bool save)
{
// Do nothing
Index: mythbackend.init
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-11/mythbackend.init,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- mythbackend.init 8 Jun 2010 19:16:17 -0000 1.2
+++ mythbackend.init 18 Jun 2010 12:00:49 -0000 1.3
@@ -22,7 +22,7 @@
binary=/usr/bin/mythbackend
prog=mythbackend
RETVAL=0
-OPTIONS="$OPTIONS --daemon --logfile --user ${MYTHBACKEND_USER} /var/log/mythtv/$prog.log --pidfile /var/run/$prog.pid"
+OPTIONS="$OPTIONS --daemon --user ${MYTHBACKEND_USER} --logfile /var/log/mythtv/$prog.log --pidfile /var/run/$prog.pid"
start() {
echo -n $"Starting $prog: "
mythplugins-0.23-svnfixes.patch:
mytharchive/mythburn/scripts/mythburn.py | 91 +++++-----
mythgallery/mythgallery/galleryutil.cpp | 5
mythgallery/mythgallery/glsingleview.cpp | 1
mythmusic/mythmusic/dbcheck.cpp | 5
mythvideo/mythvideo/dbcheck.cpp | 5
mythweb/classes/Database.php | 4
mythweb/classes/Database/Query.php | 4
mythweb/classes/Database/Query/mysql.php | 4
mythweb/classes/Database/Query/mysqlicompat.php | 4
mythweb/classes/Database/mysql.php | 4
mythweb/classes/Database/mysqlicompat.php | 4
mythweb/classes/JSON.php | 4
mythweb/classes/Modules.php | 4
mythweb/classes/MythBackend.php | 4
mythweb/classes/MythFrontend.php | 4
mythweb/includes/class_autoload.php | 4
mythweb/includes/cleanup.php | 4
mythweb/includes/config.php | 4
mythweb/includes/css.php | 4
mythweb/includes/data_dir.php | 4
mythweb/includes/database.php | 4
mythweb/includes/db_update.php | 4
mythweb/includes/defines.php | 4
mythweb/includes/errordisplay.php | 4
mythweb/includes/errors.php | 4
mythweb/includes/init.php | 4
mythweb/includes/jobqueue.php | 4
mythweb/includes/lockdown.php | 4
mythweb/includes/mobile.php | 4
mythweb/includes/mouseovers.php | 4
mythweb/includes/php_version_check.php | 4
mythweb/includes/session.php | 4
mythweb/includes/skin.php | 4
mythweb/includes/sorting.php | 4
mythweb/includes/translate.php | 4
mythweb/includes/utils.php | 4
mythweb/js/pngbehavior.htc | 2
mythweb/js/table_sort.js | 4
mythweb/js/utils.js | 4
mythweb/modules/_shared/tmpl/_errors/db_access_denied.php | 4
mythweb/modules/_shared/tmpl/_errors/db_vars_error.php | 4
mythweb/modules/_shared/tmpl/_errors/error.php | 4
mythweb/modules/_shared/tmpl/_errors/fatal.php | 4
mythweb/modules/_shared/tmpl/_errors/lockdown.php | 4
mythweb/modules/_shared/tmpl/_errors/no_modules.php | 4
mythweb/modules/_shared/tmpl/_errors/site_down.php | 4
mythweb/modules/_shared/tmpl/_errors/unknown_module.php | 4
mythweb/modules/_shared/tmpl/default/footer.php | 4
mythweb/modules/_shared/tmpl/default/header.php | 4
mythweb/modules/_shared/tmpl/default/welcome.php | 4
mythweb/modules/_shared/tmpl/iPod/footer.php | 4
mythweb/modules/_shared/tmpl/iPod/header.php | 4
mythweb/modules/_shared/tmpl/iPod/welcome.php | 4
mythweb/modules/_shared/tmpl/lite/footer.php | 4
mythweb/modules/_shared/tmpl/lite/header.php | 4
mythweb/modules/_shared/tmpl/lite/welcome.php | 4
mythweb/modules/_shared/tmpl/wap/footer.php | 4
mythweb/modules/_shared/tmpl/wap/header.php | 4
mythweb/modules/_shared/tmpl/wap/welcome.php | 4
mythweb/modules/backend_log/handler.php | 4
mythweb/modules/backend_log/init.php | 4
mythweb/modules/backend_log/tmpl/default/backend_log.php | 4
mythweb/modules/backend_log/tmpl/default/welcome.php | 4
mythweb/modules/backend_log/tmpl/lite/backend_log.php | 4
mythweb/modules/backend_log/tmpl/lite/welcome.php | 4
mythweb/modules/database/init.php | 4
mythweb/modules/database/set_settings.php | 4
mythweb/modules/database/tmpl/default/set_settings.php | 4
mythweb/modules/music/handler.php | 4
mythweb/modules/music/init.php | 4
mythweb/modules/music/mp3act_functions.php | 4
mythweb/modules/music/stream.php | 4
mythweb/modules/music/tmpl/default/welcome.php | 4
mythweb/modules/mythtv/init.php | 4
mythweb/modules/mythtv/set_keys.php | 4
mythweb/modules/mythtv/set_settings.php | 4
mythweb/modules/mythtv/tmpl/default/set_keys.php | 4
mythweb/modules/mythtv/tmpl/default/set_settings.php | 4
mythweb/modules/mythtv/tmpl/lite/set_keys.php | 4
mythweb/modules/mythtv/tmpl/lite/set_settings.php | 4
mythweb/modules/mythweb/init.php | 4
mythweb/modules/mythweb/set_defaults.php | 4
mythweb/modules/mythweb/set_flvplayer.php | 4
mythweb/modules/mythweb/set_session.php | 4
mythweb/modules/mythweb/tmpl/default/set_defaults.php | 4
mythweb/modules/mythweb/tmpl/default/set_flvplayer.php | 4
mythweb/modules/mythweb/tmpl/default/set_session.php | 4
mythweb/modules/mythweb/tmpl/lite/set_defaults.php | 4
mythweb/modules/mythweb/tmpl/lite/set_flvplayer.php | 4
mythweb/modules/mythweb/tmpl/lite/set_session.php | 4
mythweb/modules/remote/do.php | 4
mythweb/modules/remote/handler.php | 4
mythweb/modules/remote/init.php | 4
mythweb/modules/remote/keys.php | 4
mythweb/modules/remote/play_program_on_frontend.php | 4
mythweb/modules/remote/tmpl/default/keys.php | 4
mythweb/modules/remote/tmpl/default/remote.php | 4
mythweb/modules/remote/tmpl/default/welcome.php | 4
mythweb/modules/remote/tmpl/iPod/play_program_on_frontend.php | 4
mythweb/modules/remote/tmpl/iPod/welcome.php | 4
mythweb/modules/settings/handler.php | 4
mythweb/modules/settings/init.php | 4
mythweb/modules/settings/tmpl/default/header.php | 4
mythweb/modules/settings/tmpl/default/welcome.php | 4
mythweb/modules/settings/tmpl/lite/header.php | 4
mythweb/modules/settings/tmpl/lite/mythweb.php | 4
mythweb/modules/settings/tmpl/lite/welcome.php | 4
mythweb/modules/stats/handler.php | 4
mythweb/modules/stats/init.php | 4
mythweb/modules/stats/tmpl/default/stats.php | 4
mythweb/modules/stats/tmpl/default/welcome.php | 4
mythweb/modules/stats/tmpl/lite/stats.php | 4
mythweb/modules/stats/tmpl/lite/welcome.php | 4
mythweb/modules/status/handler.php | 4
mythweb/modules/status/init.php | 4
mythweb/modules/status/tmpl/default/status.php | 4
mythweb/modules/status/tmpl/default/welcome.php | 4
mythweb/modules/status/tmpl/lite/status.php | 4
mythweb/modules/status/tmpl/lite/welcome.php | 4
mythweb/modules/status/tmpl/wap/status.php | 4
mythweb/modules/stream/handler.pl | 4
mythweb/modules/stream/init.php | 4
mythweb/modules/stream/set_protocol.php | 4
mythweb/modules/stream/stream_asx.pl | 4
mythweb/modules/stream/stream_flv.pl | 4
mythweb/modules/stream/stream_flvp.pl | 4
mythweb/modules/stream/stream_mp4.pl | 4
mythweb/modules/stream/stream_raw.pl | 4
mythweb/modules/stream/tmpl/default/set_protocol.php | 4
mythweb/modules/stream/tmpl/lite/set_protocol.php | 4
mythweb/modules/stream/tv.pl | 4
mythweb/modules/tv/canned_searches.conf.php | 4
mythweb/modules/tv/channel.php | 4
mythweb/modules/tv/classes/Channel.php | 4
mythweb/modules/tv/classes/Channel_List.php | 4
mythweb/modules/tv/classes/Program.php | 4
mythweb/modules/tv/classes/Recording.php | 4
mythweb/modules/tv/classes/Schedule.php | 4
mythweb/modules/tv/detail.php | 4
mythweb/modules/tv/get_pixmap.php | 4
mythweb/modules/tv/handler.php | 4
mythweb/modules/tv/includes/channels.php | 4
mythweb/modules/tv/includes/programs.php | 4
mythweb/modules/tv/includes/recording_schedules.php | 4
mythweb/modules/tv/includes/schedule_utils.php | 4
mythweb/modules/tv/init.php | 4
mythweb/modules/tv/list.php | 4
mythweb/modules/tv/list_recording_groups.php | 4
mythweb/modules/tv/list_shows_in_title_and_group.php | 4
mythweb/modules/tv/list_titles_in_group.php | 4
mythweb/modules/tv/opensearch.php | 4
mythweb/modules/tv/recorded.php | 4
mythweb/modules/tv/schedules.php | 4
mythweb/modules/tv/schedules_custom.php | 4
mythweb/modules/tv/schedules_manual.php | 4
mythweb/modules/tv/search.php | 4
mythweb/modules/tv/searches.php | 4
mythweb/modules/tv/set_channels.php | 4
mythweb/modules/tv/set_playgroup.php | 4
mythweb/modules/tv/set_screens.php | 4
mythweb/modules/tv/set_session.php | 4
mythweb/modules/tv/submenu.php | 4
mythweb/modules/tv/tmpl/default/channel.php | 4
mythweb/modules/tv/tmpl/default/detail.php | 4
mythweb/modules/tv/tmpl/default/list.php | 4
mythweb/modules/tv/tmpl/default/list_data.php | 4
mythweb/modules/tv/tmpl/default/recorded.php | 4
mythweb/modules/tv/tmpl/default/schedules.php | 4
mythweb/modules/tv/tmpl/default/schedules_custom.php | 4
mythweb/modules/tv/tmpl/default/schedules_manual.php | 4
mythweb/modules/tv/tmpl/default/search.php | 4
mythweb/modules/tv/tmpl/default/searches.php | 4
mythweb/modules/tv/tmpl/default/set_channels.php | 4
mythweb/modules/tv/tmpl/default/set_playgroup.php | 4
mythweb/modules/tv/tmpl/default/set_screens.php | 4
mythweb/modules/tv/tmpl/default/set_session.php | 4
mythweb/modules/tv/tmpl/default/upcoming.php | 4
mythweb/modules/tv/tmpl/default/welcome.php | 4
mythweb/modules/tv/tmpl/iPod/detail.php | 4
mythweb/modules/tv/tmpl/iPod/list_recording_groups.php | 4
mythweb/modules/tv/tmpl/iPod/list_shows_in_title_and_group.php | 4
mythweb/modules/tv/tmpl/iPod/list_titles_in_group.php | 4
mythweb/modules/tv/tmpl/iPod/search.php | 4
mythweb/modules/tv/tmpl/iPod/submenu.php | 4
mythweb/modules/tv/tmpl/iPod/upcoming.php | 4
mythweb/modules/tv/tmpl/iPod/welcome.php | 4
mythweb/modules/tv/tmpl/ical/upcoming.php | 4
mythweb/modules/tv/tmpl/lite/channel.php | 4
mythweb/modules/tv/tmpl/lite/detail.php | 4
mythweb/modules/tv/tmpl/lite/list.php | 4
mythweb/modules/tv/tmpl/lite/recorded.php | 4
mythweb/modules/tv/tmpl/lite/schedules.php | 4
mythweb/modules/tv/tmpl/lite/schedules_custom.php | 4
mythweb/modules/tv/tmpl/lite/schedules_manual.php | 4
mythweb/modules/tv/tmpl/lite/search.php | 4
mythweb/modules/tv/tmpl/lite/searches.php | 4
mythweb/modules/tv/tmpl/lite/set_channels.php | 10 -
mythweb/modules/tv/tmpl/lite/set_session.php | 4
mythweb/modules/tv/tmpl/lite/upcoming.php | 4
mythweb/modules/tv/tmpl/lite/welcome.php | 4
mythweb/modules/tv/tmpl/rss/recorded.php | 4
mythweb/modules/tv/tmpl/wap/channel.php | 4
mythweb/modules/tv/tmpl/wap/detail.php | 4
mythweb/modules/tv/tmpl/wap/list.php | 4
mythweb/modules/tv/tmpl/wap/recorded.php | 4
mythweb/modules/tv/tmpl/wap/search.php | 4
mythweb/modules/tv/tmpl/wap/upcoming.php | 4
mythweb/modules/tv/upcoming.php | 4
mythweb/modules/video/edit.php | 4
mythweb/modules/video/handler.php | 4
mythweb/modules/video/imdb.php | 4
mythweb/modules/video/init.php | 4
mythweb/modules/video/scan.php | 4
mythweb/modules/video/set_settings.php | 4
mythweb/modules/video/tmpl/default/set_settings.php | 4
mythweb/modules/video/tmpl/default/video.php | 4
mythweb/modules/video/tmpl/default/welcome.php | 4
mythweb/modules/weather/classes/WeatherScreen.php | 4
mythweb/modules/weather/handler.php | 4
mythweb/modules/weather/init.php | 4
mythweb/modules/weather/set_screen.php | 4
mythweb/modules/weather/tmpl/default/set_screen.php | 4
mythweb/modules/weather/tmpl/default/weather.18h.php | 4
mythweb/modules/weather/tmpl/default/weather.3d.php | 4
mythweb/modules/weather/tmpl/default/weather.6d.php | 4
mythweb/modules/weather/tmpl/default/weather.am.php | 4
mythweb/modules/weather/tmpl/default/weather.cc.php | 4
mythweb/modules/weather/tmpl/default/weather.php | 4
mythweb/modules/weather/tmpl/default/weather.sm.php | 4
mythweb/modules/weather/tmpl/default/welcome.php | 4
mythweb/modules/welcome.php | 4
mythweb/mythweb.php | 4
mythweb/mythweb.pl | 4
mythzoneminder/mythzoneminder/zmclient.cpp | 34 ++-
mythzoneminder/mythzoneminder/zmdefines.h | 1
mythzoneminder/mythzoneminder/zmliveplayer.cpp | 18 +
settings.pro | 2
237 files changed, 550 insertions(+), 528 deletions(-)
Index: mythplugins-0.23-svnfixes.patch
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-11/mythplugins-0.23-svnfixes.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- mythplugins-0.23-svnfixes.patch 8 Jun 2010 19:16:18 -0000 1.2
+++ mythplugins-0.23-svnfixes.patch 18 Jun 2010 12:00:49 -0000 1.3
@@ -3463,6 +3463,114 @@
# @version $Revision$
# @author $Author$
#
+diff -Naurp mythplugins-0.23-release/mythzoneminder/mythzoneminder/zmclient.cpp mythplugins-0.23/mythzoneminder/mythzoneminder/zmclient.cpp
+--- mythplugins-0.23-release/mythzoneminder/mythzoneminder/zmclient.cpp 2009-04-10 20:04:30.000000000 -0400
++++ mythplugins-0.23/mythzoneminder/mythzoneminder/zmclient.cpp 2010-06-09 15:36:20.626015000 -0400
+@@ -521,6 +521,7 @@ void ZMClient::getEventFrame(int monitor
+ if (!readData(data, imageSize))
+ {
+ VERBOSE(VB_GENERAL, "ZMClient::getEventFrame(): Failed to get image data");
++ delete [] data;
+ return;
+ }
+
+@@ -532,8 +533,9 @@ void ZMClient::getEventFrame(int monitor
+ if (!(*image)->loadFromData(data, imageSize, "JPEG"))
+ {
+ VERBOSE(VB_GENERAL, "ZMClient::getEventFrame(): Failed to load image from data");
+- return;
+ }
++
++ delete [] data;
+ }
+
+ void ZMClient::getAnalyseFrame(int monitorID, int eventID, int frameNo, QImage &image)
+@@ -558,13 +560,17 @@ void ZMClient::getAnalyseFrame(int monit
+ VERBOSE(VB_GENERAL, "ZMClient::getAnalyseFrame(): Failed to get image data");
+ image = QImage();
+ }
+-
+- // extract the image data and create a QImage from it
+- if (!image.loadFromData(data, imageSize, "JPEG"))
++ else
+ {
+- VERBOSE(VB_GENERAL, "ZMClient::getAnalyseFrame(): Failed to load image from data");
+- image = QImage();
++ // extract the image data and create a QImage from it
++ if (!image.loadFromData(data, imageSize, "JPEG"))
++ {
++ VERBOSE(VB_GENERAL, "ZMClient::getAnalyseFrame(): Failed to load image from data");
++ image = QImage();
++ }
+ }
++
++ delete [] data;
+ }
+
+ int ZMClient::getLiveFrame(int monitorID, QString &status, unsigned char* buffer, int bufferSize)
+@@ -659,9 +665,21 @@ void ZMClient::getMonitorList(vector<Mon
+ item->zmaStatus = "";
+ item->events = 0;
+ item->status = "";
++ item->isV4L2 = (item->palette > 255);
+ monitorList->push_back(item);
+- VERBOSE(VB_IMPORTANT, QString("Monitor: %1 (%2) is using palette: %3")
+- .arg(item->name).arg(item->id).arg(item->palette));
++ if (item->isV4L2)
++ {
++ QString pallete;
++ pallete = (char) (item->palette & 0xff);
++ pallete += (char) ((item->palette >> 8) & 0xff);
++ pallete += (char) ((item->palette >> 16) & 0xff);
++ pallete += (char) ((item->palette >> 24) & 0xff);
++ VERBOSE(VB_IMPORTANT, QString("Monitor: %1 (%2) is using palette: %3 (%4)")
++ .arg(item->name).arg(item->id).arg(item->palette).arg(pallete));
++ }
++ else
++ VERBOSE(VB_IMPORTANT, QString("Monitor: %1 (%2) is using palette: %3")
++ .arg(item->name).arg(item->id).arg(item->palette));
+ }
+ }
+
+diff -Naurp mythplugins-0.23-release/mythzoneminder/mythzoneminder/zmdefines.h mythplugins-0.23/mythzoneminder/mythzoneminder/zmdefines.h
+--- mythplugins-0.23-release/mythzoneminder/mythzoneminder/zmdefines.h 2009-05-15 22:26:03.000000000 -0400
++++ mythplugins-0.23/mythzoneminder/mythzoneminder/zmdefines.h 2010-06-09 15:36:20.626015000 -0400
+@@ -61,6 +61,7 @@ typedef struct
+ int width;
+ int height;
+ int palette;
++ bool isV4L2;
+ } Monitor;
+
+ #endif
+diff -Naurp mythplugins-0.23-release/mythzoneminder/mythzoneminder/zmliveplayer.cpp mythplugins-0.23/mythzoneminder/mythzoneminder/zmliveplayer.cpp
+--- mythplugins-0.23-release/mythzoneminder/mythzoneminder/zmliveplayer.cpp 2009-11-28 13:50:27.000000000 -0500
++++ mythplugins-0.23/mythzoneminder/mythzoneminder/zmliveplayer.cpp 2010-06-09 15:36:20.626015000 -0400
+@@ -450,10 +450,20 @@ void Player::updateFrame(const unsigned
+ r = buffer[pos_data++];
+ g = buffer[pos_data++];
+ b = buffer[pos_data++];
+- m_rgba[pos_rgba++] = b;
+- m_rgba[pos_rgba++] = g;
+- m_rgba[pos_rgba++] = r;
+- m_rgba[pos_rgba++] = 0xff;
++ if (m_monitor.isV4L2)
++ {
++ m_rgba[pos_rgba++] = g;
++ m_rgba[pos_rgba++] = r;
++ m_rgba[pos_rgba++] = b;
++ m_rgba[pos_rgba++] = 0xff;
++ }
++ else
++ {
++ m_rgba[pos_rgba++] = b;
++ m_rgba[pos_rgba++] = g;
++ m_rgba[pos_rgba++] = r;
++ m_rgba[pos_rgba++] = 0xff;
++ }
+ }
+ }
+
diff -Naurp mythplugins-0.23-release/settings.pro mythplugins-0.23/settings.pro
--- mythplugins-0.23-release/settings.pro 2010-02-16 17:59:56.000000000 -0500
+++ mythplugins-0.23/settings.pro 2010-05-11 11:29:36.773259000 -0400
mythtv-0.23-svnfixes.patch:
VERSION | 1
bindings/perl/IO/Socket/INET/MythTV.pm | 4 -
bindings/perl/MythTV.pm | 11 +-
bindings/perl/MythTV/Channel.pm | 64 ++++++++--------
bindings/perl/MythTV/Program.pm | 4 -
bindings/perl/MythTV/Recording.pm | 4 -
bindings/perl/MythTV/StorageGroup.pm | 4 -
bindings/python/MythTV/MythData.py | 4 -
bindings/python/MythTV/MythFunc.py | 13 ++-
configure | 18 ++--
contrib/config_files/lirc/lircrc.native.example.mceusb2 | 2
contrib/icons/master_iconmap/channel_icons.pl | 4 -
contrib/maintenance/flush_deleted_recgroup.pl | 4 -
contrib/maintenance/optimize_mythdb.pl | 4 -
contrib/user_jobs/firewire_primer.pl | 4 -
contrib/user_jobs/mythlink.pl | 4 -
libs/libavcodec/libavcodec.pro | 5 -
libs/libmyth/audiooutputpulse.cpp | 13 ++-
libs/libmyth/mythcontext.cpp | 9 +-
libs/libmyth/schemawizard.cpp | 17 ++++
libs/libmythdb/mythdirs.cpp | 5 -
libs/libmythdvdnav/libmythdvdnav.pro | 3
libs/libmythsoundtouch/AAFilter.cpp | 2
libs/libmythsoundtouch/AAFilter.h | 2
libs/libmythsoundtouch/BPMDetect.h | 2
libs/libmythsoundtouch/FIFOSampleBuffer.cpp | 2
libs/libmythsoundtouch/FIFOSampleBuffer.h | 2
libs/libmythsoundtouch/FIFOSamplePipe.h | 2
libs/libmythsoundtouch/FIRFilter.cpp | 2
libs/libmythsoundtouch/FIRFilter.h | 2
libs/libmythsoundtouch/RateTransposer.cpp | 2
libs/libmythsoundtouch/RateTransposer.h | 2
libs/libmythsoundtouch/STTypes.h | 2
libs/libmythsoundtouch/SoundTouch.cpp | 2
libs/libmythsoundtouch/SoundTouch.h | 2
libs/libmythsoundtouch/TDStretch.cpp | 2
libs/libmythsoundtouch/TDStretch.h | 2
libs/libmythsoundtouch/cpu_detect.h | 2
libs/libmythsoundtouch/cpu_detect_x86_gcc.cpp | 2
libs/libmythsoundtouch/mmx_gcc.cpp | 2
libs/libmythtv/avformatdecoder.cpp | 32 ++++++--
libs/libmythtv/dbcheck.cpp | 9 --
libs/libmythtv/tv_play.cpp | 19 +---
libs/libmythtv/tv_play.h | 2
libs/libmythui/mythfontmanager.cpp | 6 -
libs/libmythui/mythmainwindow.cpp | 12 +--
libs/libmythui/mythsystem.cpp | 4 -
libs/libmythui/xmlparsebase.cpp | 6 -
libs/libswscale/libswscale.pro | 6 +
programs/mythbackend/main.cpp | 7 +
programs/mythcommflag/main.cpp | 35 +++++++-
programs/mythtv-setup/main.cpp | 2
settings.pro | 2
version.pro | 2
54 files changed, 235 insertions(+), 146 deletions(-)
Index: mythtv-0.23-svnfixes.patch
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-11/mythtv-0.23-svnfixes.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- mythtv-0.23-svnfixes.patch 8 Jun 2010 19:16:18 -0000 1.2
+++ mythtv-0.23-svnfixes.patch 18 Jun 2010 12:00:50 -0000 1.3
@@ -742,8 +742,38 @@
// $Id$
diff -Naurp mythtv-0.23-release/libs/libmythtv/avformatdecoder.cpp mythtv-0.23/libs/libmythtv/avformatdecoder.cpp
--- mythtv-0.23-release/libs/libmythtv/avformatdecoder.cpp 2010-04-29 20:08:03.000000000 -0400
-+++ mythtv-0.23/libs/libmythtv/avformatdecoder.cpp 2010-05-12 10:45:47.290448000 -0400
-@@ -1418,6 +1418,8 @@ void AvFormatDecoder::InitVideoCodec(AVS
++++ mythtv-0.23/libs/libmythtv/avformatdecoder.cpp 2010-06-10 00:02:51.816777000 -0400
+@@ -1291,6 +1291,14 @@ static float normalized_fps(AVStream *st
+ fps = tmpfps;
+ }
+
++ // and finally try the ffmpeg estimated rate
++ if (fps > 121.0f || fps < 3.0f)
++ {
++ float tmpfps = av_q2d(stream->r_frame_rate);
++ if (tmpfps > 20 && tmpfps < 70)
++ fps = tmpfps;
++ }
++
+ // If it is still out of range, just assume NTSC...
+ fps = (fps > 121.0f) ? (30000.0f / 1001.0f) : fps;
+ return fps;
+@@ -1386,11 +1394,10 @@ void AvFormatDecoder::InitVideoCodec(AVS
+ {
+ fps = normalized_fps(stream, enc);
+
+-
+- if (stream->sample_aspect_ratio.num)
+- aspect_ratio = av_q2d(stream->sample_aspect_ratio);
+- else if (enc->sample_aspect_ratio.num)
++ if (enc->sample_aspect_ratio.num)
+ aspect_ratio = av_q2d(enc->sample_aspect_ratio);
++ else if (stream->sample_aspect_ratio.num)
++ aspect_ratio = av_q2d(stream->sample_aspect_ratio);
+ else
+ aspect_ratio = 1.0f;
+
+@@ -1418,6 +1425,8 @@ void AvFormatDecoder::InitVideoCodec(AVS
enc->rate_emu = 0;
enc->error_rate = 0;
@@ -752,7 +782,7 @@
AVCodec *codec = avcodec_find_decoder(enc->codec_id);
// look for a vdpau capable codec
if (codec_is_vdpau(video_codec_id) && !CODEC_IS_VDPAU(codec))
-@@ -1465,7 +1467,7 @@ void AvFormatDecoder::InitVideoCodec(AVS
+@@ -1465,7 +1474,7 @@ void AvFormatDecoder::InitVideoCodec(AVS
else if (codec && codec->capabilities & CODEC_CAP_DR1 &&
(IS_DR1_PIX_FMT(enc->pix_fmt) /* HACK -- begin */
/* allow unknown pixel format to avoid regressions*/
@@ -761,7 +791,7 @@
/* HACK -- end*/)
{
enc->flags |= CODEC_FLAG_EMU_EDGE;
-@@ -2402,6 +2404,13 @@ int get_avf_buffer(struct AVCodecContext
+@@ -2402,6 +2411,13 @@ int get_avf_buffer(struct AVCodecContext
{
AvFormatDecoder *nd = (AvFormatDecoder *)(c->opaque);
@@ -775,7 +805,7 @@
VideoFrame *frame = nd->GetNVP()->GetNextVideoFrame(true);
for (int i = 0; i < 3; i++)
-@@ -4361,6 +4370,12 @@ bool AvFormatDecoder::GetFrame(DecodeTyp
+@@ -4361,6 +4377,12 @@ bool AvFormatDecoder::GetFrame(DecodeTyp
GetNVP()->DiscardVideoFrame(xf);
}
}
@@ -884,6 +914,36 @@
void SwitchInputs(PlayerContext*, uint inputid);
void ToggleInputs(PlayerContext*, uint inputid = 0);
void SwitchCards(PlayerContext*,
+diff -Naurp mythtv-0.23-release/libs/libmythui/mythfontmanager.cpp mythtv-0.23/libs/libmythui/mythfontmanager.cpp
+--- mythtv-0.23-release/libs/libmythui/mythfontmanager.cpp 2010-02-24 02:41:32.000000000 -0500
++++ mythtv-0.23/libs/libmythui/mythfontmanager.cpp 2010-06-08 18:21:22.370095000 -0400
+@@ -23,7 +23,7 @@ static MythFontManager *gFontManager = N
+ void MythFontManager::LoadFonts(const QString &directory,
+ const QString ®isteredFor)
+ {
+- if (directory.isEmpty() || registeredFor.isEmpty())
++ if (directory.isEmpty() || directory == "/" || registeredFor.isEmpty())
+ return;
+
+ // Load the font files from this directory
+@@ -100,7 +100,7 @@ void MythFontManager::ReleaseFonts(const
+ void MythFontManager::LoadFontsFromDirectory(const QString &directory,
+ const QString ®isteredFor)
+ {
+- if (directory.isEmpty() || registeredFor.isEmpty())
++ if (directory.isEmpty() || directory == "/" || registeredFor.isEmpty())
+ return;
+
+ VERBOSE(VB_FILE + VB_EXTRA, QString("Scanning directory '%1' "
+@@ -124,7 +124,7 @@ void MythFontManager::LoadFontsFromDirec
+ void MythFontManager::LoadFontFile(const QString &fontPath,
+ const QString ®isteredFor)
+ {
+- if (fontPath.isEmpty() || registeredFor.isEmpty())
++ if (fontPath.isEmpty() || fontPath == "/" || registeredFor.isEmpty())
+ return;
+
+ QMutexLocker locker(&m_lock);
diff -Naurp mythtv-0.23-release/libs/libmythui/mythmainwindow.cpp mythtv-0.23/libs/libmythui/mythmainwindow.cpp
--- mythtv-0.23-release/libs/libmythui/mythmainwindow.cpp 2010-04-29 20:59:58.000000000 -0400
+++ mythtv-0.23/libs/libmythui/mythmainwindow.cpp 2010-05-13 14:40:15.407856000 -0400
Index: mythtv.spec
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-11/mythtv.spec,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- mythtv.spec 8 Jun 2010 19:16:18 -0000 1.45
+++ mythtv.spec 18 Jun 2010 12:00:50 -0000 1.46
@@ -65,7 +65,7 @@
%define desktop_vendor RPMFusion
# SVN Revision number and branch ID
-%define _svnrev r25048
+%define _svnrev r25124
%define branch release-0-23-fixes
#
@@ -81,7 +81,7 @@
%if "%{branch}" == "trunk"
Release: 0.1.svn.%{_svnrev}%{?dist}
%else
-Release: 3%{?dist}
+Release: 4%{?dist}
%endif
# The primary license is GPLv2+, but bits are borrowed from a number of
@@ -132,6 +132,7 @@
Patch0: mythtv-%{version}-svnfixes.patch
Source1: http://www.mythtv.org/mc/mythplugins-%{version}.tar.bz2
Patch1: mythplugins-%{version}-svnfixes.patch
+Patch2: mythtv-0.23-shutup-vuvuzela.patch
Source10: PACKAGE-LICENSING
Source101: mythbackend.sysconfig
Source102: mythbackend.init
@@ -841,6 +842,7 @@
cd mythtv-%{version}
%patch0 -p1
+%patch2 -p1
# Drop execute permissions on contrib bits, since they'll be %doc
find contrib/ -type f -exec chmod -x "{}" \;
@@ -965,7 +967,7 @@
--extra-cxxflags="%{optflags} -fomit-frame-pointer" \
%endif
%ifarch %{ix86}
- --cpu=i686 --tune=i686 --enable-mmx \
+ --cpu=%{_target_cpu} --tune=%{_target_cpu} --enable-mmx \
%endif
%if %{with_proc_opt}
--enable-proc-opt \
@@ -1477,6 +1479,13 @@
################################################################################
%changelog
+* Wed Jun 16 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.23-4
+- Update to release-0-23-fixes branch, svn revision 25124
+- Add anti-vuvuzela-filter patch from mythtv ticket #8568, because
+ I likes me some World Cup w/o the headache
+- Fix 32-bit x86 build on F11 i586 target
+- Fix a flub in the initscript from the prior build
+
* Tue Jun 08 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.23-3
- Update to release-0-23-fixes branch, svn revision 25048
- Includes pulseaudio white noise and seeking fixes (rpmfusion bz#1260)
14 years, 5 months
rpms/mythtv/F-12 mythtv-0.23-shutup-vuvuzela.patch, NONE, 1.1 mythbackend.init, 1.2, 1.3 mythplugins-0.23-svnfixes.patch, 1.2, 1.3 mythtv-0.23-svnfixes.patch, 1.2, 1.3 mythtv.spec, 1.68, 1.69
by Jarod Wilson
Author: jarod
Update of /cvs/free/rpms/mythtv/F-12
In directory se02.es.rpmfusion.net:/tmp/cvs-serv27588
Modified Files:
mythbackend.init mythplugins-0.23-svnfixes.patch
mythtv-0.23-svnfixes.patch mythtv.spec
Added Files:
mythtv-0.23-shutup-vuvuzela.patch
Log Message:
* Wed Jun 16 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.23-4
- Update to release-0-23-fixes branch, svn revision 25124
- Add anti-vuvuzela-filter patch from mythtv ticket #8568, because
I likes me some World Cup w/o the headache
- Fix 32-bit x86 build on F11 i586 target
- Fix a flub in the initscript from the prior build
mythtv-0.23-shutup-vuvuzela.patch:
libs/libmyth/audiooutput.h | 2
libs/libmyth/audiooutputbase.cpp | 86 +++++++++++++++---
libs/libmyth/audiooutputbase.h | 7 +
libs/libmyth/audiooutpututil.cpp | 143 +++++++++++++++++++++++++++++++
libs/libmyth/audiooutpututil.h | 71 +++++++++++++++
libs/libmyth/libmyth.pro | 4
libs/libmythtv/NuppelVideoPlayer.cpp | 15 +++
libs/libmythtv/NuppelVideoPlayer.h | 2
libs/libmythtv/avformatdecoder.cpp | 1
libs/libmythtv/tv_play.cpp | 20 ++++
libs/libmythtv/tv_play.h | 1
libs/libmythtv/tvosdmenuentry.cpp | 6 +
programs/mythfrontend/globalsettings.cpp | 12 ++
programs/mythtranscode/transcode.cpp | 11 ++
14 files changed, 365 insertions(+), 16 deletions(-)
--- NEW FILE mythtv-0.23-shutup-vuvuzela.patch ---
Index: mythtv/libs/libmythtv/NuppelVideoPlayer.cpp
===================================================================
--- mythtv/libs/libmythtv/NuppelVideoPlayer.cpp (revision 25121)
+++ mythtv/libs/libmythtv/NuppelVideoPlayer.cpp (working copy)
@@ -5134,6 +5134,21 @@
return false;
}
+bool NuppelVideoPlayer::ToggleVuvuzela()
+{
+ bool ret = false;
+ if (audioOutput)
+ ret = audioOutput->ToggleVuvuzela();
+ if (decoder)
+ decoder->SetDisablePassThrough(ret);
+ return ret;
+}
+
+bool NuppelVideoPlayer::IsVuvuzela()
+{
+ return audioOutput ? audioOutput->IsVuvuzela() : false;
+}
+
void NuppelVideoPlayer::Zoom(ZoomDirection direction)
{
if (videoOutput)
Index: mythtv/libs/libmythtv/avformatdecoder.cpp
===================================================================
--- mythtv/libs/libmythtv/avformatdecoder.cpp (revision 25121)
+++ mythtv/libs/libmythtv/avformatdecoder.cpp (working copy)
@@ -4639,6 +4639,7 @@
else if (ctx->codec_id == CODEC_ID_DTS)
passthru = allow_dts_passthru && !internal_vol;
+ passthru &= !GetNVP()->IsVuvuzela();
passthru &= !transcoding && !disable_passthru;
// Don't know any cards that support spdif clocked at < 44100
// Some US cable transmissions have 2ch 32k AC-3 streams
Index: mythtv/libs/libmythtv/tv_play.h
===================================================================
--- mythtv/libs/libmythtv/tv_play.h (revision 25121)
+++ mythtv/libs/libmythtv/tv_play.h (working copy)
@@ -436,6 +436,7 @@
const QStringList &actions);
void ToggleUpmix(PlayerContext*);
+ void ToggleVuvuzela(PlayerContext*);
void ChangeAudioSync(PlayerContext*, int dir, bool allowEdit = true);
bool AudioSyncHandleAction(PlayerContext*, const QStringList &actions);
Index: mythtv/libs/libmythtv/NuppelVideoPlayer.h
===================================================================
--- mythtv/libs/libmythtv/NuppelVideoPlayer.h (revision 25121)
+++ mythtv/libs/libmythtv/NuppelVideoPlayer.h (working copy)
@@ -165,6 +165,8 @@
void ToggleAspectOverride(AspectOverrideMode aspectMode = kAspect_Toggle);
void ToggleAdjustFill(AdjustFillMode adjustfillMode = kAdjustFill_Toggle);
bool ToggleUpmix(void);
+ bool ToggleVuvuzela(void);
+ bool IsVuvuzela(void);
// Gets
QSize GetVideoBufferSize(void) const { return video_dim; }
Index: mythtv/libs/libmythtv/tv_play.cpp
===================================================================
--- mythtv/libs/libmythtv/tv_play.cpp (revision 25121)
+++ mythtv/libs/libmythtv/tv_play.cpp (working copy)
@@ -4516,6 +4516,8 @@
ToggleTimeStretch(ctx);
else if (has_action("TOGGLEUPMIX", actions))
ToggleUpmix(ctx);
+ else if (has_action("TOGGLEVUVUZELA", actions))
+ ToggleVuvuzela(ctx);
else if (has_action("TOGGLESLEEP", actions))
ToggleSleepTimer(ctx);
else if (has_action("TOGGLERECORD", actions) && islivetv)
@@ -8286,6 +8288,20 @@
ctx->nvp->GetOSD()->SetSettingsText(text, 5);
}
+void TV::ToggleVuvuzela(PlayerContext *ctx)
+{
+ if (!ctx->nvp || !ctx->nvp->HasAudioOut())
+ return;
+ QString text;
+ if (ctx->nvp->ToggleVuvuzela())
+ text = tr("Vuvuzela Filter On");
+ else
+ text = tr("Vuvuzela Filter Off");
+
+ if (ctx->nvp->GetOSD() && !browsemode)
+ ctx->nvp->GetOSD()->SetSettingsText(text, 5);
+}
+
// dir in 10ms jumps
void TV::ChangeAudioSync(PlayerContext *ctx, int dir, bool allowEdit)
{
@@ -9949,6 +9965,8 @@
ToggleTimeStretch(actx);
else if (action == "TOGGLEUPMIX")
ToggleUpmix(actx);
+ else if (action == "TOGGLEVUVUZELA")
+ ToggleVuvuzela(actx);
else if (action.left(13) == "ADJUSTSTRETCH")
{
bool floatRead;
@@ -10323,6 +10341,8 @@
new OSDGenericTree(treeMenu, tr("Adjust Audio Sync"), "TOGGLEAUDIOSYNC");
else if (category == "TOGGLEUPMIX")
new OSDGenericTree(treeMenu, tr("Toggle Audio Upmixer"), "TOGGLEUPMIX");
+ else if (category == "TOGGLEVUVUZELA")
+ new OSDGenericTree(treeMenu, tr("Toggle Vuvuzela Filter"), "TOGGLEVUVUZELA");
else if (category == "TIMESTRETCH")
FillMenuTimeStretch(ctx, treeMenu);
else if (category == "VIDEOSCAN")
Index: mythtv/libs/libmythtv/tvosdmenuentry.cpp
===================================================================
--- mythtv/libs/libmythtv/tvosdmenuentry.cpp (revision 25121)
+++ mythtv/libs/libmythtv/tvosdmenuentry.cpp (working copy)
@@ -236,6 +236,12 @@
"AUDIOSYNC", 1, 1, 1, 1, "Audio Sync"));
curMenuEntries.append(new TVOSDMenuEntry(
"TOGGLEUPMIX", 1, 1, 1, 1, "Toggle Upmixer"));
+ if (gContext->GetNumSetting("AdvancedAudioSettings", false) &&
+ gContext->GetNumSetting("VuvuzelaFilter", false))
+ {
+ curMenuEntries.append(new TVOSDMenuEntry(
+ "TOGGLEVUVUZELA", 1, 1, 1, 1, "Toggle Vuvuzela Filter"));
+ }
curMenuEntries.append(new TVOSDMenuEntry(
"TIMESTRETCH", 1, 1, 1, 1, "Time Stretch"));
curMenuEntries.append(new TVOSDMenuEntry(
Index: mythtv/libs/libmyth/audiooutputbase.h
===================================================================
--- mythtv/libs/libmyth/audiooutputbase.h (revision 25121)
+++ mythtv/libs/libmyth/audiooutputbase.h (working copy)
@@ -16,6 +16,7 @@
// MythTV headers
#include "audiooutput.h"
+#include "audiooutpututil.h"
#include "samplerate.h"
#include "mythverbose.h"
@@ -44,6 +45,8 @@
virtual void SetStretchFactor(float factor);
virtual float GetStretchFactor(void) const;
virtual bool ToggleUpmix(void);
+ virtual bool ToggleVuvuzela(void);
+ virtual bool IsVuvuzela(void) { return vuvuzela; }
virtual void Reset(void);
@@ -230,6 +233,10 @@
/** main audio buffer */
unsigned char audiobuffer[kAudioRingBufferSize];
uint memory_corruption_test4;
+
+ //Vuvuzela filter
+ bool vuvuzela, last_vuvuzela;
+ AudioOutputUtil::Notch *notch_instance;
};
#endif
Index: mythtv/libs/libmyth/audiooutpututil.h
===================================================================
--- mythtv/libs/libmyth/audiooutpututil.h (revision 0)
+++ mythtv/libs/libmyth/audiooutpututil.h (revision 0)
@@ -0,0 +1,71 @@
+#ifndef AUDIOOUTPUTUTIL
+#define AUDIOOUTPUTUTIL
+
+using namespace std;
+
+#define IIR_NUM_COEFFICIENTS (3) // Assumed biquads
+
+class AudioOutputUtil
+{
+ public:
+
+ //Notch Filter / IRR transformation
+ // Parameters
+ typedef struct
+ {
+ uint N;
+ uint num_biquads;
+ float b[IIR_NUM_COEFFICIENTS];
+ float a[IIR_NUM_COEFFICIENTS];
+ } IIR_Parameters;
+
+ // State information
+ typedef struct
+ {
+ float a[IIR_NUM_COEFFICIENTS];
+ float b[IIR_NUM_COEFFICIENTS];
+ float x_mem[IIR_NUM_COEFFICIENTS];
+ float y_mem[IIR_NUM_COEFFICIENTS];
+ } IIR_State;
+
+ // Instance
+ typedef struct
+ {
+ IIR_Parameters parameters;
+ IIR_State state;
+ } IIR;
+
+ // Parameters
+ typedef struct
+ {
+ uint N;
+ float frequency; // Notch frequency
+ float attenuation_dB; // Notch attenuation
+ } Notch_Parameters;
+
+ // State information
+
+ typedef struct
+ {
+ float pole_position;
+ float frequency_offset;
+ float a1s;
+ float a2;
+ float depth_factor;
+ float w0; // Input weight
+ float w1; // Output weight
+ } Notch_State;
+
+ // Instance
+ typedef struct
+ {
+ Notch_Parameters parameters;
+ Notch_State state;
+ IIR iir;
+ } Notch;
+
+ static void notch_update(Notch &instance, float fs);
+ static void notch_execute(Notch &instance, float *in, float *out);
+};
+
+#endif
Index: mythtv/libs/libmyth/audiooutputbase.cpp
===================================================================
--- mythtv/libs/libmyth/audiooutputbase.cpp (revision 25121)
+++ mythtv/libs/libmyth/audiooutputbase.cpp (working copy)
@@ -13,6 +13,7 @@
#include "compat.h"
#include "audiooutputbase.h"
#include "audiooutputdigitalencoder.h"
+#include "audiooutpututil.h"
#include "SoundTouch.h"
#include "freesurround.h"
@@ -73,7 +74,9 @@
memory_corruption_test1(0xdeadbeef),
memory_corruption_test2(0xdeadbeef),
memory_corruption_test3(0xdeadbeef),
- memory_corruption_test4(0xdeadbeef)
+ memory_corruption_test4(0xdeadbeef),
+ vuvuzela(false), last_vuvuzela(false),
+ notch_instance(NULL)
{
// The following are not bzero() because MS Windows doesn't like it.
memset(&src_data, 0, sizeof(SRC_DATA));
@@ -197,7 +200,17 @@
return (configured_audio_channels == 6);
}
+bool AudioOutputBase::ToggleVuvuzela(void)
+{
+ vuvuzela = !vuvuzela;
+ const AudioSettings settings(audio_bits, source_audio_channels,
+ audio_codec, source_audio_samplerate,
+ audio_passthru);
+ Reconfigure(settings);
+ return vuvuzela;
+}
+
void AudioOutputBase::Reconfigure(const AudioSettings &orig_settings)
{
AudioSettings settings = orig_settings;
@@ -229,6 +242,7 @@
settings.samplerate == audio_samplerate && !need_resampler &&
settings.use_passthru == audio_passthru &&
lneeds_upmix == needs_upmix &&
+ last_vuvuzela == vuvuzela &&
laudio_reenc == audio_reenc);
bool upmix_deps =
(lsource_audio_channels == source_audio_channels);
@@ -247,6 +261,8 @@
return;
}
+ last_vuvuzela = vuvuzela;
+
KillAudio();
QMutexLocker lock1(&audio_buflock);
@@ -264,6 +280,7 @@
audio_codec = settings.codec;
audio_passthru = settings.use_passthru;
needs_upmix = lneeds_upmix;
+ vuvuzela = last_vuvuzela;
if (audio_bits != 8 && audio_bits != 16)
{
@@ -341,6 +358,13 @@
need_resampler = true;
}
+ if (vuvuzela)
+ {
+ VERBOSE(VB_AUDIO, LOC + "Vuvuzela filter enabled. Go Socceroos Go!");
+ if (!notch_instance)
+ notch_instance = new AudioOutputUtil::Notch;
+ }
+
if (audio_enc)
{
VERBOSE(VB_AUDIO, LOC + "Creating AC-3 Encoder");
@@ -497,6 +521,13 @@
needs_upmix = false;
audio_enc = false;
+ if (notch_instance)
+ {
+ delete notch_instance;
+ notch_instance = NULL;
+ }
+ vuvuzela = false;
+
CloseDevice();
killAudioLock.unlock();
@@ -790,7 +821,6 @@
VERBOSE(VB_IMPORTANT, LOC_ERR +
QString("Error occurred while resampling audio: %1")
.arg(src_strerror(error)));
-
src_float_to_short_array(src_data.data_out, (short int*)tmp_buff,
src_data.output_frames_gen*audio_channels);
@@ -844,7 +874,7 @@
QMutexLocker lock1(&audio_buflock);
// resample input if necessary
- if (need_resampler && src_ctx)
+ if ((need_resampler && src_ctx) || (vuvuzela && notch_instance))
{
// Convert to floats
short *buf_ptr = (short*)buffer;
@@ -853,17 +883,47 @@
src_in[sample] = (float)buf_ptr[sample] / (1.0 * 0x8000);
}
- src_data.input_frames = samples;
- src_data.end_of_input = 0;
- int error = src_process(src_ctx, &src_data);
- if (error)
- VERBOSE(VB_IMPORTANT, LOC_ERR +
- QString("Error occurred while resampling audio: %1")
- .arg(src_strerror(error)));
- src_float_to_short_array(src_data.data_out, (short int*)tmp_buff,
- src_data.output_frames_gen*audio_channels);
+ if (vuvuzela)
+ {
+ notch_instance->parameters.N = samples * audio_channels;
+ // Notch attenuation
+ notch_instance->parameters.attenuation_dB = 35.0f;
+
+ // Notch frequency
+ notch_instance->parameters.frequency = 233.0f;
+ AudioOutputUtil::notch_update (*notch_instance, (float)source_audio_samplerate);
+ AudioOutputUtil::notch_execute (*notch_instance, src_in, src_out);
+ notch_instance->parameters.frequency = 466.0f; // 1st harmonic
+ AudioOutputUtil::notch_update (*notch_instance, (float)source_audio_samplerate);
+ AudioOutputUtil::notch_execute (*notch_instance, src_out, src_in);
+ notch_instance->parameters.frequency = 932.0f; // 2nd harmonic
+ AudioOutputUtil::notch_update (*notch_instance, (float)source_audio_samplerate);
+ AudioOutputUtil::notch_execute (*notch_instance, src_in, src_out);
+ notch_instance->parameters.frequency = 1864.0f; // 3rd harmonic
+ AudioOutputUtil::notch_update (*notch_instance, (float)source_audio_samplerate);
+ AudioOutputUtil::notch_execute (*notch_instance, src_out, src_in);
+ }
- _AddSamples(tmp_buff, true, src_data.output_frames_gen, timecode);
+ if (need_resampler)
+ {
+ src_data.input_frames = samples;
+ src_data.end_of_input = 0;
+ int error = src_process(src_ctx, &src_data);
+ if (error)
+ VERBOSE(VB_IMPORTANT, LOC_ERR +
+ QString("Error occurred while resampling audio: %1")
+ .arg(src_strerror(error)));
+ src_float_to_short_array(src_data.data_out, (short int*)tmp_buff,
+ src_data.output_frames_gen*audio_channels);
+
+ _AddSamples(tmp_buff, true, src_data.output_frames_gen, timecode);
+ }
+ else
+ {
+ src_float_to_short_array(src_in, (short int*)tmp_buff,
+ samples * audio_channels);
+ _AddSamples(tmp_buff, true, samples, timecode);
+ }
}
else
{
Index: mythtv/libs/libmyth/libmyth.pro
===================================================================
--- mythtv/libs/libmyth/libmyth.pro (revision 25121)
+++ mythtv/libs/libmyth/libmyth.pro (working copy)
@@ -30,7 +30,7 @@
HEADERS += audiopulseutil.h
HEADERS += programinfo.h programlist.h programinfoupdater.h
HEADERS += recordingtypes.h remoteutil.h
-HEADERS += rawsettingseditor.h
+HEADERS += rawsettingseditor.h audiooutpututil.h
# remove when everything is switched to mythui
HEADERS += virtualkeyboard_qt.h
@@ -54,7 +54,7 @@
SOURCES += audiopulseutil.cpp
SOURCES += programinfo.cpp programlist.cpp programinfoupdater.cpp
SOURCES += recordingtypes.cpp remoteutil.cpp
-SOURCES += rawsettingseditor.cpp
+SOURCES += rawsettingseditor.cpp audiooutpututil.cpp
# remove when everything is switched to mythui
SOURCES += virtualkeyboard_qt.cpp
Index: mythtv/libs/libmyth/audiooutput.h
===================================================================
--- mythtv/libs/libmyth/audiooutput.h (revision 25121)
+++ mythtv/libs/libmyth/audiooutput.h (working copy)
@@ -71,6 +71,8 @@
virtual void bufferOutputData(bool y) = 0;
virtual int readOutputData(unsigned char *read_buffer, int max_length) = 0;
virtual bool ToggleUpmix(void) = 0;
+ virtual bool ToggleVuvuzela(void) = 0;
+ virtual bool IsVuvuzela(void) = 0;
protected:
void Error(const QString &msg);
Index: mythtv/libs/libmyth/audiooutpututil.cpp
===================================================================
--- mythtv/libs/libmyth/audiooutpututil.cpp (revision 0)
+++ mythtv/libs/libmyth/audiooutpututil.cpp (revision 0)
@@ -0,0 +1,143 @@
+#include "dsputil.h"
+#include "mythconfig.h"
+#include "audiooutpututil.h"
+
+#define IIR_NUM_COEFFICIENTS (3) // Assumed biquads
+
+static void iir_update (AudioOutputUtil::IIR &instance)
+{
+ // Clear the filter state
+ bzero(&instance.state.x_mem[0], IIR_NUM_COEFFICIENTS * sizeof(float));
+ bzero(&instance.state.y_mem[0], IIR_NUM_COEFFICIENTS * sizeof(float));
+
+ memcpy(&instance.state.b[0], &instance.parameters.b[0],
+ IIR_NUM_COEFFICIENTS * sizeof(float));
+ memcpy(&instance.state.a[0], &instance.parameters.a[0],
+ IIR_NUM_COEFFICIENTS * sizeof(float));
+}
+
+/* Notch filter (c) 2010 Hydrix & Jean-Yves Avenard */
+/* www.hydrix.com */
+
+// Processes a single block of samples with a single IIR biquad stage
+// N M
+// SUM a(k+1) y(n-k) = SUM b(k+1) x(n-k) for 1<=n<=length(x)
+// k=0 k=0
+// where N=length(a)-1 and M=length(b)-1.
+// Vector s is the initial state of the system. The final state is also returned
+// The state vector is a column vector whose length is equal to the
+// length of the longest coefficient vector minus one.
+static void iir_biquad (float* x, float* y,
+ float* a, float* b,
+ float* x_mem, float* y_mem,
+ unsigned int N)
+{
+ // Direct Form I
+ // N+1 N+1
+ // y(n) = - SUM a(k) y(n-k) + SUM b(k) x(n-k) for 0 <= n <length(x)
+ // k=1 k=0
+ unsigned int n = 0;
+ unsigned int k = 0;
+ float y_n_minus_k = 0.0f;
+ float x_n_minus_k = 0.0f;
+ for (n = 0; n < N; n++)
+ {
+ y[n] = x[n] * b[0];
+
+ for (k = 1; k < IIR_NUM_COEFFICIENTS; k++)
+ {
+ signed int n_minus_k = n - k;
+ if (n_minus_k >= 0)
+ {
+ x_n_minus_k = x[n_minus_k];
+ y_n_minus_k = y[n_minus_k];
+ }
+ else
+ {
+ x_n_minus_k = x_mem[-n_minus_k-1];
+ y_n_minus_k = y_mem[-n_minus_k-1];
+ }
+
+ y[n] -= a[k] * y_n_minus_k;
+ y[n] += b[k] * x_n_minus_k;
+ }
+ }
+
+ // Save input and output state, latest first
+ unsigned int state_offset = N - 1;
+ for (n=0; n < (IIR_NUM_COEFFICIENTS-1); n++)
+ {
+ x_mem[n] = x[state_offset];
+ y_mem[n] = y[state_offset];
+ state_offset--;
+ }
+}
+
+static void iir_execute(AudioOutputUtil::IIR &instance, float* x, float* y)
+{
+ iir_biquad(x, y,
+ &instance.state.a[0], &instance.state.b[0],
+ &instance.state.x_mem[0], &instance.state.y_mem[0],
+ instance.parameters.N);
+}
+
+// Notch filter
+#define PI_FLOAT (3.14159265358979f)
+
+void AudioOutputUtil::notch_update (Notch &instance, float fs)
+{
+ instance.state.pole_position = 0.99f;
+ instance.state.frequency_offset = 0.0f; // in normalised frequency (1.0 = fs)
+ instance.state.a1s = -instance.state.pole_position;
+ instance.state.a2 = -(instance.state.pole_position * instance.state.pole_position);
+ instance.state.depth_factor = 0.999f;
+
+ // Calculate filter coefficients
+ // Direct-form IIR
+ // Ref: http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt and others
+ float normalised_notch_frequency = (2.0f * instance.parameters.frequency / fs);
+ normalised_notch_frequency += instance.state.frequency_offset;
+ float frequency_factor = -2.0f * cosf(PI_FLOAT * normalised_notch_frequency);
+ float a1 = frequency_factor * instance.state.a1s;
+ float a2 = instance.state.a2;
+ float b1 = frequency_factor * instance.state.depth_factor;
+ float b2 = instance.state.depth_factor * instance.state.depth_factor;
+ instance.iir.parameters.N = instance.parameters.N;
+ instance.iir.parameters.a[0] = 1.0f;
+ instance.iir.parameters.a[1] = -a1;
+ instance.iir.parameters.a[2] = -a2;
+ instance.iir.parameters.b[0] = 1.0f;
+ instance.iir.parameters.b[1] = b1;
+ instance.iir.parameters.b[2] = b2;
+
+ // Initialise the IIR stage
+ iir_update(instance.iir);
+
+ // The notch filter strongly attenuates at the notch frequency.
+ // The output is the weighted sum of the input and the
+ // notch-filtered input. The weights are calculated from the
+ // attenuation parameters
+ // instance.state.w0 = pow(10.0, (-instance.parameters.attenuation_dB / 20.0));
+ // instance.state.w1 = 1.0 - instance.state.w0;
+ float w0 = powf(10.0f, (-instance.parameters.attenuation_dB / 20.0f));
+ float w1 = 1.0f - w0;
+ instance.state.w0 = w0;
+ instance.state.w1 = w1;
+
+ return;
+}
+
+// Processes a single block of samples
+void AudioOutputUtil::notch_execute (Notch &instance, float *in, float *out)
+{
+ // Apply the rejection filter
+ iir_execute(instance.iir, in, out);
+
+ // The output is the weighted sum of the input and the
+ // notch-filtered input
+ for (uint i=0; i < instance.parameters.N; i++)
+ {
+ out[i] *= instance.state.w1;
+ out[i] += instance.state.w0 * in[i];
+ }
+}
Index: mythtv/programs/mythfrontend/globalsettings.cpp
===================================================================
--- mythtv/programs/mythfrontend/globalsettings.cpp (revision 25121)
+++ mythtv/programs/mythfrontend/globalsettings.cpp (working copy)
@@ -181,6 +181,17 @@
return gc;
}
+static HostCheckBox *VuvuzelaFilter()
+{
+ HostCheckBox *gc = new HostCheckBox("VuvuzelaFilter");
+ gc->setLabel(QObject::tr("Enable vuvuzela filter"));
+ gc->setValue(false);
+ gc->setHelpText(QObject::tr("With this option enabled, a dedicated vuvuzela "
+ "filter option will be accessible in the playback "
+ "menu"));
+ return gc;
+}
+
static HostCheckBox *MythControlsVolume()
{
HostCheckBox *gc = new HostCheckBox("MythControlsVolume");
@@ -3485,6 +3496,7 @@
settings2->addChild(srcqualityoverride);
settings2->addChild(sub3);
+ group2->addChild(VuvuzelaFilter());
group2->addChild(settings2);
group2->addChild(AggressiveBuffer());
Index: mythtv/programs/mythtranscode/transcode.cpp
===================================================================
--- mythtv/programs/mythtranscode/transcode.cpp (revision 25121)
+++ mythtv/programs/mythtranscode/transcode.cpp (working copy)
@@ -217,7 +217,16 @@
// Do nothing
return false;
}
-
+ virtual bool ToggleVuvuzela(void)
+ {
+ // Do nothing
+ return false;
+ }
+ virtual bool IsVuvuzela(void)
+ {
+ // Do nothing
+ return false;
+ }
virtual void SetSWVolume(int new_volume, bool save)
{
// Do nothing
Index: mythbackend.init
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-12/mythbackend.init,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- mythbackend.init 8 Jun 2010 19:15:42 -0000 1.2
+++ mythbackend.init 18 Jun 2010 12:00:22 -0000 1.3
@@ -22,7 +22,7 @@
binary=/usr/bin/mythbackend
prog=mythbackend
RETVAL=0
-OPTIONS="$OPTIONS --daemon --logfile --user ${MYTHBACKEND_USER} /var/log/mythtv/$prog.log --pidfile /var/run/$prog.pid"
+OPTIONS="$OPTIONS --daemon --user ${MYTHBACKEND_USER} --logfile /var/log/mythtv/$prog.log --pidfile /var/run/$prog.pid"
start() {
echo -n $"Starting $prog: "
mythplugins-0.23-svnfixes.patch:
mytharchive/mythburn/scripts/mythburn.py | 91 +++++-----
mythgallery/mythgallery/galleryutil.cpp | 5
mythgallery/mythgallery/glsingleview.cpp | 1
mythmusic/mythmusic/dbcheck.cpp | 5
mythvideo/mythvideo/dbcheck.cpp | 5
mythweb/classes/Database.php | 4
mythweb/classes/Database/Query.php | 4
mythweb/classes/Database/Query/mysql.php | 4
mythweb/classes/Database/Query/mysqlicompat.php | 4
mythweb/classes/Database/mysql.php | 4
mythweb/classes/Database/mysqlicompat.php | 4
mythweb/classes/JSON.php | 4
mythweb/classes/Modules.php | 4
mythweb/classes/MythBackend.php | 4
mythweb/classes/MythFrontend.php | 4
mythweb/includes/class_autoload.php | 4
mythweb/includes/cleanup.php | 4
mythweb/includes/config.php | 4
mythweb/includes/css.php | 4
mythweb/includes/data_dir.php | 4
mythweb/includes/database.php | 4
mythweb/includes/db_update.php | 4
mythweb/includes/defines.php | 4
mythweb/includes/errordisplay.php | 4
mythweb/includes/errors.php | 4
mythweb/includes/init.php | 4
mythweb/includes/jobqueue.php | 4
mythweb/includes/lockdown.php | 4
mythweb/includes/mobile.php | 4
mythweb/includes/mouseovers.php | 4
mythweb/includes/php_version_check.php | 4
mythweb/includes/session.php | 4
mythweb/includes/skin.php | 4
mythweb/includes/sorting.php | 4
mythweb/includes/translate.php | 4
mythweb/includes/utils.php | 4
mythweb/js/pngbehavior.htc | 2
mythweb/js/table_sort.js | 4
mythweb/js/utils.js | 4
mythweb/modules/_shared/tmpl/_errors/db_access_denied.php | 4
mythweb/modules/_shared/tmpl/_errors/db_vars_error.php | 4
mythweb/modules/_shared/tmpl/_errors/error.php | 4
mythweb/modules/_shared/tmpl/_errors/fatal.php | 4
mythweb/modules/_shared/tmpl/_errors/lockdown.php | 4
mythweb/modules/_shared/tmpl/_errors/no_modules.php | 4
mythweb/modules/_shared/tmpl/_errors/site_down.php | 4
mythweb/modules/_shared/tmpl/_errors/unknown_module.php | 4
mythweb/modules/_shared/tmpl/default/footer.php | 4
mythweb/modules/_shared/tmpl/default/header.php | 4
mythweb/modules/_shared/tmpl/default/welcome.php | 4
mythweb/modules/_shared/tmpl/iPod/footer.php | 4
mythweb/modules/_shared/tmpl/iPod/header.php | 4
mythweb/modules/_shared/tmpl/iPod/welcome.php | 4
mythweb/modules/_shared/tmpl/lite/footer.php | 4
mythweb/modules/_shared/tmpl/lite/header.php | 4
mythweb/modules/_shared/tmpl/lite/welcome.php | 4
mythweb/modules/_shared/tmpl/wap/footer.php | 4
mythweb/modules/_shared/tmpl/wap/header.php | 4
mythweb/modules/_shared/tmpl/wap/welcome.php | 4
mythweb/modules/backend_log/handler.php | 4
mythweb/modules/backend_log/init.php | 4
mythweb/modules/backend_log/tmpl/default/backend_log.php | 4
mythweb/modules/backend_log/tmpl/default/welcome.php | 4
mythweb/modules/backend_log/tmpl/lite/backend_log.php | 4
mythweb/modules/backend_log/tmpl/lite/welcome.php | 4
mythweb/modules/database/init.php | 4
mythweb/modules/database/set_settings.php | 4
mythweb/modules/database/tmpl/default/set_settings.php | 4
mythweb/modules/music/handler.php | 4
mythweb/modules/music/init.php | 4
mythweb/modules/music/mp3act_functions.php | 4
mythweb/modules/music/stream.php | 4
mythweb/modules/music/tmpl/default/welcome.php | 4
mythweb/modules/mythtv/init.php | 4
mythweb/modules/mythtv/set_keys.php | 4
mythweb/modules/mythtv/set_settings.php | 4
mythweb/modules/mythtv/tmpl/default/set_keys.php | 4
mythweb/modules/mythtv/tmpl/default/set_settings.php | 4
mythweb/modules/mythtv/tmpl/lite/set_keys.php | 4
mythweb/modules/mythtv/tmpl/lite/set_settings.php | 4
mythweb/modules/mythweb/init.php | 4
mythweb/modules/mythweb/set_defaults.php | 4
mythweb/modules/mythweb/set_flvplayer.php | 4
mythweb/modules/mythweb/set_session.php | 4
mythweb/modules/mythweb/tmpl/default/set_defaults.php | 4
mythweb/modules/mythweb/tmpl/default/set_flvplayer.php | 4
mythweb/modules/mythweb/tmpl/default/set_session.php | 4
mythweb/modules/mythweb/tmpl/lite/set_defaults.php | 4
mythweb/modules/mythweb/tmpl/lite/set_flvplayer.php | 4
mythweb/modules/mythweb/tmpl/lite/set_session.php | 4
mythweb/modules/remote/do.php | 4
mythweb/modules/remote/handler.php | 4
mythweb/modules/remote/init.php | 4
mythweb/modules/remote/keys.php | 4
mythweb/modules/remote/play_program_on_frontend.php | 4
mythweb/modules/remote/tmpl/default/keys.php | 4
mythweb/modules/remote/tmpl/default/remote.php | 4
mythweb/modules/remote/tmpl/default/welcome.php | 4
mythweb/modules/remote/tmpl/iPod/play_program_on_frontend.php | 4
mythweb/modules/remote/tmpl/iPod/welcome.php | 4
mythweb/modules/settings/handler.php | 4
mythweb/modules/settings/init.php | 4
mythweb/modules/settings/tmpl/default/header.php | 4
mythweb/modules/settings/tmpl/default/welcome.php | 4
mythweb/modules/settings/tmpl/lite/header.php | 4
mythweb/modules/settings/tmpl/lite/mythweb.php | 4
mythweb/modules/settings/tmpl/lite/welcome.php | 4
mythweb/modules/stats/handler.php | 4
mythweb/modules/stats/init.php | 4
mythweb/modules/stats/tmpl/default/stats.php | 4
mythweb/modules/stats/tmpl/default/welcome.php | 4
mythweb/modules/stats/tmpl/lite/stats.php | 4
mythweb/modules/stats/tmpl/lite/welcome.php | 4
mythweb/modules/status/handler.php | 4
mythweb/modules/status/init.php | 4
mythweb/modules/status/tmpl/default/status.php | 4
mythweb/modules/status/tmpl/default/welcome.php | 4
mythweb/modules/status/tmpl/lite/status.php | 4
mythweb/modules/status/tmpl/lite/welcome.php | 4
mythweb/modules/status/tmpl/wap/status.php | 4
mythweb/modules/stream/handler.pl | 4
mythweb/modules/stream/init.php | 4
mythweb/modules/stream/set_protocol.php | 4
mythweb/modules/stream/stream_asx.pl | 4
mythweb/modules/stream/stream_flv.pl | 4
mythweb/modules/stream/stream_flvp.pl | 4
mythweb/modules/stream/stream_mp4.pl | 4
mythweb/modules/stream/stream_raw.pl | 4
mythweb/modules/stream/tmpl/default/set_protocol.php | 4
mythweb/modules/stream/tmpl/lite/set_protocol.php | 4
mythweb/modules/stream/tv.pl | 4
mythweb/modules/tv/canned_searches.conf.php | 4
mythweb/modules/tv/channel.php | 4
mythweb/modules/tv/classes/Channel.php | 4
mythweb/modules/tv/classes/Channel_List.php | 4
mythweb/modules/tv/classes/Program.php | 4
mythweb/modules/tv/classes/Recording.php | 4
mythweb/modules/tv/classes/Schedule.php | 4
mythweb/modules/tv/detail.php | 4
mythweb/modules/tv/get_pixmap.php | 4
mythweb/modules/tv/handler.php | 4
mythweb/modules/tv/includes/channels.php | 4
mythweb/modules/tv/includes/programs.php | 4
mythweb/modules/tv/includes/recording_schedules.php | 4
mythweb/modules/tv/includes/schedule_utils.php | 4
mythweb/modules/tv/init.php | 4
mythweb/modules/tv/list.php | 4
mythweb/modules/tv/list_recording_groups.php | 4
mythweb/modules/tv/list_shows_in_title_and_group.php | 4
mythweb/modules/tv/list_titles_in_group.php | 4
mythweb/modules/tv/opensearch.php | 4
mythweb/modules/tv/recorded.php | 4
mythweb/modules/tv/schedules.php | 4
mythweb/modules/tv/schedules_custom.php | 4
mythweb/modules/tv/schedules_manual.php | 4
mythweb/modules/tv/search.php | 4
mythweb/modules/tv/searches.php | 4
mythweb/modules/tv/set_channels.php | 4
mythweb/modules/tv/set_playgroup.php | 4
mythweb/modules/tv/set_screens.php | 4
mythweb/modules/tv/set_session.php | 4
mythweb/modules/tv/submenu.php | 4
mythweb/modules/tv/tmpl/default/channel.php | 4
mythweb/modules/tv/tmpl/default/detail.php | 4
mythweb/modules/tv/tmpl/default/list.php | 4
mythweb/modules/tv/tmpl/default/list_data.php | 4
mythweb/modules/tv/tmpl/default/recorded.php | 4
mythweb/modules/tv/tmpl/default/schedules.php | 4
mythweb/modules/tv/tmpl/default/schedules_custom.php | 4
mythweb/modules/tv/tmpl/default/schedules_manual.php | 4
mythweb/modules/tv/tmpl/default/search.php | 4
mythweb/modules/tv/tmpl/default/searches.php | 4
mythweb/modules/tv/tmpl/default/set_channels.php | 4
mythweb/modules/tv/tmpl/default/set_playgroup.php | 4
mythweb/modules/tv/tmpl/default/set_screens.php | 4
mythweb/modules/tv/tmpl/default/set_session.php | 4
mythweb/modules/tv/tmpl/default/upcoming.php | 4
mythweb/modules/tv/tmpl/default/welcome.php | 4
mythweb/modules/tv/tmpl/iPod/detail.php | 4
mythweb/modules/tv/tmpl/iPod/list_recording_groups.php | 4
mythweb/modules/tv/tmpl/iPod/list_shows_in_title_and_group.php | 4
mythweb/modules/tv/tmpl/iPod/list_titles_in_group.php | 4
mythweb/modules/tv/tmpl/iPod/search.php | 4
mythweb/modules/tv/tmpl/iPod/submenu.php | 4
mythweb/modules/tv/tmpl/iPod/upcoming.php | 4
mythweb/modules/tv/tmpl/iPod/welcome.php | 4
mythweb/modules/tv/tmpl/ical/upcoming.php | 4
mythweb/modules/tv/tmpl/lite/channel.php | 4
mythweb/modules/tv/tmpl/lite/detail.php | 4
mythweb/modules/tv/tmpl/lite/list.php | 4
mythweb/modules/tv/tmpl/lite/recorded.php | 4
mythweb/modules/tv/tmpl/lite/schedules.php | 4
mythweb/modules/tv/tmpl/lite/schedules_custom.php | 4
mythweb/modules/tv/tmpl/lite/schedules_manual.php | 4
mythweb/modules/tv/tmpl/lite/search.php | 4
mythweb/modules/tv/tmpl/lite/searches.php | 4
mythweb/modules/tv/tmpl/lite/set_channels.php | 10 -
mythweb/modules/tv/tmpl/lite/set_session.php | 4
mythweb/modules/tv/tmpl/lite/upcoming.php | 4
mythweb/modules/tv/tmpl/lite/welcome.php | 4
mythweb/modules/tv/tmpl/rss/recorded.php | 4
mythweb/modules/tv/tmpl/wap/channel.php | 4
mythweb/modules/tv/tmpl/wap/detail.php | 4
mythweb/modules/tv/tmpl/wap/list.php | 4
mythweb/modules/tv/tmpl/wap/recorded.php | 4
mythweb/modules/tv/tmpl/wap/search.php | 4
mythweb/modules/tv/tmpl/wap/upcoming.php | 4
mythweb/modules/tv/upcoming.php | 4
mythweb/modules/video/edit.php | 4
mythweb/modules/video/handler.php | 4
mythweb/modules/video/imdb.php | 4
mythweb/modules/video/init.php | 4
mythweb/modules/video/scan.php | 4
mythweb/modules/video/set_settings.php | 4
mythweb/modules/video/tmpl/default/set_settings.php | 4
mythweb/modules/video/tmpl/default/video.php | 4
mythweb/modules/video/tmpl/default/welcome.php | 4
mythweb/modules/weather/classes/WeatherScreen.php | 4
mythweb/modules/weather/handler.php | 4
mythweb/modules/weather/init.php | 4
mythweb/modules/weather/set_screen.php | 4
mythweb/modules/weather/tmpl/default/set_screen.php | 4
mythweb/modules/weather/tmpl/default/weather.18h.php | 4
mythweb/modules/weather/tmpl/default/weather.3d.php | 4
mythweb/modules/weather/tmpl/default/weather.6d.php | 4
mythweb/modules/weather/tmpl/default/weather.am.php | 4
mythweb/modules/weather/tmpl/default/weather.cc.php | 4
mythweb/modules/weather/tmpl/default/weather.php | 4
mythweb/modules/weather/tmpl/default/weather.sm.php | 4
mythweb/modules/weather/tmpl/default/welcome.php | 4
mythweb/modules/welcome.php | 4
mythweb/mythweb.php | 4
mythweb/mythweb.pl | 4
mythzoneminder/mythzoneminder/zmclient.cpp | 34 ++-
mythzoneminder/mythzoneminder/zmdefines.h | 1
mythzoneminder/mythzoneminder/zmliveplayer.cpp | 18 +
settings.pro | 2
237 files changed, 550 insertions(+), 528 deletions(-)
Index: mythplugins-0.23-svnfixes.patch
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-12/mythplugins-0.23-svnfixes.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- mythplugins-0.23-svnfixes.patch 8 Jun 2010 19:15:42 -0000 1.2
+++ mythplugins-0.23-svnfixes.patch 18 Jun 2010 12:00:22 -0000 1.3
@@ -3463,6 +3463,114 @@
# @version $Revision$
# @author $Author$
#
+diff -Naurp mythplugins-0.23-release/mythzoneminder/mythzoneminder/zmclient.cpp mythplugins-0.23/mythzoneminder/mythzoneminder/zmclient.cpp
+--- mythplugins-0.23-release/mythzoneminder/mythzoneminder/zmclient.cpp 2009-04-10 20:04:30.000000000 -0400
++++ mythplugins-0.23/mythzoneminder/mythzoneminder/zmclient.cpp 2010-06-09 15:36:20.626015000 -0400
+@@ -521,6 +521,7 @@ void ZMClient::getEventFrame(int monitor
+ if (!readData(data, imageSize))
+ {
+ VERBOSE(VB_GENERAL, "ZMClient::getEventFrame(): Failed to get image data");
++ delete [] data;
+ return;
+ }
+
+@@ -532,8 +533,9 @@ void ZMClient::getEventFrame(int monitor
+ if (!(*image)->loadFromData(data, imageSize, "JPEG"))
+ {
+ VERBOSE(VB_GENERAL, "ZMClient::getEventFrame(): Failed to load image from data");
+- return;
+ }
++
++ delete [] data;
+ }
+
+ void ZMClient::getAnalyseFrame(int monitorID, int eventID, int frameNo, QImage &image)
+@@ -558,13 +560,17 @@ void ZMClient::getAnalyseFrame(int monit
+ VERBOSE(VB_GENERAL, "ZMClient::getAnalyseFrame(): Failed to get image data");
+ image = QImage();
+ }
+-
+- // extract the image data and create a QImage from it
+- if (!image.loadFromData(data, imageSize, "JPEG"))
++ else
+ {
+- VERBOSE(VB_GENERAL, "ZMClient::getAnalyseFrame(): Failed to load image from data");
+- image = QImage();
++ // extract the image data and create a QImage from it
++ if (!image.loadFromData(data, imageSize, "JPEG"))
++ {
++ VERBOSE(VB_GENERAL, "ZMClient::getAnalyseFrame(): Failed to load image from data");
++ image = QImage();
++ }
+ }
++
++ delete [] data;
+ }
+
+ int ZMClient::getLiveFrame(int monitorID, QString &status, unsigned char* buffer, int bufferSize)
+@@ -659,9 +665,21 @@ void ZMClient::getMonitorList(vector<Mon
+ item->zmaStatus = "";
+ item->events = 0;
+ item->status = "";
++ item->isV4L2 = (item->palette > 255);
+ monitorList->push_back(item);
+- VERBOSE(VB_IMPORTANT, QString("Monitor: %1 (%2) is using palette: %3")
+- .arg(item->name).arg(item->id).arg(item->palette));
++ if (item->isV4L2)
++ {
++ QString pallete;
++ pallete = (char) (item->palette & 0xff);
++ pallete += (char) ((item->palette >> 8) & 0xff);
++ pallete += (char) ((item->palette >> 16) & 0xff);
++ pallete += (char) ((item->palette >> 24) & 0xff);
++ VERBOSE(VB_IMPORTANT, QString("Monitor: %1 (%2) is using palette: %3 (%4)")
++ .arg(item->name).arg(item->id).arg(item->palette).arg(pallete));
++ }
++ else
++ VERBOSE(VB_IMPORTANT, QString("Monitor: %1 (%2) is using palette: %3")
++ .arg(item->name).arg(item->id).arg(item->palette));
+ }
+ }
+
+diff -Naurp mythplugins-0.23-release/mythzoneminder/mythzoneminder/zmdefines.h mythplugins-0.23/mythzoneminder/mythzoneminder/zmdefines.h
+--- mythplugins-0.23-release/mythzoneminder/mythzoneminder/zmdefines.h 2009-05-15 22:26:03.000000000 -0400
++++ mythplugins-0.23/mythzoneminder/mythzoneminder/zmdefines.h 2010-06-09 15:36:20.626015000 -0400
+@@ -61,6 +61,7 @@ typedef struct
+ int width;
+ int height;
+ int palette;
++ bool isV4L2;
+ } Monitor;
+
+ #endif
+diff -Naurp mythplugins-0.23-release/mythzoneminder/mythzoneminder/zmliveplayer.cpp mythplugins-0.23/mythzoneminder/mythzoneminder/zmliveplayer.cpp
+--- mythplugins-0.23-release/mythzoneminder/mythzoneminder/zmliveplayer.cpp 2009-11-28 13:50:27.000000000 -0500
++++ mythplugins-0.23/mythzoneminder/mythzoneminder/zmliveplayer.cpp 2010-06-09 15:36:20.626015000 -0400
+@@ -450,10 +450,20 @@ void Player::updateFrame(const unsigned
+ r = buffer[pos_data++];
+ g = buffer[pos_data++];
+ b = buffer[pos_data++];
+- m_rgba[pos_rgba++] = b;
+- m_rgba[pos_rgba++] = g;
+- m_rgba[pos_rgba++] = r;
+- m_rgba[pos_rgba++] = 0xff;
++ if (m_monitor.isV4L2)
++ {
++ m_rgba[pos_rgba++] = g;
++ m_rgba[pos_rgba++] = r;
++ m_rgba[pos_rgba++] = b;
++ m_rgba[pos_rgba++] = 0xff;
++ }
++ else
++ {
++ m_rgba[pos_rgba++] = b;
++ m_rgba[pos_rgba++] = g;
++ m_rgba[pos_rgba++] = r;
++ m_rgba[pos_rgba++] = 0xff;
++ }
+ }
+ }
+
diff -Naurp mythplugins-0.23-release/settings.pro mythplugins-0.23/settings.pro
--- mythplugins-0.23-release/settings.pro 2010-02-16 17:59:56.000000000 -0500
+++ mythplugins-0.23/settings.pro 2010-05-11 11:29:36.773259000 -0400
mythtv-0.23-svnfixes.patch:
VERSION | 1
bindings/perl/IO/Socket/INET/MythTV.pm | 4 -
bindings/perl/MythTV.pm | 11 +-
bindings/perl/MythTV/Channel.pm | 64 ++++++++--------
bindings/perl/MythTV/Program.pm | 4 -
bindings/perl/MythTV/Recording.pm | 4 -
bindings/perl/MythTV/StorageGroup.pm | 4 -
bindings/python/MythTV/MythData.py | 4 -
bindings/python/MythTV/MythFunc.py | 13 ++-
configure | 18 ++--
contrib/config_files/lirc/lircrc.native.example.mceusb2 | 2
contrib/icons/master_iconmap/channel_icons.pl | 4 -
contrib/maintenance/flush_deleted_recgroup.pl | 4 -
contrib/maintenance/optimize_mythdb.pl | 4 -
contrib/user_jobs/firewire_primer.pl | 4 -
contrib/user_jobs/mythlink.pl | 4 -
libs/libavcodec/libavcodec.pro | 5 -
libs/libmyth/audiooutputpulse.cpp | 13 ++-
libs/libmyth/mythcontext.cpp | 9 +-
libs/libmyth/schemawizard.cpp | 17 ++++
libs/libmythdb/mythdirs.cpp | 5 -
libs/libmythdvdnav/libmythdvdnav.pro | 3
libs/libmythsoundtouch/AAFilter.cpp | 2
libs/libmythsoundtouch/AAFilter.h | 2
libs/libmythsoundtouch/BPMDetect.h | 2
libs/libmythsoundtouch/FIFOSampleBuffer.cpp | 2
libs/libmythsoundtouch/FIFOSampleBuffer.h | 2
libs/libmythsoundtouch/FIFOSamplePipe.h | 2
libs/libmythsoundtouch/FIRFilter.cpp | 2
libs/libmythsoundtouch/FIRFilter.h | 2
libs/libmythsoundtouch/RateTransposer.cpp | 2
libs/libmythsoundtouch/RateTransposer.h | 2
libs/libmythsoundtouch/STTypes.h | 2
libs/libmythsoundtouch/SoundTouch.cpp | 2
libs/libmythsoundtouch/SoundTouch.h | 2
libs/libmythsoundtouch/TDStretch.cpp | 2
libs/libmythsoundtouch/TDStretch.h | 2
libs/libmythsoundtouch/cpu_detect.h | 2
libs/libmythsoundtouch/cpu_detect_x86_gcc.cpp | 2
libs/libmythsoundtouch/mmx_gcc.cpp | 2
libs/libmythtv/avformatdecoder.cpp | 32 ++++++--
libs/libmythtv/dbcheck.cpp | 9 --
libs/libmythtv/tv_play.cpp | 19 +---
libs/libmythtv/tv_play.h | 2
libs/libmythui/mythfontmanager.cpp | 6 -
libs/libmythui/mythmainwindow.cpp | 12 +--
libs/libmythui/mythsystem.cpp | 4 -
libs/libmythui/xmlparsebase.cpp | 6 -
libs/libswscale/libswscale.pro | 6 +
programs/mythbackend/main.cpp | 7 +
programs/mythcommflag/main.cpp | 35 +++++++-
programs/mythtv-setup/main.cpp | 2
settings.pro | 2
version.pro | 2
54 files changed, 235 insertions(+), 146 deletions(-)
Index: mythtv-0.23-svnfixes.patch
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-12/mythtv-0.23-svnfixes.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- mythtv-0.23-svnfixes.patch 8 Jun 2010 19:15:42 -0000 1.2
+++ mythtv-0.23-svnfixes.patch 18 Jun 2010 12:00:23 -0000 1.3
@@ -742,8 +742,38 @@
// $Id$
diff -Naurp mythtv-0.23-release/libs/libmythtv/avformatdecoder.cpp mythtv-0.23/libs/libmythtv/avformatdecoder.cpp
--- mythtv-0.23-release/libs/libmythtv/avformatdecoder.cpp 2010-04-29 20:08:03.000000000 -0400
-+++ mythtv-0.23/libs/libmythtv/avformatdecoder.cpp 2010-05-12 10:45:47.290448000 -0400
-@@ -1418,6 +1418,8 @@ void AvFormatDecoder::InitVideoCodec(AVS
++++ mythtv-0.23/libs/libmythtv/avformatdecoder.cpp 2010-06-10 00:02:51.816777000 -0400
+@@ -1291,6 +1291,14 @@ static float normalized_fps(AVStream *st
+ fps = tmpfps;
+ }
+
++ // and finally try the ffmpeg estimated rate
++ if (fps > 121.0f || fps < 3.0f)
++ {
++ float tmpfps = av_q2d(stream->r_frame_rate);
++ if (tmpfps > 20 && tmpfps < 70)
++ fps = tmpfps;
++ }
++
+ // If it is still out of range, just assume NTSC...
+ fps = (fps > 121.0f) ? (30000.0f / 1001.0f) : fps;
+ return fps;
+@@ -1386,11 +1394,10 @@ void AvFormatDecoder::InitVideoCodec(AVS
+ {
+ fps = normalized_fps(stream, enc);
+
+-
+- if (stream->sample_aspect_ratio.num)
+- aspect_ratio = av_q2d(stream->sample_aspect_ratio);
+- else if (enc->sample_aspect_ratio.num)
++ if (enc->sample_aspect_ratio.num)
+ aspect_ratio = av_q2d(enc->sample_aspect_ratio);
++ else if (stream->sample_aspect_ratio.num)
++ aspect_ratio = av_q2d(stream->sample_aspect_ratio);
+ else
+ aspect_ratio = 1.0f;
+
+@@ -1418,6 +1425,8 @@ void AvFormatDecoder::InitVideoCodec(AVS
enc->rate_emu = 0;
enc->error_rate = 0;
@@ -752,7 +782,7 @@
AVCodec *codec = avcodec_find_decoder(enc->codec_id);
// look for a vdpau capable codec
if (codec_is_vdpau(video_codec_id) && !CODEC_IS_VDPAU(codec))
-@@ -1465,7 +1467,7 @@ void AvFormatDecoder::InitVideoCodec(AVS
+@@ -1465,7 +1474,7 @@ void AvFormatDecoder::InitVideoCodec(AVS
else if (codec && codec->capabilities & CODEC_CAP_DR1 &&
(IS_DR1_PIX_FMT(enc->pix_fmt) /* HACK -- begin */
/* allow unknown pixel format to avoid regressions*/
@@ -761,7 +791,7 @@
/* HACK -- end*/)
{
enc->flags |= CODEC_FLAG_EMU_EDGE;
-@@ -2402,6 +2404,13 @@ int get_avf_buffer(struct AVCodecContext
+@@ -2402,6 +2411,13 @@ int get_avf_buffer(struct AVCodecContext
{
AvFormatDecoder *nd = (AvFormatDecoder *)(c->opaque);
@@ -775,7 +805,7 @@
VideoFrame *frame = nd->GetNVP()->GetNextVideoFrame(true);
for (int i = 0; i < 3; i++)
-@@ -4361,6 +4370,12 @@ bool AvFormatDecoder::GetFrame(DecodeTyp
+@@ -4361,6 +4377,12 @@ bool AvFormatDecoder::GetFrame(DecodeTyp
GetNVP()->DiscardVideoFrame(xf);
}
}
@@ -884,6 +914,36 @@
void SwitchInputs(PlayerContext*, uint inputid);
void ToggleInputs(PlayerContext*, uint inputid = 0);
void SwitchCards(PlayerContext*,
+diff -Naurp mythtv-0.23-release/libs/libmythui/mythfontmanager.cpp mythtv-0.23/libs/libmythui/mythfontmanager.cpp
+--- mythtv-0.23-release/libs/libmythui/mythfontmanager.cpp 2010-02-24 02:41:32.000000000 -0500
++++ mythtv-0.23/libs/libmythui/mythfontmanager.cpp 2010-06-08 18:21:22.370095000 -0400
+@@ -23,7 +23,7 @@ static MythFontManager *gFontManager = N
+ void MythFontManager::LoadFonts(const QString &directory,
+ const QString ®isteredFor)
+ {
+- if (directory.isEmpty() || registeredFor.isEmpty())
++ if (directory.isEmpty() || directory == "/" || registeredFor.isEmpty())
+ return;
+
+ // Load the font files from this directory
+@@ -100,7 +100,7 @@ void MythFontManager::ReleaseFonts(const
+ void MythFontManager::LoadFontsFromDirectory(const QString &directory,
+ const QString ®isteredFor)
+ {
+- if (directory.isEmpty() || registeredFor.isEmpty())
++ if (directory.isEmpty() || directory == "/" || registeredFor.isEmpty())
+ return;
+
+ VERBOSE(VB_FILE + VB_EXTRA, QString("Scanning directory '%1' "
+@@ -124,7 +124,7 @@ void MythFontManager::LoadFontsFromDirec
+ void MythFontManager::LoadFontFile(const QString &fontPath,
+ const QString ®isteredFor)
+ {
+- if (fontPath.isEmpty() || registeredFor.isEmpty())
++ if (fontPath.isEmpty() || fontPath == "/" || registeredFor.isEmpty())
+ return;
+
+ QMutexLocker locker(&m_lock);
diff -Naurp mythtv-0.23-release/libs/libmythui/mythmainwindow.cpp mythtv-0.23/libs/libmythui/mythmainwindow.cpp
--- mythtv-0.23-release/libs/libmythui/mythmainwindow.cpp 2010-04-29 20:59:58.000000000 -0400
+++ mythtv-0.23/libs/libmythui/mythmainwindow.cpp 2010-05-13 14:40:15.407856000 -0400
Index: mythtv.spec
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-12/mythtv.spec,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -r1.68 -r1.69
--- mythtv.spec 8 Jun 2010 19:15:43 -0000 1.68
+++ mythtv.spec 18 Jun 2010 12:00:23 -0000 1.69
@@ -65,7 +65,7 @@
%define desktop_vendor RPMFusion
# SVN Revision number and branch ID
-%define _svnrev r25048
+%define _svnrev r25124
%define branch release-0-23-fixes
#
@@ -81,7 +81,7 @@
%if "%{branch}" == "trunk"
Release: 0.1.svn.%{_svnrev}%{?dist}
%else
-Release: 3%{?dist}
+Release: 4%{?dist}
%endif
# The primary license is GPLv2+, but bits are borrowed from a number of
@@ -132,6 +132,7 @@
Patch0: mythtv-%{version}-svnfixes.patch
Source1: http://www.mythtv.org/mc/mythplugins-%{version}.tar.bz2
Patch1: mythplugins-%{version}-svnfixes.patch
+Patch2: mythtv-0.23-shutup-vuvuzela.patch
Source10: PACKAGE-LICENSING
Source101: mythbackend.sysconfig
Source102: mythbackend.init
@@ -841,6 +842,7 @@
cd mythtv-%{version}
%patch0 -p1
+%patch2 -p1
# Drop execute permissions on contrib bits, since they'll be %doc
find contrib/ -type f -exec chmod -x "{}" \;
@@ -965,7 +967,7 @@
--extra-cxxflags="%{optflags} -fomit-frame-pointer" \
%endif
%ifarch %{ix86}
- --cpu=i686 --tune=i686 --enable-mmx \
+ --cpu=%{_target_cpu} --tune=%{_target_cpu} --enable-mmx \
%endif
%if %{with_proc_opt}
--enable-proc-opt \
@@ -1477,6 +1479,13 @@
################################################################################
%changelog
+* Wed Jun 16 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.23-4
+- Update to release-0-23-fixes branch, svn revision 25124
+- Add anti-vuvuzela-filter patch from mythtv ticket #8568, because
+ I likes me some World Cup w/o the headache
+- Fix 32-bit x86 build on F11 i586 target
+- Fix a flub in the initscript from the prior build
+
* Tue Jun 08 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.23-3
- Update to release-0-23-fixes branch, svn revision 25048
- Includes pulseaudio white noise and seeking fixes (rpmfusion bz#1260)
14 years, 5 months
rpms/ndiswrapper-kmod/F-13 ndiswrapper-kmod.spec,1.47,1.48
by Thorsten Leemhuis
Author: thl
Update of /cvs/free/rpms/ndiswrapper-kmod/F-13
In directory se02.es.rpmfusion.net:/tmp/cvs-serv15493
Modified Files:
ndiswrapper-kmod.spec
Log Message:
* Fri Jun 18 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 1.54-4.23
- rebuild for new kernel
14 years, 5 months
rpms/wl-kmod/F-13 wl-kmod.spec,1.57,1.58
by Thorsten Leemhuis
Author: thl
Update of /cvs/nonfree/rpms/wl-kmod/F-13
In directory se02.es.rpmfusion.net:/tmp/cvs-serv15299
Modified Files:
wl-kmod.spec
Log Message:
* Fri Jun 18 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 5.60.48.36-1.8
- rebuild for new kernel
Index: wl-kmod.spec
===================================================================
RCS file: /cvs/nonfree/rpms/wl-kmod/F-13/wl-kmod.spec,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -r1.57 -r1.58
--- wl-kmod.spec 28 May 2010 14:30:01 -0000 1.57
+++ wl-kmod.spec 18 Jun 2010 09:02:53 -0000 1.58
@@ -7,7 +7,7 @@
Name: wl-kmod
Version: 5.60.48.36
-Release: 1%{?dist}.7
+Release: 1%{?dist}.8
Summary: Kernel module for broadcom wireless devices
Group: System Environment/Kernel
License: Redistributable, no modification permitted
@@ -82,6 +82,9 @@
rm -rf $RPM_BUILD_ROOT
%changelog
+* Fri Jun 18 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 5.60.48.36-1.8
+- rebuild for new kernel
+
* Fri May 28 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 5.60.48.36-1.7
- rebuild for new kernel
14 years, 5 months