[IPlayer] Add struct SPlayerAudioStreamInfo and GetAudioStreamInfo(int iStream, SPlayerAudioStreamInfo &info).
[Players/GUI/LegacyPlayer/JSON] Remove
    GetAudioStreamLanguage(int iStream, CStdString &strLanguage)
    GetChannels()
    GetAudioCodecName()
    GetAudioStreamName(int iStream, CStdString &strStreamName)
from all players and replace them with GetAudioStreamInfo(int iStream, SPlayerAudioStreamInfo &info).
[IPlayer] Add struct SPlayerSubtitleStreamInfo and GetSubtitleStreamInfo(int iStream, SPlayerSubtitleStreamInfo &info).

[Players/GUI/LegacyPlayer/JSON] Remove
     GetSubtitleLanguage(int iStream, CStdString &strStreamLang)
     GetSubtitleName(int iStream, CStdString &strStreamName)
from all players and replace the calls to them with calls to GetSubtitleStreamInfo(int iStream, SPlayerSubtitleStreamInfo &info).
[Players] Remove unused method GetSubtitleExtension(CStdString &strSubtitleExtension).
[IPlayer] Add struct SPlayerVideoStreamInfo and GetAudioStreamInfo(SPlayerVideoStreamInfo &info).

[Players/GUI] Remove
    GetVideoBitrate()
    GetVideoCodecName()
    GetVideoAspectRatio(float& fAR)
    GetVideoRect(CRect& SrcRect, CRect& DestRect)

from all players and replace the calls to them with calls to GetVideoStreamInfo(int iStream, SPlayerAudioStreamInfo &info).
[cec] get the CEC devices that are connected to the system from libCEC, rather than getting them from usb device scanning (or other methods). this way all adapters that libCEC supports are automatically supported by XBMC, without the need for specific device scanning code. bumped libCEC to 2.1.0
[peripherals] pass the full scan result to CPeripherals::CreatePeripheral()
[peripherals] removed unused constructor
[peripherals] pass the full scan result to CPeripherals::GetMappingForDevice()
[peripherals] added fields m_mappedType and m_strDeviceName to PeripheralScanResult
[peripherals] update m_mappedType and m_strDeviceName in PeripheralScanResult in CPeripherals::GetMappingForDevice()
[peripherals] store the bus type in PeripheralScanResult so it can be overridden
[cec] override the bus type, so users don't have to reconfigure their adapters
[peripherals] pass the full PeripheralScanResult to CPeripheral constructors (cleanup)
[peripherals] use a separate field for mapped bus types in PeripheralScanResult or setting won't be loaded
[cec] ensure that the updater thread has been stopped before trying to stop the main thread or we'll be waiting a long time to exit when the tv can't be polled
[peripheral] support for multiple adapters of the same type
fixes for 14119
Name threads on Linux properly

I implemented this as part of the OpenELEC project.

It helps debug issues if we can easily identify the XBMC thread by name. This patch implements just that.

This second incarnation now implements a proper configure check to ensure we are using the capabilities of the library on various platforms (esp. when using glibc < 1.12).
Merge pull request #1794 from opdenkamp/cecdevscan

[cec] get the CEC devices that are connected to the system from libCEC
Merge pull request #2064 from fritsch/xbmc-upstream

dvdplayer: Allow multithread decoding when software is used