mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 12:11:13 +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>
|
2006-05-23 Tim-Philipp Müller <tim at centricular dot net>
|
||||||
|
|
||||||
* ext/theora/theoradec.c: (theora_dec_chain):
|
* ext/theora/theoradec.c: (theora_dec_chain):
|
||||||
|
|
|
@ -48,8 +48,8 @@
|
||||||
#include "gsttheoradec.h"
|
#include "gsttheoradec.h"
|
||||||
#include <gst/tag/tag.h>
|
#include <gst/tag/tag.h>
|
||||||
|
|
||||||
GST_DEBUG_CATEGORY (theoradec_debug);
|
|
||||||
#define GST_CAT_DEFAULT theoradec_debug
|
#define GST_CAT_DEFAULT theoradec_debug
|
||||||
|
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
|
||||||
|
|
||||||
#define THEORA_DEF_CROP TRUE
|
#define THEORA_DEF_CROP TRUE
|
||||||
enum
|
enum
|
||||||
|
|
|
@ -66,8 +66,8 @@
|
||||||
|
|
||||||
#include <gst/tag/tag.h>
|
#include <gst/tag/tag.h>
|
||||||
|
|
||||||
GST_DEBUG_CATEGORY (theoraenc_debug);
|
|
||||||
#define GST_CAT_DEFAULT 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())
|
#define GST_TYPE_BORDER_MODE (gst_border_mode_get_type())
|
||||||
static GType
|
static GType
|
||||||
|
|
|
@ -64,6 +64,9 @@
|
||||||
|
|
||||||
#include "gsttheoraparse.h"
|
#include "gsttheoraparse.h"
|
||||||
|
|
||||||
|
#define GST_CAT_DEFAULT theoraparse_debug
|
||||||
|
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
|
||||||
|
|
||||||
static GstElementDetails theora_parse_details = {
|
static GstElementDetails theora_parse_details = {
|
||||||
"TheoraParse",
|
"TheoraParse",
|
||||||
"Codec/Parser/Video",
|
"Codec/Parser/Video",
|
||||||
|
@ -112,6 +115,9 @@ gst_theora_parse_class_init (GstTheoraParseClass * klass)
|
||||||
GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
|
GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
|
||||||
|
|
||||||
gstelement_class->change_state = theora_parse_change_state;
|
gstelement_class->change_state = theora_parse_change_state;
|
||||||
|
|
||||||
|
GST_DEBUG_CATEGORY_INIT (theoraparse_debug, "theoraparse", 0,
|
||||||
|
"Theora parser");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -25,8 +25,8 @@
|
||||||
#include <gst/gst.h>
|
#include <gst/gst.h>
|
||||||
#include <gst/audio/audio.h>
|
#include <gst/audio/audio.h>
|
||||||
|
|
||||||
GST_DEBUG_CATEGORY (audio_rate_debug);
|
|
||||||
#define GST_CAT_DEFAULT audio_rate_debug
|
#define GST_CAT_DEFAULT audio_rate_debug
|
||||||
|
GST_DEBUG_CATEGORY_STATIC (audio_rate_debug);
|
||||||
|
|
||||||
#define GST_TYPE_AUDIO_RATE \
|
#define GST_TYPE_AUDIO_RATE \
|
||||||
(gst_audio_rate_get_type())
|
(gst_audio_rate_get_type())
|
||||||
|
|
|
@ -43,6 +43,7 @@ check_PROGRAMS = \
|
||||||
$(check_alsa) \
|
$(check_alsa) \
|
||||||
$(check_vorbis) \
|
$(check_vorbis) \
|
||||||
$(check_theora) \
|
$(check_theora) \
|
||||||
|
elements/adder \
|
||||||
elements/audioconvert \
|
elements/audioconvert \
|
||||||
elements/audioresample \
|
elements/audioresample \
|
||||||
elements/audiotestsrc \
|
elements/audiotestsrc \
|
||||||
|
|
|
@ -25,58 +25,6 @@
|
||||||
#include <gst/check/gstcheck.h>
|
#include <gst/check/gstcheck.h>
|
||||||
|
|
||||||
static GMainLoop *main_loop;
|
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
|
static void
|
||||||
message_received (GstBus * bus, GstMessage * message, GstPipeline * bin)
|
message_received (GstBus * bus, GstMessage * message, GstPipeline * bin)
|
||||||
|
@ -91,11 +39,6 @@ message_received (GstBus * bus, GstMessage * message, GstPipeline * bin)
|
||||||
case GST_MESSAGE_EOS:
|
case GST_MESSAGE_EOS:
|
||||||
g_main_loop_quit (main_loop);
|
g_main_loop_quit (main_loop);
|
||||||
break;
|
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_WARNING:
|
||||||
case GST_MESSAGE_ERROR:{
|
case GST_MESSAGE_ERROR:{
|
||||||
GError *gerror;
|
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)
|
GST_START_TEST (test_event)
|
||||||
{
|
{
|
||||||
GstElement *bin, *src1, *src2, *adder, *sink;
|
GstElement *bin, *src1, *src2, *adder, *sink;
|
||||||
|
@ -120,7 +88,7 @@ GST_START_TEST (test_event)
|
||||||
GstEvent *seek_event;
|
GstEvent *seek_event;
|
||||||
gboolean res;
|
gboolean res;
|
||||||
|
|
||||||
GST_INFO ("starting test");
|
GST_INFO ("preparing test");
|
||||||
|
|
||||||
/* build pipeline */
|
/* build pipeline */
|
||||||
bin = gst_pipeline_new ("pipeline");
|
bin = gst_pipeline_new ("pipeline");
|
||||||
|
@ -130,10 +98,10 @@ GST_START_TEST (test_event)
|
||||||
/* FIXME, fakesrc with default setting will produce 0 sized
|
/* FIXME, fakesrc with default setting will produce 0 sized
|
||||||
* buffers and incompatible caps for adder that will make
|
* buffers and incompatible caps for adder that will make
|
||||||
* adder EOS and error out */
|
* adder EOS and error out */
|
||||||
src1 = gst_element_factory_make ("fakesrc", "src1");
|
src1 = gst_element_factory_make ("audiotestsrc", "src1");
|
||||||
//g_object_set (src1, "wave", 4, NULL); /* silence */
|
g_object_set (src1, "wave", 4, NULL); /* silence */
|
||||||
src2 = gst_element_factory_make ("fakesrc", "src2");
|
src2 = gst_element_factory_make ("audiotestsrc", "src2");
|
||||||
//g_object_set (src2, "wave", 4, NULL); /* silence */
|
g_object_set (src2, "wave", 4, NULL); /* silence */
|
||||||
adder = gst_element_factory_make ("adder", "adder");
|
adder = gst_element_factory_make ("adder", "adder");
|
||||||
sink = gst_element_factory_make ("fakesink", "sink");
|
sink = gst_element_factory_make ("fakesink", "sink");
|
||||||
gst_bin_add_many (GST_BIN (bin), src1, src2, adder, sink, NULL);
|
gst_bin_add_many (GST_BIN (bin), src1, src2, adder, sink, NULL);
|
||||||
|
@ -154,17 +122,21 @@ GST_START_TEST (test_event)
|
||||||
position = -1;
|
position = -1;
|
||||||
|
|
||||||
main_loop = g_main_loop_new (NULL, FALSE);
|
main_loop = g_main_loop_new (NULL, FALSE);
|
||||||
g_signal_connect (bus, "message::segment-done", (GCallback) message_received,
|
g_signal_connect (bus, "message::segment-done",
|
||||||
bin);
|
(GCallback) test_event_message_received, bin);
|
||||||
g_signal_connect (bus, "message::error", (GCallback) 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::warning", (GCallback) message_received, bin);
|
||||||
g_signal_connect (bus, "message::eos", (GCallback) message_received, bin);
|
g_signal_connect (bus, "message::eos", (GCallback) message_received, bin);
|
||||||
|
|
||||||
|
GST_INFO ("starting test");
|
||||||
|
|
||||||
/* prepare playing */
|
/* prepare playing */
|
||||||
res = gst_element_set_state (bin, GST_STATE_PAUSED);
|
res = gst_element_set_state (bin, GST_STATE_PAUSED);
|
||||||
fail_unless (res != GST_STATE_CHANGE_FAILURE, NULL);
|
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);
|
res = gst_element_send_event (bin, seek_event);
|
||||||
fail_unless (res == TRUE, NULL);
|
fail_unless (res == TRUE, NULL);
|
||||||
|
|
||||||
|
@ -172,7 +144,6 @@ GST_START_TEST (test_event)
|
||||||
res = gst_element_set_state (bin, GST_STATE_PLAYING);
|
res = gst_element_set_state (bin, GST_STATE_PLAYING);
|
||||||
fail_unless (res != GST_STATE_CHANGE_FAILURE, NULL);
|
fail_unless (res != GST_STATE_CHANGE_FAILURE, NULL);
|
||||||
|
|
||||||
//event_loop (bin);
|
|
||||||
g_main_loop_run (main_loop);
|
g_main_loop_run (main_loop);
|
||||||
|
|
||||||
res = gst_element_set_state (bin, GST_STATE_NULL);
|
res = gst_element_set_state (bin, GST_STATE_NULL);
|
||||||
|
@ -188,6 +159,117 @@ GST_START_TEST (test_event)
|
||||||
|
|
||||||
GST_END_TEST;
|
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 *
|
Suite *
|
||||||
adder_suite (void)
|
adder_suite (void)
|
||||||
{
|
{
|
||||||
|
@ -196,9 +278,10 @@ adder_suite (void)
|
||||||
|
|
||||||
suite_add_tcase (s, tc_chain);
|
suite_add_tcase (s, tc_chain);
|
||||||
tcase_add_test (tc_chain, test_event);
|
tcase_add_test (tc_chain, test_event);
|
||||||
|
tcase_add_test (tc_chain, test_play_twice);
|
||||||
|
|
||||||
/* Use a longer timeout */
|
/* Use a longer timeout */
|
||||||
tcase_set_timeout (tc_chain, 4);
|
tcase_set_timeout (tc_chain, 6);
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue