mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-19 06:46:38 +00:00
gst/mpegstream/: Flush packetizer cache when we get a FLUSH_STOP event; remove unused source pad member from packetiz...
Original commit message from CVS: * gst/mpegstream/gstmpegpacketize.c: (gst_mpeg_packetize_new), (gst_mpeg_packetize_flush_cache), (gst_mpeg_packetize_destroy), (gst_mpeg_packetize_read): * gst/mpegstream/gstmpegpacketize.h: * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_process_event), (gst_mpeg_parse_change_state): Flush packetizer cache when we get a FLUSH_STOP event; remove unused source pad member from packetizer; add debug category for packetizer.
This commit is contained in:
parent
d13b1e7003
commit
8daf179ca4
4 changed files with 41 additions and 38 deletions
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,15 @@
|
|||
2006-06-23 Tim-Philipp Müller <tim at centricular dot net>
|
||||
|
||||
* gst/mpegstream/gstmpegpacketize.c: (gst_mpeg_packetize_new),
|
||||
(gst_mpeg_packetize_flush_cache), (gst_mpeg_packetize_destroy),
|
||||
(gst_mpeg_packetize_read):
|
||||
* gst/mpegstream/gstmpegpacketize.h:
|
||||
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_process_event),
|
||||
(gst_mpeg_parse_change_state):
|
||||
Flush packetizer cache when we get a FLUSH_STOP event;
|
||||
remove unused source pad member from packetizer; add debug
|
||||
category for packetizer.
|
||||
|
||||
2006-06-23 Jan Schmidt <thaytan@mad.scientist.com>
|
||||
|
||||
* ext/a52dec/gsta52dec.c: (gst_a52dec_channels), (plugin_init):
|
||||
|
|
|
@ -25,21 +25,17 @@
|
|||
|
||||
#include "gstmpegpacketize.h"
|
||||
|
||||
GST_DEBUG_CATEGORY_STATIC (gstmpegpacketize_debug);
|
||||
#define GST_CAT_DEFAULT (gstmpegpacketize_debug)
|
||||
|
||||
GstMPEGPacketize *
|
||||
gst_mpeg_packetize_new (GstPad * srcpad, GstMPEGPacketizeType type)
|
||||
gst_mpeg_packetize_new (GstMPEGPacketizeType type)
|
||||
{
|
||||
GstMPEGPacketize *new;
|
||||
|
||||
g_return_val_if_fail (srcpad != NULL, NULL);
|
||||
g_return_val_if_fail (GST_IS_PAD (srcpad), NULL);
|
||||
g_return_val_if_fail (GST_PAD_IS_SRC (srcpad), NULL);
|
||||
|
||||
gst_object_ref (GST_OBJECT (srcpad));
|
||||
|
||||
new = g_malloc (sizeof (GstMPEGPacketize));
|
||||
new = g_new0 (GstMPEGPacketize, 1);
|
||||
new->resync = TRUE;
|
||||
new->id = 0;
|
||||
new->srcpad = srcpad;
|
||||
new->cache_head = 0;
|
||||
new->cache_tail = 0;
|
||||
new->cache_size = 0x4000;
|
||||
|
@ -48,16 +44,31 @@ gst_mpeg_packetize_new (GstPad * srcpad, GstMPEGPacketizeType type)
|
|||
new->MPEG2 = FALSE;
|
||||
new->type = type;
|
||||
|
||||
if (gstmpegpacketize_debug == NULL) {
|
||||
GST_DEBUG_CATEGORY_INIT (gstmpegpacketize_debug, "mpegpacketize", 0,
|
||||
"MPEG parser element packetizer");
|
||||
}
|
||||
|
||||
return new;
|
||||
}
|
||||
|
||||
void
|
||||
gst_mpeg_packetize_flush_cache (GstMPEGPacketize * packetize)
|
||||
{
|
||||
g_return_if_fail (packetize != NULL);
|
||||
|
||||
packetize->resync = TRUE;
|
||||
packetize->cache_head = 0;
|
||||
packetize->cache_tail = 0;
|
||||
|
||||
GST_DEBUG ("flushed packetize cache");
|
||||
}
|
||||
|
||||
void
|
||||
gst_mpeg_packetize_destroy (GstMPEGPacketize * packetize)
|
||||
{
|
||||
g_return_if_fail (packetize != NULL);
|
||||
|
||||
gst_object_unref (GST_OBJECT (packetize->srcpad));
|
||||
|
||||
g_free (packetize->cache);
|
||||
g_free (packetize);
|
||||
}
|
||||
|
@ -333,26 +344,5 @@ gst_mpeg_packetize_read (GstMPEGPacketize * packetize, GstBuffer ** outbuf)
|
|||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
/* TODO: flush cache when newsegment is received */
|
||||
if (got_event) {
|
||||
guint32 remaining;
|
||||
GstEvent *event;
|
||||
gint etype;
|
||||
|
||||
gst_bytestream_get_status (packetize->bs, &remaining, &event);
|
||||
etype = event ? GST_EVENT_TYPE (event) : GST_EVENT_EOS;
|
||||
|
||||
switch (etype) {
|
||||
case GST_EVENT_NEWSEGMENT:
|
||||
GST_DEBUG ("packetize: discont\n");
|
||||
gst_bytestream_flush_fast (packetize->bs, remaining);
|
||||
break;
|
||||
}
|
||||
|
||||
return GST_MINI_OBJECT (event);
|
||||
}
|
||||
#endif
|
||||
|
||||
g_assert_not_reached ();
|
||||
}
|
||||
|
|
|
@ -54,7 +54,6 @@ struct _GstMPEGPacketize {
|
|||
/* current parse state */
|
||||
guchar id;
|
||||
|
||||
GstPad *srcpad;
|
||||
GstMPEGPacketizeType type;
|
||||
|
||||
guint8 *cache; /* cache for incoming data */
|
||||
|
@ -67,9 +66,11 @@ struct _GstMPEGPacketize {
|
|||
gboolean resync;
|
||||
};
|
||||
|
||||
GstMPEGPacketize* gst_mpeg_packetize_new (GstPad *pad, GstMPEGPacketizeType type);
|
||||
GstMPEGPacketize* gst_mpeg_packetize_new (GstMPEGPacketizeType type);
|
||||
void gst_mpeg_packetize_destroy (GstMPEGPacketize *packetize);
|
||||
|
||||
void gst_mpeg_packetize_flush_cache (GstMPEGPacketize *packetize);
|
||||
|
||||
guint64 gst_mpeg_packetize_tell (GstMPEGPacketize *packetize);
|
||||
void gst_mpeg_packetize_put (GstMPEGPacketize *packetize, GstBuffer * buf);
|
||||
GstFlowReturn gst_mpeg_packetize_read (GstMPEGPacketize *packetize, GstBuffer ** outbuf);
|
||||
|
|
|
@ -394,7 +394,7 @@ gst_mpeg_parse_process_event (GstMPEGParse * mpeg_parse, GstEvent * event)
|
|||
ret = TRUE;
|
||||
break;
|
||||
}
|
||||
case GST_EVENT_FLUSH_STOP:
|
||||
case GST_EVENT_FLUSH_STOP:{
|
||||
/* Forward the event. */
|
||||
if (CLASS (mpeg_parse)->send_event) {
|
||||
ret = CLASS (mpeg_parse)->send_event (mpeg_parse, event);
|
||||
|
@ -404,8 +404,9 @@ gst_mpeg_parse_process_event (GstMPEGParse * mpeg_parse, GstEvent * event)
|
|||
|
||||
/* Reset the internal fields. */
|
||||
gst_mpeg_parse_reset (mpeg_parse);
|
||||
|
||||
gst_mpeg_packetize_flush_cache (mpeg_parse->packetize);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
if (CLASS (mpeg_parse)->send_event) {
|
||||
ret = CLASS (mpeg_parse)->send_event (mpeg_parse, event);
|
||||
|
@ -1232,8 +1233,7 @@ gst_mpeg_parse_change_state (GstElement * element, GstStateChange transition)
|
|||
case GST_STATE_CHANGE_READY_TO_PAUSED:
|
||||
if (!mpeg_parse->packetize) {
|
||||
mpeg_parse->packetize =
|
||||
gst_mpeg_packetize_new (mpeg_parse->srcpad,
|
||||
GST_MPEG_PACKETIZE_SYSTEM);
|
||||
gst_mpeg_packetize_new (GST_MPEG_PACKETIZE_SYSTEM);
|
||||
}
|
||||
|
||||
/* Initialize parser state */
|
||||
|
|
Loading…
Reference in a new issue