make more debug catagories static

Original commit message from CVS:
* ext/theora/theoradec.c:
* ext/theora/theoraenc.c:
* ext/theora/theoraparse.c: (gst_theora_parse_class_init):
* gst/audiorate/gstaudiorate.c:
make more debug catagories static
* tests/check/Makefile.am:
* tests/check/elements/adder.c: (message_received),
(test_event_message_received), (GST_START_TEST),
(test_play_twice_message_received), (adder_suite):
added test case for using element twice, extra bonus points for anyone
who can make these test run reliably
This commit is contained in:
Stefan Kost 2006-05-23 20:38:56 +00:00
parent 90840bc0e0
commit 377e2be9f3
7 changed files with 175 additions and 70 deletions

View file

@ -1,3 +1,18 @@
2006-05-23 Stefan Kost <ensonic@users.sf.net>
* ext/theora/theoradec.c:
* ext/theora/theoraenc.c:
* ext/theora/theoraparse.c: (gst_theora_parse_class_init):
* gst/audiorate/gstaudiorate.c:
make more debug catagories static
* tests/check/Makefile.am:
* tests/check/elements/adder.c: (message_received),
(test_event_message_received), (GST_START_TEST),
(test_play_twice_message_received), (adder_suite):
added test case for using element twice, extra bonus points for anyone
who can make these test run reliably
2006-05-23 Tim-Philipp Müller <tim at centricular dot net>
* ext/theora/theoradec.c: (theora_dec_chain):

View file

@ -48,8 +48,8 @@
#include "gsttheoradec.h"
#include <gst/tag/tag.h>
GST_DEBUG_CATEGORY (theoradec_debug);
#define GST_CAT_DEFAULT theoradec_debug
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
#define THEORA_DEF_CROP TRUE
enum

View file

@ -66,8 +66,8 @@
#include <gst/tag/tag.h>
GST_DEBUG_CATEGORY (theoraenc_debug);
#define GST_CAT_DEFAULT theoraenc_debug
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
#define GST_TYPE_BORDER_MODE (gst_border_mode_get_type())
static GType

View file

@ -64,6 +64,9 @@
#include "gsttheoraparse.h"
#define GST_CAT_DEFAULT theoraparse_debug
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
static GstElementDetails theora_parse_details = {
"TheoraParse",
"Codec/Parser/Video",
@ -112,6 +115,9 @@ gst_theora_parse_class_init (GstTheoraParseClass * klass)
GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
gstelement_class->change_state = theora_parse_change_state;
GST_DEBUG_CATEGORY_INIT (theoraparse_debug, "theoraparse", 0,
"Theora parser");
}
static void

View file

@ -25,8 +25,8 @@
#include <gst/gst.h>
#include <gst/audio/audio.h>
GST_DEBUG_CATEGORY (audio_rate_debug);
#define GST_CAT_DEFAULT audio_rate_debug
GST_DEBUG_CATEGORY_STATIC (audio_rate_debug);
#define GST_TYPE_AUDIO_RATE \
(gst_audio_rate_get_type())

View file

@ -43,6 +43,7 @@ check_PROGRAMS = \
$(check_alsa) \
$(check_vorbis) \
$(check_theora) \
elements/adder \
elements/audioconvert \
elements/audioresample \
elements/audiotestsrc \

View file

