mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 18:21:04 +00:00
examples: Add option to specify video restriction
Some encoders don't handle _get_caps() properly :(
This commit is contained in:
parent
2b589d4d29
commit
51b660eca3
1 changed files with 9 additions and 5 deletions
|
@ -27,18 +27,19 @@
|
||||||
#include <gst/profile/gstprofile.h>
|
#include <gst/profile/gstprofile.h>
|
||||||
|
|
||||||
static GstEncodingProfile *
|
static GstEncodingProfile *
|
||||||
make_encoding_profile (gchar * audio, gchar * video, gchar * container)
|
make_encoding_profile (gchar * audio, gchar * video, gchar * video_restriction, gchar * container)
|
||||||
{
|
{
|
||||||
GstEncodingProfile *profile;
|
GstEncodingProfile *profile;
|
||||||
GstStreamEncodingProfile *stream;
|
GstStreamEncodingProfile *stream;
|
||||||
|
|
||||||
profile = gst_encoding_profile_new ("ges-test4",
|
profile = gst_encoding_profile_new ("ges-test4",
|
||||||
gst_caps_new_simple (container, NULL), NULL, FALSE);
|
gst_caps_from_string (container), NULL, FALSE);
|
||||||
stream = gst_stream_encoding_profile_new (GST_ENCODING_PROFILE_AUDIO,
|
stream = gst_stream_encoding_profile_new (GST_ENCODING_PROFILE_AUDIO,
|
||||||
gst_caps_from_string (audio), NULL, NULL, 0);
|
gst_caps_from_string (audio), NULL, NULL, 0);
|
||||||
gst_encoding_profile_add_stream (profile, stream);
|
gst_encoding_profile_add_stream (profile, stream);
|
||||||
stream = gst_stream_encoding_profile_new (GST_ENCODING_PROFILE_VIDEO,
|
stream = gst_stream_encoding_profile_new (GST_ENCODING_PROFILE_VIDEO,
|
||||||
gst_caps_from_string (video), NULL, NULL, 0);
|
gst_caps_from_string (video), NULL,
|
||||||
|
gst_caps_from_string(video_restriction), 0);
|
||||||
gst_encoding_profile_add_stream (profile, stream);
|
gst_encoding_profile_add_stream (profile, stream);
|
||||||
return profile;
|
return profile;
|
||||||
}
|
}
|
||||||
|
@ -120,6 +121,7 @@ main (int argc, gchar ** argv)
|
||||||
gchar *container = "application/ogg";
|
gchar *container = "application/ogg";
|
||||||
gchar *audio = "audio/x-vorbis";
|
gchar *audio = "audio/x-vorbis";
|
||||||
gchar *video = "video/x-theora";
|
gchar *video = "video/x-theora";
|
||||||
|
gchar *video_restriction = "ANY";
|
||||||
static gboolean render = FALSE;
|
static gboolean render = FALSE;
|
||||||
static gboolean smartrender = FALSE;
|
static gboolean smartrender = FALSE;
|
||||||
GOptionEntry options[] = {
|
GOptionEntry options[] = {
|
||||||
|
@ -135,6 +137,8 @@ main (int argc, gchar ** argv)
|
||||||
"Video format", "<GstCaps>"},
|
"Video format", "<GstCaps>"},
|
||||||
{"aformat", 'a', 0, G_OPTION_ARG_STRING, &audio,
|
{"aformat", 'a', 0, G_OPTION_ARG_STRING, &audio,
|
||||||
"Audio format", "<GstCaps>"},
|
"Audio format", "<GstCaps>"},
|
||||||
|
{"vrestriction", 'x', 0, G_OPTION_ARG_STRING, &video_restriction,
|
||||||
|
"Video restriction", "<GstCaps>"},
|
||||||
{NULL}
|
{NULL}
|
||||||
};
|
};
|
||||||
GOptionContext *ctx;
|
GOptionContext *ctx;
|
||||||
|
@ -179,7 +183,7 @@ main (int argc, gchar ** argv)
|
||||||
/* Setup profile/encoding if needed */
|
/* Setup profile/encoding if needed */
|
||||||
if (render || smartrender) {
|
if (render || smartrender) {
|
||||||
GstEncodingProfile *prof;
|
GstEncodingProfile *prof;
|
||||||
prof = make_encoding_profile (audio, video, container);
|
prof = make_encoding_profile (audio, video, video_restriction, container);
|
||||||
|
|
||||||
if (!prof ||
|
if (!prof ||
|
||||||
!ges_timeline_pipeline_set_render_settings (pipeline, outputuri, prof)
|
!ges_timeline_pipeline_set_render_settings (pipeline, outputuri, prof)
|
||||||
|
|
Loading…
Reference in a new issue