mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-22 05:56:31 +00:00
libs/gst/base/gstbasesink.c: Decouple max-lateness and the fact that QoS messages are generated with a new property (...
Original commit message from CVS: * libs/gst/base/gstbasesink.c: (gst_base_sink_class_init), (gst_base_sink_init), (gst_base_sink_finalize), (gst_base_sink_set_qos_enabled), (gst_base_sink_is_qos_enabled), (gst_base_sink_set_property), (gst_base_sink_get_property), (gst_base_sink_commit_state), (gst_base_sink_get_sync_times), (gst_base_sink_wait_clock), (gst_base_sink_do_sync), (gst_base_sink_add_qos_observation), (gst_base_sink_send_qos), (gst_base_sink_perform_qos), (gst_base_sink_reset_qos), (gst_base_sink_is_too_late), (gst_base_sink_render_object), (gst_base_sink_preroll_object), (gst_base_sink_event), (gst_base_sink_chain_unlocked), (gst_base_sink_get_position_last), (gst_base_sink_get_position_paused), (gst_base_sink_get_position), (gst_base_sink_query), (gst_base_sink_change_state): Decouple max-lateness and the fact that QoS messages are generated with a new property (qos). Add vmethod so subclasses can be notified of ASYNC playing state changes. Collect timestamp start and stop to report better current position in EOS/PLAYING/PAUSED/READY/NULL. Refactor QoS/frame dropping and other measurements. API: GstBaseSrc::qos * libs/gst/base/gstbasesink.h: Added Private struct. API: gst_base_sink_set_qos_enabled API: gst_base_sink_is_qos_enabled
This commit is contained in:
parent
a1e4bb5d04
commit
3a21be3b8c
4 changed files with 495 additions and 171 deletions
29
ChangeLog
29
ChangeLog
|
@ -1,3 +1,32 @@
|
|||
2006-03-23 Wim Taymans <wim@fluendo.com>
|
||||
|
||||
* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
|
||||
(gst_base_sink_init), (gst_base_sink_finalize),
|
||||
(gst_base_sink_set_qos_enabled), (gst_base_sink_is_qos_enabled),
|
||||
(gst_base_sink_set_property), (gst_base_sink_get_property),
|
||||
(gst_base_sink_commit_state), (gst_base_sink_get_sync_times),
|
||||
(gst_base_sink_wait_clock), (gst_base_sink_do_sync),
|
||||
(gst_base_sink_add_qos_observation), (gst_base_sink_send_qos),
|
||||
(gst_base_sink_perform_qos), (gst_base_sink_reset_qos),
|
||||
(gst_base_sink_is_too_late), (gst_base_sink_render_object),
|
||||
(gst_base_sink_preroll_object), (gst_base_sink_event),
|
||||
(gst_base_sink_chain_unlocked), (gst_base_sink_get_position_last),
|
||||
(gst_base_sink_get_position_paused), (gst_base_sink_get_position),
|
||||
(gst_base_sink_query), (gst_base_sink_change_state):
|
||||
Decouple max-lateness and the fact that QoS messages are generated
|
||||
with a new property (qos).
|
||||
Add vmethod so subclasses can be notified of ASYNC playing
|
||||
state changes.
|
||||
Collect timestamp start and stop to report better current
|
||||
position in EOS/PLAYING/PAUSED/READY/NULL.
|
||||
Refactor QoS/frame dropping and other measurements.
|
||||
API: GstBaseSrc::qos
|
||||
|
||||
* libs/gst/base/gstbasesink.h:
|
||||
Added Private struct.
|
||||
API: gst_base_sink_set_qos_enabled
|
||||
API: gst_base_sink_is_qos_enabled
|
||||
|
||||
2006-03-23 Tim-Philipp Müller <tim at centricular dot net>
|
||||
|
||||
* gst/gstregistryxml.c: (gst_registry_xml_read_cache):
|
||||
|
|
2
common
2
common
|
@ -1 +1 @@
|
|||
Subproject commit f1c7bfd24d0fcc4e5113ce3b96b1fac83a9ec560
|
||||
Subproject commit 252846b570144570a0aee25b5adefbfac3f5d4eb
|
File diff suppressed because it is too large
Load diff
|
@ -46,6 +46,7 @@ G_BEGIN_DECLS
|
|||
|
||||
typedef struct _GstBaseSink GstBaseSink;
|
||||
typedef struct _GstBaseSinkClass GstBaseSinkClass;
|
||||
typedef struct _GstBaseSinkPrivate GstBaseSinkPrivate;
|
||||
|
||||
/**
|
||||
* GstBaseSink:
|
||||
|
@ -88,6 +89,8 @@ struct _GstBaseSink {
|
|||
gboolean flushing;
|
||||
|
||||
/*< private >*/
|
||||
GstBaseSinkPrivate *priv;
|
||||
|
||||
union {
|
||||
struct {
|
||||
/* segment used for clipping incomming buffers */
|
||||
|
@ -95,8 +98,7 @@ struct _GstBaseSink {
|
|||
/* max amount of time a buffer can be late, -1 no limit. */
|
||||
gint64 max_lateness;
|
||||
} ABI;
|
||||
/* adding + 0 to mark ABI change to be undone later */
|
||||
gpointer _gst_reserved[GST_PADDING_LARGE + 0];
|
||||
gpointer _gst_reserved[GST_PADDING_LARGE - 1];
|
||||
} abidata;
|
||||
|
||||
};
|
||||
|
@ -130,8 +132,13 @@ struct _GstBaseSinkClass {
|
|||
GstFlowReturn (*preroll) (GstBaseSink *sink, GstBuffer *buffer);
|
||||
GstFlowReturn (*render) (GstBaseSink *sink, GstBuffer *buffer);
|
||||
|
||||
/* ABI additions */
|
||||
|
||||
/* when an ASYNC state change to PLAYING happens */ /* with LOCK */
|
||||
GstStateChangeReturn (*async_play) (GstBaseSink *sink);
|
||||
|
||||
/*< private >*/
|
||||
gpointer _gst_reserved[GST_PADDING_LARGE];
|
||||
gpointer _gst_reserved[GST_PADDING_LARGE-1];
|
||||
};
|
||||
|
||||
GType gst_base_sink_get_type(void);
|
||||
|
@ -142,6 +149,9 @@ gboolean gst_base_sink_get_sync (GstBaseSink *sink);
|
|||
void gst_base_sink_set_max_lateness (GstBaseSink *sink, gint64 max_lateness);
|
||||
gint64 gst_base_sink_get_max_lateness (GstBaseSink *sink);
|
||||
|
||||
void gst_base_sink_set_qos_enabled (GstBaseSink *sink, gboolean enabled);
|
||||
gboolean gst_base_sink_is_qos_enabled (GstBaseSink *sink);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GST_BASE_SINK_H__ */
|
||||
|
|
Loading…
Reference in a new issue