findIcon: add option to ignore the cached filename
EditMetadata: update the internet image search to work with storage groups

Note: bumps the ABI version so core and plugins need to be recompiled
WebFrontend: Initial implementation of the video player for the WebFrontend. Still a lot of work to be done here. Refs #11938
WebFrontend: Pass the approximate video duration to JW Player.
HLS: Add the EXT-X-MEDIA tags to the Master Playlist

Fixes native HTML 5 playback on Android. (Native HLS playback is only
supported by Android and iOS).
MythUtil: add a --calctracklen option

This command will decode a music track to determin it's exact length and will
then update the database and send a MUSIC_METADATA_CHANGED event if it changed.

Example:-
mythutil --calctracklen --songid='1234'
Myth Protocol: add a MUSIC_CALC_TRACK_LENGTH command

This command will run mythutil to decode a music track to determin it's exact
length and will then update the database and send a MUSIC_METADATA_CHANGED
event if it changed.

format: MUSIC_CALC_TRACK_LENGTH <hostname> <songid>
MythMusic: fix the 'Check Track Length' option on the edit metadata screen

This updates it to work after the switch to storage groups and uses the new
MUSIC_CALC_TRACK_LENGTH myth protocol command.
MythMusic: remove the redundant calcTrackLength() from musicutils
Always show programs that are still recording in ViewScheduled.

Includes a minor change by David Engel.

Fixes #12060
Use HTML 5 for Android and iOS since they support HLS with HTML 5. JW Player seems broken on Android (unable to test iOS).
WebFrontend: Decrease the video resolution to 720x405 while keeping the bitrate at 800Kbps. This brings it roughly into line with the recommendations for low-end Wifi streaming of HLS. 800 will be too highly for a mobile/celluar network, so I'll add an alternate mobile profile when I figure out exactly how to detect the difference.
HLS: Bump audio only bitrate to 64Kbps. This is the recommended (apple et al) rate and some would say bare minimum tolerable.
detect cropped HD (720p) content

Fixes #12048
Fix fileringbuffer locking up on read()

From time to time, most often seen during LiveTV, FileRingBuffer::safe_read() would lock and not return for a long time (on my system, it would block in excess of 20s).
Upon investigation, the issue occurs while reading a file currently being written to, if a call to read() encountered EOF, returned early and a following call to read() was made, before another write. Under those conditions, read() wouldn't return for a long time, causing the backend to abort the read and dropping the frontend connection.

So instead we now check the size of the current file via a call to POSIX fstat and never try to read beyond the EOF position.
If the file being read isn't a regular, or fstat returned an error, the old behaviour is used: read until we get as much data as we asked.

Surprisingly, this has fixed most of the issues I've been having for years with liveTV:
- Stuttering or temporary free when close to the live
- Freeze at program transition.

Add debugging information while in file mode

Fixes #12045
Add the forums to the README.rst
Revert "Fix fileringbuffer locking up on read()"

This reverts commit 2eb5091b6b2058bf94cb11ef36b5972ef9a18fee.
Fix fileringbuffer locking up on read()

From time to time, most often seen during LiveTV, FileRingBuffer::safe_read() would lock and not return for a long time (on my system, it would block in excess of 20s).
Upon investigation, the issue occurs while reading a file currently being written to, if a call to read() encountered EOF, returned early and a following call to read() was made, before another write. Under those conditions, read() wouldn't return for a long time, causing the backend to abort the read and dropping the frontend connection.

So instead we now check the size of the current file via a call to POSIX fstat and never try to read beyond the EOF position.
If the file being read isn't a regular, or fstat returned an error, the old behaviour is used: read until we get as much data as we asked.

Surprisingly, this has fixed most of the issues I've been having for years with liveTV:
- Stuttering or temporary free when close to the live
- Freeze at program transition.

Add debugging information while in file mode

Fixes #12045
ServerSideScripting: Pass request headers through to scripts

Also change the way we pass query string parameters to the
QScriptEngine, this should be more robust than the previous method.
Improve objectDebug() formatting