mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-25 19:21:06 +00:00
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:
parent
b7810a3635
commit
2521a319c3
10 changed files with 24 additions and 10 deletions
|
@ -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
|
||||||
|
|
|
@ -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">
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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)));
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue