diff --git a/packages/mediacenter/xbmc-theme-Confluence/meta b/packages/mediacenter/xbmc-theme-Confluence/meta index 97330158cf..01d5c827d9 100644 --- a/packages/mediacenter/xbmc-theme-Confluence/meta +++ b/packages/mediacenter/xbmc-theme-Confluence/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="xbmc-theme-Confluence" -PKG_VERSION="f70eb43" +PKG_VERSION="648b6fc" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/xbmc-theme-Confluence/patches/xbmc-theme-Confluence-f70eb43-001-add_oe_settings_to_homescreen.patch b/packages/mediacenter/xbmc-theme-Confluence/patches/xbmc-theme-Confluence-648b6fc-001-add_oe_settings_to_homescreen.patch similarity index 100% rename from packages/mediacenter/xbmc-theme-Confluence/patches/xbmc-theme-Confluence-f70eb43-001-add_oe_settings_to_homescreen.patch rename to packages/mediacenter/xbmc-theme-Confluence/patches/xbmc-theme-Confluence-648b6fc-001-add_oe_settings_to_homescreen.patch diff --git a/packages/mediacenter/xbmc/meta b/packages/mediacenter/xbmc/meta index 3e0dca1c55..6c4f9c5e45 100644 --- a/packages/mediacenter/xbmc/meta +++ b/packages/mediacenter/xbmc/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="xbmc" -PKG_VERSION="f70eb43" +PKG_VERSION="648b6fc" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/xbmc/patches/xbmc-f70eb43-001-add_support_to_specify_GIT_REV-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-001-add_support_to_specify_GIT_REV-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-f70eb43-001-add_support_to_specify_GIT_REV-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-648b6fc-001-add_support_to_specify_GIT_REV-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-f70eb43-303-fix_libdvd_xFLAGS-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-303-fix_libdvd_xFLAGS-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-f70eb43-303-fix_libdvd_xFLAGS-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-648b6fc-303-fix_libdvd_xFLAGS-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-f70eb43-311-fix_rsxs_build-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-311-fix_rsxs_build-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-f70eb43-311-fix_rsxs_build-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-648b6fc-311-fix_rsxs_build-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-f70eb43-321-texturepacker-hostflags-and-rework.patch b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-321-texturepacker-hostflags-and-rework.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-f70eb43-321-texturepacker-hostflags-and-rework.patch rename to packages/mediacenter/xbmc/patches/xbmc-648b6fc-321-texturepacker-hostflags-and-rework.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-f70eb43-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-f70eb43-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-648b6fc-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-f70eb43-452-change_lcd_content-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-452-change_lcd_content-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-f70eb43-452-change_lcd_content-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-648b6fc-452-change_lcd_content-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-f70eb43-453-add_openelec.tv_RSS_news-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-453-add_openelec.tv_RSS_news-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-f70eb43-453-add_openelec.tv_RSS_news-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-648b6fc-453-add_openelec.tv_RSS_news-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-f70eb43-454-disable_backslash-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-454-disable_backslash-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-f70eb43-454-disable_backslash-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-648b6fc-454-disable_backslash-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-f70eb43-457-fix_connection_check-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-457-fix_connection_check-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-f70eb43-457-fix_connection_check-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-648b6fc-457-fix_connection_check-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-f70eb43-463-add_remote_devinput-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-463-add_remote_devinput-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-f70eb43-463-add_remote_devinput-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-648b6fc-463-add_remote_devinput-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-f70eb43-601-add_multithread_support_for_hi10p-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-601-add_multithread_support_for_hi10p-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-f70eb43-601-add_multithread_support_for_hi10p-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-648b6fc-601-add_multithread_support_for_hi10p-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-648b6fc-999.02-PR2081.patch b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-999.02-PR2081.patch new file mode 100644 index 0000000000..20161dc538 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-999.02-PR2081.patch @@ -0,0 +1,168 @@ +From 453e2b2c40ba023bc4f092601931ca51f64bd88b Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 15 Jan 2013 20:55:48 +0000 +Subject: [PATCH] [rbp] Apply volume control at audio_mixer when possible + +--- + xbmc/cores/omxplayer/OMXAudio.cpp | 105 +++++++++++++++++++++++++++---------- + 1 file changed, 78 insertions(+), 27 deletions(-) + +diff --git a/xbmc/cores/omxplayer/OMXAudio.cpp b/xbmc/cores/omxplayer/OMXAudio.cpp +index 5399b10..a19004a 100644 +--- a/xbmc/cores/omxplayer/OMXAudio.cpp ++++ b/xbmc/cores/omxplayer/OMXAudio.cpp +@@ -37,10 +37,6 @@ + #include "guilib/LocalizeStrings.h" + #include "cores/AudioEngine/Utils/AEConvert.h" + +-#ifndef VOLUME_MINIMUM +-#define VOLUME_MINIMUM -6000 // -60dB +-#endif +- + using namespace std; + + #define OMX_MAX_CHANNELS 10 +@@ -77,6 +73,19 @@ + + static const uint16_t DTSFSCod [] = {0, 8000, 16000, 32000, 0, 0, 11025, 22050, 44100, 0, 0, 12000, 24000, 48000, 0, 0}; + ++// 7.1 downmixing coefficients ++const float downmixing_coefficients_8[OMX_AUDIO_MAXCHANNELS] = { ++ // L R ++ /* L */ 1, 0, ++ /* R */ 0, 1, ++ /* C */ 0.7071, 0.7071, ++ /* LFE */ 0.7071, 0.7071, ++ /* Ls */ 0.7071, 0, ++ /* Rs */ 0, 0.7071, ++ /* Lr */ 0.7071, 0, ++ /* Rr */ 0, 0.7071 ++}; ++ + ////////////////////////////////////////////////////////////////////// + // Construction/Destruction + ////////////////////////////////////////////////////////////////////// +@@ -198,8 +207,6 @@ bool COMXAudio::Initialize(AEAudioFormat format, std::string& device, OMXClock * + + m_drc = 0; + +- m_CurrentVolume = g_settings.m_fVolumeLevel; +- + memset(m_input_channels, 0x0, sizeof(m_input_channels)); + memset(m_output_channels, 0x0, sizeof(m_output_channels)); + memset(&m_wave_header, 0x0, sizeof(m_wave_header)); +@@ -545,8 +552,6 @@ bool COMXAudio::Initialize(AEAudioFormat format, std::string& device, OMXClock * + m_first_frame = true; + m_last_pts = DVD_NOPTS_VALUE; + +- SetCurrentVolume(m_CurrentVolume); +- + CLog::Log(LOGDEBUG, "COMXAudio::Initialize Ouput bps %d samplerate %d channels %d buffer size %d bytes per second %d", + (int)m_pcm_output.nBitPerSample, (int)m_pcm_output.nSamplingRate, (int)m_pcm_output.nChannels, m_BufferLen, m_BytesPerSec); + CLog::Log(LOGDEBUG, "COMXAudio::Initialize Input bps %d samplerate %d channels %d buffer size %d bytes per second %d", +@@ -694,20 +699,76 @@ bool COMXAudio::SetCurrentVolume(float fVolume) + CSingleLock lock (m_critSection); + + if(!m_Initialized || m_Passthrough) +- return -1; +- ++ return false; ++ double gain = pow(10, (g_advancedSettings.m_ac3Gain - 12.0f) / 20.0); + m_CurrentVolume = fVolume; + +- OMX_AUDIO_CONFIG_VOLUMETYPE volume; +- OMX_INIT_STRUCTURE(volume); +- volume.nPortIndex = m_omx_render->GetInputPort(); ++ if (m_format.m_channelLayout.Count() > 2) ++ { ++ double r = fVolume; ++ const float* coeff = downmixing_coefficients_8; ++ int input_channels = 0; ++ ++ // normally we normalalise the levels, can be skipped (boosted) at risk of distortion ++ if(!g_guiSettings.GetBool("audiooutput.normalizelevels")) ++ { ++ double sum_L = 0; ++ double sum_R = 0; ++ ++ for(size_t i = 0; i < OMX_AUDIO_MAXCHANNELS; ++i) ++ { ++ if (m_input_channels[i] == OMX_AUDIO_ChannelMax) ++ break; ++ if(i & 1) ++ sum_R += coeff[i]; ++ else ++ sum_L += coeff[i]; ++ } ++ ++ r /= max(sum_L, sum_R); ++ } ++ ++ // the analogue volume is too quiet for some. Allow use of an advancedsetting to boost this (at risk of distortion) ++ r *= gain; + +- volume.bLinear = OMX_TRUE; +- float hardwareVolume = std::max(VOLUME_MINIMUM, std::min(VOLUME_MAXIMUM, fVolume)) * 100.0f; +- volume.sVolume.nValue = (int)hardwareVolume; ++ OMX_CONFIG_BRCMAUDIODOWNMIXCOEFFICIENTS mix; ++ OMX_INIT_STRUCTURE(mix); ++ mix.nPortIndex = m_omx_mixer.GetInputPort(); + +- m_omx_render->SetConfig(OMX_IndexConfigAudioVolume, &volume); ++ assert(sizeof(mix.coeff)/sizeof(mix.coeff[0]) == 16); + ++ for(size_t i = 0; i < 16; ++i) ++ mix.coeff[i] = static_cast(0x10000 * (coeff[i] * r)); ++ ++ OMX_ERRORTYPE omx_err = ++ m_omx_mixer.SetConfig(OMX_IndexConfigBrcmAudioDownmixCoefficients, &mix); ++ ++ if(omx_err != OMX_ErrorNone) ++ { ++ CLog::Log(LOGERROR, "%s::%s - error setting OMX_IndexConfigBrcmAudioDownmixCoefficients, error 0x%08x\n", ++ CLASSNAME, __func__, omx_err); ++ return false; ++ } ++ } ++ else ++ { ++ OMX_AUDIO_CONFIG_VOLUMETYPE volume; ++ OMX_INIT_STRUCTURE(volume); ++ volume.nPortIndex = m_omx_render->GetInputPort(); ++ ++ volume.bLinear = OMX_TRUE; ++ float hardwareVolume = fVolume * gain * 100.0f; ++ volume.sVolume.nValue = (int)(hardwareVolume + 0.5f); ++ ++ OMX_ERRORTYPE omx_err = ++ m_omx_render->SetConfig(OMX_IndexConfigAudioVolume, &volume); ++ if(omx_err != OMX_ErrorNone) ++ { ++ CLog::Log(LOGERROR, "%s::%s - error setting OMX_IndexConfigAudioVolume, error 0x%08x\n", ++ CLASSNAME, __func__, omx_err); ++ return false; ++ } ++ } + return true; + } + +@@ -885,16 +946,6 @@ unsigned int COMXAudio::AddPackets(const void* data, unsigned int len, double dt + } + } + +- if ((m_pcm_input.nChannels > m_pcm_output.nChannels) &&g_guiSettings.GetBool("audiooutput.normalizelevels")) +- { +- OMX_AUDIO_CONFIG_VOLUMETYPE volume; +- OMX_INIT_STRUCTURE(volume); +- volume.nPortIndex = m_omx_mixer.GetInputPort(); +- volume.bLinear = OMX_FALSE; +- volume.sVolume.nValue = (int)(g_advancedSettings.m_ac3Gain*100.0f+0.5f); +- m_omx_mixer.SetConfig(OMX_IndexConfigAudioVolume, &volume); +- } +- + memcpy(m_pcm_input.eChannelMapping, m_input_channels, sizeof(m_input_channels)); + m_pcm_input.nSamplingRate = m_format.m_sampleRate; + +-- +1.7.10 + diff --git a/packages/mediacenter/xbmc/patches/xbmc-648b6fc-999.03-PR2080.patch b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-999.03-PR2080.patch new file mode 100644 index 0000000000..7efe4c192a --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-999.03-PR2080.patch @@ -0,0 +1,103 @@ +From 5f33482f3bd2993576c6f7f616df68a9d6846d81 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 15 Jan 2013 20:46:07 +0000 +Subject: [PATCH] [rbp] Fix for audio out of sync part 2 + +--- + xbmc/cores/omxplayer/OMXAudio.cpp | 2 ++ + xbmc/cores/omxplayer/OMXVideo.cpp | 24 ++++++++++++++++++------ + xbmc/cores/omxplayer/OMXVideo.h | 2 +- + 3 files changed, 21 insertions(+), 7 deletions(-) + +diff --git a/xbmc/cores/omxplayer/OMXAudio.cpp b/xbmc/cores/omxplayer/OMXAudio.cpp +index 5399b10..1b2a1ef 100644 +--- a/xbmc/cores/omxplayer/OMXAudio.cpp ++++ b/xbmc/cores/omxplayer/OMXAudio.cpp +@@ -805,6 +805,8 @@ unsigned int COMXAudio::AddPackets(const void* data, unsigned int len, double dt + if(m_av_clock->AudioStart()) + { + omx_buffer->nFlags = OMX_BUFFERFLAG_STARTTIME; ++ if(pts == DVD_NOPTS_VALUE) ++ omx_buffer->nFlags |= OMX_BUFFERFLAG_TIME_UNKNOWN; + + m_last_pts = pts; + +diff --git a/xbmc/cores/omxplayer/OMXVideo.cpp b/xbmc/cores/omxplayer/OMXVideo.cpp +index b11aa22..0464790 100644 +--- a/xbmc/cores/omxplayer/OMXVideo.cpp ++++ b/xbmc/cores/omxplayer/OMXVideo.cpp +@@ -84,7 +84,6 @@ + m_deinterlace = false; + m_hdmi_clock_sync = false; + m_first_frame = true; +- m_contains_valid_pts= false; + } + + COMXVideo::~COMXVideo() +@@ -666,6 +665,9 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b + m_deinterlace, m_hdmi_clock_sync); + + m_first_frame = true; ++ // start from assuming all recent frames had valid pts ++ m_history_valid_pts = ~0; ++ + return true; + } + +@@ -720,6 +722,14 @@ unsigned int COMXVideo::GetSize() + return m_omx_decoder.GetInputBufferSize(); + } + ++static unsigned count_bits(int32_t value) ++{ ++ unsigned bits = 0; ++ for(;value;++bits) ++ value &= value - 1; ++ return bits; ++} ++ + int COMXVideo::Decode(uint8_t *pData, int iSize, double dts, double pts) + { + OMX_ERRORTYPE omx_err; +@@ -754,11 +764,11 @@ int COMXVideo::Decode(uint8_t *pData, int iSize, double dts, double pts) + + omx_buffer->nFlags = 0; + omx_buffer->nOffset = 0; +- +- // if a stream contains any pts values, then use those with UNKNOWNs. Otherwise try using dts. +- if(pts != DVD_NOPTS_VALUE) +- m_contains_valid_pts = true; +- if(pts == DVD_NOPTS_VALUE && !m_contains_valid_pts) ++ // some packed bitstream AVI files set almost all pts values to DVD_NOPTS_VALUE, but have a scattering of real pts values. ++ // the valid pts values match the dts values. ++ // if a stream has had more than 4 valid pts values in the last 16, the use UNKNOWN, otherwise use dts ++ m_history_valid_pts = (m_history_valid_pts << 1) | (pts != DVD_NOPTS_VALUE); ++ if(pts == DVD_NOPTS_VALUE && count_bits(m_history_valid_pts & 0xffff) < 4) + pts = dts; + + if(m_av_clock->VideoStart()) +@@ -766,6 +776,8 @@ int COMXVideo::Decode(uint8_t *pData, int iSize, double dts, double pts) + // only send dts on first frame to get nearly correct starttime + if(pts == DVD_NOPTS_VALUE) + pts = dts; ++ if(pts == DVD_NOPTS_VALUE) ++ omx_buffer->nFlags |= OMX_BUFFERFLAG_TIME_UNKNOWN; + omx_buffer->nFlags = OMX_BUFFERFLAG_STARTTIME; + CLog::Log(LOGDEBUG, "OMXVideo::Decode VDec : setStartTime %f\n", (pts == DVD_NOPTS_VALUE ? 0.0 : pts) / DVD_TIME_BASE); + m_av_clock->VideoStart(false); +diff --git a/xbmc/cores/omxplayer/OMXVideo.h b/xbmc/cores/omxplayer/OMXVideo.h +index 24cc6c8..180c2db 100644 +--- a/xbmc/cores/omxplayer/OMXVideo.h ++++ b/xbmc/cores/omxplayer/OMXVideo.h +@@ -90,7 +90,7 @@ class COMXVideo + bool m_deinterlace; + bool m_hdmi_clock_sync; + bool m_first_frame; +- bool m_contains_valid_pts; ++ uint32_t m_history_valid_pts; + + bool NaluFormatStartCodes(enum CodecID codec, uint8_t *in_extradata, int in_extrasize); + }; +-- +1.7.10 + diff --git a/packages/mediacenter/xbmc/patches/xbmc-648b6fc-999.04-PR2063.patch b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-999.04-PR2063.patch new file mode 100644 index 0000000000..35300ba168 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-999.04-PR2063.patch @@ -0,0 +1,184 @@ +From 9f5810f159200d9736556fe28806768d9dfd6c7b Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 14 Jan 2013 20:46:29 +0000 +Subject: [PATCH] Send mute commands to players not using AE + +--- + xbmc/Application.cpp | 38 +++++++++++++++++++++++++----------- + xbmc/cores/IPlayer.h | 2 ++ + xbmc/cores/amlplayer/AMLPlayer.cpp | 5 +++++ + xbmc/cores/amlplayer/AMLPlayer.h | 2 ++ + xbmc/cores/omxplayer/OMXPlayer.cpp | 9 ++++++++- + xbmc/cores/omxplayer/OMXPlayer.h | 3 +++ + 6 files changed, 47 insertions(+), 12 deletions(-) + +diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp +index 4c79137..b453e9f 100644 +--- a/xbmc/Application.cpp ++++ b/xbmc/Application.cpp +@@ -4117,6 +4117,13 @@ bool CApplication::PlayFile(const CFileItem& item, bool bRestart) + SetPlaySpeed(iSpeed); + } + ++ // if player has volume control, set it. ++ if (m_pPlayer && m_pPlayer->ControlsVolume()) ++ { ++ m_pPlayer->SetVolume(g_settings.m_fVolumeLevel); ++ m_pPlayer->SetMute(g_settings.m_bMute); ++ } ++ + if( IsPlayingAudio() ) + { + if (g_windowManager.GetActiveWindow() == WINDOW_FULLSCREEN_VIDEO) +@@ -5383,10 +5390,6 @@ void CApplication::SetHardwareVolume(float hardwareVolume) + value = 1.0f; + + CAEFactory::SetVolume(value); +- +- /* for platforms where we do not have AE */ +- if (!CAEFactory::GetEngine() && m_pPlayer) +- m_pPlayer->SetVolume(g_settings.m_fVolumeLevel); + } + + int CApplication::GetVolume() const +@@ -5401,6 +5404,13 @@ void CApplication::VolumeChanged() const + data["volume"] = GetVolume(); + data["muted"] = g_settings.m_bMute; + CAnnouncementManager::Announce(Application, "xbmc", "OnVolumeChanged", data); ++ ++ // if player has volume control, set it. ++ if (m_pPlayer && m_pPlayer->ControlsVolume()) ++ { ++ m_pPlayer->SetVolume(g_settings.m_fVolumeLevel); ++ m_pPlayer->SetMute(g_settings.m_bMute); ++ } + } + + int CApplication::GetSubtitleDelay() const +@@ -5437,13 +5447,19 @@ void CApplication::SetPlaySpeed(int iSpeed) + m_iPlaySpeed = iSpeed; + + m_pPlayer->ToFFRW(m_iPlaySpeed); +- if (m_iPlaySpeed == 1) +- { // restore volume +- m_pPlayer->SetVolume(VOLUME_MAXIMUM); +- } +- else +- { // mute volume +- m_pPlayer->SetVolume(VOLUME_MINIMUM); ++ ++ // if player has volume control, set it. ++ if (m_pPlayer->ControlsVolume()) ++ { ++ if (m_iPlaySpeed == 1) ++ { // restore volume ++ m_pPlayer->SetVolume(VOLUME_MAXIMUM); ++ } ++ else ++ { // mute volume ++ m_pPlayer->SetVolume(VOLUME_MINIMUM); ++ } ++ m_pPlayer->SetMute(g_settings.m_bMute); + } + } + +diff --git a/xbmc/cores/IPlayer.h b/xbmc/cores/IPlayer.h +index 2042026..f2aa227 100644 +--- a/xbmc/cores/IPlayer.h ++++ b/xbmc/cores/IPlayer.h +@@ -114,6 +114,8 @@ class IPlayer + virtual void SeekPercentage(float fPercent = 0){} + virtual float GetPercentage(){ return 0;} + virtual float GetCachePercentage(){ return 0;} ++ virtual bool ControlsVolume(){ return false;} ++ virtual void SetMute(bool bOnOff){} + virtual void SetVolume(float volume){} + virtual void SetDynamicRangeCompression(long drc){} + virtual void GetAudioInfo( CStdString& strAudioInfo) = 0; +diff --git a/xbmc/cores/amlplayer/AMLPlayer.cpp b/xbmc/cores/amlplayer/AMLPlayer.cpp +index 13014e2..0aee9a9 100644 +--- a/xbmc/cores/amlplayer/AMLPlayer.cpp ++++ b/xbmc/cores/amlplayer/AMLPlayer.cpp +@@ -777,6 +777,11 @@ float CAMLPlayer::GetPercentage() + return 0.0f; + } + ++void CAMLPlayer::SetMute(bool bOnOff) ++{ ++ // TODO: set mute ++} ++ + void CAMLPlayer::SetVolume(float volume) + { + CLog::Log(LOGDEBUG, "CAMLPlayer::SetVolume(%f)", volume); +diff --git a/xbmc/cores/amlplayer/AMLPlayer.h b/xbmc/cores/amlplayer/AMLPlayer.h +index 54d8fae..39c8913 100644 +--- a/xbmc/cores/amlplayer/AMLPlayer.h ++++ b/xbmc/cores/amlplayer/AMLPlayer.h +@@ -80,6 +80,8 @@ class CAMLPlayer : public IPlayer, public CThread + virtual bool SeekScene(bool bPlus = true); + virtual void SeekPercentage(float fPercent = 0.0f); + virtual float GetPercentage(); ++ virtual void SetMute(bool bOnOff); ++ virtual bool ControlsVolume() {return true;} + virtual void SetVolume(float volume); + virtual void SetDynamicRangeCompression(long drc) {} + virtual void GetAudioInfo(CStdString &strAudioInfo); +diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp +index aac591c..ea02693 100644 +--- a/xbmc/cores/omxplayer/OMXPlayer.cpp ++++ b/xbmc/cores/omxplayer/OMXPlayer.cpp +@@ -460,6 +460,7 @@ bool COMXPlayer::OpenFile(const CFileItem &file, const CPlayerOptions &options) + m_UpdateApplication = 0; + m_offset_pts = 0; + m_current_volume = 0; ++ m_current_mute = false; + m_change_volume = true; + + m_item = file; +@@ -1262,7 +1263,7 @@ void COMXPlayer::Process() + + if(m_change_volume) + { +- m_player_audio.SetCurrentVolume(m_current_volume); ++ m_player_audio.SetCurrentVolume(m_current_mute ? VOLUME_MINIMUM : m_current_volume); + m_change_volume = false; + } + +@@ -4134,6 +4135,12 @@ void COMXPlayer::GetVideoRect(CRect& SrcRect, CRect& DestRect) + g_renderManager.GetVideoRect(SrcRect, DestRect); + } + ++void COMXPlayer::SetMute(bool bOnOff) ++{ ++ m_current_mute = bOnOff; ++ m_change_volume = true; ++} ++ + void COMXPlayer::SetVolume(float fVolume) + { + m_current_volume = fVolume; +diff --git a/xbmc/cores/omxplayer/OMXPlayer.h b/xbmc/cores/omxplayer/OMXPlayer.h +index 3a2a63d..d606e84 100644 +--- a/xbmc/cores/omxplayer/OMXPlayer.h ++++ b/xbmc/cores/omxplayer/OMXPlayer.h +@@ -227,6 +227,8 @@ class COMXPlayer : public IPlayer, public CThread, public IDVDPlayer + virtual float GetPercentage(); + virtual float GetCachePercentage(); + ++ virtual void SetMute(bool bOnOff); ++ virtual bool ControlsVolume() {return true;} + virtual void SetVolume(float fVolume); + virtual void SetDynamicRangeCompression(long drc) {} + virtual void GetAudioInfo(CStdString &strAudioInfo); +@@ -484,6 +486,7 @@ class COMXPlayer : public IPlayer, public CThread, public IDVDPlayer + CEvent m_ready; + + float m_current_volume; ++ bool m_current_mute; + bool m_change_volume; + CDVDOverlayContainer m_overlayContainer; + ECacheState m_caching; +-- +1.7.10 + diff --git a/packages/mediacenter/xbmc/patches/xbmc-648b6fc-999.04-PR2070.patch b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-999.04-PR2070.patch new file mode 100644 index 0000000000..c9fa03c4f3 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-648b6fc-999.04-PR2070.patch @@ -0,0 +1,95 @@ +From 67319ef389d0b664c92fa1753ba2bbdf4257dfbe Mon Sep 17 00:00:00 2001 +From: Stephan Raue +Date: Sun, 13 Jan 2013 19:21:34 +0100 +Subject: [PATCH] [automake] remove long time deprecated automake macros and + variables which are removed finally in automake-1.13 + +Signed-off-by: Stephan Raue +--- + lib/enca/configure.ac | 3 +-- + lib/libdvd/libdvdcss/configure.ac | 2 +- + lib/libmad/configure.ac | 2 +- + lib/libmicrohttpd/configure.ac | 2 +- + xbmc/visualizations/Goom/goom2k4-0/gtk-gui-devel/configure.in | 3 +-- + 5 files changed, 5 insertions(+), 7 deletions(-) + +diff --git a/lib/enca/configure.ac b/lib/enca/configure.ac +index e4aad8c..41434df 100644 +--- a/lib/enca/configure.ac ++++ b/lib/enca/configure.ac +@@ -24,7 +24,7 @@ AC_CONFIG_FILES( \ + test/Makefile \ + tools/Makefile) + +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + AM_INIT_AUTOMAKE([1.8 gnits check-news dist-bzip2]) + AM_ACLOCAL_INCLUDE(m4) + AM_MAINTAINER_MODE +@@ -40,7 +40,6 @@ AC_GNU_SOURCE + AC_AIX + AC_ISC_POSIX + AC_PROG_LIBTOOL +-AM_PROG_CC_STDC + AM_PROG_CC_C_O + AC_PROG_INSTALL + AC_PROG_LN_S +diff --git a/lib/libdvd/libdvdcss/configure.ac b/lib/libdvd/libdvdcss/configure.ac +index 1b9ff8b..a40a161 100644 +--- a/lib/libdvd/libdvdcss/configure.ac ++++ b/lib/libdvd/libdvdcss/configure.ac +@@ -5,7 +5,7 @@ AC_CONFIG_AUX_DIR(.auto) + AC_CANONICAL_SYSTEM + + AM_INIT_AUTOMAKE(libdvdcss, 1.2.10) +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + + AC_PROG_CC + AC_STDC_HEADERS +diff --git a/lib/libmad/configure.ac b/lib/libmad/configure.ac +index bc19d8e..e137ca6 100644 +--- a/lib/libmad/configure.ac ++++ b/lib/libmad/configure.ac +@@ -28,7 +28,7 @@ AC_CONFIG_SRCDIR([decoder.h]) + + AM_INIT_AUTOMAKE + +-AM_CONFIG_HEADER([config.h]) ++AC_CONFIG_HEADERS([config.h]) + + dnl System type. + +diff --git a/lib/libmicrohttpd/configure.ac b/lib/libmicrohttpd/configure.ac +index b314357..c00e55b 100644 +--- a/lib/libmicrohttpd/configure.ac ++++ b/lib/libmicrohttpd/configure.ac +@@ -23,7 +23,7 @@ + AC_PREREQ(2.57) + AC_INIT([libmicrohttpd], [0.4.5],[libmicrohttpd@gnu.org]) + AM_INIT_AUTOMAKE([libmicrohttpd], [0.4.5]) +-AM_CONFIG_HEADER([MHD_config.h]) ++AC_CONFIG_HEADERS([MHD_config.h]) + AC_CONFIG_MACRO_DIR([m4]) + AH_TOP([#define _GNU_SOURCE 1]) + +diff --git a/xbmc/visualizations/Goom/goom2k4-0/gtk-gui-devel/configure.in b/xbmc/visualizations/Goom/goom2k4-0/gtk-gui-devel/configure.in +index 4e94d4b..cc0646f 100644 +--- a/xbmc/visualizations/Goom/goom2k4-0/gtk-gui-devel/configure.in ++++ b/xbmc/visualizations/Goom/goom2k4-0/gtk-gui-devel/configure.in +@@ -2,11 +2,10 @@ dnl Process this file with autoconf to produce a configure script. + + AC_INIT(configure.in) + AM_INIT_AUTOMAKE(goom2, 0.1) +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + + AC_ISC_POSIX + AC_PROG_CC +-AM_PROG_CC_STDC + AC_HEADER_STDC + AC_C_BIGENDIAN + +-- +1.7.10 + diff --git a/packages/mediacenter/xbmc/patches/xbmc-f70eb43-301-automake-1.13.patch b/packages/mediacenter/xbmc/patches/xbmc-f70eb43-301-automake-1.13.patch deleted file mode 100644 index 29df211931..0000000000 --- a/packages/mediacenter/xbmc/patches/xbmc-f70eb43-301-automake-1.13.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -Naur xbmc-f70eb43/lib/enca/configure.ac xbmc-f70eb43.patch/lib/enca/configure.ac ---- xbmc-f70eb43/lib/enca/configure.ac 2013-01-11 17:06:57.000000000 +0100 -+++ xbmc-f70eb43.patch/lib/enca/configure.ac 2013-01-12 08:44:23.957554815 +0100 -@@ -24,7 +24,7 @@ - test/Makefile \ - tools/Makefile) - --AM_CONFIG_HEADER(config.h) -+AC_CONFIG_HEADERS(config.h) - AM_INIT_AUTOMAKE([1.8 gnits check-news dist-bzip2]) - AM_ACLOCAL_INCLUDE(m4) - AM_MAINTAINER_MODE -@@ -40,7 +40,6 @@ - AC_AIX - AC_ISC_POSIX - AC_PROG_LIBTOOL --AM_PROG_CC_STDC - AM_PROG_CC_C_O - AC_PROG_INSTALL - AC_PROG_LN_S -diff -Naur xbmc-f70eb43/lib/libdvd/libdvdcss/configure.ac xbmc-f70eb43.patch/lib/libdvd/libdvdcss/configure.ac ---- xbmc-f70eb43/lib/libdvd/libdvdcss/configure.ac 2013-01-11 17:06:58.000000000 +0100 -+++ xbmc-f70eb43.patch/lib/libdvd/libdvdcss/configure.ac 2013-01-12 08:45:45.361975774 +0100 -@@ -5,7 +5,7 @@ - AC_CANONICAL_SYSTEM - - AM_INIT_AUTOMAKE(libdvdcss, 1.2.10) --AM_CONFIG_HEADER(config.h) -+AC_CONFIG_HEADERS(config.h) - - AC_PROG_CC - AC_STDC_HEADERS