@ -25,58 +25,6 @@
#include <gst/check/gstcheck.h>
static GMainLoop *main_loop;
static GstFormat format = GST_FORMAT_UNDEFINED;
static gint64 position = -1;
/*
static void
event_loop (GstElement * bin)
{
GstBus *bus;
GstMessage *message = NULL;
GstObject *object;
GstState oldstate, newstate, pending;
gboolean loop = TRUE;
bus = gst_element_get_bus (GST_ELEMENT (bin));
while (loop) {
message = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
g_assert (message != NULL);
object = GST_MESSAGE_SRC (message);
GST_INFO ("bus message from \"%s\" (%s): ",
GST_STR_NULL (GST_ELEMENT_NAME (object)),
gst_message_type_get_name (GST_MESSAGE_TYPE (message)));
switch (message->type) {
case GST_MESSAGE_EOS:
loop = FALSE;
break;
case GST_MESSAGE_SEGMENT_DONE:
gst_message_parse_segment_done (message, &format, &position);
GST_INFO ("received segment_done : %" G_GINT64_FORMAT, position);
loop = FALSE;
break;
case GST_MESSAGE_WARNING:
case GST_MESSAGE_ERROR:{
GError *gerror;
gchar *debug;
gst_message_parse_error (message, &gerror, &debug);
gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
g_error_free (gerror);
g_free (debug);
loop = FALSE;
}
default:
break;
}
gst_message_unref (message);
}
}
*/
static void
message_received (GstBus * bus, GstMessage * message, GstPipeline * bin)
@ -91,11 +39,6 @@ message_received (GstBus * bus, GstMessage * message, GstPipeline * bin)
case GST_MESSAGE_EOS:
g_main_loop_quit (main_loop);
break;
case GST_MESSAGE_SEGMENT_DONE:
gst_message_parse_segment_done (message, &format, &position);
GST_INFO ("received segment_done : %" G_GINT64_FORMAT, position);
g_main_loop_quit (main_loop);
break;
case GST_MESSAGE_WARNING:
case GST_MESSAGE_ERROR:{
GError *gerror;
@ -113,6 +56,31 @@ message_received (GstBus * bus, GstMessage * message, GstPipeline * bin)
}
static GstFormat format = GST_FORMAT_UNDEFINED;
static gint64 position = -1;
static void
test_event_message_received (GstBus * bus, GstMessage * message,
GstPipeline * bin)
{
GstObject *object = GST_MESSAGE_SRC (message);
GST_INFO ("bus message from \"%s\" (%s): ",
GST_STR_NULL (GST_ELEMENT_NAME (object)),
gst_message_type_get_name (GST_MESSAGE_TYPE (message)));
switch (message->type) {
case GST_MESSAGE_SEGMENT_DONE:
gst_message_parse_segment_done (message, &format, &position);
GST_INFO ("received segment_done : %" G_GINT64_FORMAT, position);
g_main_loop_quit (main_loop);
break;
default:
break;
}
}
GST_START_TEST (test_event)
{
GstElement *bin, *src1, *src2, *adder, *sink;
@ -120,7 +88,7 @@ GST_START_TEST (test_event)
GstEvent *seek_event;
gboolean res;
GST_INFO ("starting test");
GST_INFO ("preparing test");
/* build pipeline */
bin = gst_pipeline_new ("pipeline");
@ -130,10 +98,10 @@ GST_START_TEST (test_event)
/* FIXME, fakesrc with default setting will produce 0 sized
* buffers and incompatible caps for adder that will make
* adder EOS and error out */
src1 = gst_element_factory_make ("fakesrc", "src1");
//g_object_set (src1, "wave", 4, NULL); /* silence */
src2 = gst_element_factory_make ("fakesrc", "src2");
//g_object_set (src2, "wave", 4, NULL); /* silence */
src1 = gst_element_factory_make ("audiotestsrc", "src1");
g_object_set (src1, "wave", 4, NULL); /* silence */
src2 = gst_element_factory_make ("audiotestsrc", "src2");
g_object_set (src2, "wave", 4, NULL); /* silence */
adder = gst_element_factory_make ("adder", "adder");
sink = gst_element_factory_make ("fakesink", "sink");
gst_bin_add_many (GST_BIN (bin), src1, src2, adder, sink, NULL);
@ -154,17 +122,21 @@ GST_START_TEST (test_event)
position = -1;
main_loop = g_main_loop_new (NULL, FALSE);
g_signal_connect (bus, "message::segment-done", (GCallback) message_received,
bin);
g_signal_connect (bus, "message::segment-done",
(GCallback) test_event_message_received, bin);
g_signal_connect (bus, "message::error", (GCallback) message_received, bin);
g_signal_connect (bus, "message::warning", (GCallback) message_received, bin);
g_signal_connect (bus, "message::eos", (GCallback) message_received, bin);
GST_INFO ("starting test");
/* prepare playing */
res = gst_element_set_state (bin, GST_STATE_PAUSED);
fail_unless (res != GST_STATE_CHANGE_FAILURE, NULL);
/* FIXME, PAUSED is async and seek might not work before being prerolled. */
/* FIXME, PAUSED is async and seek might not work before being prerolled.
* though it should work in this case, as audiotestsrc is a live source
*/
res = gst_element_send_event (bin, seek_event);
fail_unless (res == TRUE, NULL);
@ -172,7 +144,6 @@ GST_START_TEST (test_event)
res = gst_element_set_state (bin, GST_STATE_PLAYING);
fail_unless (res != GST_STATE_CHANGE_FAILURE, NULL);
//event_loop (bin);
g_main_loop_run (main_loop);
res = gst_element_set_state (bin, GST_STATE_NULL);
@ -188,6 +159,117 @@ GST_START_TEST (test_event)
GST_END_TEST;
static guint play_count = 0;
static GstEvent *play_seek_event = NULL;
static void
test_play_twice_message_received (GstBus * bus, GstMessage * message,
GstPipeline * bin)
{
GstObject *object = GST_MESSAGE_SRC (message);
gboolean res;
GST_INFO ("bus message from \"%s\" (%s): ",
GST_STR_NULL (GST_ELEMENT_NAME (object)),
gst_message_type_get_name (GST_MESSAGE_TYPE (message)));
switch (message->type) {
case GST_MESSAGE_SEGMENT_DONE:
play_count++;
if (play_count == 1) {
res = gst_element_set_state (GST_ELEMENT (bin), GST_STATE_READY);
fail_unless (res != GST_STATE_CHANGE_FAILURE, NULL);
/* prepare playing again */
res = gst_element_set_state (GST_ELEMENT (bin), GST_STATE_PAUSED);
fail_unless (res != GST_STATE_CHANGE_FAILURE, NULL);
res = gst_element_send_event (GST_ELEMENT (bin), play_seek_event);
fail_unless (res == TRUE, NULL);
res = gst_element_set_state (GST_ELEMENT (bin), GST_STATE_PLAYING);
fail_unless (res != GST_STATE_CHANGE_FAILURE, NULL);
} else {
g_main_loop_quit (main_loop);
}
break;
default:
break;
}
}
GST_START_TEST (test_play_twice)
{
GstElement *bin, *src1, *src2, *adder, *sink;
GstBus *bus;
gboolean res;
GST_INFO ("preparing test");
/* build pipeline */
bin = gst_pipeline_new ("pipeline");
bus = gst_element_get_bus (bin);
gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
src1 = gst_element_factory_make ("audiotestsrc", "src1");
g_object_set (src1, "wave", 4, NULL); /* silence */
src2 = gst_element_factory_make ("audiotestsrc", "src2");
g_object_set (src2, "wave", 4, NULL); /* silence */
adder = gst_element_factory_make ("adder", "adder");
sink = gst_element_factory_make ("fakesink", "sink");
gst_bin_add_many (GST_BIN (bin), src1, src2, adder, sink, NULL);
res = gst_element_link (src1, adder);
fail_unless (res == TRUE, NULL);
res = gst_element_link (src2, adder);
fail_unless (res == TRUE, NULL);
res = gst_element_link (adder, sink);
fail_unless (res == TRUE, NULL);
play_seek_event = gst_event_new_seek (1.0, GST_FORMAT_TIME,
GST_SEEK_FLAG_SEGMENT,
GST_SEEK_TYPE_SET, (GstClockTime) 0,
GST_SEEK_TYPE_SET, (GstClockTime) 2 * GST_SECOND);
play_count = 0;
main_loop = g_main_loop_new (NULL, FALSE);
g_signal_connect (bus, "message::segment-done",
(GCallback) test_play_twice_message_received, bin);
g_signal_connect (bus, "message::error", (GCallback) message_received, bin);
g_signal_connect (bus, "message::warning", (GCallback) message_received, bin);
g_signal_connect (bus, "message::eos", (GCallback) message_received, bin);
GST_INFO ("starting test");
/* prepare playing */
res = gst_element_set_state (bin, GST_STATE_PAUSED);
fail_unless (res != GST_STATE_CHANGE_FAILURE, NULL);
res = gst_element_send_event (bin, gst_event_ref (play_seek_event));
fail_unless (res == TRUE, NULL);
/* run pipeline */
res = gst_element_set_state (bin, GST_STATE_PLAYING);
fail_unless (res != GST_STATE_CHANGE_FAILURE, NULL);
g_main_loop_run (main_loop);
res = gst_element_set_state (bin, GST_STATE_NULL);
fail_unless (res != GST_STATE_CHANGE_FAILURE, NULL);
fail_unless (play_count == 2, NULL);
/* cleanup */
g_main_loop_unref (main_loop);
gst_object_unref (G_OBJECT (bus));
gst_object_unref (G_OBJECT (bin));
}
GST_END_TEST;
Suite *
adder_suite (void)
{
@ -196,9 +278,10 @@ adder_suite (void)
suite_add_tcase (s, tc_chain);
tcase_add_test (tc_chain, test_event);
tcase_add_test (tc_chain, test_play_twice);
/* Use a longer timeout */
tcase_set_timeout (tc_chain, 4);
tcase_set_timeout (tc_chain, 6);
return s;
}