mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-22 14:06:23 +00:00
hls: Minor GstFragment cleanup
This commit is contained in:
parent
501d42fa78
commit
fdaa60c44f
1 changed files with 14 additions and 18 deletions
|
@ -42,8 +42,7 @@ struct _GstFragmentPrivate
|
||||||
{
|
{
|
||||||
GstBufferList *buffer_list;
|
GstBufferList *buffer_list;
|
||||||
GstBufferListIterator *buffer_iterator;
|
GstBufferListIterator *buffer_iterator;
|
||||||
gboolean can_set_headers;
|
gboolean headers_set;
|
||||||
gboolean has_headers;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
G_DEFINE_TYPE (GstFragment, gst_fragment, G_TYPE_OBJECT);
|
G_DEFINE_TYPE (GstFragment, gst_fragment, G_TYPE_OBJECT);
|
||||||
|
@ -125,12 +124,11 @@ gst_fragment_init (GstFragment * fragment)
|
||||||
GstFragmentPrivate *priv;
|
GstFragmentPrivate *priv;
|
||||||
|
|
||||||
fragment->priv = priv = GST_FRAGMENT_GET_PRIVATE (fragment);
|
fragment->priv = priv = GST_FRAGMENT_GET_PRIVATE (fragment);
|
||||||
fragment->priv->buffer_list = gst_buffer_list_new ();
|
|
||||||
fragment->priv->buffer_iterator =
|
priv->buffer_list = gst_buffer_list_new ();
|
||||||
gst_buffer_list_iterate (fragment->priv->buffer_list);
|
priv->buffer_iterator = gst_buffer_list_iterate (priv->buffer_list);
|
||||||
gst_buffer_list_iterator_add_group (fragment->priv->buffer_iterator);
|
gst_buffer_list_iterator_add_group (priv->buffer_iterator);
|
||||||
fragment->priv->can_set_headers = TRUE;
|
priv->headers_set = FALSE;
|
||||||
fragment->priv->has_headers = FALSE;
|
|
||||||
fragment->download_start_time = g_get_real_time ();
|
fragment->download_start_time = g_get_real_time ();
|
||||||
fragment->start_time = 0;
|
fragment->start_time = 0;
|
||||||
fragment->stop_time = 0;
|
fragment->stop_time = 0;
|
||||||
|
@ -159,12 +157,12 @@ gst_fragment_finalize (GObject * gobject)
|
||||||
void
|
void
|
||||||
gst_fragment_dispose (GObject * object)
|
gst_fragment_dispose (GObject * object)
|
||||||
{
|
{
|
||||||
GstFragment *fragment = GST_FRAGMENT (object);
|
GstFragmentPrivate *priv = GST_FRAGMENT (object)->priv;
|
||||||
|
|
||||||
if (fragment->priv->buffer_list != NULL) {
|
if (priv->buffer_list != NULL) {
|
||||||
gst_buffer_list_iterator_free (fragment->priv->buffer_iterator);
|
gst_buffer_list_iterator_free (priv->buffer_iterator);
|
||||||
gst_buffer_list_unref (fragment->priv->buffer_list);
|
gst_buffer_list_unref (priv->buffer_list);
|
||||||
fragment->priv->buffer_list = NULL;
|
priv->buffer_list = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
G_OBJECT_CLASS (gst_fragment_parent_class)->dispose (object);
|
G_OBJECT_CLASS (gst_fragment_parent_class)->dispose (object);
|
||||||
|
@ -191,7 +189,7 @@ gst_fragment_set_headers (GstFragment * fragment, GstBuffer ** buffer,
|
||||||
g_return_val_if_fail (fragment != NULL, FALSE);
|
g_return_val_if_fail (fragment != NULL, FALSE);
|
||||||
g_return_val_if_fail (buffer != NULL, FALSE);
|
g_return_val_if_fail (buffer != NULL, FALSE);
|
||||||
|
|
||||||
if (!fragment->priv->can_set_headers)
|
if (fragment->priv->headers_set)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
|
@ -199,7 +197,6 @@ gst_fragment_set_headers (GstFragment * fragment, GstBuffer ** buffer,
|
||||||
gst_buffer_list_iterator_add (fragment->priv->buffer_iterator, buffer[i]);
|
gst_buffer_list_iterator_add (fragment->priv->buffer_iterator, buffer[i]);
|
||||||
gst_buffer_list_iterator_add_group (fragment->priv->buffer_iterator);
|
gst_buffer_list_iterator_add_group (fragment->priv->buffer_iterator);
|
||||||
}
|
}
|
||||||
fragment->priv->has_headers = TRUE;
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -215,9 +212,8 @@ gst_fragment_add_buffer (GstFragment * fragment, GstBuffer * buffer)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if this is the first buffer forbid setting the headers anymore */
|
/* if this is the first buffer forbid setting the headers anymore */
|
||||||
if (G_UNLIKELY (fragment->priv->can_set_headers)) {
|
if (G_UNLIKELY (fragment->priv->headers_set == FALSE))
|
||||||
fragment->priv->can_set_headers = FALSE;
|
fragment->priv->headers_set = TRUE;
|
||||||
}
|
|
||||||
|
|
||||||
GST_DEBUG ("Adding new buffer to the fragment");
|
GST_DEBUG ("Adding new buffer to the fragment");
|
||||||
gst_buffer_ref (buffer);
|
gst_buffer_ref (buffer);
|
||||||
|
|
Loading…
Reference in a new issue