summaryrefslogtreecommitdiff
path: root/ext/kate/gstkateutil.c
diff options
context:
space:
mode:
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2012-02-02 10:59:53 +0000
committerVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2012-02-02 11:00:48 +0000
commitea28347bb6df1b6eb022c75b0c8243e8e4cea4af (patch)
tree5ce1ed78f9ac7a13dd1f900fa96c7544cd05b241 /ext/kate/gstkateutil.c
parentfac39bae51008b00f5b03990ccfca0007ca653d4 (diff)
downloadgstreamer-plugins-bad-ea28347bb6df1b6eb022c75b0c8243e8e4cea4af.tar.gz
kate: better error/debug reporting
Include text messages instead of error codes.
Diffstat (limited to 'ext/kate/gstkateutil.c')
-rw-r--r--ext/kate/gstkateutil.c57
1 files changed, 54 insertions, 3 deletions
diff --git a/ext/kate/gstkateutil.c b/ext/kate/gstkateutil.c
index 3062d5cd8..d369205bb 100644
--- a/ext/kate/gstkateutil.c
+++ b/ext/kate/gstkateutil.c
@@ -24,6 +24,9 @@
#endif
#include <string.h>
+#ifdef HAVE_TIGER
+#include <tiger/tiger.h>
+#endif
#include <gst/tag/tag.h>
#include "gstkate.h"
#include "gstkateutil.h"
@@ -266,7 +269,8 @@ gst_kate_util_decoder_base_chain_kate_packet (GstKateDecoderBase * decoder,
ret = kate_high_decode_packetin (&decoder->k, &kp, ev);
if (G_UNLIKELY (ret < 0)) {
GST_ELEMENT_ERROR (element, STREAM, DECODE, (NULL),
- ("Failed to decode Kate packet: %d", ret));
+ ("Failed to decode Kate packet: %s",
+ gst_kate_util_get_error_message (ret)));
return GST_FLOW_ERROR;
}
@@ -436,8 +440,8 @@ gst_kate_decoder_base_change_state (GstKateDecoderBase * decoder,
GST_DEBUG_OBJECT (element, "READY -> PAUSED, initializing kate state");
ret = kate_high_decode_init (&decoder->k);
if (ret < 0) {
- GST_WARNING_OBJECT (element, "failed to initialize kate state: %d",
- ret);
+ GST_WARNING_OBJECT (element, "failed to initialize kate state: %s",
+ gst_kate_util_get_error_message (ret));
}
gst_segment_init (&decoder->kate_segment, GST_FORMAT_UNDEFINED);
decoder->kate_flushing = FALSE;
@@ -635,3 +639,50 @@ gst_kate_decoder_base_sink_query (GstKateDecoderBase * decoder,
return gst_pad_query_default (pad, query);
}
}
+
+const char *
+gst_kate_util_get_error_message (int ret)
+{
+ switch (ret) {
+ case KATE_E_NOT_FOUND:
+ return "value not found";
+ case KATE_E_INVALID_PARAMETER:
+ return "invalid parameter";
+ case KATE_E_OUT_OF_MEMORY:
+ return "out of memory";
+ case KATE_E_BAD_GRANULE:
+ return "bad granule";
+ case KATE_E_INIT:
+ return "initialization error";
+ case KATE_E_BAD_PACKET:
+ return "bad packet";
+ case KATE_E_TEXT:
+ return "invalid/truncated text";
+ case KATE_E_LIMIT:
+ return "a limit was exceeded";
+ case KATE_E_VERSION:
+ return "unsupported bitstream version";
+ case KATE_E_NOT_KATE:
+ return "not a kate bitstream";
+ case KATE_E_BAD_TAG:
+ return "bad tag";
+ case KATE_E_IMPL:
+ return "not implemented";
+
+#ifdef HAVE_TIGER
+ case TIGER_E_NOT_FOUND:
+ return "value not found";
+ case TIGER_E_INVALID_PARAMETER:
+ return "invalid parameter";
+ case TIGER_E_OUT_OF_MEMORY:
+ return "out of memory";
+ case TIGER_E_CAIRO_ERROR:
+ return "Cairo error";
+ case TIGER_E_BAD_SURFACE_TYPE:
+ return "bad surface type";
+#endif
+
+ default:
+ return "unknown error";
+ }
+}