## GstError GstError — Categorized error messages |

## Synopsis

    #include <gst/gst.h>

    enum        GstCoreError;
    enum        GstLibraryError;
    enum        GstResourceError;
    enum        GstStreamError;
    #define     GST_CORE_ERROR
    #define     GST_LIBRARY_ERROR
    #define     GST_RESOURCE_ERROR
    #define     GST_STREAM_ERROR
    #define     GST_ERROR_SYSTEM
    gchar*      gst_error_get_message           (GQuark domain,
                                                 gint code);
    GQuark      gst_stream_error_quark          (void);
    GQuark      gst_core_error_quark            (void);
    GQuark      gst_resource_error_quark        (void);
    GQuark      gst_library_error_quark         (void);

## Description

## Details

### enum GstCoreError

    typedef enum
    {
      GST_CORE_ERROR_FAILED = 1,
      GST_CORE_ERROR_TOO_LAZY,
      GST_CORE_ERROR_NOT_IMPLEMENTED,
      GST_CORE_ERROR_STATE_CHANGE,
      GST_CORE_ERROR_PAD,
      GST_CORE_ERROR_THREAD,
      GST_CORE_ERROR_SCHEDULER,
      GST_CORE_ERROR_NEGOTIATION,
      GST_CORE_ERROR_EVENT,
      GST_CORE_ERROR_SEEK,
      GST_CORE_ERROR_CAPS,
      GST_CORE_ERROR_TAG,
      GST_CORE_ERROR_NUM_ERRORS
    } GstCoreError;

Core errors are errors inside the core GStreamer library.

`GST_CORE_ERROR_FAILED` | a general error which doesn't fit in any other category. Make sure you add a custom message to the error call.
`GST_CORE_ERROR_TOO_LAZY` | do not use this except as a placeholder for deciding where to go while developing code.
`GST_CORE_ERROR_NOT_IMPLEMENTED` | use this when you do not want to implement this functionality yet.
`GST_CORE_ERROR_STATE_CHANGE` | used for state change errors.
`GST_CORE_ERROR_PAD` | used for pad-related errors.
`GST_CORE_ERROR_THREAD` | used for thread-related errors.
`GST_CORE_ERROR_SCHEDULER` | used for scheduler-related errors.
`GST_CORE_ERROR_NEGOTIATION` | used for negotiation-related errors.
`GST_CORE_ERROR_EVENT` | used for event-related errors.
`GST_CORE_ERROR_SEEK` | used for seek-related errors.
`GST_CORE_ERROR_CAPS` | used for caps-related errors.
`GST_CORE_ERROR_TAG` | used for negotiation-related errors.
`GST_CORE_ERROR_NUM_ERRORS` | the number of core error types.

### enum GstLibraryError

    typedef enum
    {
      GST_LIBRARY_ERROR_FAILED = 1,
      GST_LIBRARY_ERROR_TOO_LAZY,
      GST_LIBRARY_ERROR_INIT,
      GST_LIBRARY_ERROR_SHUTDOWN,
      GST_LIBRARY_ERROR_SETTINGS,
      GST_LIBRARY_ERROR_ENCODE,
      GST_LIBRARY_ERROR_NUM_ERRORS
    } GstLibraryError;

Library errors are for errors from the library being used by elements (initializing, finalizing, settings, ...)

`GST_LIBRARY_ERROR_FAILED` | a general error which doesn't fit in any other category. Make sure you add a custom message to the error call.
`GST_LIBRARY_ERROR_TOO_LAZY` | do not use this except as a placeholder for deciding where to go while developing code.
`GST_LIBRARY_ERROR_INIT` | used when the library could not be opened.
`GST_LIBRARY_ERROR_SHUTDOWN` | used when the library could not be closed.
`GST_LIBRARY_ERROR_SETTINGS` | used when the library doesn't accept settings.
`GST_LIBRARY_ERROR_ENCODE` | used when the library generated an encoding error.
`GST_LIBRARY_ERROR_NUM_ERRORS` | the number of library error types.

### enum GstResourceError

    typedef enum
    {
      GST_RESOURCE_ERROR_FAILED = 1,
      GST_RESOURCE_ERROR_TOO_LAZY,
      GST_RESOURCE_ERROR_NOT_FOUND,
      GST_RESOURCE_ERROR_BUSY,
      GST_RESOURCE_ERROR_OPEN_READ,
      GST_RESOURCE_ERROR_OPEN_WRITE,
      GST_RESOURCE_ERROR_OPEN_READ_WRITE,
      GST_RESOURCE_ERROR_CLOSE,
      GST_RESOURCE_ERROR_READ,
      GST_RESOURCE_ERROR_WRITE,
      GST_RESOURCE_ERROR_SEEK,
      GST_RESOURCE_ERROR_SYNC,
      GST_RESOURCE_ERROR_SETTINGS,
      GST_RESOURCE_ERROR_NUM_ERRORS
    } GstResourceError;

