guint8 nbpending;
/* Current data to be pushed out */
- GstBufferList *current;
GList *currentlist;
/* Current PTS for this stream */
bstream->stream_type);
break;
}
+
if (template && name && caps) {
GST_LOG ("stream:%p creating pad with name %s and caps %s", stream, name,
gst_caps_to_string (caps));
gst_buffer_unref (stream->pendingbuffers[i]);
memset (stream->pendingbuffers, 0, TS_MAX_PENDING_BUFFERS);
stream->nbpending = 0;
-
- stream->current = NULL;
}
static void
* creating the bufferlist */
if (1) {
/* Append to the buffer list */
- if (G_UNLIKELY (stream->current == NULL)) {
+ if (G_UNLIKELY (stream->currentlist == NULL)) {
guint8 i;
- /* Create a new bufferlist */
- stream->current = gst_buffer_list_new ();
- stream->currentlist = NULL;
-
/* Push pending buffers into the list */
for (i = stream->nbpending; i; i--)
stream->currentlist =
GST_DEBUG ("new segment: start: %" GST_TIME_FORMAT " stop: %"
GST_TIME_FORMAT " time: %" GST_TIME_FORMAT, GST_TIME_ARGS (start),
GST_TIME_ARGS (stop), GST_TIME_ARGS (position));
+
newsegmentevent = gst_event_new_segment (&demux->segment);
push_event ((MpegTSBase *) demux, newsegmentevent);
stream, bs->pid, bs->stream_type, stream->state,
GST_DEBUG_PAD_NAME (stream->pad));
- if (G_UNLIKELY (stream->current == NULL)) {
+ if (G_UNLIKELY (stream->currentlist == NULL)) {
GST_LOG ("stream->current == NULL");
goto beach;
}
if (G_UNLIKELY (stream->pad == NULL)) {
g_list_foreach (stream->currentlist, (GFunc) gst_buffer_unref, NULL);
g_list_free (stream->currentlist);
- gst_buffer_list_unref (stream->current);
+ stream->currentlist = NULL;
goto beach;
}
buf = (GstBuffer *) stream->currentlist->data;
for (tmp = stream->currentlist->next; tmp; tmp = tmp->next) {
- buf = gst_buffer_merge (buf, (GstBuffer *) tmp->data);
+ buf = gst_buffer_join (buf, (GstBuffer *) tmp->data);
}
GST_DEBUG_OBJECT (stream->pad,
stream->state = PENDING_PACKET_EMPTY;
memset (stream->pendingbuffers, 0, TS_MAX_PENDING_BUFFERS);
stream->nbpending = 0;
- stream->current = NULL;
+ if (stream->currentlist)
+ g_list_free (stream->currentlist);
+ stream->currentlist = NULL;
return res;
}