* Improved support for he_aac_v2 and fixed he_aac warning "Audio object type SBR+0 is not implemented" via ffmpeg.
* fix linting
* rename ExtType into ExtensionType
* parse FrameLengthFlag, DependsOnCoreCoder, CoreCoderDelay even with SBR / PS object types
* when extension type is SBR or PS, check that object type is AAC-LC
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
this fixes the client-read-republish example and allows users to set
their own media controls.
Function medias.SetControls() is provided in order to automatically set
media controls and must be called manually.
RTP packets were previously take from a buffer pool. This was messing
up the Client, since that buffer pool was used by multiple routines at
once, and was probably messing up the Server too, since packets can be
pushed to different queues and there's no guarantee that these queues
have an overall size less than ReadBufferCount.
This buffer pool is removed; this decreases performance but avoids bugs.
* split tracks from medias
* move tracks into dedicated package
* move media into dedicated package
* edit Medias.Marshal() in order to return SDP
* add medias.Find() and simplify examples
* improve coverage
* fix rebase errors
* replace TrackIDs with MediaIDs
* implement media-specific and track-specific callbacks for reading RTCP and RTP packets
* rename publish into record, read into play
* add v2 tag
* rename tracks into formats
(https://github.com/aler9/rtsp-simple-server/issues/1085)
Invalid RTCP packets, in both server and client, do not trigger a fatal
error anymore but they're just blocked. OnDecodeError() is called in
order to emit a warning.