Going over integer arithmetic will lead to minimal rounding errors,
leading to +/-1 changes for volume==1.0. Implement the controlled
processing with floating point arithmetic, which was already done
for the C versions anyway.
Advance stop times too when they are getting higher than the
stop time of segments, avoiding assertions.
The stop time has to be advanced too so that running time keep in sync
for gapless mode.
https://bugzilla.gnome.org/show_bug.cgi?id=631312
Add a new function called gst_rtp_buffer_list_from_buffer() that takes
a GstBuffer containing a RTP packets and spits out a GstBufferList
containing two buffers, one with the header and the other with the payload.
RFC 5285 describes a generic method to add multiple header extensions to RTP packets.
These functions parse these headers and return them, both for the one-byte header and the
two bytes headers.
This adds code to translate the profile_and_level indication from the
MPEG-4 video (ISO/IEC 14496-2) headers to a string profile/level. The
mappings are taken from the spec and Wireshark's code, and might need to
be expanded on.
https://bugzilla.gnome.org/show_bug.cgi?id=617314
API: gst_codec_utils_mpeg4video_get_profile()
API: gst_codec_utils_mpeg4video_get_level()
API: gst_codec_utils_mpeg4video_caps_set_level_and_profile()
This adds code to parse the first few bytes of H.264 sequence parameter
set in order to extract the profile and level as const strings. This
code was originally in both qtdemux and matroskademux.
https://bugzilla.gnome.org/show_bug.cgi?id=617314
API: gst_codec_utils_h264_get_level()
API: gst_codec_utils_h264_get_profile()
API: gst_codec_utils_h264_caps_set_level_and_profile()
This moves AAC profile detection to pbutils, and uses this in
typefindfunctions. This will also be used in qtdemux.
https://bugzilla.gnome.org/show_bug.cgi?id=617314
API: gst_codec_utils_aac_get_profile()
API: codec_utils_aac_caps_set_level_and_profile()
This allows us to add generic codec-specific functionality, like
extracting profile/level data from headers, without having to duplicate
code across demuxers and typefindfunctions.
As a starting point, this moves over AAC level extraction code from
typefindfunctions, so it can be reused in qtdemux, etc.
https://bugzilla.gnome.org/show_bug.cgi?id=617314
API: gst_codec_utils_aac_get_sample_rate_from_index()
API: gst_codec_utils_aac_get_level()