MPEG2 types added for better autoplugging. MPEG2 works more or less. fix in autoplugging. avi now works.

Original commit message from CVS:
MPEG2 types added for better autoplugging. MPEG2 works more or less.
fix in autoplugging. avi now works.
This commit is contained in:
Wim Taymans 2000-10-21 12:04:40 +00:00
parent b7810a3635
commit 2521a319c3
10 changed files with 24 additions and 10 deletions

View file

@ -433,6 +433,8 @@ plugins/mpeg2/ac3dec/Makefile
plugins/mpeg2/video/Makefile plugins/mpeg2/video/Makefile
plugins/mpeg2/mpeg2enc/Makefile plugins/mpeg2/mpeg2enc/Makefile
plugins/mpeg2/subtitles/Makefile plugins/mpeg2/subtitles/Makefile
plugins/mpeg2/videoparse/Makefile
plugins/mpeg2/mpegtypes/Makefile
plugins/mpeg1/Makefile plugins/mpeg1/Makefile
plugins/mpeg1/mpegtypes/Makefile plugins/mpeg1/mpegtypes/Makefile
plugins/mpeg1/mpeg_play/Makefile plugins/mpeg1/mpeg_play/Makefile

View file

@ -1,4 +1,4 @@
<!doctype book PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.0//EN" [ <!DOCTYPE book PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.0//EN" "" [
<!ENTITY INTRO SYSTEM "intro.sgml"> <!ENTITY INTRO SYSTEM "intro.sgml">
<!ENTITY MOTIVATION SYSTEM "motivation.sgml"> <!ENTITY MOTIVATION SYSTEM "motivation.sgml">
<!ENTITY GOALS SYSTEM "goals.sgml"> <!ENTITY GOALS SYSTEM "goals.sgml">

View file

@ -78,7 +78,7 @@ noinst_HEADERS = \
gsti386.h \ gsti386.h \
gstppc.h gstppc.h
CFLAGS += -O2 -Wall -fomit-frame-pointer CFLAGS += -O2 -Wall
libgst_la_LIBADD = $(GLIB_LIBS) $(GTK_LIBS) $(XML_LIBS) libgst_la_LIBADD = $(GLIB_LIBS) $(GTK_LIBS) $(XML_LIBS)
libgst_la_LDFLAGS = -version-info $(STREAMER_CURRENT):$(STREAMER_REVISION):$(STREAMER_AGE) libgst_la_LDFLAGS = -version-info $(STREAMER_CURRENT):$(STREAMER_REVISION):$(STREAMER_AGE)

View file

