Stay on safe side, use only one header file.
Other header is located at xbmc/linux/ and seem to be more accurate.
[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).
[rbp] Fix for stuttery video when seeking before zero

There are a few issues with seeking I found.
We weren't correctly setting OMX_BUFFERFLAG_TIME_UNKNOWN on the first frame after a seek which could make the GPU think video was at 0 and audio at a much larger offset.
A full video fifo (to GPU) stops any higher priority messages from being received which can stall a seek and the flush message doesn't get through. Use m_flush to discard the video packet that doesn't fit.
We get an audio frame through with unknown pts/dts after the flush, but before the GENERAL_RESYNC when seeking. This was given to GPU and was perhaps 30 seconds out from the following packets and that throws off the timing between audio and video streams. Keeping m_flush true until the GENERAL_RESYNC discards this frame. Hopefully that is safe.
droid: add builtin for executing android apps via applicationmanager
[droid] attach/detach the jvm using thread storage

Threads are automatically attached when issuing a xbmc_jnienv(), and detach
automatically at destruction.

This eliminates manual intervention, and likely will save us from some bugs in
the future. The old code was very difficult to maintain since every function
had to assume that it was not attached and had to detach when finished.

This is the method recommended in the Android docs.
Merge pull request #2269 from ace20022/getXxxStreamInfo

[IPlayer et al.] Replace various Getxxx methods with GetxxxStreamInfo methods
Change CircularCache internal pos members from uint64_t to int64_t.
FIX: BitstreamConverter: don't close the converter without warning in case of conversion error
Merge pull request #2357 from ulion/change_circularcache_pos_member_from_uint64_to_int64

Change CircularCache internal pos members from uint64_t to int64_t.
FIX: in CDAVDirectory::Exists, using PROPFIND without depth might return 403
Fix build after 87047e93e02375851505e9d6c420dd1225996bdb
Merge pull request #2360 from ace20022/fix_build

Fix build after merge of PR #2269
Merge pull request #2361 from koying/fixdavdirectoryexist

FIX: in CDAVDirectory::Exists, using PROPFIND without depth might return 403
fix libcec build and version bump to match
fix Android build breakage for libcec
added: = & != operator for CStreamDetails
fixed: The VideoThumbLoader didn't fetch streamdetails for items that didn't have a file id set in their infotag