Commit graph

8 commits

Author SHA1 Message Date
Bing Song
d7de78e554 encodebin: handle video encoder preset fail.
Check video encoder preset before request muxer pad as MOV/MP4 don't
support addition/removal of tracks at random times.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1064>
2021-03-19 12:43:59 +00:00
Matthew Waters
98249a57db gst: don't use volatile to mean atomic
volatile is not sufficient to provide atomic guarantees and real atomics
should be used instead.  GCC 11 has started warning about using volatile
with atomic operations.

https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719

Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1073>
2021-03-19 04:20:19 +00:00
Thibault Saunier
a8fca8d040 encodebin: Add APIs to set element properties on encoding profiles
User often want to set encoder properties on encoding profiles,
this introduces a way to easily 'preset' properties when defining the
profile. This uses GstStructure to define those properties the same
way it is done in `splitmux` for example as it makes simple to handle.

This also defines a more complex structure type where we can map a set
of properties to set depending on the muxer/encoder factory that has
been picked by EncodeBin so it is quite flexible.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1002>
2021-02-10 15:56:26 +00:00
Thibault Saunier
5950fc1aae encodebasebin: Ensure that parsers are compatible with selected encoders
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/845

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/963>
2021-01-07 20:36:30 +00:00
Thibault Saunier
db17502446 encodebin: Enhance algorithm to check if profiles can be plugged to muxer
In particular muxing sinks have specific set of sinkpads and we need
to handle that.
2020-11-30 15:44:53 -03:00
Thibault Saunier
174201059e encodebin: Ignore element classification when a muxer name specified
Instead of going through the list of known muxers go ahead and
instantiate the muxer specified as 'preset name' as this specifies
the exact element factory name to use.
2020-11-30 15:44:53 -03:00
Thibault Saunier
b68767ca06 encoding: Implement encodebin2 with an ON_REQUEST src pad
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/304
2020-11-30 15:44:53 -03:00
Thibault Saunier
5aa5faecf0 encodebin: Split implementation into a base class
Create EncodeBaseBin as a base class for the existing
encodebin to allow other implementations.

Co-authored with Jan Schmidt <jan@centricular.com>
2020-11-30 15:44:53 -03:00