MythMusic: Pass the full filename to TagExists() in Metadata::getTagger()

This fixes a bug when reading the metadata from flac files with ID3 tags.
(cherry picked from commit 459e806faf5fe60adbfa42f22f1f1ceddafd56e3)

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
MythMusic: Remove some no longer used key bindings
(cherry picked from commit ea7a0b8faf662cf0a8355362299b40a52c29aaad)

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
MythMusic: Add keybindings to jump to all the views

This adds some SWITCHTO* keybindings in the Music context that allows you to
define keys that will switch to the chosen view rather than having to use the
menu. All are unbound by default.
(cherry picked from commit 0f1c4bffcd0c1e7c5b37621d72b81ee7f1b24683)

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
MythMusic: Add TOGGLESHUFFLE and TOGGLEREPEAT keybindings
(cherry picked from commit 91e7b1d47be84d0d9aab6476c5a4923e400e5b8e)

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
MythMusic: Make 'All Tracks' add all the tracks to the playlist

On the playlist editor screen selecting the 'All tracks' node will add all the
tracks below it to the playlist.
(cherry picked from commit 6c6b4b89bf7d76ea188393b440bca0a89ee50b53)

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
MythMusic: Add directory browsing to the playlist editor

This adds a 'Directory' node to the playlist editor so you can browse for
tracks by file path. Selecting a node will add all the tracks below it to the
playlist.
(cherry picked from commit d7fcd89a481d947cce93dea10dac9505f5d40651)

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
MythMusic: Add the missing mm_directory.png

This adds the icon required by the new directory browsing in the playlist
editor gallery view.
(cherry picked from commit 3b4cf746faf98e07894a29172b1ddc9153161800)

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
Rework RecorderBase::AspectChange() so it can't cause divide by zero.

Conflicts:

	mythtv/libs/libmythtv/recorderbase.cpp
Add missing break statement in PlaybackBox::ShowAvailabilityPopup(). Caught by Coverity.
Fix assumption that ints would be initialised to zero in JobQueueEntry, this isn't the case with C++. It appears that this would have caused any job that didn't include a chanid to abort even though the code indicates that it's perfectly valid to have a job which doesn't operate on a recording and wouldn't require the chanid. I don't know enough about the intended behaviour to say whether this will fix a user-visible bug ... Discovered by Coverity.
Fix assignment where comparison was intended in FreeSurround::getLatency(). Caught by Coverity
Fix a bunch of memory leaks in mythmetadatalookup. Coverity.
Fix CID 700722: Allocation too small for string (Coverity) in AudioOutputPulseAudio::ChooseHost()
Remove the "Seek to exact frame" setting.

Instead, use more adaptive, sensible behavior.  When doing relative
seeks, snap to the nearest keyframe if its distance from the target
frame is within 10% of the total seek distance.  When seeking within
the cutlist editor, use a value of 50% instead.

Exact frame seeking is used for absolute seeks (bookmark seek, skips
based on cutlist/commskiplist, preview generation), and for keyframe
and single-frame seeking in the cutlist editor.
Fix potential double-free (found by Coverity)
Fix seeking in HLS playback..

Can finally seek properly ; and pretty accurate and fast at that !
Seeking in Live stream is enabled. This can have some adverse effects if attempting to seek to fast toward the end and a EOF may be detected. However, this allows starting the HLS stream generated by myth and seek into it properly.
Bookmarks work.

Also improve retry when the download of a segments failed. After 3 attempts, the segments is simply dropped. I figured this is better than dropping to a lower quality stream because 1-it may not be any better on the other stream, and 2-FFmpeg H264 decoder will crash if there's a change of resolution
Use the correct delete for the array pulse_host. Reported by Coverity.
Fix memory leak in AudioOutputPulseAudio(). The code in question seems to serve no purpose but on the offchance that I'm wrong I've kept in place and just ensured that we cleanup after it.
Fix PIP video frames being initialised with the size of the pointer instead of the actual frame size due to a sizeof() error. Spotted by Coverity
Add a playback OSD menu option to cancel an in-progress playlist.

Previously, the only way to stop playlist playback was to execute a
jump point, as EXIT simply moves to the next playlist item.  Now, the
playback OSD menu, "Playback" submenu, has a "Cancel Playlist" entry,
with the effect that when playback ends, it returns to the Watch
Recordings screen instead of the next playlist entry.