@ -19,7 +19,8 @@ cothread_state *cothread_create(cothread_context *ctx) {
cothread_state *s; cothread_state *s;
DEBUG("cothread: pthread_self() %ld\n",pthread_self()); DEBUG("cothread: pthread_self() %ld\n",pthread_self());
if (pthread_self() == 0) { if (0) {
//if (pthread_self() == 0) {
s = (cothread_state *)malloc(sizeof(int) * COTHREAD_STACKSIZE); s = (cothread_state *)malloc(sizeof(int) * COTHREAD_STACKSIZE);
DEBUG("cothread: new stack at %p\n",s); DEBUG("cothread: new stack at %p\n",s);
} else { } else {

View file

@ -22,6 +22,8 @@
#include <fcntl.h> #include <fcntl.h>
#include <unistd.h> #include <unistd.h>
//#define DEBUG_ENABLED
#include <gstdisksrc.h> #include <gstdisksrc.h>
@ -241,6 +243,7 @@ void gst_disksrc_push(GstSrc *src) {
DEBUG("pushing with offset %d\n", GST_BUFFER_OFFSET(buf)); DEBUG("pushing with offset %d\n", GST_BUFFER_OFFSET(buf));
/* we're done, push the buffer off now */ /* we're done, push the buffer off now */
gst_pad_push(disksrc->srcpad,buf); gst_pad_push(disksrc->srcpad,buf);
DEBUG("pushing with offset %d done\n", GST_BUFFER_OFFSET(buf));
} }

View file

@ -716,6 +716,8 @@ void gst_bin_iterate_func(GstBin *bin) {
DEBUG("** in gst_bin_iterate_func()==================================%s\n", DEBUG("** in gst_bin_iterate_func()==================================%s\n",
gst_element_get_name(GST_ELEMENT(bin->children->data))); gst_element_get_name(GST_ELEMENT(bin->children->data)));
cothread_switch(GST_ELEMENT(bin->children->data)->threadstate); cothread_switch(GST_ELEMENT(bin->children->data)->threadstate);
DEBUG("** out gst_bin_iterate_func()==================================%s\n",
gst_element_get_name(GST_ELEMENT(bin->children->data)));
} else { } else {
if (bin->numentries <= 0) { if (bin->numentries <= 0) {
printf("gstbin: no entries in bin \"%s\" trying children...\n", gst_element_get_name(GST_ELEMENT(bin))); printf("gstbin: no entries in bin \"%s\" trying children...\n", gst_element_get_name(GST_ELEMENT(bin)));

View file

@ -225,7 +225,8 @@ GstBuffer *gst_pad_pull(GstPad *pad) {
// g_print("-- gst_pad_pull(): calling pull handler\n"); // g_print("-- gst_pad_pull(): calling pull handler\n");
(pad->pullfunc)(pad->peer); (pad->pullfunc)(pad->peer);
} else { } else {
g_print("-- gst_pad_pull(): no buffer in pen, and no handler to get one there!!!\n"); g_print("-- gst_pad_pull(%s:%s): no buffer in pen, and no handler to get one there!!!\n",
GST_ELEMENT(pad->parent)->name, pad->name);
} }
} }
@ -237,7 +238,8 @@ GstBuffer *gst_pad_pull(GstPad *pad) {
return buf; return buf;
// else we have a big problem... // else we have a big problem...
} else { } else {
g_print("-- gst_pad_pull(): uh, nothing in pen and no handler\n"); g_print("-- gst_pad_pull(%s:%s): no buffer in pen, and no handler\n",
GST_ELEMENT(pad->parent)->name, pad->peer->name);
return NULL; return NULL;
} }

View file

@ -39,8 +39,8 @@ extern "C" {
#define GST_IS_PAD_CLASS(obj) (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_PAD)) #define GST_IS_PAD_CLASS(obj) (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_PAD))
// quick test to see if the pad is connected // quick test to see if the pad is connected
#define GST_PAD_CONNECTED(pad) ((pad)->peer != NULL) #define GST_PAD_CONNECTED(pad) (pad && (pad)->peer != NULL)
#define GST_PAD_CAN_PULL(pad) ((pad)->pullfunc != NULL) #define GST_PAD_CAN_PULL(pad) (pad && (pad)->pullfunc != NULL)
typedef struct _GstPad GstPad; typedef struct _GstPad GstPad;
typedef struct _GstPadClass GstPadClass; typedef struct _GstPadClass GstPadClass;

View file

@ -303,6 +303,7 @@ gboolean gst_pipeline_autoplug(GstPipeline *pipeline) {
GList *elements; GList *elements;
GstElement *element, *srcelement = NULL, *sinkelement= NULL; GstElement *element, *srcelement = NULL, *sinkelement= NULL;
GList **factories; GList **factories;
GList **base_factories;
GstElementFactory *factory; GstElementFactory *factory;
GList *src_types; GList *src_types;
guint16 src_type = 0, sink_type = 0; guint16 src_type = 0, sink_type = 0;
@ -354,6 +355,7 @@ gboolean gst_pipeline_autoplug(GstPipeline *pipeline) {
numsinks = g_list_length(elements); numsinks = g_list_length(elements);
factories = g_new0(GList *, numsinks); factories = g_new0(GList *, numsinks);
base_factories = g_new0(GList *, numsinks);
i = 0; i = 0;
// fase 2, loop over all the sinks.. // fase 2, loop over all the sinks..
@ -376,8 +378,7 @@ gboolean gst_pipeline_autoplug(GstPipeline *pipeline) {
pads = g_list_next(pads); pads = g_list_next(pads);
} }
factories[i] = gst_type_get_sink_to_src(src_type, sink_type); base_factories[i] = factories[i] = gst_type_get_sink_to_src(src_type, sink_type);
//factories[i] = g_list_append(factories[i], element);
i++; i++;
elements = g_list_next(elements); elements = g_list_next(elements);
@ -419,7 +420,7 @@ differ:
GstElement *thesrcelement = srcelement; GstElement *thesrcelement = srcelement;
GstElement *thebin = GST_ELEMENT(pipeline); GstElement *thebin = GST_ELEMENT(pipeline);
if (g_list_length(factories[i]) < 1) goto next; if (g_list_length(base_factories[i]) == 0) goto next;
sinkelement = (GstElement *)elements->data; sinkelement = (GstElement *)elements->data;

View file

@ -22,6 +22,8 @@
#include <fcntl.h> #include <fcntl.h>
#include <unistd.h> #include <unistd.h>
//#define DEBUG_ENABLED
#include <gstdisksrc.h> #include <gstdisksrc.h>
@ -241,6 +243,7 @@ void gst_disksrc_push(GstSrc *src) {
DEBUG("pushing with offset %d\n", GST_BUFFER_OFFSET(buf)); DEBUG("pushing with offset %d\n", GST_BUFFER_OFFSET(buf));
/* we're done, push the buffer off now */ /* we're done, push the buffer off now */
gst_pad_push(disksrc->srcpad,buf); gst_pad_push(disksrc->srcpad,buf);
DEBUG("pushing with offset %d done\n", GST_BUFFER_OFFSET(buf));
} }