Merge commit '7d61dc95d741ca134d59b1f34c4e10c4c4e36f56'

* commit '7d61dc95d741ca134d59b1f34c4e10c4c4e36f56':
  lavf: move urlcontext_child_class_next() to protocols.c

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
pull/181/merge
Derek Buitenhuis 9 years ago
commit 53025fe187
  1. 22
      libavformat/avio.c
  2. 20
      libavformat/protocols.c
  3. 2
      libavformat/url.h

@ -50,25 +50,6 @@ static void *urlcontext_child_next(void *obj, void *prev)
return NULL;
}
static const AVClass *urlcontext_child_class_next(const AVClass *prev)
{
int i;
/* find the protocol that corresponds to prev */
for (i = 0; ff_url_protocols[i]; i++) {
if (ff_url_protocols[i]->priv_data_class == prev) {
i++;
break;
}
}
/* find next protocol with priv options */
for (; ff_url_protocols[i]; i++)
if (ff_url_protocols[i]->priv_data_class)
return ff_url_protocols[i]->priv_data_class;
return NULL;
}
#define OFFSET(x) offsetof(URLContext,x)
#define E AV_OPT_FLAG_ENCODING_PARAM
#define D AV_OPT_FLAG_DECODING_PARAM
@ -76,13 +57,14 @@ static const AVOption options[] = {
{"protocol_whitelist", "List of protocols that are allowed to be used", OFFSET(protocol_whitelist), AV_OPT_TYPE_STRING, { .str = NULL }, CHAR_MIN, CHAR_MAX, D },
{ NULL }
};
const AVClass ffurl_context_class = {
.class_name = "URLContext",
.item_name = urlcontext_to_name,
.option = options,
.version = LIBAVUTIL_VERSION_INT,
.child_next = urlcontext_child_next,
.child_class_next = urlcontext_child_class_next,
.child_class_next = ff_urlcontext_child_class_next,
};
/*@}*/

@ -207,6 +207,26 @@ const URLProtocol *ff_url_protocols[] = {
NULL,
};
const AVClass *ff_urlcontext_child_class_next(const AVClass *prev)
{
int i;
/* find the protocol that corresponds to prev */
for (i = 0; ff_url_protocols[i]; i++) {
if (ff_url_protocols[i]->priv_data_class == prev) {
i++;
break;
}
}
/* find next protocol with priv options */
for (; ff_url_protocols[i]; i++)
if (ff_url_protocols[i]->priv_data_class)
return ff_url_protocols[i]->priv_data_class;
return NULL;
}
const char *avio_enum_protocols(void **opaque, int output)
{
const URLProtocol **p = *opaque;

@ -309,6 +309,8 @@ void ff_make_absolute_url(char *buf, int size, const char *base,
*/
AVIODirEntry *ff_alloc_dir_entry(void);
const AVClass *ff_urlcontext_child_class_next(const AVClass *prev);
extern const URLProtocol *ff_url_protocols[];
#endif /* AVFORMAT_URL_H */

Loading…
Cancel
Save