Merge pull request #2239 from ulion/fix_simplefilecache_waitdata

Refactor CSimpleFileCache::WaitData, kill race conditions.
Make sure call CurlFile::Exists with url path ends with slash for ftp dir.
[Application] Silence warning double -> int
[AESinkNull] Silence warning double -> int
[rbp] Handle resolution changes during video stream.

When the resolution changes, GPU sends a port settings changed message. Host has to acknowledge it by disabling and enabling the affected ports.
[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).
[IOS] Fix and unify postMouseMotionEvent use scaled point position.
Merge pull request #2298 from ulion/fix_postmousemotionevent_double_scale

[IOS] Fix and unify postMouseMotionEvent use scaled point position.
[IOS] Fix long press gesture send mouse right down/up/move event correctly.
[IOS] Fix no mouse left up event problem by using single tap gesture recognizer.
[IOS] Fix no gesture end event problem when gesture be canceled.
Using namespace rather than namespace scope quote.
Fix the WaitData amount in CSimpleFileCache::Seek, count from read pos.
Enable and disable m_bEPGEnabled when changing channel visibility
Correct Player.PlayPause behavior

In current implementation using play parameter as boolean won't force the playerspeed to 1 as it should.
This PR correct this so that using a bool parameter act as the toggle and provide the same behavior as GUI or EventServer.
Merge pull request #2289 from fritsch/ae-segfault-fix

AE: Fix segfault after indirection patches
[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.