mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 10:11:08 +00:00
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:
parent
90840bc0e0
commit
377e2be9f3
7 changed files with 175 additions and 70 deletions
15
ChangeLog
15
ChangeLog
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -43,6 +43,7 @@ check_PROGRAMS = \
|
|||
$(check_alsa) \
|
||||
$(check_vorbis) \
|
||||
$(check_theora) \
|
||||
elements/adder \
|
||||
elements/audioconvert \
|
||||
elements/audioresample \
|
||||
elements/audiotestsrc \
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue