summaryrefslogtreecommitdiff
path: root/tests/check/pipelines/vorbisdec.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/check/pipelines/vorbisdec.c')
-rw-r--r--tests/check/pipelines/vorbisdec.c125
1 files changed, 0 insertions, 125 deletions
diff --git a/tests/check/pipelines/vorbisdec.c b/tests/check/pipelines/vorbisdec.c
deleted file mode 100644
index 9d467607..00000000
--- a/tests/check/pipelines/vorbisdec.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* GStreamer
- *
- * unit test for vorbisdec
- *
- * Copyright (C) 2007 Thomas Vander Stichele <thomas at apestaart dot org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <gst/check/gstcheck.h>
-#include <gst/check/gstbufferstraw.h>
-
-#ifndef GST_DISABLE_PARSE
-
-static GMainLoop *loop;
-static gint messages = 0;
-
-static void
-element_message_cb (GstBus * bus, GstMessage * message, gpointer user_data)
-{
- gchar *s;
-
- s = gst_structure_to_string (gst_message_get_structure (message));
- GST_DEBUG ("Received message: %s", s);
- g_free (s);
-
- messages++;
-}
-
-static void
-eos_message_cb (GstBus * bus, GstMessage * message, gpointer user_data)
-{
- GST_DEBUG ("Received eos");
- g_main_loop_quit (loop);
-}
-
-GST_START_TEST (test_timestamps)
-{
- GstElement *pipeline;
- gchar *pipe_str;
- GstBus *bus;
- GError *error = NULL;
-
- pipe_str = g_strdup_printf ("audiotestsrc num-buffers=100"
- " ! audio/x-raw-int,rate=44100 ! audioconvert ! vorbisenc ! vorbisdec"
- " ! identity check-imperfect-timestamp=TRUE ! fakesink");
-
- pipeline = gst_parse_launch (pipe_str, &error);
- fail_unless (pipeline != NULL, "Error parsing pipeline: %s",
- error ? error->message : "(invalid error)");
- g_free (pipe_str);
-
- bus = gst_element_get_bus (pipeline);
- fail_if (bus == NULL);
- gst_bus_add_signal_watch (bus);
- g_signal_connect (bus, "message::element", (GCallback) element_message_cb,
- NULL);
- g_signal_connect (bus, "message::eos", (GCallback) eos_message_cb, NULL);
-
- gst_element_set_state (pipeline, GST_STATE_PLAYING);
-
- /* run until we receive EOS */
- loop = g_main_loop_new (NULL, FALSE);
-
- g_main_loop_run (loop);
-
- gst_element_set_state (pipeline, GST_STATE_NULL);
-
- /* FIXME: there seems to be a bug in vorbisdec on decoding the last packet
- * where it calculates the timestamp based on the granulepos of the incoming
- * packet and subtracting the number of samples it can decode, which can
- * result in a discontinuity in timestamps.
- * See http://bugzilla.gnome.org/show_bug.cgi?id=423086
- * Fix that bug and drop this number to 0.
- */
- fail_if (messages > 1, "Received imperfect timestamp messages");
- gst_object_unref (pipeline);
-}
-
-GST_END_TEST;
-#endif /* #ifndef GST_DISABLE_PARSE */
-
-static Suite *
-vorbisenc_suite (void)
-{
- Suite *s = suite_create ("vorbisenc");
- TCase *tc_chain = tcase_create ("general");
-
- suite_add_tcase (s, tc_chain);
-#ifndef GST_DISABLE_PARSE
- tcase_add_test (tc_chain, test_timestamps);
-#endif
-
- return s;
-}
-
-int
-main (int argc, char **argv)
-{
- int nf;
-
- Suite *s = vorbisenc_suite ();
- SRunner *sr = srunner_create (s);
-
- gst_check_init (&argc, &argv);
-
- srunner_run_all (sr, CK_NORMAL);
- nf = srunner_ntests_failed (sr);
- srunner_free (sr);
-
- return nf;
-}