mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-05 06:58:49 +00:00
gst/: Re-enable QoS after the release.
Original commit message from CVS: * gst-libs/gst/video/gstvideofilter.c: (gst_video_filter_init): * gst-libs/gst/video/gstvideosink.c: (gst_video_sink_init): * gst/ffmpegcolorspace/gstffmpegcolorspace.c: (gst_ffmpegcsp_init): * gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init), (gst_video_scale_init), (gst_video_scale_src_event): Re-enable QoS after the release. Rework videoscale to use the base class src_event handler.
This commit is contained in:
parent
20a3ac3a07
commit
3150ac3b64
5 changed files with 28 additions and 13 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
||||||
|
2006-03-14 Wim Taymans <wim@fluendo.com>
|
||||||
|
|
||||||
|
* gst-libs/gst/video/gstvideofilter.c: (gst_video_filter_init):
|
||||||
|
* gst-libs/gst/video/gstvideosink.c: (gst_video_sink_init):
|
||||||
|
* gst/ffmpegcolorspace/gstffmpegcolorspace.c: (gst_ffmpegcsp_init):
|
||||||
|
* gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init),
|
||||||
|
(gst_video_scale_init), (gst_video_scale_src_event):
|
||||||
|
Re-enable QoS after the release.
|
||||||
|
Rework videoscale to use the base class src_event handler.
|
||||||
|
|
||||||
2006-03-14 Tim-Philipp Müller <tim at centricular dot net>
|
2006-03-14 Tim-Philipp Müller <tim at centricular dot net>
|
||||||
|
|
||||||
* configure.ac:
|
* configure.ac:
|
||||||
|
|
|
@ -24,8 +24,11 @@
|
||||||
*
|
*
|
||||||
* <refsect2>
|
* <refsect2>
|
||||||
* <para>
|
* <para>
|
||||||
* Provides useful functions and a base class for video filters. Right now it's
|
* Provides useful functions and a base class for video filters.
|
||||||
* mostly used as a place holder for adding common code later on.
|
* </para>
|
||||||
|
* <para>
|
||||||
|
* The videofilter will by default enable QoS on the parent GstBaseTransform
|
||||||
|
* to implement frame dropping.
|
||||||
* </para>
|
* </para>
|
||||||
* </refsect2>
|
* </refsect2>
|
||||||
*/
|
*/
|
||||||
|
@ -95,4 +98,6 @@ gst_video_filter_init (GTypeInstance * instance, gpointer g_class)
|
||||||
GST_DEBUG_OBJECT (videofilter, "gst_video_filter_init");
|
GST_DEBUG_OBJECT (videofilter, "gst_video_filter_init");
|
||||||
|
|
||||||
videofilter->inited = FALSE;
|
videofilter->inited = FALSE;
|
||||||
|
/* enable QoS */
|
||||||
|
gst_base_transform_set_qos_enabled (GST_BASE_TRANSFORM (videofilter), TRUE);
|
||||||
}
|
}
|
||||||
|
|
|
@ -104,7 +104,8 @@ gst_video_sink_init (GstVideoSink * videosink)
|
||||||
videosink->width = 0;
|
videosink->width = 0;
|
||||||
videosink->height = 0;
|
videosink->height = 0;
|
||||||
|
|
||||||
gst_base_sink_set_max_lateness (GST_BASE_SINK (videosink), -1);
|
/* 20ms is more than enough, 80-130ms is noticable */
|
||||||
|
gst_base_sink_set_max_lateness (GST_BASE_SINK (videosink), 20 * GST_MSECOND);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -371,6 +371,7 @@ gst_ffmpegcsp_class_init (GstFFMpegCspClass * klass)
|
||||||
static void
|
static void
|
||||||
gst_ffmpegcsp_init (GstFFMpegCsp * space)
|
gst_ffmpegcsp_init (GstFFMpegCsp * space)
|
||||||
{
|
{
|
||||||
|
gst_base_transform_set_qos_enabled (GST_BASE_TRANSFORM (space), TRUE);
|
||||||
space->from_pixfmt = space->to_pixfmt = PIX_FMT_NB;
|
space->from_pixfmt = space->to_pixfmt = PIX_FMT_NB;
|
||||||
space->palette = NULL;
|
space->palette = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -177,7 +177,7 @@ gst_video_scale_sink_template_factory (void)
|
||||||
static void gst_video_scale_base_init (gpointer g_class);
|
static void gst_video_scale_base_init (gpointer g_class);
|
||||||
static void gst_video_scale_class_init (GstVideoScaleClass * klass);
|
static void gst_video_scale_class_init (GstVideoScaleClass * klass);
|
||||||
static void gst_video_scale_init (GstVideoScale * videoscale);
|
static void gst_video_scale_init (GstVideoScale * videoscale);
|
||||||
static gboolean gst_video_scale_handle_src_event (GstPad * pad,
|
static gboolean gst_video_scale_src_event (GstBaseTransform * trans,
|
||||||
GstEvent * event);
|
GstEvent * event);
|
||||||
|
|
||||||
/* base transform vmethods */
|
/* base transform vmethods */
|
||||||
|
@ -261,6 +261,7 @@ gst_video_scale_class_init (GstVideoScaleClass * klass)
|
||||||
GST_DEBUG_FUNCPTR (gst_video_scale_get_unit_size);
|
GST_DEBUG_FUNCPTR (gst_video_scale_get_unit_size);
|
||||||
trans_class->transform = GST_DEBUG_FUNCPTR (gst_video_scale_transform);
|
trans_class->transform = GST_DEBUG_FUNCPTR (gst_video_scale_transform);
|
||||||
trans_class->fixate_caps = GST_DEBUG_FUNCPTR (gst_video_scale_fixate_caps);
|
trans_class->fixate_caps = GST_DEBUG_FUNCPTR (gst_video_scale_fixate_caps);
|
||||||
|
trans_class->src_event = GST_DEBUG_FUNCPTR (gst_video_scale_src_event);
|
||||||
|
|
||||||
trans_class->passthrough_on_same_caps = TRUE;
|
trans_class->passthrough_on_same_caps = TRUE;
|
||||||
|
|
||||||
|
@ -270,10 +271,7 @@ gst_video_scale_class_init (GstVideoScaleClass * klass)
|
||||||
static void
|
static void
|
||||||
gst_video_scale_init (GstVideoScale * videoscale)
|
gst_video_scale_init (GstVideoScale * videoscale)
|
||||||
{
|
{
|
||||||
GstBaseTransform *trans = GST_BASE_TRANSFORM (videoscale);
|
gst_base_transform_set_qos_enabled (GST_BASE_TRANSFORM (videoscale), TRUE);
|
||||||
|
|
||||||
gst_pad_set_event_function (trans->srcpad, gst_video_scale_handle_src_event);
|
|
||||||
|
|
||||||
videoscale->tmp_buf = NULL;
|
videoscale->tmp_buf = NULL;
|
||||||
videoscale->method = DEFAULT_PROP_METHOD;
|
videoscale->method = DEFAULT_PROP_METHOD;
|
||||||
}
|
}
|
||||||
|
@ -754,14 +752,14 @@ unknown_mode:
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
gst_video_scale_handle_src_event (GstPad * pad, GstEvent * event)
|
gst_video_scale_src_event (GstBaseTransform * trans, GstEvent * event)
|
||||||
{
|
{
|
||||||
GstVideoScale *videoscale;
|
GstVideoScale *videoscale;
|
||||||
gboolean ret;
|
gboolean ret;
|
||||||
double a;
|
double a;
|
||||||
GstStructure *structure;
|
GstStructure *structure;
|
||||||
|
|
||||||
videoscale = GST_VIDEO_SCALE (gst_pad_get_parent (pad));
|
videoscale = GST_VIDEO_SCALE (trans);
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (videoscale, "handling %s event",
|
GST_DEBUG_OBJECT (videoscale, "handling %s event",
|
||||||
GST_EVENT_TYPE_NAME (event));
|
GST_EVENT_TYPE_NAME (event));
|
||||||
|
@ -781,13 +779,13 @@ gst_video_scale_handle_src_event (GstPad * pad, GstEvent * event)
|
||||||
a * videoscale->from_height / videoscale->to_height, NULL);
|
a * videoscale->from_height / videoscale->to_height, NULL);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case GST_EVENT_QOS:
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = gst_pad_event_default (pad, event);
|
ret = GST_BASE_TRANSFORM_CLASS (parent_class)->src_event (trans, event);
|
||||||
|
|
||||||
gst_object_unref (videoscale);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue