mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-23 23:58:17 +00:00
encodebin: Add missing-plugin support
https://bugzilla.gnome.org/show_bug.cgi?id=638903
This commit is contained in:
parent
d7bdf0d49a
commit
251400a69b
2 changed files with 19 additions and 1 deletions
|
@ -94,6 +94,12 @@
|
||||||
* the GOP will be decoded/reencoded when needed to produce an encoded output
|
* the GOP will be decoded/reencoded when needed to produce an encoded output
|
||||||
* that fits exactly within the request GstSegment.
|
* that fits exactly within the request GstSegment.
|
||||||
* </listitem>
|
* </listitem>
|
||||||
|
* <listitem>
|
||||||
|
* Missing plugin support. If a #GstElement is missing to encode/mux to the
|
||||||
|
* request profile formats, a missing-plugin #GstMessage will be posted on the
|
||||||
|
* #GstBus, allowing systems that support the missing-plugin system to offer the
|
||||||
|
* user a way to install the missing element.
|
||||||
|
* </listitem>
|
||||||
* </itemizedlist>
|
* </itemizedlist>
|
||||||
* </refsect2>
|
* </refsect2>
|
||||||
*/
|
*/
|
||||||
|
@ -1259,6 +1265,11 @@ splitter_encoding_failure:
|
||||||
no_encoder:
|
no_encoder:
|
||||||
GST_ERROR_OBJECT (ebin, "Couldn't create encoder for format %" GST_PTR_FORMAT,
|
GST_ERROR_OBJECT (ebin, "Couldn't create encoder for format %" GST_PTR_FORMAT,
|
||||||
format);
|
format);
|
||||||
|
/* missing plugin support */
|
||||||
|
gst_element_post_message (GST_ELEMENT_CAST (ebin),
|
||||||
|
gst_missing_encoder_message_new (GST_ELEMENT_CAST (ebin), format));
|
||||||
|
GST_ELEMENT_ERROR (ebin, CORE, MISSING_PLUGIN, (NULL),
|
||||||
|
("Couldn't create encoder for format %" GST_PTR_FORMAT, format));
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
no_muxer_pad:
|
no_muxer_pad:
|
||||||
|
@ -1456,6 +1467,13 @@ no_muxer:
|
||||||
{
|
{
|
||||||
GST_WARNING ("No available muxer for %" GST_PTR_FORMAT,
|
GST_WARNING ("No available muxer for %" GST_PTR_FORMAT,
|
||||||
gst_encoding_profile_get_format (ebin->profile));
|
gst_encoding_profile_get_format (ebin->profile));
|
||||||
|
/* missing plugin support */
|
||||||
|
gst_element_post_message (GST_ELEMENT_CAST (ebin),
|
||||||
|
gst_missing_encoder_message_new (GST_ELEMENT_CAST (ebin),
|
||||||
|
gst_encoding_profile_get_format (ebin->profile)));
|
||||||
|
GST_ELEMENT_ERROR (ebin, CORE, MISSING_PLUGIN, (NULL),
|
||||||
|
("No available muxer for format %" GST_PTR_FORMAT,
|
||||||
|
gst_encoding_profile_get_format (ebin->profile)));
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
#define __GST_ENCODEBIN_H__
|
#define __GST_ENCODEBIN_H__
|
||||||
|
|
||||||
#include <gst/gst.h>
|
#include <gst/gst.h>
|
||||||
#include <gst/pbutils/encoding-profile.h>
|
#include <gst/pbutils/pbutils.h>
|
||||||
#include "gstencode-marshal.h"
|
#include "gstencode-marshal.h"
|
||||||
|
|
||||||
#define GST_TYPE_ENCODE_BIN (gst_encode_bin_get_type())
|
#define GST_TYPE_ENCODE_BIN (gst_encode_bin_get_type())
|
||||||
|
|
Loading…
Reference in a new issue