Go to the documentation of this file.
21 #ifndef INPUT_MRL_HELPERS_H
22 #define INPUT_MRL_HELPERS_H
62 #define RFC3986_SUBDELIMS "!" "$" "&" "'" "(" ")" \
64 #define RFC3986_ALPHA "abcdefghijklmnopqrstuvwxyz" \
65 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
66 #define RFC3986_DIGIT "0123456789"
67 #define RFC3986_UNRESERVED RFC3986_ALPHA RFC3986_DIGIT "-" "." "_" "~"
68 #define RFC3986_PCHAR RFC3986_UNRESERVED RFC3986_SUBDELIMS ":" "@"
69 #define RFC3986_FRAGMENT RFC3986_PCHAR "/" "?"
74 for(
char const*
p = payload; *
p; ++
p )
77 ( strchr(
"!?", *
p ) == NULL &&
81 #undef RFC3986_FRAGMENT
83 #undef RFC3986_UNRESERVEd
86 #undef RFC3986_SUBDELIMS
116 char const** out_extra,
117 char const* payload )
119 char const* extra = NULL;
123 while( strncmp( payload,
"!/", 2 ) == 0 )
127 int len = strcspn( payload,
"!?" );
128 char* decoded =
strndup( payload, len );
143 if( *payload ==
'!' )
static void vlc_dictionary_insert(vlc_dictionary_t *p_dict, const char *psz_key, void *p_value)
Definition: vlc_arrays.h:587
In-memory stream object.
Definition: vlc_memstream.h:41
const char * psz_name
Definition: text_style.c:53
char * ptr
Buffer start address.
Definition: vlc_memstream.h:48
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
int error
Definition: vlc_memstream.h:46
static int vlc_dictionary_keys_count(const vlc_dictionary_t *p_dict)
Definition: vlc_arrays.h:493
Definition: vlc_arrays.h:407
#define AUDIO_REPLAY_GAIN_TRACK
Definition: vlc_es.h:53
static void vlc_dictionary_clear(vlc_dictionary_t *p_dict, void(*pf_free)(void *p_data, void *p_obj), void *p_obj)
Definition: vlc_arrays.h:428
int input_SaveArt(vlc_object_t *obj, input_item_t *p_item, const void *data, size_t length, const char *psz_type)
Definition: art.c:286
static int vlc_array_append(vlc_array_t *ar, void *elem)
Definition: vlc_arrays.h:335
float pf_peak[(2)]
Definition: vlc_es.h:60
#define AUDIO_REPLAY_GAIN_ALBUM
Definition: vlc_es.h:54
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
int vlc_memstream_open(struct vlc_memstream *ms)
Initializes a byte stream object.
Definition: memstream.c:105
int vlc_memstream_close(struct vlc_memstream *ms)
Closes a byte stream object.
Definition: memstream.c:120
const char * vlc_gettext(const char *msgid)
In-tree plugins share their gettext domain with LibVLC.
Definition: textdomain.c:79
char * strndup(const char *, size_t)
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:104
Definition: vlc_arrays.h:258
int vlc_memstream_printf(struct vlc_memstream *ms, const char *fmt,...)
Appends a formatted string to a byte stream.
Definition: memstream.c:194
double us_atof(const char *str)
us_atof() has the same prototype as ANSI C atof() but it expects a dot as decimal separator,...
Definition: charset.c:88
Internal module descriptor.
Definition: modules.h:78
static size_t vlc_array_count(vlc_array_t *p_array)
Definition: vlc_arrays.h:277
bool pb_peak[(2)]
Definition: vlc_es.h:58
static char ** vlc_dictionary_all_keys(const vlc_dictionary_t *p_dict)
Definition: vlc_arrays.h:519
static void * vlc_dictionary_value_for_key(const vlc_dictionary_t *p_dict, const char *psz_key)
Definition: vlc_arrays.h:471
char * vlc_uri2path(const char *url)
Converts a URI to a local path.
Definition: url.c:247
static int mrl_FragmentSplit(vlc_array_t *out_items, char const **out_extra, char const *payload)
Split an MRL-fragment into identifiers.
Definition: mrl_helpers.h:115
float pf_gain[(2)]
Definition: vlc_es.h:65
static int mrl_EscapeFragmentIdentifier(char **out, char const *payload)
Escape a fragment identifier for use within an MRL.
Definition: mrl_helpers.h:58
VLC object common members.
Definition: vlc_objects.h:43
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:476
static void vlc_array_init(vlc_array_t *p_array)
Definition: vlc_arrays.h:264
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
static void vlc_array_clear(vlc_array_t *p_array)
Definition: vlc_arrays.h:270
char * strdup(const char *)
int input_FindArtInCache(input_item_t *p_item)
Definition: art.c:180
char psz_value[8]
Definition: vout_intf.c:99
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:117
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
const char name[16]
Definition: httpd.c:1268
#define vlc_array_item_at_index(ar, idx)
Definition: vlc_arrays.h:283
#define N_(str)
Definition: vlc_fixups.h:375
static const char * IsUTF8(const char *str)
Checks UTF-8 validity.
Definition: vlc_charset.h:63
static void *const kVLCDictionaryNotFound
Definition: vlc_arrays.h:413
#define vlc_object_delete(obj)
Definition: vlc_objects.h:136
static void vlc_dictionary_init(vlc_dictionary_t *p_dict, int i_size)
Definition: vlc_arrays.h:415
#define likely(p)
Predicted true condition.
Definition: vlc_common.h:218
char * vlc_uri_decode(char *str)
Decodes an URI component in place.
Definition: url.c:54
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_objects.h:70
#define module_unneed(a, b)
Definition: vlc_modules.h:126
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
static void vlc_dictionary_remove_value_for_key(const vlc_dictionary_t *p_dict, const char *psz_key, void(*pf_free)(void *p_data, void *p_obj), void *p_obj)
Definition: vlc_arrays.h:593
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
bool pb_gain[(2)]
Definition: vlc_es.h:63
#define module_need(a, b, c, d)
Definition: vlc_modules.h:111