[pvr] refactor: define map type for epg container
[pvr] refactor: use map to improve recording lookup in recordings container
[pvr] refactor: use std::string for recording id to avoid implicit casts
[pvr] cosmetics: fix minor typos in comments
[pvr] add optional support for playing recordings from epg timeline or epg osd
[confluence] add "has recording" marker to programmes having associated recordings in epg timeline view, epg osd and programme search results
Removed generating new texture repeatedly during character cache.
Copy valid region only from old texture after ReallocTexture().
As a result, reduced stuttering video playback with subtitle.
Use TEXTURE_VOID instead of m_bTextureLoaded
[Fix] Cleanup emu environment items on exit.
Remove unused define in emu_msvcrt.
Free allocated CTimeSmoother at exit.
[AE] Free AVIOContext and its buffer.
tvshowmatching: match names without season (foo.E01)
tvshowmatching: allow digits after 'part'. e.g. foo.part.1
add tests for EnumerateEpisodeItem
[appmessenger] fix MediaPlay regression introduced by f86b9d2
Merge pull request #4993 from mkortstiege/playfile

[appmessenger] fix playfile regression introduced by f86b9d2
ActiveAE: Add queries to determine number of channels output
[omxplayer] Make use of audio decode fast paths when downmixing

The TrueHD codec actually works in 3 stages.
It decodes the downmixed stereo.
It then decodes the differences required to produce 5.1.
It then decodes the differences required to produce 7.1.

Many users end up downmixing this 7.1 stream back to 2.0.
Much better to tell the codec we only need the 2.0 stream.

When playing a 94s duration video file on an overclocked Pi, the audio decode took:
7.1 channels: 39.6s
5.1 channels: 36.5s
2.0 channels: 23.0s

So, it's almost twice as fast to decode TrueHD when only stereo is required.
[tagloader] read popm ratings from banshee (closes #15333)