FIX: avoid waiting forever on a locked CPluginDirectory while exiting
Sort buttons depend directly on available sort methods
Python: Add a DelayedCallGuard to xbmc.executeJSONRPC.

Avoids locking other python threads running on the same process space as XBMC, since executeJSONRPC may trigger activity on them.
FIX: [stagefright] ignore frames with no valid pts
[LangCodeExpander] Early return from methods if the string being looked up or converted is empty.
FIX: Do not remove internet files from video db only because they come from a disappeared source
FIX: [droid] Prevent droid from shutting us down when an usb/BT keyboard/gamepad is plugged in/out
Null check m_pSetting
Remove unnecessary assignment to bPlaying
Initialize min/max in case where the filter is not handled in GetRange
remove unnecessary assignment
check m_programmeLayout isn't NULL
pvr: Fix crash when opening PVROSDChannels while playing a recording

This fixes a crash when sending the action XBMC.ActivateWindow(PVROSDChannels)
to open the channel view while playing back a PVR recording.

 0  0x00007ffff0d2b037 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
 1  0x00007ffff0d2e698 in __GI_abort () at abort.c:90
 2  0x00007ffff0d23e03 in __assert_fail_base (
    fmt=0x7ffff0e7a578 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
    assertion=assertion@entry=0x10e09c9 "px != 0",
    file=file@entry=0x10e06f8 "/usr/include/boost/smart_ptr/shared_ptr.hpp",
    line=line@entry=424,
    function=function@entry=0x119ede0
      <_ZZNK5boost10shared_ptrIN3PVR11CPVRChannelEEptEvE19__PRETTY_FUNCTION__>
      "T* boost::shared_ptr<T>::operator->() const [with T = PVR::CPVRChannel]")
      at assert.c:92
 3  0x00007ffff0d23eb2 in __GI___assert_fail (assertion=0x10e09c9 "px != 0",
    file=0x10e06f8 "/usr/include/boost/smart_ptr/shared_ptr.hpp", line=424,
    function=0x119ede0
       <_ZZNK5boost10shared_ptrIN3PVR11CPVRChannelEEptEvE19__PRETTY_FUNCTION__>
      "T* boost::shared_ptr<T>::operator->() const [with T = PVR::CPVRChannel]")
      at assert.c:101
 4  0x00000000006db05e in boost::shared_ptr<PVR::CPVRChannel>::operator-> (
    this=<optimized out>) at /usr/include/boost/smart_ptr/shared_ptr.hpp:424
 5  0x000000000103af4d in PVR::CGUIDialogPVRChannelsOSD::Update (
    this=this@entry=0x1fe2a40) at GUIDialogPVRChannelsOSD.cpp:183
 6  0x000000000103b2fd in PVR::CGUIDialogPVRChannelsOSD::OnInitWindow (
    this=0x1fe2a40) at GUIDialogPVRChannelsOSD.cpp:105
 7  0x000000000080e3f9 in CGUIWindow::OnMessage (this=this@entry=0x1fe2a40,
    message=...) at GUIWindow.cpp:546
 8  0x00000000007f25ab in CGUIDialog::OnMessage (this=0x1fe2a40, message=...)
    at GUIDialog.cpp:103
 9  0x00000000007f222e in CGUIDialog::DoModal_Internal (this=0x1fe2a40,
    iWindowID=10610, param=...) at GUIDialog.cpp:185
 10 0x00000000008145ea in CGUIWindowManager::ActivateWindow_Internal (
    this=this@entry=0x16e5df0, iWindowID=iWindowID@entry=10610, params=...,
    swappingWindows=swappingWindows@entry=false) at GUIWindowManager.cpp:405
 11 0x000000000081496f in CGUIWindowManager::ActivateWindow (this=0x16e5df0,
    iWindowID=iWindowID@entry=10610, params=...,
    swappingWindows=swappingWindows@entry=false) at GUIWindowManager.cpp:353
 12 0x0000000000ae56ac in CBuiltins::Execute (execString=...)
    at Builtins.cpp:394
 13 0x0000000000bda289 in CApplication::OnAction (this=this@entry=0x16e1070,
    action=...) at Application.cpp:2502
 14 0x0000000000d78e08 in EVENTSERVER::CEventServer::ExecuteNextAction (
    this=this@entry=0x2c3d9c0) at EventServer.cpp:353
 15 0x0000000000bdc9ba in CApplication::ProcessEventServer (
    this=this@entry=0x16e1070, frameTime=frameTime@entry=0.0400000028)
    at Application.cpp:3039
 16 0x0000000000bdd326 in CApplication::FrameMove (this=0x16e1070,
    processEvents=<optimized out>, processGUI=<optimized out>)
    at Application.cpp:2838
 17 0x0000000000c521f2 in CXBApplicationEx::Run (this=this@entry=0x16e1070)
    at XBApplicationEx.cpp:140
 18 0x000000000071d5d7 in XBMC_Run (renderGUI=<optimized out>) at xbmc.cpp:69
 19 0x00000000006dba7e in main (argc=1, argv=0x7fffffffdff8)
    at xbmc/main/main.cpp:76
fix crash/freeze when changing skin after installing a new skin addon
use CSetting::Reset() instead of manually setting the default value
paplayer: compare musicinfotag-url when testing for cue file
English spelling corrections English/strings.po
dialog      -> dialogue
analog      -> analogue

A dialogue box (GUI - Yes/No/Informational or otherwise) contains dialogue, and as such should be correctly spelt, this project has a en_US strings.po of which this spelling would be correct, but not here).
"dialog" has not become an accepted form in English like "program" has instead of "programme" for use in computing terms.
http://oxforddictionaries.com/definition/english/dialogue

analogue, the in use of opposite of digital, should be spelt -logue at the end.
(the spelling analog is American / en_US).
http://oxforddictionaries.com/definition/english/analogue

Once merges are made with Transifex, en_US can be correctly localised.
CharsetConverter: convert_checked - add ability to fail on invalid char, clear iconv buffer on errors
CharsetConverter: convert_checked - don't use CStdStr function in conversion, make sure that buffer will not be overrun
CharsetConverter: convert_checked - cosmetics