diff --git a/packages/mediacenter/xbmc-theme-Confluence/meta b/packages/mediacenter/xbmc-theme-Confluence/meta index f74c78c9b8..a6ae11cb80 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="12.1" +PKG_VERSION="12.1.2" if [ "$XBMC" = "master" ]; then PKG_VERSION="8ad691a" fi diff --git a/packages/mediacenter/xbmc-theme-Confluence/patches/12.1/xbmc-theme-Confluence-990.07-PR2449-2.patch b/packages/mediacenter/xbmc-theme-Confluence/patches/12.1.2/xbmc-theme-Confluence-990.07-PR2449-2.patch similarity index 100% rename from packages/mediacenter/xbmc-theme-Confluence/patches/12.1/xbmc-theme-Confluence-990.07-PR2449-2.patch rename to packages/mediacenter/xbmc-theme-Confluence/patches/12.1.2/xbmc-theme-Confluence-990.07-PR2449-2.patch diff --git a/packages/mediacenter/xbmc/meta b/packages/mediacenter/xbmc/meta index 6c1a5c11fa..11a35c57a3 100644 --- a/packages/mediacenter/xbmc/meta +++ b/packages/mediacenter/xbmc/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="xbmc" -PKG_VERSION="12.1" +PKG_VERSION="12.1.2" if [ "$XBMC" = "master" ]; then PKG_VERSION="8ad691a" fi diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-995.02-only_free_unused_textures_after_a_flip.patch b/packages/mediacenter/xbmc/patches/12.1.2/todo/xbmc-995.02-only_free_unused_textures_after_a_flip.patch.bk similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-995.02-only_free_unused_textures_after_a_flip.patch rename to packages/mediacenter/xbmc/patches/12.1.2/todo/xbmc-995.02-only_free_unused_textures_after_a_flip.patch.bk diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-452-change_lcd_content-0.1.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-452-change_lcd_content-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-452-change_lcd_content-0.1.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-452-change_lcd_content-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-601-add_multithread_support_for_hi10p-0.1.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-601-add_multithread_support_for_hi10p-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-601-add_multithread_support_for_hi10p-0.1.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-601-add_multithread_support_for_hi10p-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.00-remove-windowed-display-mode.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.00-remove-windowed-display-mode.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-990.00-remove-windowed-display-mode.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.00-remove-windowed-display-mode.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.04-PR1934.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.04-PR1934.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-990.04-PR1934.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.04-PR1934.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.05-PR2193.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.05-PR2193.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-990.05-PR2193.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.05-PR2193.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.07-PR2449-1.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.07-PR2449-1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-990.07-PR2449-1.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.07-PR2449-1.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.14-PR2231.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.14-PR2231.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-990.14-PR2231.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.14-PR2231.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.15-PR2323.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.15-PR2323.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-990.15-PR2323.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.15-PR2323.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.24-PR2403-01.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.24-PR2403-01.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-990.24-PR2403-01.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.24-PR2403-01.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.29-airplay-handle_empty_session_ids_from_itunes.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.29-airplay-handle_empty_session_ids_from_itunes.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-990.29-airplay-handle_empty_session_ids_from_itunes.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.29-airplay-handle_empty_session_ids_from_itunes.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.31-airplay-refactor_the_playstate_announcement.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.31-airplay-refactor_the_playstate_announcement.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-990.31-airplay-refactor_the_playstate_announcement.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.31-airplay-refactor_the_playstate_announcement.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.43-omxplayer-reevaluate_HasVideoAudio_after_a_stream_change.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.43-omxplayer-reevaluate_HasVideoAudio_after_a_stream_change.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-990.43-omxplayer-reevaluate_HasVideoAudio_after_a_stream_change.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.43-omxplayer-reevaluate_HasVideoAudio_after_a_stream_change.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.44-PR2549.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.44-PR2549.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-990.44-PR2549.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.44-PR2549.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.45-PR2435.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.45-PR2435.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-990.45-PR2435.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.45-PR2435.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.46-PR2539.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.46-PR2539.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-990.46-PR2539.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-990.46-PR2539.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-995.01-xvba_support-6b6e856.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-995.01-xvba_support-6b6e856.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-995.01-xvba_support-6b6e856.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-995.01-xvba_support-6b6e856.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-995.03-OMXPlayer-Audio-fix_incorrect_usage_of_flag_talled.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-995.03-OMXPlayer-Audio-fix_incorrect_usage_of_flag_talled.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-995.03-OMXPlayer-Audio-fix_incorrect_usage_of_flag_talled.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-995.03-OMXPlayer-Audio-fix_incorrect_usage_of_flag_talled.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-995.04-OMXPlayer-some_caching_fixes_for_pvr.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-995.04-OMXPlayer-some_caching_fixes_for_pvr.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-995.04-OMXPlayer-some_caching_fixes_for_pvr.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-995.04-OMXPlayer-some_caching_fixes_for_pvr.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-995.10-disable-alt-tab.patch b/packages/mediacenter/xbmc/patches/12.1.2/xbmc-995.10-disable-alt-tab.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.1/xbmc-995.10-disable-alt-tab.patch rename to packages/mediacenter/xbmc/patches/12.1.2/xbmc-995.10-disable-alt-tab.patch diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.02-PR2119.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.02-PR2119.patch deleted file mode 100644 index 9133fdc7ce..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.02-PR2119.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 5016973c68567e0691c9dc6c14d78de9e7d4558c Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Fri, 25 Jan 2013 23:00:13 +0000 -Subject: [PATCH] [rbp] Add support for new video codecs Latest firmware has a - start_x.elf with support for additional codecs. These are - MJPEG, VP6, VP8 and Ogg Theora. They are software GPU - accelerated and should be good for SD resolutions. This - update should be harmless with firmware that doesn't - support the new codecs - they will fail to open and behave - as before. - ---- - xbmc/cores/omxplayer/OMXVideo.cpp | 33 +++++++++++++++++++++++++++++++++ - 1 file changed, 33 insertions(+) - -diff --git a/xbmc/cores/omxplayer/OMXVideo.cpp b/xbmc/cores/omxplayer/OMXVideo.cpp -index 9215fd9..45e10fe 100644 ---- a/xbmc/cores/omxplayer/OMXVideo.cpp -+++ b/xbmc/cores/omxplayer/OMXVideo.cpp -@@ -69,7 +69,10 @@ - #define OMX_MPEG2V_DECODER OMX_VIDEO_DECODER - #define OMX_VC1_DECODER OMX_VIDEO_DECODER - #define OMX_WMV3_DECODER OMX_VIDEO_DECODER -+#define OMX_VP6_DECODER OMX_VIDEO_DECODER - #define OMX_VP8_DECODER OMX_VIDEO_DECODER -+#define OMX_THEORA_DECODER OMX_VIDEO_DECODER -+#define OMX_MJPEG_DECODER OMX_VIDEO_DECODER - - #define MAX_TEXT_LENGTH 1024 - -@@ -145,6 +148,7 @@ bool COMXVideo::NaluFormatStartCodes(enum CodecID codec, uint8_t *in_extradata, - - bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, bool hdmi_clock_sync) - { -+ bool vflip = false; - Close(); - - OMX_ERRORTYPE omx_err = OMX_ErrorNone; -@@ -248,6 +252,18 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b - m_codingType = OMX_VIDEO_CodingMPEG4; - m_video_codec_name = "omx-h263"; - break; -+ case CODEC_ID_VP6: -+ // this form is encoded upside down -+ vflip = true; -+ // fall through -+ case CODEC_ID_VP6F: -+ case CODEC_ID_VP6A: -+ // (role name) video_decoder.vp6 -+ // VP6 -+ decoder_name = OMX_VP6_DECODER; -+ m_codingType = OMX_VIDEO_CodingVP6; -+ m_video_codec_name = "omx-vp6"; -+ break; - case CODEC_ID_VP8: - // (role name) video_decoder.vp8 - // VP8 -@@ -255,6 +271,21 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b - m_codingType = OMX_VIDEO_CodingVP8; - m_video_codec_name = "omx-vp8"; - break; -+ case CODEC_ID_THEORA: -+ // (role name) video_decoder.theora -+ // theora -+ decoder_name = OMX_THEORA_DECODER; -+ m_codingType = OMX_VIDEO_CodingTheora; -+ m_video_codec_name = "omx-theora"; -+ break; -+ case CODEC_ID_MJPEG: -+ case CODEC_ID_MJPEGB: -+ // (role name) video_decoder.mjpg -+ // mjpg -+ decoder_name = OMX_MJPEG_DECODER; -+ m_codingType = OMX_VIDEO_CodingMJPEG; -+ m_video_codec_name = "omx-mjpeg"; -+ break; - case CODEC_ID_VC1: - case CODEC_ID_WMV3: - // (role name) video_decoder.vc1 -@@ -594,6 +625,8 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b - configDisplay.transform = OMX_DISPLAY_ROT0; - break; - } -+ if (vflip) -+ configDisplay.transform = OMX_DISPLAY_MIRROR_ROT180; - - omx_err = m_omx_render.SetConfig(OMX_IndexConfigDisplayRegion, &configDisplay); - if(omx_err != OMX_ErrorNone) --- -1.7.10 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.06-assert0_is_nasty_this_could_just_be_a_bad_audio.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.06-assert0_is_nasty_this_could_just_be_a_bad_audio.patch deleted file mode 100644 index 1d826af89b..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.06-assert0_is_nasty_this_could_just_be_a_bad_audio.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 2c915ea56abd68cf2310eb9d01936d19a2f118ab Mon Sep 17 00:00:00 2001 -From: davilla -Date: Tue, 19 Mar 2013 13:41:53 -0400 -Subject: [PATCH] changed, assert(0) is nasty, this could just be a bad audio - packet - ---- - xbmc/cores/dvdplayer/DVDPlayerAudio.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp -index 03ba5ea..e075cd6 100644 ---- a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp -+++ b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp -@@ -284,7 +284,7 @@ int CDVDPlayerAudio::DecodeFrame(DVDAudioFrame &audioframe, bool bDropPacket) - CLog::Log(LOGERROR, "CDVDPlayerAudio:DecodeFrame - Codec tried to consume more data than available. Potential memory corruption"); - m_decode.Release(); - m_pAudioCodec->Reset(); -- assert(0); -+ return DECODE_FLAG_ERROR; - } - - m_decode.data += len; --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.13-PR2488.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.13-PR2488.patch deleted file mode 100644 index cadf7916fc..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.13-PR2488.patch +++ /dev/null @@ -1,25 +0,0 @@ -From befdcfad8d2b14c9d935c3662a56853d617f884d Mon Sep 17 00:00:00 2001 -From: Voyager1 -Date: Sat, 23 Mar 2013 07:19:46 +0100 -Subject: [PATCH] [dvdplayer] fix deadlock when trying to go to disc menu - ---- - xbmc/cores/dvdplayer/DVDPlayer.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 3d2ca03..22c89dc 100644 ---- a/xbmc/cores/dvdplayer/DVDPlayer.cpp -+++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -3511,7 +3511,7 @@ bool CDVDPlayer::OnAction(const CAction &action) - pMenus->OnMenu(); - // send a message to everyone that we've gone to the menu - CGUIMessage msg(GUI_MSG_VIDEO_MENU_STARTED, 0, 0); -- g_windowManager.SendMessage(msg); -+ g_windowManager.SendThreadMessage(msg); - return true; - } - break; --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.17-PR2320.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.17-PR2320.patch deleted file mode 100644 index c800347443..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.17-PR2320.patch +++ /dev/null @@ -1,144 +0,0 @@ -From f2faaa846e03cbcc1ba11f09baad690c792035c5 Mon Sep 17 00:00:00 2001 -From: fritsch -Date: Thu, 28 Feb 2013 00:17:03 +0100 -Subject: [PATCH] AE: Revisit Device Opening. Try to set periodSize of 100 ms - and BufferSize of 800 ms - ---- - xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 98 ++++++++++++++++----------- - 1 file changed, 59 insertions(+), 39 deletions(-) - -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp -index fe40d17..821bd2e 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp -@@ -38,7 +38,6 @@ - #endif - - #define ALSA_OPTIONS (SND_PCM_NONBLOCK | SND_PCM_NO_AUTO_FORMAT | SND_PCM_NO_AUTO_CHANNELS | SND_PCM_NO_AUTO_RESAMPLE) --#define ALSA_PERIODS 16 - - #define ALSA_MAX_CHANNELS 16 - static enum AEChannel ALSAChannelMap[ALSA_MAX_CHANNELS + 1] = { -@@ -328,59 +327,80 @@ bool CAESinkALSA::InitializeHW(AEAudioFormat &format) - } - } - -- unsigned int periods; -- - snd_pcm_uframes_t periodSize, bufferSize; - snd_pcm_hw_params_get_buffer_size_max(hw_params, &bufferSize); -+ snd_pcm_hw_params_get_period_size_max(hw_params, &periodSize, NULL); -+ -+ /* -+ We want to make sure, that we have approx 500 to 800 ms Buffer with -+ a periodSize of approx 100 ms. -+ It is calced: -+ periodSize = sampleRate / 10 -+ buffersize = periodSize * 1 frame * 8. -+ */ -+ periodSize = std::min(periodSize, (snd_pcm_uframes_t) sampleRate / 10); -+ bufferSize = std::min(bufferSize, (snd_pcm_uframes_t) periodSize * 8); -+ -+ /* -+ According to upstream we should set buffer size first - so make sure it is always at least -+ double of period size to not get underruns -+ */ -+ periodSize = std::min(periodSize, bufferSize / 2); - -- bufferSize = std::min(bufferSize, (snd_pcm_uframes_t)8192); -- periodSize = bufferSize / ALSA_PERIODS; -- periods = ALSA_PERIODS; -- -- CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Request: periodSize %lu, periods %u, bufferSize %lu", periodSize, periods, bufferSize); -+ CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Request: periodSize %lu, bufferSize %lu", periodSize, bufferSize); - -- /* work on a copy of the hw params */ - snd_pcm_hw_params_t *hw_params_copy; - snd_pcm_hw_params_alloca(&hw_params_copy); -- -- /* try to set the buffer size then the period size */ -- snd_pcm_hw_params_copy(hw_params_copy, hw_params); -- snd_pcm_hw_params_set_buffer_size_near(m_pcm, hw_params_copy, &bufferSize); -- snd_pcm_hw_params_set_period_size_near(m_pcm, hw_params_copy, &periodSize, NULL); -- snd_pcm_hw_params_set_periods_near (m_pcm, hw_params_copy, &periods , NULL); -- if (snd_pcm_hw_params(m_pcm, hw_params_copy) != 0) -+ snd_pcm_hw_params_copy(hw_params_copy, hw_params); // copy what we have and is already working -+ -+ // first trying bufferSize, PeriodSize -+ // for more info see here: -+ // http://mailman.alsa-project.org/pipermail/alsa-devel/2009-September/021069.html -+ // the last three tries are done as within pulseaudio -+ -+ // backup periodSize and bufferSize first. Restore them after every failed try -+ snd_pcm_uframes_t periodSizeTemp, bufferSizeTemp; -+ periodSizeTemp = periodSize; -+ bufferSizeTemp = bufferSize; -+ if (snd_pcm_hw_params_set_buffer_size_near(m_pcm, hw_params_copy, &bufferSize) != 0 -+ || snd_pcm_hw_params_set_period_size_near(m_pcm, hw_params_copy, &periodSize, NULL) != 0 -+ || snd_pcm_hw_params(m_pcm, hw_params_copy) != 0) - { -- /* try to set the period size then the buffer size */ -- snd_pcm_hw_params_copy(hw_params_copy, hw_params); -- snd_pcm_hw_params_set_period_size_near(m_pcm, hw_params_copy, &periodSize, NULL); -- snd_pcm_hw_params_set_buffer_size_near(m_pcm, hw_params_copy, &bufferSize); -- snd_pcm_hw_params_set_periods_near (m_pcm, hw_params_copy, &periods , NULL); -- if (snd_pcm_hw_params(m_pcm, hw_params_copy) != 0) -+ bufferSize = bufferSizeTemp; -+ periodSize = periodSizeTemp; -+ // retry with PeriodSize, bufferSize -+ snd_pcm_hw_params_copy(hw_params_copy, hw_params); // restore working copy -+ if (snd_pcm_hw_params_set_period_size_near(m_pcm, hw_params_copy, &periodSize, NULL) != 0 -+ || snd_pcm_hw_params_set_buffer_size_near(m_pcm, hw_params_copy, &bufferSize) != 0 -+ || snd_pcm_hw_params(m_pcm, hw_params_copy) != 0) - { -- /* try to just set the buffer size */ -- snd_pcm_hw_params_copy(hw_params_copy, hw_params); -- snd_pcm_hw_params_set_buffer_size_near(m_pcm, hw_params_copy, &bufferSize); -- snd_pcm_hw_params_set_periods_near (m_pcm, hw_params_copy, &periods , NULL); -- if (snd_pcm_hw_params(m_pcm, hw_params_copy) != 0) -+ // try only periodSize -+ periodSize = periodSizeTemp; -+ snd_pcm_hw_params_copy(hw_params_copy, hw_params); // restore working copy -+ if(snd_pcm_hw_params_set_period_size_near(m_pcm, hw_params_copy, &periodSize, NULL) != 0 -+ || snd_pcm_hw_params(m_pcm, hw_params_copy) != 0) - { -- /* try to just set the period size */ -- snd_pcm_hw_params_copy(hw_params_copy, hw_params); -- snd_pcm_hw_params_set_period_size_near(m_pcm, hw_params_copy, &periodSize, NULL); -- snd_pcm_hw_params_set_periods_near (m_pcm, hw_params_copy, &periods , NULL); -- if (snd_pcm_hw_params(m_pcm, hw_params_copy) != 0) -+ // try only BufferSize -+ bufferSize = bufferSizeTemp; -+ snd_pcm_hw_params_copy(hw_params_copy, hw_params); // restory working copy -+ if (snd_pcm_hw_params_set_buffer_size_near(m_pcm, hw_params_copy, &bufferSize) != 0 -+ || snd_pcm_hw_params(m_pcm, hw_params_copy) != 0) - { -- CLog::Log(LOGERROR, "CAESinkALSA::InitializeHW - Failed to set the parameters"); -- return false; -+ // set default that Alsa would choose -+ CLog::Log(LOGWARNING, "CAESinkAlsa::IntializeHW - Using default alsa values - set failed"); -+ if (snd_pcm_hw_params(m_pcm, hw_params) != 0) -+ { -+ CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Could not init a valid sink"); -+ return false; -+ } - } - } -+ // reread values when alsa default was kept -+ snd_pcm_get_params(m_pcm, &bufferSize, &periodSize); - } - } -- -- snd_pcm_hw_params_get_period_size(hw_params_copy, &periodSize, NULL); -- snd_pcm_hw_params_get_buffer_size(hw_params_copy, &bufferSize); - -- -- CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Got: periodSize %lu, periods %u, bufferSize %lu", periodSize, periods, bufferSize); -+ CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Got: periodSize %lu, bufferSize %lu", periodSize, bufferSize); - - /* set the format parameters */ - format.m_sampleRate = sampleRate; --- -1.7.10 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.18.01-PR2475.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.18.01-PR2475.patch deleted file mode 100644 index 4226cd7c79..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.18.01-PR2475.patch +++ /dev/null @@ -1,76 +0,0 @@ -From e1374217a66d1324f3482f6567448f0bc7ef2946 Mon Sep 17 00:00:00 2001 -From: spiff -Date: Thu, 21 Mar 2013 14:40:52 +0100 -Subject: [PATCH] fixed: prevent infinite loop in add-on dependency checks - ---- - xbmc/addons/AddonInstaller.cpp | 21 ++++++++++++++------- - xbmc/addons/AddonInstaller.h | 10 ++++++++++ - 2 files changed, 24 insertions(+), 7 deletions(-) - -diff --git a/xbmc/addons/AddonInstaller.cpp b/xbmc/addons/AddonInstaller.cpp -index b5ba7a0..3e655bb 100644 ---- a/xbmc/addons/AddonInstaller.cpp -+++ b/xbmc/addons/AddonInstaller.cpp -@@ -313,6 +313,14 @@ void CAddonInstaller::InstallFromXBMCRepo(const set &addonIDs) - - bool CAddonInstaller::CheckDependencies(const AddonPtr &addon) - { -+ std::vector preDeps; -+ preDeps.push_back(addon->ID()); -+ return CheckDependencies(addon, preDeps); -+} -+ -+bool CAddonInstaller::CheckDependencies(const AddonPtr &addon, -+ std::vector& preDeps) -+{ - if (!addon.get()) - return true; // a NULL addon has no dependencies - ADDONDEPS deps = addon->GetDeps(); -@@ -333,16 +341,15 @@ bool CAddonInstaller::CheckDependencies(const AddonPtr &addon) - return false; - } - } -- // prevent infinite loops -- if (dep && dep->ID() == addon->ID()) -- { -- CLog::Log(LOGERROR, "Addon %s depends on itself, ignoring", addon->ID().c_str()); -- return false; -- } - // at this point we have our dep, or the dep is optional (and we don't have it) so check that it's OK as well - // TODO: should we assume that installed deps are OK? -- if (dep && !CheckDependencies(dep)) -+ if (dep && -+ std::find(preDeps.begin(), preDeps.end(), dep->ID()) == preDeps.end() && -+ !CheckDependencies(dep, preDeps)) -+ { - return false; -+ } -+ preDeps.push_back(dep->ID()); - } - return true; - } -diff --git a/xbmc/addons/AddonInstaller.h b/xbmc/addons/AddonInstaller.h -index b0ff2bd..5df69fb 100644 ---- a/xbmc/addons/AddonInstaller.h -+++ b/xbmc/addons/AddonInstaller.h -@@ -122,6 +122,16 @@ class CAddonInstaller : public IJobCallback - */ - bool DoInstall(const ADDON::AddonPtr &addon, const CStdString &hash = "", bool update = false, const CStdString &referer = "", bool background = true); - -+ /*! \brief Check whether dependencies of an addon exist or are installable. -+ Iterates through the addon's dependencies, checking they're installed or installable. -+ Each dependency must also satisfies CheckDependencies in turn. -+ \param addon the addon to check -+ \param preDeps previous dependencies encountered during recursion. aids in avoiding infinite recursion -+ \return true if dependencies are available, false otherwise. -+ */ -+ bool CheckDependencies(const ADDON::AddonPtr &addon, -+ std::vector& preDeps); -+ - void PrunePackageCache(); - int64_t EnumeratePackageFolder(std::map& result); - --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.18.02-PR2475.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.18.02-PR2475.patch deleted file mode 100644 index ab77b1a837..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.18.02-PR2475.patch +++ /dev/null @@ -1,37 +0,0 @@ -From b5458130ba00c15ef468d6180a21994bff3daf42 Mon Sep 17 00:00:00 2001 -From: Voyager1 -Date: Sat, 23 Mar 2013 07:32:09 +0100 -Subject: [PATCH] fixed: addoninstaller unguarded null pointer after - b0825b1a212849e52fca27409ea87e81591f7cf4 - ---- - xbmc/addons/AddonInstaller.cpp | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -diff --git a/xbmc/addons/AddonInstaller.cpp b/xbmc/addons/AddonInstaller.cpp -index 3e655bb..276467a 100644 ---- a/xbmc/addons/AddonInstaller.cpp -+++ b/xbmc/addons/AddonInstaller.cpp -@@ -343,13 +343,14 @@ bool CAddonInstaller::CheckDependencies(const AddonPtr &addon, - } - // at this point we have our dep, or the dep is optional (and we don't have it) so check that it's OK as well - // TODO: should we assume that installed deps are OK? -- if (dep && -- std::find(preDeps.begin(), preDeps.end(), dep->ID()) == preDeps.end() && -- !CheckDependencies(dep, preDeps)) -+ if (dep) - { -- return false; -+ if (std::find(preDeps.begin(), preDeps.end(), dep->ID()) == preDeps.end() && -+ !CheckDependencies(dep, preDeps)) -+ return false; -+ else -+ preDeps.push_back(dep->ID()); - } -- preDeps.push_back(dep->ID()); - } - return true; - } --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.18.03-PR2475.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.18.03-PR2475.patch deleted file mode 100644 index e89caafb70..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.18.03-PR2475.patch +++ /dev/null @@ -1,33 +0,0 @@ -From cc39b66b38657787e99bf6369a77c993cd601c23 Mon Sep 17 00:00:00 2001 -From: ulion -Date: Sun, 24 Mar 2013 08:05:04 +0800 -Subject: [PATCH] Only add to preDeps when it's not in there. - ---- - xbmc/addons/AddonInstaller.cpp | 8 +++----- - 1 file changed, 3 insertions(+), 5 deletions(-) - -diff --git a/xbmc/addons/AddonInstaller.cpp b/xbmc/addons/AddonInstaller.cpp -index 276467a..631a01c 100644 ---- a/xbmc/addons/AddonInstaller.cpp -+++ b/xbmc/addons/AddonInstaller.cpp -@@ -343,13 +343,11 @@ bool CAddonInstaller::CheckDependencies(const AddonPtr &addon, - } - // at this point we have our dep, or the dep is optional (and we don't have it) so check that it's OK as well - // TODO: should we assume that installed deps are OK? -- if (dep) -+ if (dep && std::find(preDeps.begin(), preDeps.end(), dep->ID()) == preDeps.end()) - { -- if (std::find(preDeps.begin(), preDeps.end(), dep->ID()) == preDeps.end() && -- !CheckDependencies(dep, preDeps)) -+ if (!CheckDependencies(dep, preDeps)) - return false; -- else -- preDeps.push_back(dep->ID()); -+ preDeps.push_back(dep->ID()); - } - } - return true; --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.19-PR2382.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.19-PR2382.patch deleted file mode 100644 index 988377325b..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.19-PR2382.patch +++ /dev/null @@ -1,46 +0,0 @@ -From eb4ae32119a83716d7fb930381d2848c02383cea Mon Sep 17 00:00:00 2001 -From: fritsch -Date: Wed, 6 Mar 2013 07:52:59 +0100 -Subject: [PATCH] AE: Fix menu sounds by decreasing buffer(max 200 ms) and - periodSize(50 ms) - ---- - xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 19 ++++++++++--------- - 1 file changed, 10 insertions(+), 9 deletions(-) - -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp -index 821bd2e..21891a5 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp -@@ -332,18 +332,19 @@ bool CAESinkALSA::InitializeHW(AEAudioFormat &format) - snd_pcm_hw_params_get_period_size_max(hw_params, &periodSize, NULL); - - /* -- We want to make sure, that we have approx 500 to 800 ms Buffer with -- a periodSize of approx 100 ms. -- It is calced: -- periodSize = sampleRate / 10 -- buffersize = periodSize * 1 frame * 8. -+ We want to make sure, that we have max 200 ms Buffer with -+ a periodSize of approx 50 ms. Choosing a higher bufferSize -+ will cause problems with menu sounds. Buffer will be increased -+ after those are fixed. -+ periodSize = sampleRate / 20 -+ bufferSize = periodSize * 1 frame * 4. - */ -- periodSize = std::min(periodSize, (snd_pcm_uframes_t) sampleRate / 10); -- bufferSize = std::min(bufferSize, (snd_pcm_uframes_t) periodSize * 8); -+ periodSize = std::min(periodSize, (snd_pcm_uframes_t) sampleRate / 20); -+ bufferSize = std::min(bufferSize, (snd_pcm_uframes_t) periodSize * 4); - - /* -- According to upstream we should set buffer size first - so make sure it is always at least -- double of period size to not get underruns -+ According to upstream we should set buffer size first - so make sure it is always at least -+ double of period size to not get underruns - */ - periodSize = std::min(periodSize, bufferSize / 2); - --- -1.7.10 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.20-PR2421.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.20-PR2421.patch deleted file mode 100644 index 37f8a99ed4..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.20-PR2421.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 95ea48d4353516c59e70c962c4970da0bd511aac Mon Sep 17 00:00:00 2001 -From: Anssi Hannula -Date: Mon, 11 Mar 2013 00:05:13 +0200 -Subject: [PATCH 1/2] AE: ALSA: Try to get 200ms buffer even if we did not get - 50ms periodsize - ---- - xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp -index 332f305..b905ada 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp -@@ -340,11 +340,9 @@ bool CAESinkALSA::InitializeHW(AEAudioFormat &format) - a periodSize of approx 50 ms. Choosing a higher bufferSize - will cause problems with menu sounds. Buffer will be increased - after those are fixed. -- periodSize = sampleRate / 20 -- bufferSize = periodSize * 1 frame * 4. - */ - periodSize = std::min(periodSize, (snd_pcm_uframes_t) sampleRate / 20); -- bufferSize = std::min(bufferSize, (snd_pcm_uframes_t) periodSize * 4); -+ bufferSize = std::min(bufferSize, (snd_pcm_uframes_t) sampleRate / 5); - - /* - According to upstream we should set buffer size first - so make sure it is always at least --- -1.7.10 - - -From 39f2487881b6fa2d52c58f7b2452420efc711cd5 Mon Sep 17 00:00:00 2001 -From: Anssi Hannula -Date: Mon, 11 Mar 2013 00:12:54 +0200 -Subject: [PATCH 2/2] AE: ALSA: Try to get a minimum of 4 periods per buffer - ---- - xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp -index b905ada..94f6b80 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp -@@ -346,9 +346,9 @@ bool CAESinkALSA::InitializeHW(AEAudioFormat &format) - - /* - According to upstream we should set buffer size first - so make sure it is always at least -- double of period size to not get underruns -+ 4x period size to not get underruns (some systems seem to have issues with only 2 periods) - */ -- periodSize = std::min(periodSize, bufferSize / 2); -+ periodSize = std::min(periodSize, bufferSize / 4); - - CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Request: periodSize %lu, bufferSize %lu", periodSize, bufferSize); - --- -1.7.10 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.26-PR2378.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.26-PR2378.patch deleted file mode 100644 index 838c7a6198..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.26-PR2378.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 907f5086e76b0b6d0211c9bbd9da6c6fb54e891b Mon Sep 17 00:00:00 2001 -From: Juan Font -Date: Wed, 6 Mar 2013 09:50:15 +0100 -Subject: [PATCH 1/2] Avoid fps detection when probing the format if we will - trust codec fps during playback. - ---- - xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index 7d4e35b..4b62d75 100644 ---- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -+++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -425,6 +425,9 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput) - - // set the interrupt callback, appeared in libavformat 53.15.0 - m_pFormatContext->interrupt_callback = int_cb; -+ -+ // Avoid detecting framerate if advancedsettings.xml says so -+ m_pFormatContext->fps_probe_size = (!g_advancedSettings.m_videoFpsDetect) ? 0 : -1; - - // analyse very short to speed up mjpeg playback start - if (iformat && (strcmp(iformat->name, "mjpeg") == 0) && m_ioContext->seekable == 0) --- -1.7.10 - - -From e2966a346140fcd7a9742f17bfd7710bffbe1066 Mon Sep 17 00:00:00 2001 -From: Juan Font -Date: Wed, 6 Mar 2013 10:33:32 +0100 -Subject: [PATCH 2/2] Improved code legibility. - ---- - xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index 4b62d75..e84290d 100644 ---- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -+++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -427,7 +427,7 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput) - m_pFormatContext->interrupt_callback = int_cb; - - // Avoid detecting framerate if advancedsettings.xml says so -- m_pFormatContext->fps_probe_size = (!g_advancedSettings.m_videoFpsDetect) ? 0 : -1; -+ m_pFormatContext->fps_probe_size = (g_advancedSettings.m_videoFpsDetect == 0) ? 0 : -1; - - // analyse very short to speed up mjpeg playback start - if (iformat && (strcmp(iformat->name, "mjpeg") == 0) && m_ioContext->seekable == 0) --- -1.7.10 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.27-PR2505.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.27-PR2505.patch deleted file mode 100644 index 464c15a3d4..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.27-PR2505.patch +++ /dev/null @@ -1,27 +0,0 @@ -From c0e50094715d41da30d0a08140e7fd1c149c453b Mon Sep 17 00:00:00 2001 -From: fritsch -Date: Tue, 26 Mar 2013 23:17:51 +0100 -Subject: [PATCH] AE: possible segfault after suspend / resume (m_sink might be - gone) - ---- - xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp b/xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp -index 6ec78c5..7aaecf5 100644 ---- a/xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp -+++ b/xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp -@@ -1536,7 +1536,8 @@ inline void CSoftAE::ProcessSuspend() - */ - if (!m_isSuspended && (!m_playingStreams.empty() || !m_playing_sounds.empty())) - { -- m_reOpen = !m_sink->SoftResume() || m_reOpen; // sink returns false if it requires reinit (worthless with current implementation) -+ // the sink might still be not initialized after Resume of real suspend -+ m_reOpen = m_sink && (!m_sink->SoftResume() || m_reOpen); // sink returns false if it requires reinit (worthless with current implementation) - m_sinkIsSuspended = false; //sink processing data - m_softSuspend = false; //break suspend loop (under some conditions) - CLog::Log(LOGDEBUG, "Resumed the Sink"); --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.28-CA-AE-make_the_devicelist_change_callback_more_robust.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.28-CA-AE-make_the_devicelist_change_callback_more_robust.patch deleted file mode 100644 index 2980d96771..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.28-CA-AE-make_the_devicelist_change_callback_more_robust.patch +++ /dev/null @@ -1,52 +0,0 @@ -From f6a002b0971138a785d03a934ad623b690a8becc Mon Sep 17 00:00:00 2001 -From: Memphiz -Date: Mon, 18 Mar 2013 22:30:19 +0100 -Subject: [PATCH] [CA/AE] - make the devicelist change callback more robust - - should fix crashes during shutdown on some system constellations (where - removing the callback seems to also triggers the callback at the same time) - ---- - xbmc/cores/AudioEngine/Engines/CoreAudio/CoreAudioAE.cpp | 12 +++++++++--- - 1 file changed, 9 insertions(+), 3 deletions(-) - -diff --git a/xbmc/cores/AudioEngine/Engines/CoreAudio/CoreAudioAE.cpp b/xbmc/cores/AudioEngine/Engines/CoreAudio/CoreAudioAE.cpp -index 2c1d4bb..a9302ac 100644 ---- a/xbmc/cores/AudioEngine/Engines/CoreAudio/CoreAudioAE.cpp -+++ b/xbmc/cores/AudioEngine/Engines/CoreAudio/CoreAudioAE.cpp -@@ -51,8 +51,11 @@ OSStatus deviceChangedCB( AudioObjectID inObjectID, - void* inClientData) - { - CCoreAudioAE *pEngine = (CCoreAudioAE *)inClientData; -- pEngine->AudioDevicesChanged(); -- CLog::Log(LOGDEBUG, "CCoreAudioAE - audiodevicelist changed!"); -+ if (pEngine->GetHAL()) -+ { -+ pEngine->AudioDevicesChanged(); -+ CLog::Log(LOGDEBUG, "CCoreAudioAE - audiodevicelist changed!"); -+ } - return noErr; - } - -@@ -102,8 +105,8 @@ void RegisterDeviceChangedCB(bool bRegister, void *ref){} - - CCoreAudioAE::~CCoreAudioAE() - { -- RegisterDeviceChangedCB(false, this); - Shutdown(); -+ RegisterDeviceChangedCB(false, this); - } - - void CCoreAudioAE::Shutdown() -@@ -138,6 +141,9 @@ void CCoreAudioAE::Shutdown() - - void CCoreAudioAE::AudioDevicesChanged() - { -+ if (!m_Initialized) -+ return; -+ - // give CA a bit time to realise that maybe the - // default device might have changed now - else - // OpenCoreAudio might open the old default device --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.30-airplay-fix_the_playtime.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.30-airplay-fix_the_playtime.patch deleted file mode 100644 index 93b01a023a..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.30-airplay-fix_the_playtime.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 820b08c2520bbea89fb862c61f4dc5a6a63865df Mon Sep 17 00:00:00 2001 -From: Memphiz -Date: Wed, 20 Mar 2013 22:23:48 +0100 -Subject: [PATCH] [airplay] - fix the playtime - itunes is very picky about the - formatting here - ---- - xbmc/network/AirPlayServer.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xbmc/network/AirPlayServer.cpp b/xbmc/network/AirPlayServer.cpp -index 5b64126..c4c4984 100644 ---- a/xbmc/network/AirPlayServer.cpp -+++ b/xbmc/network/AirPlayServer.cpp -@@ -840,7 +840,7 @@ int CAirPlayServer::CTCPClient::ProcessRequest( CStdString& responseHeader, - if (g_application.m_pPlayer && g_application.m_pPlayer->GetTotalTime()) - { - float position = ((float) g_application.m_pPlayer->GetTime()) / 1000; -- responseBody.Format("duration: %d\r\nposition: %f", g_application.m_pPlayer->GetTotalTime() / 1000, position); -+ responseBody.Format("duration: %.6f\r\nposition: %.6f\r\n", (float)g_application.m_pPlayer->GetTotalTime() / 1000, position); - } - else - { --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.32-CAddon-HasSettings_was_broken_after_a_call_to_CAddon-SaveSettings.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.32-CAddon-HasSettings_was_broken_after_a_call_to_CAddon-SaveSettings.patch deleted file mode 100644 index 40e1b7d7af..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.32-CAddon-HasSettings_was_broken_after_a_call_to_CAddon-SaveSettings.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0fb38d80aabd1112b377760c509855bf529fb95f Mon Sep 17 00:00:00 2001 -From: Garrett Brown -Date: Sun, 24 Mar 2013 23:57:49 -0700 -Subject: [PATCH] Fixed: CAddon::HasSettings() was broken after a call to - CAddon::SaveSettings() on creation of user settings - ---- - xbmc/addons/Addon.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/xbmc/addons/Addon.cpp b/xbmc/addons/Addon.cpp -index 23f89b8..7315ab0 100644 ---- a/xbmc/addons/Addon.cpp -+++ b/xbmc/addons/Addon.cpp -@@ -512,6 +512,7 @@ void CAddon::SaveSettings(void) - CXBMCTinyXML doc; - SettingsToXML(doc); - doc.SaveFile(m_userSettingsPath); -+ m_userSettingsLoaded = true; - - CAddonMgr::Get().ReloadSettings(ID());//push the settings changes to the running addon instance - g_pythonParser.OnSettingsChanged(ID()); --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.33-PR2392.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.33-PR2392.patch deleted file mode 100644 index 87878bd546..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.33-PR2392.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 9db853e551f0380aac884fcb6c9564a725fcb966 Mon Sep 17 00:00:00 2001 -From: arnova -Date: Fri, 8 Mar 2013 06:34:02 +0100 -Subject: [PATCH] fixed: We can only obtain the aspect & duration this way when - the Process() thread is running - ---- - xbmc/cores/dvdplayer/DVDPlayer.cpp | 17 ++++++++++++++--- - 1 file changed, 14 insertions(+), 3 deletions(-) - -diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 0cd2510..8128197 100644 ---- a/xbmc/cores/dvdplayer/DVDPlayer.cpp -+++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -4024,11 +4024,22 @@ bool CDVDPlayer::GetStreamDetails(CStreamDetails &details) - { - if (m_pDemuxer) - { -- bool result=CDVDFileInfo::DemuxerToStreamDetails(m_pInputStream, m_pDemuxer, details); -+ bool result = CDVDFileInfo::DemuxerToStreamDetails(m_pInputStream, m_pDemuxer, details); - if (result && details.GetStreamCount(CStreamDetail::VIDEO) > 0) // this is more correct (dvds in particular) - { -- GetVideoAspectRatio(((CStreamDetailVideo*)details.GetNthStream(CStreamDetail::VIDEO,0))->m_fAspect); -- ((CStreamDetailVideo*)details.GetNthStream(CStreamDetail::VIDEO,0))->m_iDuration = GetTotalTime() / 1000; -+ /* -+ * We can only obtain the aspect & duration from dvdplayer when the Process() thread is running -+ * and UpdatePlayState() has been called at least once. In this case dvdplayer duration/AR will -+ * return 0 and we'll have to fallback to the (less accurate) info from the demuxer. -+ */ -+ float aspect; -+ GetVideoAspectRatio(aspect); -+ if (aspect > 0.0f) -+ ((CStreamDetailVideo*)details.GetNthStream(CStreamDetail::VIDEO,0))->m_fAspect = aspect; -+ -+ int64_t duration = GetTotalTime() / 1000; -+ if (duration > 0) -+ ((CStreamDetailVideo*)details.GetNthStream(CStreamDetail::VIDEO,0))->m_iDuration = duration; - } - return result; - } --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.34-Some_streams_no_longer_played_since_the_Curl_seek_fix.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.34-Some_streams_no_longer_played_since_the_Curl_seek_fix.patch deleted file mode 100644 index 3e20d4d6f4..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.34-Some_streams_no_longer_played_since_the_Curl_seek_fix.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 63a6dadd40815eb07ba940a60d012a23ce9a5eb4 Mon Sep 17 00:00:00 2001 -From: arnova -Date: Fri, 29 Mar 2013 21:01:44 +0100 -Subject: [PATCH] fixed: Some (live) streams no longer played since the Curl - seek fix (fixes #14224) - ---- - xbmc/filesystem/CurlFile.cpp | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/xbmc/filesystem/CurlFile.cpp b/xbmc/filesystem/CurlFile.cpp -index 2c5da25..456f5f0 100644 ---- a/xbmc/filesystem/CurlFile.cpp -+++ b/xbmc/filesystem/CurlFile.cpp -@@ -291,14 +291,14 @@ bool CCurlFile::CReadState::Seek(int64_t pos) - void CCurlFile::CReadState::SetResume(void) - { - /* -- * Use RANGE method for resuming. We used to use RESUME_FROM_LARGE for this but some http servers -- * require us to always send the range request header. If we don't the server may provide different -- * content causing seeking to fail. Note that internally Curl will automatically handle this for FTP -- * so we don't need to worry about that here. -+ * Explicitly set RANGE header when filepos=0 as some http servers require us to always send the range -+ * request header. If we don't the server may provide different content causing seeking to fail. -+ * This only affects HTTP-like items, for FTP it's a null operation. - */ -- char str[21]; -- sprintf(str, "%"PRId64"-", m_filePos); -- g_curlInterface.easy_setopt(m_easyHandle, CURLOPT_RANGE, str); -+ if (m_filePos == 0) -+ g_curlInterface.easy_setopt(m_easyHandle, CURLOPT_RANGE, "0-"); -+ -+ g_curlInterface.easy_setopt(m_easyHandle, CURLOPT_RESUME_FROM_LARGE, m_filePos); - } - - long CCurlFile::CReadState::Connect(unsigned int size) --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.35-Fix_parsing_of_the_year_tag_its_stored_as_string.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.35-Fix_parsing_of_the_year_tag_its_stored_as_string.patch deleted file mode 100644 index c64a3c6ae3..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.35-Fix_parsing_of_the_year_tag_its_stored_as_string.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 68cab251cbca58adaf7df698d8db11145ff0e27a Mon Sep 17 00:00:00 2001 -From: ace20022 -Date: Sat, 16 Mar 2013 14:53:33 +0100 -Subject: [PATCH] [ASF Tag] Fix parsing of the year tag, it's stored as string. - ---- - xbmc/music/tags/TagLoaderTagLib.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xbmc/music/tags/TagLoaderTagLib.cpp b/xbmc/music/tags/TagLoaderTagLib.cpp -index c6ac758..2f16d43 100644 ---- a/xbmc/music/tags/TagLoaderTagLib.cpp -+++ b/xbmc/music/tags/TagLoaderTagLib.cpp -@@ -262,7 +262,7 @@ bool CTagLoaderTagLib::ParseASF(ASF::Tag *asf, EmbeddedArt *art, CMusicInfoTag& - else if (it->first == "WM/AlbumArtistSortOrder") {} // Known unsupported, supress warnings - else if (it->first == "WM/ArtistSortOrder") {} // Known unsupported, supress warnings - else if (it->first == "WM/Script") {} // Known unsupported, supress warnings -- else if (it->first == "WM/Year") tag.SetYear(it->second.front().toUInt()); -+ else if (it->first == "WM/Year") tag.SetYear(atoi(it->second.front().toString().toCString(true))); - else if (it->first == "MusicBrainz/Artist Id") tag.SetMusicBrainzArtistID(it->second.front().toString().to8Bit(true)); - else if (it->first == "MusicBrainz/Album Id") tag.SetMusicBrainzAlbumID(it->second.front().toString().to8Bit(true)); - else if (it->first == "MusicBrainz/Album Artist Id") tag.SetMusicBrainzAlbumArtistID(it->second.front().toString().to8Bit(true)); --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.36-Fix_parsing_of_the_artist_tag.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.36-Fix_parsing_of_the_artist_tag.patch deleted file mode 100644 index bfcefaabca..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.36-Fix_parsing_of_the_artist_tag.patch +++ /dev/null @@ -1,27 +0,0 @@ -From b06e994c4acbf39ba0013ed48cbd9fbde2b05bde Mon Sep 17 00:00:00 2001 -From: ace20022 -Date: Sat, 16 Mar 2013 15:27:38 +0100 -Subject: [PATCH] [ASF Tag] Fix parsing of the artist tag. More precisely: fall - back to the built in artist method if there's no "author" field in the tag. - ---- - xbmc/music/tags/TagLoaderTagLib.cpp | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/xbmc/music/tags/TagLoaderTagLib.cpp b/xbmc/music/tags/TagLoaderTagLib.cpp -index 2f16d43..6b88302 100644 ---- a/xbmc/music/tags/TagLoaderTagLib.cpp -+++ b/xbmc/music/tags/TagLoaderTagLib.cpp -@@ -284,6 +284,9 @@ bool CTagLoaderTagLib::ParseASF(ASF::Tag *asf, EmbeddedArt *art, CMusicInfoTag& - else if (g_advancedSettings.m_logLevel == LOG_LEVEL_MAX) - CLog::Log(LOGDEBUG, "unrecognized ASF tag name: %s", it->first.toCString(true)); - } -+ // artist may be specified in the ContentDescription block rather than using the 'Author' attribute. -+ if (tag.GetArtist().empty()) -+ tag.SetArtist(asf->artist().toCString(true)); - tag.SetLoaded(true); - return true; - } --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.37-upnp-missing-info-for-music-videos.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.37-upnp-missing-info-for-music-videos.patch deleted file mode 100644 index 847ee56f84..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.37-upnp-missing-info-for-music-videos.patch +++ /dev/null @@ -1,26 +0,0 @@ -From ccdba4e2a281970c4b5a2b81a85831f5bd8cf61d Mon Sep 17 00:00:00 2001 -From: Alasdair Campbell -Date: Tue, 2 Apr 2013 19:39:22 +0100 -Subject: [PATCH] upnp: missing info for music videos, fixes #14239 thanks to - Pulfer - ---- - xbmc/network/upnp/UPnPServer.cpp | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/xbmc/network/upnp/UPnPServer.cpp b/xbmc/network/upnp/UPnPServer.cpp -index 0518d14..1b92f99 100644 ---- a/xbmc/network/upnp/UPnPServer.cpp -+++ b/xbmc/network/upnp/UPnPServer.cpp -@@ -308,6 +308,8 @@ NPT_String CUPnPServer::BuildSafeResourceUri(const NPT_HttpUrl &rooturi, - - if (params.GetMovieId() >= 0 ) - db.GetMovieInfo((const char*)path, *item->GetVideoInfoTag(), params.GetMovieId()); -+ if (params.GetMVideoId() >= 0 ) -+ db.GetMusicVideoInfo((const char*)path, *item->GetVideoInfoTag(), params.GetMVideoId()); - else if (params.GetEpisodeId() >= 0 ) - db.GetEpisodeInfo((const char*)path, *item->GetVideoInfoTag(), params.GetEpisodeId()); - else if (params.GetTvShowId() >= 0 ) --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.38-upnp_hide_unplayable_items_in_fiels_view.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.38-upnp_hide_unplayable_items_in_fiels_view.patch deleted file mode 100644 index a985c9533c..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.38-upnp_hide_unplayable_items_in_fiels_view.patch +++ /dev/null @@ -1,40 +0,0 @@ -From ec9129fe58614016d98af521471ff097171ae444 Mon Sep 17 00:00:00 2001 -From: Alasdair Campbell -Date: Tue, 2 Apr 2013 04:41:48 +0100 -Subject: [PATCH] upnp: hide unplayable items in fiels view fixes #13526 - ---- - xbmc/network/upnp/UPnPServer.cpp | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/xbmc/network/upnp/UPnPServer.cpp b/xbmc/network/upnp/UPnPServer.cpp -index 86f13eb..0518d14 100644 ---- a/xbmc/network/upnp/UPnPServer.cpp -+++ b/xbmc/network/upnp/UPnPServer.cpp -@@ -13,6 +13,7 @@ - #include "filesystem/VideoDatabaseDirectory.h" - #include "guilib/WindowIDs.h" - #include "music/tags/MusicInfoTag.h" -+#include "settings/Settings.h" - #include "settings/GUISettings.h" - #include "utils/log.h" - #include "utils/md5.h" -@@ -600,7 +601,14 @@ static NPT_String TranslateWMPObjectId(NPT_String id) - - items.Sort(SORT_METHOD_LABEL, SortOrderAscending); - } else { -- CDirectory::GetDirectory((const char*)parent_id, items); -+ // this is the only way to hide unplayable items in the 'files' -+ // view as we cannot tell what context (eg music vs video) the -+ // request came from -+ string supported = g_settings.m_pictureExtensions + "|" -+ + g_settings.m_videoExtensions + "|" -+ + g_settings.m_musicExtensions + "|" -+ + g_settings.m_discStubExtensions; -+ CDirectory::GetDirectory((const char*)parent_id, items, supported); - DefaultSortItems(items); - } - --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.39-upnp-use_a_better_way_to_retain_original_directory_ordering.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.39-upnp-use_a_better_way_to_retain_original_directory_ordering.patch deleted file mode 100644 index 53ed6c085f..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.39-upnp-use_a_better_way_to_retain_original_directory_ordering.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 87f4c493cab4f648ebd7ce4ee10dc6fc593f179f Mon Sep 17 00:00:00 2001 -From: Alasdair Campbell -Date: Tue, 2 Apr 2013 03:30:19 +0100 -Subject: [PATCH] upnp: use a better way to retain original directory ordering, - fixes #14235 - ---- - xbmc/filesystem/UPnPDirectory.cpp | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/xbmc/filesystem/UPnPDirectory.cpp b/xbmc/filesystem/UPnPDirectory.cpp -index 2a3c893..49c8449 100644 ---- a/xbmc/filesystem/UPnPDirectory.cpp -+++ b/xbmc/filesystem/UPnPDirectory.cpp -@@ -349,7 +349,12 @@ bool CUPnPDirectory::GetResource(const CURL& path, CFileItem &item) - std::string content = GetContentMapping(max_string); - items.SetContent(content); - if (content == "unknown") -- items.AddSortMethod(SORT_METHOD_NONE, 551, LABEL_MASKS("%L", "%I", "%L", "")); -+ { -+ items.AddSortMethod(SORT_METHOD_UNSORTED, 571, LABEL_MASKS("%L", "%I", "%L", "")); -+ items.AddSortMethod(SORT_METHOD_LABEL_IGNORE_FOLDERS, 551, LABEL_MASKS("%L", "%I", "%L", "")); -+ items.AddSortMethod(SORT_METHOD_SIZE, 553, LABEL_MASKS("%L", "%I", "%L", "%I")); -+ items.AddSortMethod(SORT_METHOD_DATE, 552, LABEL_MASKS("%L", "%J", "%L", "%J")); -+ } - } - - cleanup: --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.40-fix_typo_in_ccdba4e.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.40-fix_typo_in_ccdba4e.patch deleted file mode 100644 index 66f54f0833..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.40-fix_typo_in_ccdba4e.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 4e8a5a0dbc3f8bb7815d699475e2afa25cb1ca2e Mon Sep 17 00:00:00 2001 -From: Alasdair Campbell -Date: Wed, 3 Apr 2013 12:51:13 +0100 -Subject: [PATCH] fix typo in ccdba4e - ---- - xbmc/network/upnp/UPnPServer.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xbmc/network/upnp/UPnPServer.cpp b/xbmc/network/upnp/UPnPServer.cpp -index 1b92f99..bd618d8 100644 ---- a/xbmc/network/upnp/UPnPServer.cpp -+++ b/xbmc/network/upnp/UPnPServer.cpp -@@ -308,7 +308,7 @@ NPT_String CUPnPServer::BuildSafeResourceUri(const NPT_HttpUrl &rooturi, - - if (params.GetMovieId() >= 0 ) - db.GetMovieInfo((const char*)path, *item->GetVideoInfoTag(), params.GetMovieId()); -- if (params.GetMVideoId() >= 0 ) -+ else if (params.GetMVideoId() >= 0 ) - db.GetMusicVideoInfo((const char*)path, *item->GetVideoInfoTag(), params.GetMVideoId()); - else if (params.GetEpisodeId() >= 0 ) - db.GetEpisodeInfo((const char*)path, *item->GetVideoInfoTag(), params.GetEpisodeId()); --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.01-dvdplayer-dont_use_OpenDefaultStreams_if_omething_else.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.01-dvdplayer-dont_use_OpenDefaultStreams_if_omething_else.patch deleted file mode 100644 index e9d6ce3e36..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.01-dvdplayer-dont_use_OpenDefaultStreams_if_omething_else.patch +++ /dev/null @@ -1,30 +0,0 @@ -From dda59f043e77a6cfbbd3a7378406134dad540e60 Mon Sep 17 00:00:00 2001 -From: Joakim Plate -Date: Mon, 11 Feb 2013 00:40:00 +0100 -Subject: [PATCH] dvdplayer: don't use OpenDefaultStreams() if something else - dictate - -This works for both dvd and bluray navigation ---- - xbmc/cores/dvdplayer/DVDPlayer.cpp | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 7b8f50b..09b5db8 100644 ---- a/xbmc/cores/dvdplayer/DVDPlayer.cpp -+++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -684,8 +684,9 @@ bool CDVDPlayer::OpenDemuxStream() - - void CDVDPlayer::OpenDefaultStreams(bool reset) - { -- // bypass for DVDs. The DVD Navigator has already dictated which streams to open. -- if (m_pInputStream->IsStreamType(DVDSTREAM_TYPE_DVD)) -+ // if input stream dictate, we will open later -+ if(m_dvd.iSelectedAudioStream >= 0 -+ || m_dvd.iSelectedSPUStream >= 0) - return; - - SelectionStreams streams; --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.02-dvdplayer-make_HasVideo_return_true_if_a_video_stream_was_started.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.02-dvdplayer-make_HasVideo_return_true_if_a_video_stream_was_started.patch deleted file mode 100644 index aa82c0e94b..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.02-dvdplayer-make_HasVideo_return_true_if_a_video_stream_was_started.patch +++ /dev/null @@ -1,66 +0,0 @@ -From bd49c32ec38b7ecd7bb43eb995c9ff632d18d3a1 Mon Sep 17 00:00:00 2001 -From: xbmc -Date: Tue, 12 Mar 2013 21:10:37 +0100 -Subject: [PATCH] dvdplayer: make HasVideo return true if a video stream was - opened since playback has started - fixes missing video info on channel - change - ---- - xbmc/cores/dvdplayer/DVDPlayer.cpp | 8 +++++--- - xbmc/cores/dvdplayer/DVDPlayer.h | 2 ++ - 2 files changed, 7 insertions(+), 3 deletions(-) - -diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 1758a98..be89406 100644 ---- a/xbmc/cores/dvdplayer/DVDPlayer.cpp -+++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -412,6 +412,7 @@ void CSelectionStreams::Update(CDVDInputStream* input, CDVDDemux* demuxer) - m_offset_pts = 0.0; - m_playSpeed = DVD_PLAYSPEED_NORMAL; - m_caching = CACHESTATE_DONE; -+ m_HasVideo = false; - - memset(&m_SpeedState, 0, sizeof(m_SpeedState)); - -@@ -511,6 +512,8 @@ bool CDVDPlayer::CloseFile() - m_Edl.Clear(); - m_EdlAutoSkipMarkers.Clear(); - -+ m_HasVideo = false; -+ - CLog::Log(LOGNOTICE, "DVDPlayer: finished waiting"); - #if defined(HAS_VIDEO_PLAYBACK) - g_renderManager.UnInit(); -@@ -2410,9 +2413,7 @@ bool CDVDPlayer::IsPaused() const - - bool CDVDPlayer::HasVideo() const - { -- if (m_pInputStream && m_pInputStream->IsStreamType(DVDSTREAM_TYPE_DVD)) return true; -- -- return m_SelectionStreams.Count(STREAM_VIDEO) > 0 ? true : false; -+ return m_HasVideo; - } - - bool CDVDPlayer::HasAudio() const -@@ -2924,6 +2925,7 @@ bool CDVDPlayer::OpenVideoStream(int iStream, int source, bool reset) - m_CurrentVideo.hint = hint; - m_CurrentVideo.stream = (void*)pStream; - m_CurrentVideo.started = false; -+ m_HasVideo = true; - - /* we are potentially going to be waiting on this */ - m_dvdPlayerVideo.SendMessage(new CDVDMsg(CDVDMsg::PLAYER_STARTED), 1); -diff --git a/xbmc/cores/dvdplayer/DVDPlayer.h b/xbmc/cores/dvdplayer/DVDPlayer.h -index 715f748..e7e49f1 100644 ---- a/xbmc/cores/dvdplayer/DVDPlayer.h -+++ b/xbmc/cores/dvdplayer/DVDPlayer.h -@@ -489,4 +489,6 @@ class CDVDPlayer : public IPlayer, public CThread, public IDVDPlayer - } m_EdlAutoSkipMarkers; - - CPlayerOptions m_PlayerOptions; -+ -+ bool m_HasVideo; - }; --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.03-dvdplayer-align_HasAudio_with_HasVideo.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.03-dvdplayer-align_HasAudio_with_HasVideo.patch deleted file mode 100644 index 3a44a30169..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.03-dvdplayer-align_HasAudio_with_HasVideo.patch +++ /dev/null @@ -1,60 +0,0 @@ -From cfb14c3c7400e2d9dbe2d452274339fa57557d9b Mon Sep 17 00:00:00 2001 -From: xbmc -Date: Sat, 16 Mar 2013 10:03:51 +0100 -Subject: [PATCH] dvdplayer: align HasAudio with HasVideo - ---- - xbmc/cores/dvdplayer/DVDPlayer.cpp | 5 ++++- - xbmc/cores/dvdplayer/DVDPlayer.h | 1 + - 2 files changed, 5 insertions(+), 1 deletion(-) - -diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index be89406..958cf3c 100644 ---- a/xbmc/cores/dvdplayer/DVDPlayer.cpp -+++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -413,6 +413,7 @@ void CSelectionStreams::Update(CDVDInputStream* input, CDVDDemux* demuxer) - m_playSpeed = DVD_PLAYSPEED_NORMAL; - m_caching = CACHESTATE_DONE; - m_HasVideo = false; -+ m_HasAudio = false; - - memset(&m_SpeedState, 0, sizeof(m_SpeedState)); - -@@ -513,6 +514,7 @@ bool CDVDPlayer::CloseFile() - m_EdlAutoSkipMarkers.Clear(); - - m_HasVideo = false; -+ m_HasAudio = false; - - CLog::Log(LOGNOTICE, "DVDPlayer: finished waiting"); - #if defined(HAS_VIDEO_PLAYBACK) -@@ -2418,7 +2420,7 @@ bool CDVDPlayer::HasVideo() const - - bool CDVDPlayer::HasAudio() const - { -- return m_SelectionStreams.Count(STREAM_AUDIO) > 0 ? true : false; -+ return m_HasAudio; - } - - bool CDVDPlayer::IsPassthrough() const -@@ -2853,6 +2855,7 @@ bool CDVDPlayer::OpenAudioStream(int iStream, int source, bool reset) - m_CurrentAudio.hint = hint; - m_CurrentAudio.stream = (void*)pStream; - m_CurrentAudio.started = false; -+ m_HasAudio = true; - - /* we are potentially going to be waiting on this */ - m_dvdPlayerAudio.SendMessage(new CDVDMsg(CDVDMsg::PLAYER_STARTED), 1); -diff --git a/xbmc/cores/dvdplayer/DVDPlayer.h b/xbmc/cores/dvdplayer/DVDPlayer.h -index e7e49f1..fa6c99f 100644 ---- a/xbmc/cores/dvdplayer/DVDPlayer.h -+++ b/xbmc/cores/dvdplayer/DVDPlayer.h -@@ -491,4 +491,5 @@ class CDVDPlayer : public IPlayer, public CThread, public IDVDPlayer - CPlayerOptions m_PlayerOptions; - - bool m_HasVideo; -+ bool m_HasAudio; - }; --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.05-dvdplayer-a_disabled_stream_could_be_re-selected_for_bluray_and_dvd.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.05-dvdplayer-a_disabled_stream_could_be_re-selected_for_bluray_and_dvd.patch deleted file mode 100644 index 4643735dbb..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.05-dvdplayer-a_disabled_stream_could_be_re-selected_for_bluray_and_dvd.patch +++ /dev/null @@ -1,37 +0,0 @@ -From b2fc0508212023cdcd11d05d72ed9a4d4935a0d8 Mon Sep 17 00:00:00 2001 -From: Joakim Plate -Date: Sun, 3 Feb 2013 16:32:27 +0100 -Subject: [PATCH] dvdplayer: a disabled stream could be re-selected for bluray - and dvd - ---- - xbmc/cores/dvdplayer/DVDPlayer.cpp | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 44a50e9..84b126d 100644 ---- a/xbmc/cores/dvdplayer/DVDPlayer.cpp -+++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -867,6 +867,9 @@ bool CDVDPlayer::IsBetterStream(CCurrentStream& current, CDemuxStream* stream) - if(m_PlayerOptions.video_only && current.type != STREAM_VIDEO) - return false; - -+ if(stream->disabled) -+ return false; -+ - if (m_pInputStream && ( m_pInputStream->IsStreamType(DVDSTREAM_TYPE_DVD) - || m_pInputStream->IsStreamType(DVDSTREAM_TYPE_BLURAY) ) ) - { -@@ -896,9 +899,6 @@ bool CDVDPlayer::IsBetterStream(CCurrentStream& current, CDemuxStream* stream) - && stream->iId == current.id) - return false; - -- if(stream->disabled) -- return false; -- - if(stream->type != current.type) - return false; - --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.06-dvdplayer-allow_200ms_of_automatic_time_update_instead_of_1ms.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.06-dvdplayer-allow_200ms_of_automatic_time_update_instead_of_1ms.patch deleted file mode 100644 index b3f662c256..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.06-dvdplayer-allow_200ms_of_automatic_time_update_instead_of_1ms.patch +++ /dev/null @@ -1,35 +0,0 @@ -From a489fb5c8607153c0b136fc1e2afcd543f1b9e19 Mon Sep 17 00:00:00 2001 -From: Joakim Plate -Date: Sun, 27 Jan 2013 18:46:48 +0100 -Subject: [PATCH] dvdplayer: allow 200ms of automatic time update instead of - 1ms - -It was originally meant to allow 1 second. But has at some point -been broken since the unit has been changed from ms to dvd time ---- - xbmc/cores/dvdplayer/DVDPlayer.cpp | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 8c46c40..61bcece 100644 ---- a/xbmc/cores/dvdplayer/DVDPlayer.cpp -+++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -2776,12 +2776,13 @@ int64_t CDVDPlayer::GetTime() - { - CSingleLock lock(m_StateSection); - double offset = 0; -+ const double limit = DVD_MSEC_TO_TIME(200); - if(m_State.timestamp > 0) - { - offset = CDVDClock::GetAbsoluteClock() - m_State.timestamp; - offset *= m_playSpeed / DVD_PLAYSPEED_NORMAL; -- if(offset > 1000) offset = 1000; -- if(offset < -1000) offset = -1000; -+ if(offset > limit) offset = limit; -+ if(offset < -limit) offset = -limit; - } - return llrint(m_State.time + DVD_TIME_TO_MSEC(offset)); - } --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.07-dvdplayer-fixed_time_offset_is_difference_between_adjusted.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.07-dvdplayer-fixed_time_offset_is_difference_between_adjusted.patch deleted file mode 100644 index 9d2280ead0..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.07-dvdplayer-fixed_time_offset_is_difference_between_adjusted.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 406ef63c542bc087f50d68f0046430e04b20f3b6 Mon Sep 17 00:00:00 2001 -From: Joakim Plate -Date: Sun, 27 Jan 2013 18:41:35 +0100 -Subject: [PATCH] dvdplayer: fixed time_offset is difference between adjusted - pts and time - ---- - xbmc/cores/dvdplayer/DVDPlayer.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 9e0c716..8c46c40 100644 ---- a/xbmc/cores/dvdplayer/DVDPlayer.cpp -+++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -2027,7 +2027,7 @@ void CDVDPlayer::HandleMessages() - - // if input streams doesn't support seektime we must convert back to clock - if(dynamic_cast(m_pInputStream) == NULL) -- time -= DVD_TIME_TO_MSEC(m_State.time_offset); -+ time -= DVD_TIME_TO_MSEC(m_State.time_offset - m_offset_pts); - - CLog::Log(LOGDEBUG, "demuxer seek to: %d", time); - if (m_pDemuxer && m_pDemuxer->SeekTime(time, msg.GetBackward(), &start)) -@@ -3906,7 +3906,7 @@ void CDVDPlayer::UpdatePlayState(double timeout) - } - - if (state.time_src == ETIMESOURCE_CLOCK) -- state.time_offset = 0; -+ state.time_offset = m_offset_pts; - else - state.time_offset = DVD_MSEC_TO_TIME(state.time) - state.dts; - --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.99-omxplayer-dvdplayer_sync.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.99-omxplayer-dvdplayer_sync.patch deleted file mode 100644 index 4ac3d4baaa..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.41.99-omxplayer-dvdplayer_sync.patch +++ /dev/null @@ -1,689 +0,0 @@ -From 48eb874344af0f1eda73a847ab291e04255368c9 Mon Sep 17 00:00:00 2001 -From: Stephan Raue -Date: Sat, 6 Apr 2013 10:49:43 +0200 -Subject: [PATCH 01/12] [OMXPlayer] [PATCH] fixed: Compile warning (unused - label) Based on - https://github.com/xbmc/xbmc/commit/132730ec5e976642109ec048545262c59453d5b6 - in master and added in - https://github.com/xbmc/xbmc/commit/28de0da9afeb6bcbc2c8a3cad31c79225b07ec7d - ---- - xbmc/cores/omxplayer/OMXPlayer.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp -index 60aa9ab..77f818d 100644 ---- a/xbmc/cores/omxplayer/OMXPlayer.cpp -+++ b/xbmc/cores/omxplayer/OMXPlayer.cpp -@@ -562,7 +562,7 @@ bool COMXPlayer::OpenInputStream() - { - m_filename = g_mediaManager.TranslateDevicePath(""); - } --retry: -+ - // before creating the input stream, if this is an HLS playlist then get the - // most appropriate bitrate based on our network settings - if (filename.Left(7) == "http://" && filename.Right(5) == ".m3u8") --- -1.8.1.5 - - -From f672abd807e654c2d11160827938a2f9e27628b0 Mon Sep 17 00:00:00 2001 -From: Stephan Raue -Date: Sat, 6 Apr 2013 11:31:07 +0200 -Subject: [PATCH 02/12] [OMXPlayer] [PATCH] dvdplayer: don't use - OpenDefaultStreams() if something else dictate Based on - https://github.com/xbmc/xbmc/commit/dda59f043e77a6cfbbd3a7378406134dad540e60 - in master and added in - https://github.com/xbmc/xbmc/commit/28de0da9afeb6bcbc2c8a3cad31c79225b07ec7d - ---- - xbmc/cores/omxplayer/OMXPlayer.cpp | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp -index 77f818d..b8e465c 100644 ---- a/xbmc/cores/omxplayer/OMXPlayer.cpp -+++ b/xbmc/cores/omxplayer/OMXPlayer.cpp -@@ -695,8 +695,9 @@ bool COMXPlayer::OpenDemuxStream() - - void COMXPlayer::OpenDefaultStreams(bool reset) - { -- // bypass for DVDs. The DVD Navigator has already dictated which streams to open. -- if (m_pInputStream->IsStreamType(DVDSTREAM_TYPE_DVD)) -+ // if input stream dictate, we will open later -+ if(m_dvd.iSelectedAudioStream >= 0 -+ || m_dvd.iSelectedSPUStream >= 0) - return; - - OMXSelectionStreams streams; --- -1.8.1.5 - - -From 85bf2ae43d7a977eedf174e6c8d30b5f76fa58fd Mon Sep 17 00:00:00 2001 -From: Stephan Raue -Date: Sat, 6 Apr 2013 15:57:09 +0200 -Subject: [PATCH 03/12] [OMXPlayer] [PATCH] dvdplayer: make HasVideo return - true if a video stream was opened since playback has started - fixes missing - video info on channel change Based on - https://github.com/xbmc/xbmc/commit/bd49c32ec38b7ecd7bb43eb995c9ff632d18d3a1 - in master and added in - https://github.com/xbmc/xbmc/commit/28de0da9afeb6bcbc2c8a3cad31c79225b07ec7d - ---- - xbmc/cores/omxplayer/OMXPlayer.cpp | 8 +++++--- - xbmc/cores/omxplayer/OMXPlayer.h | 2 ++ - 2 files changed, 7 insertions(+), 3 deletions(-) - -diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp -index b8e465c..1704077 100644 ---- a/xbmc/cores/omxplayer/OMXPlayer.cpp -+++ b/xbmc/cores/omxplayer/OMXPlayer.cpp -@@ -415,6 +415,7 @@ void COMXSelectionStreams::Update(CDVDInputStream* input, CDVDDemux* demuxer) - m_UpdateApplication = 0; - m_caching = CACHESTATE_DONE; - m_playSpeed = DVD_PLAYSPEED_NORMAL; -+ m_HasVideo = false; - - m_State.Clear(); - m_dvd.Clear(); -@@ -529,6 +530,8 @@ bool COMXPlayer::CloseFile() - m_Edl.Clear(); - m_EdlAutoSkipMarkers.Clear(); - -+ m_HasVideo = false; -+ - g_renderManager.UnInit(); - return true; - } -@@ -2438,9 +2441,7 @@ bool COMXPlayer::IsPaused() const - - bool COMXPlayer::HasVideo() const - { -- if (m_pInputStream && m_pInputStream->IsStreamType(DVDSTREAM_TYPE_DVD)) return true; -- -- return m_SelectionStreams.Count(STREAM_VIDEO) > 0 ? true : false; -+ return m_HasVideo; - } - - bool COMXPlayer::HasAudio() const -@@ -2971,6 +2972,7 @@ bool COMXPlayer::OpenVideoStream(int iStream, int source, bool reset) - m_CurrentVideo.hint = hint; - m_CurrentVideo.stream = (void*)pStream; - m_CurrentVideo.started = false; -+ m_HasVideo = true; - - /* we are potentially going to be waiting on this */ - m_player_video.SendMessage(new CDVDMsg(CDVDMsg::PLAYER_STARTED), 1); -diff --git a/xbmc/cores/omxplayer/OMXPlayer.h b/xbmc/cores/omxplayer/OMXPlayer.h -index d606e84..db3534f 100644 ---- a/xbmc/cores/omxplayer/OMXPlayer.h -+++ b/xbmc/cores/omxplayer/OMXPlayer.h -@@ -490,4 +490,6 @@ class COMXPlayer : public IPlayer, public CThread, public IDVDPlayer - bool m_change_volume; - CDVDOverlayContainer m_overlayContainer; - ECacheState m_caching; -+ -+ bool m_HasVideo; - }; --- -1.8.1.5 - - -From 2602bd38d6f36abfb562a9da70b95af79ba235dd Mon Sep 17 00:00:00 2001 -From: Stephan Raue -Date: Sat, 6 Apr 2013 16:22:16 +0200 -Subject: [PATCH 04/12] [OMXPlayer] [PATCH] dvdplayer: align HasAudio with - HasVideo Based on - https://github.com/xbmc/xbmc/commit/cfb14c3c7400e2d9dbe2d452274339fa57557d9b - in master and added in - https://github.com/xbmc/xbmc/commit/28de0da9afeb6bcbc2c8a3cad31c79225b07ec7d - ---- - xbmc/cores/omxplayer/OMXPlayer.cpp | 5 ++++- - xbmc/cores/omxplayer/OMXPlayer.h | 1 + - 2 files changed, 5 insertions(+), 1 deletion(-) - -diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp -index 1704077..7c85e6d 100644 ---- a/xbmc/cores/omxplayer/OMXPlayer.cpp -+++ b/xbmc/cores/omxplayer/OMXPlayer.cpp -@@ -416,6 +416,7 @@ void COMXSelectionStreams::Update(CDVDInputStream* input, CDVDDemux* demuxer) - m_caching = CACHESTATE_DONE; - m_playSpeed = DVD_PLAYSPEED_NORMAL; - m_HasVideo = false; -+ m_HasAudio = false; - - m_State.Clear(); - m_dvd.Clear(); -@@ -531,6 +532,7 @@ bool COMXPlayer::CloseFile() - m_EdlAutoSkipMarkers.Clear(); - - m_HasVideo = false; -+ m_HasAudio = false; - - g_renderManager.UnInit(); - return true; -@@ -2446,7 +2448,7 @@ bool COMXPlayer::HasVideo() const - - bool COMXPlayer::HasAudio() const - { -- return m_SelectionStreams.Count(STREAM_AUDIO) > 0 ? true : false; -+ return m_HasAudio; - } - - bool COMXPlayer::IsPassthrough() const -@@ -2891,6 +2893,7 @@ bool COMXPlayer::OpenAudioStream(int iStream, int source, bool reset) - m_CurrentAudio.hint = hint; - m_CurrentAudio.stream = (void*)pStream; - m_CurrentAudio.started = false; -+ m_HasAudio = true; - - /* we are potentially going to be waiting on this */ - m_player_audio.SendMessage(new CDVDMsg(CDVDMsg::PLAYER_STARTED), 1); -diff --git a/xbmc/cores/omxplayer/OMXPlayer.h b/xbmc/cores/omxplayer/OMXPlayer.h -index db3534f..c09773e 100644 ---- a/xbmc/cores/omxplayer/OMXPlayer.h -+++ b/xbmc/cores/omxplayer/OMXPlayer.h -@@ -492,4 +492,5 @@ class COMXPlayer : public IPlayer, public CThread, public IDVDPlayer - ECacheState m_caching; - - bool m_HasVideo; -+ bool m_HasAudio; - }; --- -1.8.1.5 - - -From 17d0e68692a4f05c3a074d602b3ec1c68bb71662 Mon Sep 17 00:00:00 2001 -From: Stephan Raue -Date: Sat, 6 Apr 2013 16:38:04 +0200 -Subject: [PATCH 05/12] [OMXPlayer] [PATCH] dvdplayer: a disabled stream could - be re-selected for bluray and dvd Based on - https://github.com/xbmc/xbmc/commit/b2fc0508212023cdcd11d05d72ed9a4d4935a0d8 - in master and added in - https://github.com/xbmc/xbmc/commit/28de0da9afeb6bcbc2c8a3cad31c79225b07ec7d - ---- - xbmc/cores/omxplayer/OMXPlayer.cpp | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp -index 7c85e6d..8df04a6 100644 ---- a/xbmc/cores/omxplayer/OMXPlayer.cpp -+++ b/xbmc/cores/omxplayer/OMXPlayer.cpp -@@ -888,6 +888,9 @@ bool COMXPlayer::IsBetterStream(COMXCurrentStream& current, CDemuxStream* stream - if(m_PlayerOptions.video_only && current.type != STREAM_VIDEO) - return false; - -+ if(stream->disabled) -+ return false; -+ - if (m_pInputStream && ( m_pInputStream->IsStreamType(DVDSTREAM_TYPE_DVD) - || m_pInputStream->IsStreamType(DVDSTREAM_TYPE_BLURAY) ) ) - { -@@ -917,9 +920,6 @@ bool COMXPlayer::IsBetterStream(COMXCurrentStream& current, CDemuxStream* stream - && stream->iId == current.id) - return false; - -- if(stream->disabled) -- return false; -- - if(stream->type != current.type) - return false; - --- -1.8.1.5 - - -From 5d639b5dd577f8e5e5f38e6e9dd32262ced4a427 Mon Sep 17 00:00:00 2001 -From: Stephan Raue -Date: Sat, 6 Apr 2013 18:43:07 +0200 -Subject: [PATCH 06/12] [OMXPlayer] [PATCH] dvdplayer: ff/rw/seek was broken - for inputs implementing IDisplayTime Based on - https://github.com/xbmc/xbmc/commit/4c90033e6987d512c1925ab6a5e31ef88bcdb28c - in master and added in - https://github.com/xbmc/xbmc/commit/28de0da9afeb6bcbc2c8a3cad31c79225b07ec7d - ---- - xbmc/cores/omxplayer/OMXPlayer.cpp | 14 ++++++++++++-- - xbmc/cores/omxplayer/OMXPlayer.h | 9 +++++++++ - 2 files changed, 21 insertions(+), 2 deletions(-) - -diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp -index 8df04a6..e64fc71 100644 ---- a/xbmc/cores/omxplayer/OMXPlayer.cpp -+++ b/xbmc/cores/omxplayer/OMXPlayer.cpp -@@ -2082,6 +2082,11 @@ void COMXPlayer::HandleMessages() - double start = DVD_NOPTS_VALUE; - - int time = msg.GetRestore() ? (int)m_Edl.RestoreCutTime(msg.GetTime()) : msg.GetTime(); -+ -+ // if input streams doesn't support seektime we must convert back to clock -+ if(dynamic_cast(m_pInputStream) == NULL) -+ time -= m_State.time_offset; -+ - CLog::Log(LOGDEBUG, "demuxer seek to: %d", time); - if (m_pDemuxer && m_pDemuxer->SeekTime(time, msg.GetBackward(), &start)) - { -@@ -3885,6 +3890,7 @@ void COMXPlayer::UpdatePlayState(double timeout) - else - state.time = DVD_TIME_TO_MSEC(m_av_clock.GetClock() + m_offset_pts); - state.time_total = m_pDemuxer->GetStreamLength(); -+ state.time_src = ETIMESOURCE_CLOCK; - - } - -@@ -3903,6 +3909,7 @@ void COMXPlayer::UpdatePlayState(double timeout) - { - state.time = pDisplayTime->GetTime(); - state.time_total = pDisplayTime->GetTotalTime(); -+ state.time_src = ETIMESOURCE_INPUT; - } - - if (dynamic_cast(m_pInputStream)) -@@ -3911,6 +3918,7 @@ void COMXPlayer::UpdatePlayState(double timeout) - { - state.time = XbmcThreads::SystemClockMillis() - m_dvd.iDVDStillStartTime; - state.time_total = m_dvd.iDVDStillTime; -+ state.time_src = ETIMESOURCE_MENU; - } - } - -@@ -3936,12 +3944,14 @@ void COMXPlayer::UpdatePlayState(double timeout) - state.player_state = ""; - if (m_pInputStream && m_pInputStream->IsStreamType(DVDSTREAM_TYPE_DVD)) - { -- state.time_offset = DVD_MSEC_TO_TIME(state.time) - state.dts; - if(!((CDVDInputStreamNavigator*)m_pInputStream)->GetNavigatorState(state.player_state)) - state.player_state = ""; - } -- else -+ -+ if (state.time_src == ETIMESOURCE_CLOCK) - state.time_offset = 0; -+ else -+ state.time_offset = DVD_MSEC_TO_TIME(state.time) - state.dts; - - if (m_CurrentAudio.id >= 0 && m_pDemuxer) - { -diff --git a/xbmc/cores/omxplayer/OMXPlayer.h b/xbmc/cores/omxplayer/OMXPlayer.h -index c09773e..d6c9d66 100644 ---- a/xbmc/cores/omxplayer/OMXPlayer.h -+++ b/xbmc/cores/omxplayer/OMXPlayer.h -@@ -375,6 +375,13 @@ class COMXPlayer : public IPlayer, public CThread, public IDVDPlayer - int iSelectedAudioStream; // mpeg stream id, or -1 if disabled - } m_dvd; - -+ enum ETimeSource -+ { -+ ETIMESOURCE_CLOCK, -+ ETIMESOURCE_INPUT, -+ ETIMESOURCE_MENU, -+ }; -+ - struct SPlayerState - { - SPlayerState() { Clear(); } -@@ -384,6 +391,7 @@ class COMXPlayer : public IPlayer, public CThread, public IDVDPlayer - time = 0; - time_total = 0; - time_offset = 0; -+ time_src = ETIMESOURCE_CLOCK; - dts = DVD_NOPTS_VALUE; - player_state = ""; - chapter = 0; -@@ -406,6 +414,7 @@ class COMXPlayer : public IPlayer, public CThread, public IDVDPlayer - - double time; // current playback time - double time_total; // total playback time -+ ETimeSource time_src; // current time source - double dts; // last known dts - - std::string player_state; // full player state --- -1.8.1.5 - - -From dd6af825a45b4bbcce0d9f2ded7dcbdaedf7e8e4 Mon Sep 17 00:00:00 2001 -From: Stephan Raue -Date: Sat, 6 Apr 2013 18:52:21 +0200 -Subject: [PATCH 07/12] [OMXPlayer] [PATCH] dvdplayer: allow 200ms of automatic - time update instead of 1ms Based on - https://github.com/xbmc/xbmc/commit/a489fb5c8607153c0b136fc1e2afcd543f1b9e19 - in master and added in - https://github.com/xbmc/xbmc/commit/28de0da9afeb6bcbc2c8a3cad31c79225b07ec7d - ---- - xbmc/cores/omxplayer/OMXPlayer.cpp | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp -index e64fc71..d928cba 100644 ---- a/xbmc/cores/omxplayer/OMXPlayer.cpp -+++ b/xbmc/cores/omxplayer/OMXPlayer.cpp -@@ -2812,12 +2812,13 @@ int64_t COMXPlayer::GetTime() - { - CSingleLock lock(m_StateSection); - double offset = 0; -+ const double limit = DVD_MSEC_TO_TIME(200); - if(m_State.timestamp > 0) - { - offset = m_av_clock.GetAbsoluteClock() - m_State.timestamp; - offset *= m_playSpeed / DVD_PLAYSPEED_NORMAL; -- if(offset > 1000) offset = 1000; -- if(offset < -1000) offset = -1000; -+ if(offset > limit) offset = limit; -+ if(offset < -limit) offset = -limit; - } - return llrint(m_State.time + DVD_TIME_TO_MSEC(offset)); - } --- -1.8.1.5 - - -From ac9012a190f7d37030d567c5450b6e96eabc964e Mon Sep 17 00:00:00 2001 -From: Stephan Raue -Date: Sat, 6 Apr 2013 18:54:23 +0200 -Subject: [PATCH 08/12] [OMXPlayer] [PATCH] [dvdplayer] fix deadlock when - trying to go to disc menu Based on - https://github.com/xbmc/xbmc/commit/befdcfad8d2b14c9d935c3662a56853d617f884d - in master and added in - https://github.com/xbmc/xbmc/commit/28de0da9afeb6bcbc2c8a3cad31c79225b07ec7d - ---- - xbmc/cores/omxplayer/OMXPlayer.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp -index d928cba..d1cc941 100644 ---- a/xbmc/cores/omxplayer/OMXPlayer.cpp -+++ b/xbmc/cores/omxplayer/OMXPlayer.cpp -@@ -3524,7 +3524,7 @@ bool COMXPlayer::OnAction(const CAction &action) - pMenus->OnMenu(); - // send a message to everyone that we've gone to the menu - CGUIMessage msg(GUI_MSG_VIDEO_MENU_STARTED, 0, 0); -- g_windowManager.SendMessage(msg); -+ g_windowManager.SendThreadMessage(msg); - return true; - } - break; --- -1.8.1.5 - - -From a1490e5ba5f3a216aa113f36d152d845f42e196a Mon Sep 17 00:00:00 2001 -From: Stephan Raue -Date: Sat, 6 Apr 2013 19:52:08 +0200 -Subject: [PATCH 09/12] [OMXPlayer] [PATCH] dvdplayer: another fix for - seeking/fw/rw in PVR Based on - https://github.com/xbmc/xbmc/commit/676b9e7347be62a518851c30d7e203b71849fc47 - in master and added in - https://github.com/xbmc/xbmc/commit/28de0da9afeb6bcbc2c8a3cad31c79225b07ec7d - ---- - xbmc/cores/omxplayer/OMXPlayer.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp -index d1cc941..463f7db 100644 ---- a/xbmc/cores/omxplayer/OMXPlayer.cpp -+++ b/xbmc/cores/omxplayer/OMXPlayer.cpp -@@ -2085,7 +2085,7 @@ void COMXPlayer::HandleMessages() - - // if input streams doesn't support seektime we must convert back to clock - if(dynamic_cast(m_pInputStream) == NULL) -- time -= m_State.time_offset; -+ time -= DVD_TIME_TO_MSEC(m_State.time_offset); - - CLog::Log(LOGDEBUG, "demuxer seek to: %d", time); - if (m_pDemuxer && m_pDemuxer->SeekTime(time, msg.GetBackward(), &start)) --- -1.8.1.5 - - -From 272fbfff7924b78e52700196ff5c5f20100ed5dc Mon Sep 17 00:00:00 2001 -From: Stephan Raue -Date: Sat, 6 Apr 2013 20:02:42 +0200 -Subject: [PATCH 10/12] [OMXPlayer] [PATCH] dvdplayer: fixed time_offset is - difference between adjusted Based on - https://github.com/xbmc/xbmc/commit/406ef63c542bc087f50d68f0046430e04b20f3b6 - in master and added in - https://github.com/xbmc/xbmc/commit/28de0da9afeb6bcbc2c8a3cad31c79225b07ec7d - ---- - xbmc/cores/omxplayer/OMXPlayer.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp -index 463f7db..b44c1ea 100644 ---- a/xbmc/cores/omxplayer/OMXPlayer.cpp -+++ b/xbmc/cores/omxplayer/OMXPlayer.cpp -@@ -2085,7 +2085,7 @@ void COMXPlayer::HandleMessages() - - // if input streams doesn't support seektime we must convert back to clock - if(dynamic_cast(m_pInputStream) == NULL) -- time -= DVD_TIME_TO_MSEC(m_State.time_offset); -+ time -= DVD_TIME_TO_MSEC(m_State.time_offset - m_offset_pts); - - CLog::Log(LOGDEBUG, "demuxer seek to: %d", time); - if (m_pDemuxer && m_pDemuxer->SeekTime(time, msg.GetBackward(), &start)) -@@ -3950,7 +3950,7 @@ void COMXPlayer::UpdatePlayState(double timeout) - } - - if (state.time_src == ETIMESOURCE_CLOCK) -- state.time_offset = 0; -+ state.time_offset = m_offset_pts; - else - state.time_offset = DVD_MSEC_TO_TIME(state.time) - state.dts; - --- -1.8.1.5 - - -From 8bf3334a0317b320d1af66eefa8885d5033dde8b Mon Sep 17 00:00:00 2001 -From: Stephan Raue -Date: Sun, 7 Apr 2013 10:46:02 +0200 -Subject: [PATCH 11/12] [OMXPlayer] [PATCH] fixed: We can only obtain the - aspect & duration this way when the Process() thread is running Based on - https://github.com/xbmc/xbmc/commit/9db853e551f0380aac884fcb6c9564a725fcb966 - in master and added in - https://github.com/xbmc/xbmc/commit/28de0da9afeb6bcbc2c8a3cad31c79225b07ec7d - ---- - xbmc/cores/omxplayer/OMXPlayer.cpp | 17 ++++++++++++++--- - 1 file changed, 14 insertions(+), 3 deletions(-) - -diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp -index b44c1ea..c80c056 100644 ---- a/xbmc/cores/omxplayer/OMXPlayer.cpp -+++ b/xbmc/cores/omxplayer/OMXPlayer.cpp -@@ -4097,11 +4097,22 @@ bool COMXPlayer::GetStreamDetails(CStreamDetails &details) - { - if (m_pDemuxer) - { -- bool result=CDVDFileInfo::DemuxerToStreamDetails(m_pInputStream, m_pDemuxer, details); -+ bool result = CDVDFileInfo::DemuxerToStreamDetails(m_pInputStream, m_pDemuxer, details); - if (result && details.GetStreamCount(CStreamDetail::VIDEO) > 0) // this is more correct (dvds in particular) - { -- GetVideoAspectRatio(((CStreamDetailVideo*)details.GetNthStream(CStreamDetail::VIDEO,0))->m_fAspect); -- ((CStreamDetailVideo*)details.GetNthStream(CStreamDetail::VIDEO,0))->m_iDuration = GetTotalTime() / 1000; -+ /* -+ * We can only obtain the aspect & duration from dvdplayer when the Process() thread is running -+ * and UpdatePlayState() has been called at least once. In this case dvdplayer duration/AR will -+ * return 0 and we'll have to fallback to the (less accurate) info from the demuxer. -+ */ -+ float aspect; -+ GetVideoAspectRatio(aspect); -+ if (aspect > 0.0f) -+ ((CStreamDetailVideo*)details.GetNthStream(CStreamDetail::VIDEO,0))->m_fAspect = aspect; -+ -+ int64_t duration = GetTotalTime() / 1000; -+ if (duration > 0) -+ ((CStreamDetailVideo*)details.GetNthStream(CStreamDetail::VIDEO,0))->m_iDuration = duration; - } - return result; - } --- -1.8.1.5 - - -From f8669f89fc0a23706f6cf9b84d145c2dfafeab1b Mon Sep 17 00:00:00 2001 -From: Stephan Raue -Date: Sun, 7 Apr 2013 11:37:35 +0200 -Subject: [PATCH 12/12] [OMXPlayer] cosmetic changes: sync with dvdplayer - (changes) this was added in - https://github.com/xbmc/xbmc/commit/28de0da9afeb6bcbc2c8a3cad31c79225b07ec7d - ---- - xbmc/cores/omxplayer/OMXPlayer.cpp | 20 ++++++++++---------- - xbmc/cores/omxplayer/OMXPlayerVideo.h | 2 ++ - 2 files changed, 12 insertions(+), 10 deletions(-) - -diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp -index c80c056..a62d0c0 100644 ---- a/xbmc/cores/omxplayer/OMXPlayer.cpp -+++ b/xbmc/cores/omxplayer/OMXPlayer.cpp -@@ -418,8 +418,8 @@ void COMXSelectionStreams::Update(CDVDInputStream* input, CDVDDemux* demuxer) - m_HasVideo = false; - m_HasAudio = false; - -- m_State.Clear(); - m_dvd.Clear(); -+ m_State.Clear(); - m_EdlAutoSkipMarkers.Clear(); - - memset(&m_SpeedState, 0, sizeof(m_SpeedState)); -@@ -476,7 +476,6 @@ bool COMXPlayer::OpenFile(const CFileItem &file, const CPlayerOptions &options) - g_renderManager.PreInit(); - - Create(); -- - if(!m_ready.WaitMSec(100)) - { - CGUIDialogBusy* dialog = (CGUIDialogBusy*)g_windowManager.GetWindow(WINDOW_DIALOG_BUSY); -@@ -599,7 +598,6 @@ bool COMXPlayer::OpenInputStream() - || m_pInputStream->IsStreamType(DVDSTREAM_TYPE_BLURAY) ) ) - { - CLog::Log(LOGINFO, "COMXPlayer::OpenInputStream - DVD/BD not supported - Will try..."); -- // return false; - } - - // find any available external subtitles for non dvd files -@@ -633,7 +631,7 @@ bool COMXPlayer::OpenInputStream() - AddSubtitleFile(filenames[i]); - } - } -- } // end loop over all subtitle files -+ } // end loop over all subtitle files - - g_settings.m_currentVideoSettings.m_SubtitleCached = true; - } -@@ -641,7 +639,6 @@ bool COMXPlayer::OpenInputStream() - SetAVDelay(g_settings.m_currentVideoSettings.m_AudioDelay); - SetSubTitleDelay(g_settings.m_currentVideoSettings.m_SubtitleDelay); - m_av_clock.Reset(); -- //m_av_clock.OMXReset(); - m_dvd.Clear(); - m_iChannelEntryTimeOut = 0; - -@@ -937,7 +934,7 @@ void COMXPlayer::Process() - bool bOmxWaitVideo = false; - bool bOmxWaitAudio = false; - -- if(!OpenInputStream()) -+ if (!OpenInputStream()) - { - m_bAbortRequest = true; - return; -@@ -945,7 +942,7 @@ void COMXPlayer::Process() - - if(m_pInputStream->IsStreamType(DVDSTREAM_TYPE_DVD)) - { -- CLog::Log(LOGNOTICE, "OMXPlayer: playing a dvd with menu's"); -+ CLog::Log(LOGNOTICE, "OMXPlayer: playing a file with menu's"); - m_PlayerOptions.starttime = 0; - - if(m_PlayerOptions.state.size() > 0) -@@ -1331,7 +1328,7 @@ void COMXPlayer::ProcessPacket(CDemuxStream* pStream, DemuxPacket* pPacket) - - void COMXPlayer::ProcessAudioData(CDemuxStream* pStream, DemuxPacket* pPacket) - { -- if (m_CurrentAudio.stream != (void*)pStream -+ if (m_CurrentAudio.stream != (void*)pStream - || m_CurrentAudio.changes != pStream->changes) - { - /* check so that dmuxer hints or extra data hasn't changed */ -@@ -1597,6 +1594,7 @@ void COMXPlayer::HandlePlaySpeed() - if(m_caching != caching) - SetCaching(caching); - -+ - if(GetPlaySpeed() != DVD_PLAYSPEED_NORMAL && GetPlaySpeed() != DVD_PLAYSPEED_PAUSE) - { - if (IsInMenu()) -@@ -2153,7 +2151,6 @@ void COMXPlayer::HandleMessages() - { - m_dvd.iSelectedAudioStream = -1; - CloseAudioStream(false); -- // TODO : check //CloseVideoStream(false); - m_messenger.Put(new CDVDMsgPlayerSeek(GetTime(), true, true, true, true, true)); - } - } -@@ -2356,6 +2353,7 @@ void COMXPlayer::HandleMessages() - - pMsg->Release(); - } -+ - } - - void COMXPlayer::SetCaching(ECacheState state) -@@ -2695,6 +2693,7 @@ float COMXPlayer::GetSubTitleDelay() - return -m_player_video.GetSubtitleDelay() / DVD_TIME_BASE; - } - -+// priority: 1: libdvdnav, 2: external subtitles, 3: muxed subtitles - int COMXPlayer::GetSubtitleCount() - { - OMXStreamLock lock(this); -@@ -2954,7 +2953,7 @@ bool COMXPlayer::OpenVideoStream(int iStream, int source, bool reset) - if(m_CurrentVideo.id < 0 - || m_CurrentVideo.hint != hint) - { -- if(!m_player_video.OpenStream(hint)) -+ if (!m_player_video.OpenStream(hint)) - { - /* mark stream as disabled, to disallaw further attempts */ - CLog::Log(LOGWARNING, "%s - Unsupported stream %d. Stream disabled.", __FUNCTION__, iStream); -@@ -3529,6 +3528,7 @@ bool COMXPlayer::OnAction(const CAction &action) - } - break; - } -+ - if (pMenus->IsInMenu()) - { - switch (action.GetID()) -diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.h b/xbmc/cores/omxplayer/OMXPlayerVideo.h -index 58ded06..a02928b 100644 ---- a/xbmc/cores/omxplayer/OMXPlayerVideo.h -+++ b/xbmc/cores/omxplayer/OMXPlayerVideo.h -@@ -38,6 +38,7 @@ - #include "DVDMessageQueue.h" - #include "utils/BitstreamStats.h" - #include "linux/DllBCM.h" -+#include "cores/VideoRenderers/RenderManager.h" - - using namespace std; - -@@ -125,6 +126,7 @@ class OMXPlayerVideo : public CThread - void EnableSubtitle(bool bEnable) { m_bRenderSubs = bEnable; } - bool IsSubtitleEnabled() { return m_bRenderSubs; } - void EnableFullscreen(bool bEnable) { m_bAllowFullscreen = bEnable; } -+ float GetAspectRatio() { return g_renderManager.GetAspectRatio(); } - void SetFlags(unsigned flags) { m_flags = flags; }; - int GetFreeSpace(); - void SetVideoRect(const CRect &SrcRect, const CRect &DestRect); --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.42-PR2537.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.42-PR2537.patch deleted file mode 100644 index 9049ba32e2..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.42-PR2537.patch +++ /dev/null @@ -1,104 +0,0 @@ -From c106cfd4e35dd53310d7325ce658618807d59ac2 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Sun, 17 Mar 2013 12:48:09 +0000 -Subject: [PATCH] [rbp] Set mediatime on GPU after a seek. - -Currently after a seek, the mediatime doesn't update until an audio and video packet have been fetched from demuxer, and been decoded. For HD content this can take a second or two. -This has a couple of undesirable effects: -The seek time that pops up after a seek initially shows the before seek time, and the file progress bar is laggy. -If you seek a second time, before the time has updated, it will use the before seek time, and the second seek has no effect. -This limits a sequence of seeks to a maximum of about 1 every second or two. - -The fix udpates the GPU mediatime immediately after the seek, so the mediatime is correct immediately which fixes the undesirable behaviour. ---- - xbmc/cores/omxplayer/OMXPlayer.cpp | 3 +++ - xbmc/linux/OMXClock.cpp | 46 ++++++++++++++++++++++++++++++++++++++ - xbmc/linux/OMXClock.h | 1 + - 3 files changed, 50 insertions(+) - -diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp -index 78b51f2..c09569b 100644 ---- a/xbmc/cores/omxplayer/OMXPlayer.cpp -+++ b/xbmc/cores/omxplayer/OMXPlayer.cpp -@@ -3296,6 +3296,9 @@ void COMXPlayer::FlushBuffers(bool queued, double pts, bool accurate) - CSingleLock lock(m_StateSection); - m_State = m_StateInput; - } -+ // let clock know the new time so progress bar updates immediately -+ if(startpts != DVD_NOPTS_VALUE) -+ m_av_clock.OMXMediaTime(startpts); - } - - // since we call ffmpeg functions to decode, this is being called in the same thread as ::Process() is -diff --git a/xbmc/linux/OMXClock.cpp b/xbmc/linux/OMXClock.cpp -index 535a533..54ccf31 100644 ---- a/xbmc/linux/OMXClock.cpp -+++ b/xbmc/linux/OMXClock.cpp -@@ -745,6 +745,52 @@ double OMXClock::OMXMediaTime(bool fixPreroll /* true */ , bool lock /* = true * - return pts; - } - -+// Set the media time, so calls to get media time use the updated value, -+// useful after a seek so mediatime is updated immediately (rather than waiting for first decoded packet) -+bool OMXClock::OMXMediaTime(double pts, bool fixPreroll /* = true*/, bool lock /* = true*/) -+{ -+ if(m_omx_clock.GetComponent() == NULL) -+ return false; -+ -+ if(lock) -+ Lock(); -+ -+ OMX_ERRORTYPE omx_err = OMX_ErrorNone; -+ OMX_INDEXTYPE index; -+ OMX_TIME_CONFIG_TIMESTAMPTYPE timeStamp; -+ OMX_INIT_STRUCTURE(timeStamp); -+ timeStamp.nPortIndex = m_omx_clock.GetInputPort(); -+ -+ if(g_guiSettings.GetBool("videoplayer.usedisplayasclock") && m_has_video) -+ index = OMX_IndexConfigTimeCurrentVideoReference; -+ else if(m_has_audio) -+ index = OMX_IndexConfigTimeCurrentAudioReference; -+ else -+ index = OMX_IndexConfigTimeCurrentVideoReference; -+ -+ if(fixPreroll) -+ pts -= (OMX_PRE_ROLL * 1000); -+ timeStamp.nTimestamp = ToOMXTime(pts); -+ -+ omx_err = m_omx_clock.SetConfig(index, &timeStamp); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "OMXClock::OMXMediaTime error setting %s", index == OMX_IndexConfigTimeCurrentAudioReference ? -+ "OMX_IndexConfigTimeCurrentAudioReference":"OMX_IndexConfigTimeCurrentVideoReference"); -+ if(lock) -+ UnLock(); -+ return false; -+ } -+ -+ CLog::Log(LOGDEBUG, "OMXClock::OMXMediaTime set config %s = %.2f", index == OMX_IndexConfigTimeCurrentAudioReference ? -+ "OMX_IndexConfigTimeCurrentAudioReference":"OMX_IndexConfigTimeCurrentVideoReference", pts); -+ -+ if(lock) -+ UnLock(); -+ -+ return true; -+} -+ - bool OMXClock::OMXPause(bool lock /* = true */) - { - if(m_omx_clock.GetComponent() == NULL) -diff --git a/xbmc/linux/OMXClock.h b/xbmc/linux/OMXClock.h -index f41a7fd..3001d86 100644 ---- a/xbmc/linux/OMXClock.h -+++ b/xbmc/linux/OMXClock.h -@@ -116,6 +116,7 @@ class OMXClock - bool OMXReset(bool lock = true); - double OMXWallTime(bool lock = true); - double OMXMediaTime(bool fixPreroll = true, bool lock = true); -+ bool OMXMediaTime(double pts, bool fixPreroll = true, bool lock = true); - bool OMXPause(bool lock = true); - bool OMXResume(bool lock = true); - bool OMXUpdateClock(double pts, bool lock = true); --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.43-PR2459.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.43-PR2459.patch deleted file mode 100644 index 6374ec719b..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.43-PR2459.patch +++ /dev/null @@ -1,58 +0,0 @@ -From f9498832d2dd260a47051a88ae9d3e1e1b2f957e Mon Sep 17 00:00:00 2001 -From: xbmc -Date: Mon, 18 Mar 2013 08:20:02 +0100 -Subject: [PATCH 1/2] dvdplayer: reevaluate HasVideo/Audio after a stream - change - ---- - xbmc/cores/dvdplayer/DVDPlayer.cpp | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 3d2ca03..bac062d 100644 ---- a/xbmc/cores/dvdplayer/DVDPlayer.cpp -+++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -788,6 +788,13 @@ bool CDVDPlayer::ReadPacket(DemuxPacket*& packet, CDemuxStream*& stream) - m_SelectionStreams.Clear(STREAM_NONE, STREAM_SOURCE_DEMUX); - m_SelectionStreams.Update(m_pInputStream, m_pDemuxer); - OpenDefaultStreams(false); -+ -+ // reevaluate HasVideo/Audio, we may have switched from/to a radio channel -+ if(m_CurrentVideo.id < 0) -+ m_HasVideo = false; -+ if(m_CurrentAudio.id < 0) -+ m_HasAudio = false; -+ - return true; - } - --- -1.8.1.5 - - -From 5ee4bcbd90707d8cedf3c560203b64e458c9ca0b Mon Sep 17 00:00:00 2001 -From: xbmc -Date: Mon, 18 Mar 2013 12:04:04 +0100 -Subject: [PATCH 2/2] pvr: remove check for different types of channels on - SwitchChannel - ---- - xbmc/pvr/addons/PVRClients.cpp | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/xbmc/pvr/addons/PVRClients.cpp b/xbmc/pvr/addons/PVRClients.cpp -index dc6324e..74c6873 100644 ---- a/xbmc/pvr/addons/PVRClients.cpp -+++ b/xbmc/pvr/addons/PVRClients.cpp -@@ -308,8 +308,6 @@ bool CPVRClients::SwitchChannel(const CPVRChannel &channel) - !GetPlayingChannel(currentChannel) || - // different backend - currentChannel->ClientID() != channel.ClientID() || -- // different type -- currentChannel->IsRadio() != channel.IsRadio() || - // stream URL should always be opened as a new file - !channel.StreamURL().IsEmpty() || !currentChannel->StreamURL().IsEmpty()) - { --- -1.8.1.5 - diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.47-PR2491.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-990.47-PR2491.patch deleted file mode 100644 index 3217087fb1..0000000000 --- a/packages/mediacenter/xbmc/patches/12.1/xbmc-990.47-PR2491.patch +++ /dev/null @@ -1,151 +0,0 @@ -From 1410f361434bf1af9bc436cd01d977f1a372f71b Mon Sep 17 00:00:00 2001 -From: xbmc -Date: Sat, 23 Mar 2013 18:29:13 +0100 -Subject: [PATCH 1/2] pvr: fix too early finish of recordings - ---- - .../dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp | 11 ++++++++--- - xbmc/cores/dvdplayer/DVDPlayer.cpp | 9 --------- - xbmc/filesystem/PVRFile.h | 2 +- - 3 files changed, 9 insertions(+), 13 deletions(-) - -diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp -index fe19a3d..a0475d1 100644 ---- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp -+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp -@@ -315,9 +315,14 @@ bool CDVDInputStreamPVRManager::UpdateItem(CFileItem& item) - - if(m_bReopened) - { -- m_bReopened = false; -- m_eof = false; -- return NEXTSTREAM_RETRY; -+ if (IsEOF()) -+ return NEXTSTREAM_NONE; -+ else -+ { -+ m_bReopened = false; -+ m_eof = false; -+ return NEXTSTREAM_RETRY; -+ } - } - - if (m_pOtherStream) -diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index a1f56ce..cdf5876 100644 ---- a/xbmc/cores/dvdplayer/DVDPlayer.cpp -+++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -1174,15 +1174,6 @@ void CDVDPlayer::Process() - Sleep(100); - continue; - } -- else if (m_pInputStream->IsStreamType(DVDSTREAM_TYPE_PVRMANAGER)) -- { -- CDVDInputStreamPVRManager* pStream = static_cast(m_pInputStream); -- if (pStream->IsEOF()) -- break; -- -- Sleep(100); -- continue; -- } - - // make sure we tell all players to finish it's data - if(m_CurrentAudio.inited) -diff --git a/xbmc/filesystem/PVRFile.h b/xbmc/filesystem/PVRFile.h -index edf0e10..4d51da8 100644 ---- a/xbmc/filesystem/PVRFile.h -+++ b/xbmc/filesystem/PVRFile.h -@@ -44,7 +44,7 @@ class CPVRFile - virtual void Close(); - virtual unsigned int Read(void* buffer, int64_t size); - virtual CStdString GetContent() { return ""; } -- virtual bool SkipNext() { return true; } -+ virtual bool SkipNext() { return !m_isPlayRecording; } - - virtual bool Delete(const CURL& url); - virtual bool Rename(const CURL& url, const CURL& urlnew); --- -1.8.1.5 - - -From cbad7f0e8feca4cb96a21bb6c84d98272edb000f Mon Sep 17 00:00:00 2001 -From: xbmc -Date: Thu, 28 Mar 2013 16:25:50 +0100 -Subject: [PATCH 2/2] pvr: align NexStream and SkipNext with logic in dvdplayer - ---- - .../DVDInputStreams/DVDInputStreamPVRManager.cpp | 24 +++++++--------------- - .../DVDInputStreams/DVDInputStreamPVRManager.h | 1 - - 2 files changed, 7 insertions(+), 18 deletions(-) - -diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp -index a0475d1..431c280 100644 ---- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp -+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp -@@ -45,7 +45,6 @@ - m_pLiveTV = NULL; - m_pOtherStream = NULL; - m_eof = true; -- m_bReopened = false; - m_iScanTimeout = 0; - } - -@@ -311,28 +310,20 @@ bool CDVDInputStreamPVRManager::UpdateItem(CFileItem& item) - - CDVDInputStream::ENextStream CDVDInputStreamPVRManager::NextStream() - { -- if(!m_pFile) return NEXTSTREAM_NONE; -+ if(!m_pFile) -+ return NEXTSTREAM_NONE; - -- if(m_bReopened) -- { -- if (IsEOF()) -- return NEXTSTREAM_NONE; -- else -- { -- m_bReopened = false; -- m_eof = false; -- return NEXTSTREAM_RETRY; -- } -- } -+ m_eof = IsEOF(); - - if (m_pOtherStream) - return m_pOtherStream->NextStream(); - else if(m_pFile->SkipNext()) - { -- m_eof = false; -- return NEXTSTREAM_OPEN; -+ if (m_eof) -+ return NEXTSTREAM_OPEN; -+ else -+ return NEXTSTREAM_RETRY; - } -- - return NEXTSTREAM_NONE; - } - -@@ -385,7 +376,6 @@ bool CDVDInputStreamPVRManager::CloseAndOpen(const char* strFile) - - if (Open(strFile, m_content)) - { -- m_bReopened = true; - return true; - } - -diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h -index 9a9580f..78c7340 100644 ---- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h -+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h -@@ -98,7 +98,6 @@ class CDVDInputStreamPVRManager - XFILE::IRecordable* m_pRecordable; - bool m_eof; - std::string m_strContent; -- bool m_bReopened; - unsigned int m_iScanTimeout; - }; - --- -1.8.1.5 - diff --git a/tools/mkpkg/mkpkg_xbmc-frodo b/tools/mkpkg/mkpkg_xbmc-frodo index dfe903881d..262c25946b 100755 --- a/tools/mkpkg/mkpkg_xbmc-frodo +++ b/tools/mkpkg/mkpkg_xbmc-frodo @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="xbmc" -PKG_VERSION="12.1" +PKG_VERSION="12.1.2" GIT_REPO="-b Frodo git://github.com/xbmc/xbmc.git" DEST_DIR="$PKG_NAME-frodo"