actually add the timecodeOffset when getting audio frames

We have to ask the AudioReencodeBuffer for audio to write with the
original timecode before applying the cut list.

Patch by Nicolas Pöhlmann
Reviewed by Paul Gardiner

Refs #11639
convert existing code documentation to doxygen style
Use the ChannelIcon storage group in the services API Guide/GetChannelIcon()
Improve cc608 debugging log output.
Fix some cc608 field number handling.  Refs #11899.

More accurately decodes CEA-608 captions encoded in SCTE-20 user data.
  * Field number 3 is merged with field number 1 instead of 2.
  * Data in field number 3 is not rejected.
  * Field numbers 1 and 2 are then swapped if top_field_first is false.
These changes are based on the SCTE 20 handling code from ccextractor.
Add ChannelIcons to the list of "special" storage groups.

Signed-off-by: Raymond Wagner <rwagner@mythtv.org>
decode URL before attempting to open them.

Thanks to Chris Pinkham for finding the root cause.

Fixes #11909
Replace stray tab
Disambiguate the line number in QSP exception errors.
Revert "Add ChannelIcons to the list of "special" storage groups."

This reverts commit d2316b47974f27dc333dd2924e8beb0aca92a73e.

The ChannelIcon group is a built-in group, built-in groups aren't
included in disk space calculations.
Lookup channel data by chanid instead of source+channum, the latter requires a single query and the former three queries.
Fix services GetChannelIcon() when height or width are specified
Use the ChannelInfo class instead of loading data in fragments from ChannelUtil
Change CommFree from an int to a bool
Merge some identical channel loading code in the guide and channel
services.

Also:
* Start exposing correct visibility information for channels returned by
  GetProgramGuide. This would be necessary for any third parties
  wishing only to display the channels the user actually wants to use
  (which may be dozens out of hundreds for Satellite/Cable).

* Change some argument types from int to uint for consistency, and
  because these cannot legitimately be less than zero so it forces
  users of the services API to provide sane values
Fix a whitespace error in site.css
Services API: Order programs in GetProgramGuide() by starttime
Services API: Fix aggregation of channel and program information in GetProgramGuide()
Use Live TV order for the card list.

In many cases, the list of available cards was being returned in card
ID order, when it would be more appropriate (and correct) to use the
Live TV order.
Allow Live TV to be entered from the top-level Program Guide.

This allows the user to start Live TV on a specific channel from the
Program Guide grid.  Otherwise, the user needs to wait for Live TV to
start and tune the initial channel, then find the channel actually
wanted, and wait for it to be tuned.  This also provides a workaround
when the default initial channel is untunable for some reason.

Currently, if the desired channel is not tunable (e.g., all capable
recorders are already busy), it will fail.

Refs #11913.