Resource errors are for any resource used by an element: memory, files, network connections, process space, ... They're typically used by source and sink elements.

`GST_RESOURCE_ERROR_FAILED` | a general error which doesn't fit in any other category. Make sure you add a custom message to the error call.
`GST_RESOURCE_ERROR_TOO_LAZY` | do not use this except as a placeholder for deciding where to go while developing code.
`GST_RESOURCE_ERROR_NOT_FOUND` | used when the resource could not be found.
`GST_RESOURCE_ERROR_BUSY` | used when resource is busy.
`GST_RESOURCE_ERROR_OPEN_READ` | used when resource fails to open for reading.
`GST_RESOURCE_ERROR_OPEN_WRITE` | used when resource fails to open for writing.
`GST_RESOURCE_ERROR_OPEN_READ_WRITE` | used when resource cannot be opened for both reading and writing, or either (but unspecified which).
`GST_RESOURCE_ERROR_CLOSE` | used when the resource can't be closed.
`GST_RESOURCE_ERROR_READ` | used when the resource can't be read from.
`GST_RESOURCE_ERROR_WRITE` | used when the resource can't be written to.
`GST_RESOURCE_ERROR_SEEK` | used when a seek on the resource fails.
`GST_RESOURCE_ERROR_SYNC` | used when a synchronize on the resource fails.
`GST_RESOURCE_ERROR_SETTINGS` | used when settings can't be manipulated on
`GST_RESOURCE_ERROR_NUM_ERRORS` | the number of library error types.

### enum GstStreamError

    typedef enum
    {
      GST_STREAM_ERROR_FAILED = 1,
      GST_STREAM_ERROR_TOO_LAZY,
      GST_STREAM_ERROR_NOT_IMPLEMENTED,
      GST_STREAM_ERROR_TYPE_NOT_FOUND,
      GST_STREAM_ERROR_WRONG_TYPE,
      GST_STREAM_ERROR_CODEC_NOT_FOUND,
      GST_STREAM_ERROR_DECODE,
      GST_STREAM_ERROR_ENCODE,
      GST_STREAM_ERROR_DEMUX,
      GST_STREAM_ERROR_MUX,
      GST_STREAM_ERROR_FORMAT,
      GST_STREAM_ERROR_NUM_ERRORS
    } GstStreamError;

Stream errors are for anything related to the stream being processed: format errors, media type errors, ... They're typically used by decoders, demuxers, converters, ...

`GST_STREAM_ERROR_FAILED` | a general error which doesn't fit in any other category. Make sure you add a custom message to the error call.
`GST_STREAM_ERROR_TOO_LAZY` | do not use this except as a placeholder for deciding where to go while developing code.
`GST_STREAM_ERROR_NOT_IMPLEMENTED` | use this when you do not want to implement this functionality yet.
`GST_STREAM_ERROR_TYPE_NOT_FOUND` | used when the element doesn't know the stream's type.
`GST_STREAM_ERROR_WRONG_TYPE` | used when the element doesn't handle this type of stream.
`GST_STREAM_ERROR_CODEC_NOT_FOUND` | used when there's no codec to handle the stream's type.
`GST_STREAM_ERROR_DECODE` | used when decoding fails.
`GST_STREAM_ERROR_ENCODE` | used when encoding fails.
`GST_STREAM_ERROR_DEMUX` | used when demuxing fails.
`GST_STREAM_ERROR_MUX` | used when muxing fails.
`GST_STREAM_ERROR_FORMAT` | used when the stream is of the wrong format (for example, wrong caps).
`GST_STREAM_ERROR_NUM_ERRORS` | the number of library error types.

### GST_CORE_ERROR

    #define GST_CORE_ERROR      gst_core_error_quark ()

### GST_LIBRARY_ERROR

    #define GST_LIBRARY_ERROR   gst_library_error_quark ()

### GST_RESOURCE_ERROR

    #define GST_RESOURCE_ERROR  gst_resource_error_quark ()

### GST_STREAM_ERROR

    #define GST_STREAM_ERROR    gst_stream_error_quark ()

### GST_ERROR_SYSTEM

    #define GST_ERROR_SYSTEM    ("system error: %s", g_strerror (errno))

Generates an human readable error message out of an errno number.

### gst_error_get_message ()

    gchar*      gst_error_get_message           (GQuark domain,
                                                 gint code);

`domain` : | the GStreamer error domain this error belongs to.
`code` : | the error code belonging to the domain.
Returns : | a newly allocated string describing the error message in the current locale.

### gst_stream_error_quark ()

    GQuark      gst_stream_error_quark          (void);

Returns : |

### gst_core_error_quark ()

    GQuark      gst_core_error_quark            (void);

Returns : |

### gst_resource_error_quark ()

    GQuark      gst_resource_error_quark        (void);

Returns : |

### gst_library_error_quark ()

    GQuark      gst_library_error_quark         (void);

Returns : |