Use GST_IS_BIN instead of G_OBJECT_TYPE to check if the
internal sink is a bin. Using the later won't work when
the sink is not a bin directly (but inherits from one, like
autovideosink).
Fixes#604280
Follow-up on 4111d6321f, the video
sink(s) used by fpsdisplaysink might not have the sync property. So we
check its existence to avoid warning from g_object_set() at runtime.
Fixes#604280
Reads the new caps added to qtdemux by commit
c917d65e6d
and adds its corresponding atoms.
Also adds support for image/x-jpc as it is the same
as image/x-jp2, except that the buffers need to be
boxed inside a jp2c isom box before muxing. To solve
this the QTPads now have a function that (if
not NULL) is called when a buffer is collected. This
function returns a replacement to the current collected
buffer.
Fixes#598916
Adds the mapping of 'classification' tags to writing of
'clsf' atoms for gppmux.
Based on a patch by: Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>
Exposes the internally used sink as video-sink property and
makes the default one to be autovideosink instead of
the hardcoded xvimagesink
Fixes#604280
Because of an allocated priv (GstRTPMuxPadPrivate), the element will
leak memory if not gst_rtp_mux_release_pad() is called. This would
previously only happen if release_request_pad() was called explicitly,
somthing that should not be neccesary.
Fixes#604099
In particular, consider DISCONT == !sync, and allow subclass to query
sync state, as it may want to perform additional checks depending
on whether sync was achieved earlier on.
Also arrange for subclass to query whether leftover data is being drained.
In particular, (optionally) provide baseparse with a notion of frames per second
(and therefore also frame duration) and have it track frame and byte counts.
This way, subclass can provide baseparse with fps and have it provide default
buffer time metadata and conversions, though subclass can still install
callbacks to handle such itself.
After all, stream is as-is, and there is little molding to downstream's
taste that can be done. If subclass can and wants to do so, it can
still override as such.
This makes sure that libass already has all text buffers for the next frame
at the time when the next frame is processed. Without this text buffers
might be one frame late or not shown at all if they're only shown for a
single frame.