ffio_init_context(&ioctx, pkt->data, pkt->size, 0, NULL, NULL, NULL, NULL);
ff_id3v2_read_dict(&ioctx, &metadata, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta);
- if ((ret = ff_id3v2_parse_priv_dict(&metadata, &id3v2_extra_meta)) < 0)
+ if ((ret = ff_id3v2_parse_priv_dict(&metadata, id3v2_extra_meta)) < 0)
goto error;
if (metadata) {
position = avio_tell(pb);
ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, size);
if (id3v2_extra_meta)
- if ((ret = ff_id3v2_parse_apic(s, &id3v2_extra_meta)) < 0 ||
- (ret = ff_id3v2_parse_chapters(s, &id3v2_extra_meta)) < 0) {
+ if ((ret = ff_id3v2_parse_apic(s, id3v2_extra_meta)) < 0 ||
+ (ret = ff_id3v2_parse_chapters(s, id3v2_extra_meta)) < 0) {
ff_id3v2_free_extra_meta(&id3v2_extra_meta);
return ret;
}
ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, len);
if (id3v2_extra_meta) {
- ff_id3v2_parse_apic(s, &id3v2_extra_meta);
- ff_id3v2_parse_chapters(s, &id3v2_extra_meta);
+ ff_id3v2_parse_apic(s, id3v2_extra_meta);
+ ff_id3v2_parse_chapters(s, id3v2_extra_meta);
}
ff_id3v2_free_extra_meta(&id3v2_extra_meta);
}
ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, len);
if (id3v2_extra_meta) {
- ff_id3v2_parse_apic(s, &id3v2_extra_meta);
- ff_id3v2_parse_chapters(s, &id3v2_extra_meta);
+ ff_id3v2_parse_apic(s, id3v2_extra_meta);
+ ff_id3v2_parse_chapters(s, id3v2_extra_meta);
}
ff_id3v2_free_extra_meta(&id3v2_extra_meta);
}
ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, 0);
if (id3v2_extra_meta) {
- ff_id3v2_parse_apic(s, &id3v2_extra_meta);
- ff_id3v2_parse_chapters(s, &id3v2_extra_meta);
+ ff_id3v2_parse_apic(s, id3v2_extra_meta);
+ ff_id3v2_parse_chapters(s, id3v2_extra_meta);
}
ff_id3v2_free_extra_meta(&id3v2_extra_meta);
}
/* get picture attachment and set text metadata */
if (pls->ctx->nb_streams)
- ff_id3v2_parse_apic(pls->ctx, &extra_meta);
+ ff_id3v2_parse_apic(pls->ctx, extra_meta);
else
/* demuxer not yet opened, defer picture attachment */
pls->id3_deferred_extra = extra_meta;
- ff_id3v2_parse_priv_dict(&metadata, &extra_meta);
+ ff_id3v2_parse_priv_dict(&metadata, extra_meta);
av_dict_copy(&pls->ctx->metadata, metadata, 0);
pls->id3_initial = metadata;
goto fail;
if (pls->id3_deferred_extra && pls->ctx->nb_streams == 1) {
- ff_id3v2_parse_apic(pls->ctx, &pls->id3_deferred_extra);
+ ff_id3v2_parse_apic(pls->ctx, pls->id3_deferred_extra);
avformat_queue_attached_pictures(pls->ctx);
- ff_id3v2_parse_priv(pls->ctx, &pls->id3_deferred_extra);
+ ff_id3v2_parse_priv(pls->ctx, pls->id3_deferred_extra);
ff_id3v2_free_extra_meta(&pls->id3_deferred_extra);
}
*extra_meta = NULL;
}
-int ff_id3v2_parse_apic(AVFormatContext *s, ID3v2ExtraMeta **extra_meta)
+int ff_id3v2_parse_apic(AVFormatContext *s, ID3v2ExtraMeta *extra_meta)
{
ID3v2ExtraMeta *cur;
- for (cur = *extra_meta; cur; cur = cur->next) {
+ for (cur = extra_meta; cur; cur = cur->next) {
ID3v2ExtraMetaAPIC *apic;
AVStream *st;
return 0;
}
-int ff_id3v2_parse_chapters(AVFormatContext *s, ID3v2ExtraMeta **extra_meta)
+int ff_id3v2_parse_chapters(AVFormatContext *s, ID3v2ExtraMeta *extra_meta)
{
int ret = 0;
ID3v2ExtraMeta *cur;
// since extra_meta is a linked list where elements are prepended,
// we need to reverse the order of chapters
- for (cur = *extra_meta; cur; cur = cur->next) {
+ for (cur = extra_meta; cur; cur = cur->next) {
ID3v2ExtraMetaCHAP *chap;
if (strcmp(cur->tag, "CHAP"))
return ret;
}
-int ff_id3v2_parse_priv_dict(AVDictionary **metadata, ID3v2ExtraMeta **extra_meta)
+int ff_id3v2_parse_priv_dict(AVDictionary **metadata, ID3v2ExtraMeta *extra_meta)
{
ID3v2ExtraMeta *cur;
int dict_flags = AV_DICT_DONT_OVERWRITE | AV_DICT_DONT_STRDUP_KEY | AV_DICT_DONT_STRDUP_VAL;
- for (cur = *extra_meta; cur; cur = cur->next) {
+ for (cur = extra_meta; cur; cur = cur->next) {
if (!strcmp(cur->tag, "PRIV")) {
ID3v2ExtraMetaPRIV *priv = &cur->data.priv;
AVBPrint bprint;
return 0;
}
-int ff_id3v2_parse_priv(AVFormatContext *s, ID3v2ExtraMeta **extra_meta)
+int ff_id3v2_parse_priv(AVFormatContext *s, ID3v2ExtraMeta *extra_meta)
{
return ff_id3v2_parse_priv_dict(&s->metadata, extra_meta);
}
* Create a stream for each APIC (attached picture) extracted from the
* ID3v2 header.
*/
-int ff_id3v2_parse_apic(AVFormatContext *s, ID3v2ExtraMeta **extra_meta);
+int ff_id3v2_parse_apic(AVFormatContext *s, ID3v2ExtraMeta *extra_meta);
/**
* Create chapters for all CHAP tags found in the ID3v2 header.
*/
-int ff_id3v2_parse_chapters(AVFormatContext *s, ID3v2ExtraMeta **extra_meta);
+int ff_id3v2_parse_chapters(AVFormatContext *s, ID3v2ExtraMeta *extra_meta);
/**
* Parse PRIV tags into a dictionary. The PRIV owner is the metadata key. The
* PRIV data is the value, with non-printable characters escaped.
*/
-int ff_id3v2_parse_priv_dict(AVDictionary **d, ID3v2ExtraMeta **extra_meta);
+int ff_id3v2_parse_priv_dict(AVDictionary **d, ID3v2ExtraMeta *extra_meta);
/**
* Add metadata for all PRIV tags in the ID3v2 header. The PRIV owner is the
* metadata key. The PRIV data is the value, with non-printable characters
* escaped.
*/
-int ff_id3v2_parse_priv(AVFormatContext *s, ID3v2ExtraMeta **extra_meta);
+int ff_id3v2_parse_priv(AVFormatContext *s, ID3v2ExtraMeta *extra_meta);
extern const AVMetadataConv ff_id3v2_34_metadata_conv[];
extern const AVMetadataConv ff_id3v2_4_metadata_conv[];
id3v2_extra_meta = NULL;
ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, size);
if (id3v2_extra_meta) {
- if ((ret = ff_id3v2_parse_apic(s, &id3v2_extra_meta)) < 0 ||
- (ret = ff_id3v2_parse_chapters(s, &id3v2_extra_meta)) < 0) {
+ if ((ret = ff_id3v2_parse_apic(s, id3v2_extra_meta)) < 0 ||
+ (ret = ff_id3v2_parse_chapters(s, id3v2_extra_meta)) < 0) {
ff_id3v2_free_extra_meta(&id3v2_extra_meta);
return ret;
}
OMAContext *oc = s->priv_data;
ff_id3v2_read(s, ID3v2_EA3_MAGIC, &extra_meta, 0);
- if ((ret = ff_id3v2_parse_chapters(s, &extra_meta)) < 0) {
+ if ((ret = ff_id3v2_parse_chapters(s, extra_meta)) < 0) {
ff_id3v2_free_extra_meta(&extra_meta);
return ret;
}
if (id3v2_extra_meta) {
if (!strcmp(s->iformat->name, "mp3") || !strcmp(s->iformat->name, "aac") ||
!strcmp(s->iformat->name, "tta") || !strcmp(s->iformat->name, "wav")) {
- if ((ret = ff_id3v2_parse_apic(s, &id3v2_extra_meta)) < 0)
+ if ((ret = ff_id3v2_parse_apic(s, id3v2_extra_meta)) < 0)
goto close;
- if ((ret = ff_id3v2_parse_chapters(s, &id3v2_extra_meta)) < 0)
+ if ((ret = ff_id3v2_parse_chapters(s, id3v2_extra_meta)) < 0)
goto close;
- if ((ret = ff_id3v2_parse_priv(s, &id3v2_extra_meta)) < 0)
+ if ((ret = ff_id3v2_parse_priv(s, id3v2_extra_meta)) < 0)
goto close;
} else
av_log(s, AV_LOG_DEBUG, "demuxer does not support additional id3 data, skipping\n");
ID3v2ExtraMeta *id3v2_extra_meta = NULL;
ff_id3v2_read_dict(pb, &s->internal->id3v2_meta, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta);
if (id3v2_extra_meta) {
- ff_id3v2_parse_apic(s, &id3v2_extra_meta);
- ff_id3v2_parse_chapters(s, &id3v2_extra_meta);
- ff_id3v2_parse_priv(s, &id3v2_extra_meta);
+ ff_id3v2_parse_apic(s, id3v2_extra_meta);
+ ff_id3v2_parse_chapters(s, id3v2_extra_meta);
+ ff_id3v2_parse_priv(s, id3v2_extra_meta);
}
ff_id3v2_free_extra_meta(&id3v2_extra_meta);
}