mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-19 00:01:23 +00:00
pipeline: stop setting the track caps
Stop setting the track 'caps' property. The previous code could overwrite a users own setting of the caps for video and audio caps. Moreover, the 'caps' property is listed as construct only, and users will likely expect it to stay the same after a track has been added to a timeline. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/198>
This commit is contained in:
parent
5bb0b46809
commit
c2532a48c2
3 changed files with 2 additions and 47 deletions
|
@ -475,7 +475,6 @@ G_GNUC_INTERNAL GstElement* ges_source_create_topbin (GESSource *source,
|
||||||
const gchar* bin_name,
|
const gchar* bin_name,
|
||||||
GstElement* sub_element,
|
GstElement* sub_element,
|
||||||
GPtrArray* elements);
|
GPtrArray* elements);
|
||||||
G_GNUC_INTERNAL void ges_track_set_caps (GESTrack* track, const GstCaps* caps);
|
|
||||||
G_GNUC_INTERNAL GstElement * ges_track_get_composition (GESTrack *track);
|
G_GNUC_INTERNAL GstElement * ges_track_get_composition (GESTrack *track);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -442,37 +442,8 @@ static gboolean
|
||||||
_track_is_compatible_with_profile (GESPipeline * self, GESTrack * track,
|
_track_is_compatible_with_profile (GESPipeline * self, GESTrack * track,
|
||||||
GstEncodingProfile * prof)
|
GstEncodingProfile * prof)
|
||||||
{
|
{
|
||||||
if (TRACK_COMPATIBLE_PROFILE (track->type, prof)) {
|
if (TRACK_COMPATIBLE_PROFILE (track->type, prof))
|
||||||
if (self->priv->mode == GES_PIPELINE_MODE_SMART_RENDER) {
|
|
||||||
GstCaps *ocaps, *rcaps;
|
|
||||||
|
|
||||||
GST_DEBUG ("Smart Render mode, setting input caps");
|
|
||||||
ocaps = gst_encoding_profile_get_input_caps (prof);
|
|
||||||
ocaps = gst_caps_make_writable (ocaps);
|
|
||||||
if (track->type == GES_TRACK_TYPE_AUDIO)
|
|
||||||
rcaps = gst_caps_new_empty_simple ("audio/x-raw");
|
|
||||||
else
|
|
||||||
rcaps = gst_caps_new_empty_simple ("video/x-raw");
|
|
||||||
gst_caps_append (ocaps, rcaps);
|
|
||||||
ges_track_set_caps (track, ocaps);
|
|
||||||
gst_caps_unref (ocaps);
|
|
||||||
} else {
|
|
||||||
GstCaps *caps = NULL;
|
|
||||||
|
|
||||||
/* Raw preview or rendering mode */
|
|
||||||
if (track->type == GES_TRACK_TYPE_VIDEO)
|
|
||||||
caps = gst_caps_new_empty_simple ("video/x-raw");
|
|
||||||
else if (track->type == GES_TRACK_TYPE_AUDIO)
|
|
||||||
caps = gst_caps_new_empty_simple ("audio/x-raw");
|
|
||||||
|
|
||||||
if (caps) {
|
|
||||||
ges_track_set_caps (track, caps);
|
|
||||||
gst_caps_unref (caps);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -1253,22 +1224,6 @@ ges_pipeline_set_mode (GESPipeline * pipeline, GESPipelineFlags mode)
|
||||||
if ((pipeline->priv->mode &
|
if ((pipeline->priv->mode &
|
||||||
(GES_PIPELINE_MODE_RENDER | GES_PIPELINE_MODE_SMART_RENDER)) &&
|
(GES_PIPELINE_MODE_RENDER | GES_PIPELINE_MODE_SMART_RENDER)) &&
|
||||||
!(mode & (GES_PIPELINE_MODE_RENDER | GES_PIPELINE_MODE_SMART_RENDER))) {
|
!(mode & (GES_PIPELINE_MODE_RENDER | GES_PIPELINE_MODE_SMART_RENDER))) {
|
||||||
GList *tmp;
|
|
||||||
GstCaps *caps;
|
|
||||||
|
|
||||||
for (tmp = pipeline->priv->timeline->tracks; tmp; tmp = tmp->next) {
|
|
||||||
GESTrackType type = GES_TRACK (tmp->data)->type;
|
|
||||||
|
|
||||||
if (type == GES_TRACK_TYPE_AUDIO)
|
|
||||||
caps = gst_caps_new_empty_simple ("audio/x-raw");
|
|
||||||
else if (type == GES_TRACK_TYPE_VIDEO)
|
|
||||||
caps = gst_caps_new_empty_simple ("video/x-raw");
|
|
||||||
else
|
|
||||||
continue;
|
|
||||||
|
|
||||||
ges_track_set_caps (GES_TRACK (tmp->data), caps);
|
|
||||||
gst_caps_unref (caps);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Disable render bin */
|
/* Disable render bin */
|
||||||
GST_DEBUG ("Disabling rendering bin");
|
GST_DEBUG ("Disabling rendering bin");
|
||||||
|
|
|
@ -129,6 +129,7 @@ G_DEFINE_TYPE_WITH_CODE (GESTrack, ges_track, GST_TYPE_BIN,
|
||||||
|
|
||||||
static void composition_duration_cb (GstElement * composition, GParamSpec * arg
|
static void composition_duration_cb (GstElement * composition, GParamSpec * arg
|
||||||
G_GNUC_UNUSED, GESTrack * obj);
|
G_GNUC_UNUSED, GESTrack * obj);
|
||||||
|
static void ges_track_set_caps (GESTrack * track, const GstCaps * caps);
|
||||||
|
|
||||||
/* Private methods/functions/callbacks */
|
/* Private methods/functions/callbacks */
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in a new issue