gstreamer/gst/matroska
Mathieu Duponchelle 9bd8d608d5 matroska-mux: support H264 avc3 / H265 hev1
The matroska codec specs is unfortunately vague on the subject,
stating for H264:

AVC/H.264 stored as described in [@!ISO.14496-15]

and for H265:

HEVC/H.265 stored as described in [@!ISO.14496-15]

This spec however specifies multiple stream formats, our
implementation has opted for interpreting this as avc1 / hvc1,
both of which disallow in-band SPS.

Most decoders however will support in-band SPS / PPS, and
this commit gives the option to explicitly mux in avc3 / hev1,
which allows changing stream parameters on the fly, that is
useful for smart encoding for example.

When either of these stream formats are picked as the input,
changes in codec_data / tier / level / profile do not cause
renegotiation failure, a warning is logged however as it isn't
clear how compliant such a stream is.

The stream-format field is correctly ordered in the template
caps to avoid selecting potentially non-compliant options on
automatic negotiation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1047>
2021-08-20 00:16:43 +00:00
..
ebml-ids.h matroskamux: Use nanosecond precision for DateUTC 2019-11-22 16:30:50 +01:00
ebml-read.c matroskademux: use g_memdup2() as g_memdup() is deprecated 2021-06-02 17:34:38 +01:00
ebml-read.h Fix FSF address 2012-11-04 00:07:18 +00:00
ebml-write.c matroskamux: Use nanosecond precision for DateUTC 2019-11-22 16:30:50 +01:00
ebml-write.h matroska: Remove white space 2019-05-01 14:28:36 +00:00
gstmatroskaelement.c matroska: allow per feature registration 2021-03-29 12:45:22 +02:00
gstmatroskaelements.h matroska: allow per feature registration 2021-03-29 12:45:22 +02:00
lzo.c matroska: get rid of _stdint.h include 2016-02-08 00:11:55 +00:00
lzo.h Decode the codec private data and following ContentEncoding if necessary. 2008-08-02 18:18:05 +00:00
matroska-demux.c matroska: demux: update stream_start_time 2021-08-17 16:09:14 -04:00
matroska-demux.h matroska: allow per feature registration 2021-03-29 12:45:22 +02:00
matroska-ids.c matroskademux: use g_memdup2() as g_memdup() is deprecated 2021-06-02 17:34:38 +01:00
matroska-ids.h matroskademux: Advertise codec-alpha in caps 2021-05-11 16:52:22 -04:00
matroska-mux.c matroska-mux: support H264 avc3 / H265 hev1 2021-08-20 00:16:43 +00:00
matroska-mux.h matroska-mux: Add a timestamp-offset property 2021-08-18 10:51:15 -04:00
matroska-parse.c matroska: allow per feature registration 2021-03-29 12:45:22 +02:00
matroska-parse.h matroska: allow per feature registration 2021-03-29 12:45:22 +02:00
matroska-read-common.c matroskademux: use g_memdup2() as g_memdup() is deprecated 2021-06-02 17:34:38 +01:00
matroska-read-common.h matroska: Remove white space 2019-05-01 14:28:36 +00:00
matroska.c matroska: allow per feature registration 2021-03-29 12:45:22 +02:00
meson.build matroska: allow per feature registration 2021-03-29 12:45:22 +02:00
webm-mux.c matroska: allow per feature registration 2021-03-29 12:45:22 +02:00
webm-mux.h Fix FSF address 2012-11-04 00:07:18 +00:00