[prev in list] [next in list] [prev in thread] [next in thread]
List: gstreamer-devel
Subject: [gst-devel] [patch] adding newmedia support to oggmux and rawvorbisenc
From: Zaheer Abbas Merali <zaheerabbas () merali ! org>
Date: 2004-08-26 11:09:16
Message-ID: 1093518556.9364.6.camel () penang
[Download RAW message or body]
Hi
I am in Toronto on holiday, so cannot be on irc much.
I have made changes to oggmux and vorbisenc that I would like in the
next release. These should not affect normal use of both of them, just
when new media events occur. Please review and apply.
Take Care
--
Zaheer Abbas Merali <zaheerabbas@merali.org>
["ogg.diff" (ogg.diff)]
? ogg.diff
Index: gstoggmux.c
===================================================================
RCS file: /cvs/gstreamer/gst-plugins/ext/ogg/gstoggmux.c,v
retrieving revision 1.15
diff -u -r1.15 gstoggmux.c
--- gstoggmux.c 22 Aug 2004 09:31:06 -0000 1.15
+++ gstoggmux.c 26 Aug 2004 12:13:21 -0000
@@ -100,6 +100,7 @@
GstOggPad *delta_pad; /* when a delta frame is detected on a stream, we mark
pages as delta frames up to the page that has the
keyframe */
+ guint16 newmediacount;
};
typedef enum
@@ -238,6 +239,7 @@
{
static const GstEventMask gst_ogg_mux_sink_event_masks[] = {
{GST_EVENT_EOS, 0},
+ {GST_EVENT_DISCONTINUOUS, 0},
{0,}
};
@@ -268,7 +270,7 @@
ogg_mux->max_page_delay = DEFAULT_MAX_PAGE_DELAY;
ogg_mux->delta_pad = NULL;
-
+ ogg_mux->newmediacount = 0;
gst_element_set_loop_function (GST_ELEMENT (ogg_mux), gst_ogg_mux_loop);
}
@@ -429,6 +431,18 @@
{
gint64 value = 0;
+ if (GST_EVENT_DISCONT_NEW_MEDIA (event)) {
+ /* only handle if its not first new media event */
+ if (ogg_mux->newmediacount++ > 0) {
+ ogg_mux->next_ts = 0;
+ ogg_mux->offset = 0;
+ ogg_mux->pulling = NULL;
+ pad->offset = 0;
+ GST_DEBUG_OBJECT (ogg_mux, "received new media event");
+ gst_pad_event_default (pad->pad, event);
+ break;
+ }
+ }
if (gst_event_discont_get_value (event, GST_FORMAT_TIME, &value)) {
GST_DEBUG_OBJECT (ogg_mux,
"got discont of %" G_GUINT64_FORMAT " on pad %s:%s",
["vorbis.diff" (vorbis.diff)]
? .vorbisenc.c.swp
? vorbis.diff
Index: vorbisenc.c
===================================================================
RCS file: /cvs/gstreamer/gst-plugins/ext/vorbis/vorbisenc.c,v
retrieving revision 1.60
diff -u -r1.60 vorbisenc.c
--- vorbisenc.c 3 Aug 2004 14:28:11 -0000 1.60
+++ vorbisenc.c 26 Aug 2004 12:13:42 -0000
@@ -473,6 +473,7 @@
vorbisenc->eos = FALSE;
vorbisenc->header_sent = FALSE;
+ vorbisenc->newmediacount = 0;
vorbisenc->tags = gst_tag_list_new ();
/* we're chained and we can deal with events */
@@ -808,6 +809,20 @@
}
gst_pad_event_default (pad, event);
return;
+ case GST_EVENT_DISCONTINUOUS:
+ if (GST_EVENT_DISCONT_NEW_MEDIA (event)) {
+ /* only do for new media events after the first one */
+ if (vorbisenc->newmediacount++ > 0) {
+ vorbisenc->setup = FALSE;
+ vorbisenc->header_sent = FALSE;
+ gst_tag_list_free (vorbisenc->tags);
+ vorbisenc->tags = gst_tag_list_new ();
+ vorbisenc->eos = FALSE;
+ gst_vorbisenc_setup (vorbisenc);
+ }
+ gst_pad_event_default (pad, event);
+ break;
+ }
default:
gst_pad_event_default (pad, event);
return;
Index: vorbisenc.h
===================================================================
RCS file: /cvs/gstreamer/gst-plugins/ext/vorbis/vorbisenc.h,v
retrieving revision 1.12
diff -u -r1.12 vorbisenc.h
--- vorbisenc.h 10 May 2004 17:44:07 -0000 1.12
+++ vorbisenc.h 26 Aug 2004 12:13:42 -0000
@@ -77,6 +77,7 @@
gboolean setup;
gboolean header_sent;
gchar *last_message;
+ guint16 newmediacount;
};
struct _VorbisEncClass {
-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic