HLS: Include EXT-X-VERSION and EXT-X-ALLOW-CACHE tags in playlist.
WebFrontend: Reduce bitrates in line with a different Apple doc, not sure which of the two is authoritative but might as well go with the one which allows smoother streaming.
Improve the logic by which we decide which H.264 profile to use. We should endevour to use the lowest possible profile and baseline allowed by the chosen resolution and bitrate to support the widest variety of playback devices.
WebFrontend: Disable the 720p video option for now, you need decent hardware to transcode to 720p in realtime. Until we can figure out a way to disable it selectively on systems that can't handle it, it's better not to even offer it as a choice.
HLS: Decrease segment size from 10 to 4 seconds which should enable playback to start faster.
Fixes null dereference

When watching a recording from liveTV group, player_ctx->recorder is null. There’s also no card id to record.

Fixes #12079
AlbumArtImages: update the id after dumping to the database
AlbumArtImages: add a function to retrieve an image by ID
Change verbosity for some network messages
Make metadata title matching more permissive

From the ticket: Not sure why it was comparing the first char of both
strings, also think it shouldn't be case sensitive at all.

I think so, too

Fixes #11088
Patch by Daniel Ribeiro
fix indention after last commit
Small optimisation of FileRingBuffer::GetRealFileSize

If file is already opened, no need to use QFileInfo
Fix seek when close to end of program

When seeking repeatedly close to the end of the program in liveTV, it would cause playback to jump immediately to the next program.
The cause was RingBuffer:: IsNearEnd didn’t report if we were close to the end of the file, but if there was little left to read in the ringbuffer. However, when seeking the buffer can be emptied, causing IsNearEnd to always return true
Additionally, with very low bitrate stream (like with the HLS recorder), we could sometimes miss over significant length of video.

A positive side effect is that there’s now no pause whatsoever between two liveTV program,s at worse about 20 frames dropped.

Ref #12076
test IPTVChannelFetcher::ParsePlaylist
IsValid should return true if IsValid of its member is true, too.

This function appears to be unused as of now, but it came up in the new
unit test.
Updated Spanish/Spain MythFrontend, MythMusic and MythBrowser translation
from Antonio Marcos Lopez Alonso

Thank you Antonio!

Closes #12086

Signed-off-by: Nicolas Riendeau <nriendeau@mythtv.org>
let enabled be a number (cppcheck)

Its used as a number im other places, so let it be a number over here, too.
copy oldrecstatus to let operator= match the copy constructor (cppcheck)
remove left over variable from copying the unix implementation (cppcheck)
MythMusic: add a 'First' resume mode and make 'Off' never resume

This fixes the resume playback feature so that 'Off' never starts playback and
adds a new 'First' mode which starts at the first track in the active playlist.

'Track' and 'Exact' modes remain the same and resume playback at the start of
the track or exact position within the track that was playing when MythMusic
was last exited.