diff options
author | Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> | 2012-02-02 10:59:53 +0000 |
---|---|---|
committer | Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> | 2012-02-02 11:00:48 +0000 |
commit | ea28347bb6df1b6eb022c75b0c8243e8e4cea4af (patch) | |
tree | 5ce1ed78f9ac7a13dd1f900fa96c7544cd05b241 /ext/kate/gstkateutil.c | |
parent | fac39bae51008b00f5b03990ccfca0007ca653d4 (diff) | |
download | gstreamer-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.c | 57 |
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"; + } +} |