mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-08 13:22:53 +02:00
avformat/id3v2: Remove unnecessary indirection
ff_id3v2_parse_apic/chapters/priv/priv_dict all had a parameter extra_meta of type ID3v2ExtraMeta ** as if the functions wanted to make *extra_meta point to something else. But they don't, so just use an ID3v2ExtraMeta *. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
f08853b284
commit
37140ebd87
@ -146,7 +146,7 @@ static int handle_id3(AVFormatContext *s, AVPacket *pkt)
|
||||
|
||||
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) {
|
||||
|
@ -261,8 +261,8 @@ static int aiff_read_header(AVFormatContext *s)
|
||||
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;
|
||||
}
|
||||
|
@ -308,8 +308,8 @@ static void get_id3_tag(AVFormatContext *s, int len)
|
||||
|
||||
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);
|
||||
}
|
||||
|
@ -461,8 +461,8 @@ static void get_id3_tag(AVFormatContext *s, int len)
|
||||
|
||||
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);
|
||||
}
|
||||
|
@ -56,8 +56,8 @@ static void read_id3(AVFormatContext *s, uint64_t id3pos)
|
||||
|
||||
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);
|
||||
}
|
||||
|
@ -1070,12 +1070,12 @@ static void handle_id3(AVIOContext *pb, struct playlist *pls)
|
||||
|
||||
/* 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;
|
||||
|
||||
@ -1965,9 +1965,9 @@ static int hls_read_header(AVFormatContext *s)
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -1127,11 +1127,11 @@ void ff_id3v2_free_extra_meta(ID3v2ExtraMeta **extra_meta)
|
||||
*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;
|
||||
|
||||
@ -1167,7 +1167,7 @@ int ff_id3v2_parse_apic(AVFormatContext *s, ID3v2ExtraMeta **extra_meta)
|
||||
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;
|
||||
@ -1178,7 +1178,7 @@ int ff_id3v2_parse_chapters(AVFormatContext *s, ID3v2ExtraMeta **extra_meta)
|
||||
|
||||
// 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"))
|
||||
@ -1218,12 +1218,12 @@ end:
|
||||
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;
|
||||
@ -1258,7 +1258,7 @@ int ff_id3v2_parse_priv_dict(AVDictionary **metadata, ID3v2ExtraMeta **extra_met
|
||||
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);
|
||||
}
|
||||
|
@ -167,25 +167,25 @@ void ff_id3v2_free_extra_meta(ID3v2ExtraMeta **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[];
|
||||
|
@ -312,8 +312,8 @@ static int parse_dsd_prop(AVFormatContext *s, AVStream *st, uint64_t eof)
|
||||
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;
|
||||
}
|
||||
|
@ -396,7 +396,7 @@ static int oma_read_header(AVFormatContext *s)
|
||||
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;
|
||||
}
|
||||
|
@ -638,11 +638,11 @@ FF_ENABLE_DEPRECATION_WARNINGS
|
||||
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");
|
||||
|
@ -507,9 +507,9 @@ static int wav_read_header(AVFormatContext *s)
|
||||
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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user