History

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 *.

Andreas Rheinhardt committed 6 years ago

Commit 37140eb1 parent f08853b12 files · +33 −33Browse files

Unified · Split

12 files
  1. libavformat/aacdec.c +1 −1
  2. libavformat/aiffdec.c +2 −2
  3. libavformat/asfdec_f.c +2 −2
  4. libavformat/asfdec_o.c +2 −2
  5. libavformat/dsfdec.c +2 −2
  6. libavformat/hls.c +4 −4
  7. libavformat/id3v2.c +7 −7
  8. libavformat/id3v2.h +4 −4
  9. libavformat/iff.c +2 −2
  10. libavformat/omadec.c +1 −1
  11. libavformat/utils.c +3 −3
  12. libavformat/wavdec.c +3 −3
libavformat/aacdec.c+1−1
@@ -146,7 +146,7 @@ static int handle_id3(AVFormatContext *s, AVPacket *pkt) · 145 unmodified lines
146 146
147 ffio_init_context(&ioctx, pkt->data, pkt->size, 0, NULL, NULL, NULL, NULL);147 ffio_init_context(&ioctx, pkt->data, pkt->size, 0, NULL, NULL, NULL, NULL);
148 ff_id3v2_read_dict(&ioctx, &metadata, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta);148 ff_id3v2_read_dict(&ioctx, &metadata, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta);
149 if ((ret = ff_id3v2_parse_priv_dict(&metadata, &id3v2_extra_meta)) < 0)149 if ((ret = ff_id3v2_parse_priv_dict(&metadata, id3v2_extra_meta)) < 0)
150 goto error;150 goto error;
151 151
152 if (metadata) {152 if (metadata) {
libavformat/aiffdec.c+2−2
@@ -261,8 +261,8 @@ static int aiff_read_header(AVFormatContext *s) · 260 unmodified lines
261 position = avio_tell(pb);261 position = avio_tell(pb);
262 ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, size);262 ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, size);
263 if (id3v2_extra_meta)263 if (id3v2_extra_meta)
264 if ((ret = ff_id3v2_parse_apic(s, &id3v2_extra_meta)) < 0 ||264 if ((ret = ff_id3v2_parse_apic(s, id3v2_extra_meta)) < 0 ||
265 (ret = ff_id3v2_parse_chapters(s, &id3v2_extra_meta)) < 0) {265 (ret = ff_id3v2_parse_chapters(s, id3v2_extra_meta)) < 0) {
266 ff_id3v2_free_extra_meta(&id3v2_extra_meta);266 ff_id3v2_free_extra_meta(&id3v2_extra_meta);
267 return ret;267 return ret;
268 }268 }
libavformat/asfdec_f.c+2−2
@@ -308,8 +308,8 @@ static void get_id3_tag(AVFormatContext *s, int len) · 307 unmodified lines
308 308
309 ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, len);309 ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, len);
310 if (id3v2_extra_meta) {310 if (id3v2_extra_meta) {
311 ff_id3v2_parse_apic(s, &id3v2_extra_meta);311 ff_id3v2_parse_apic(s, id3v2_extra_meta);
312 ff_id3v2_parse_chapters(s, &id3v2_extra_meta);312 ff_id3v2_parse_chapters(s, id3v2_extra_meta);
313 }313 }
314 ff_id3v2_free_extra_meta(&id3v2_extra_meta);314 ff_id3v2_free_extra_meta(&id3v2_extra_meta);
315}315}
libavformat/asfdec_o.c+2−2
@@ -461,8 +461,8 @@ static void get_id3_tag(AVFormatContext *s, int len) · 460 unmodified lines
461 461
462 ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, len);462 ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, len);
463 if (id3v2_extra_meta) {463 if (id3v2_extra_meta) {
464 ff_id3v2_parse_apic(s, &id3v2_extra_meta);464 ff_id3v2_parse_apic(s, id3v2_extra_meta);
465 ff_id3v2_parse_chapters(s, &id3v2_extra_meta);465 ff_id3v2_parse_chapters(s, id3v2_extra_meta);
466 }466 }
467 ff_id3v2_free_extra_meta(&id3v2_extra_meta);467 ff_id3v2_free_extra_meta(&id3v2_extra_meta);
468}468}
libavformat/dsfdec.c+2−2
@@ -56,8 +56,8 @@ static void read_id3(AVFormatContext *s, uint64_t id3pos) · 55 unmodified lines
56 56
57 ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, 0);57 ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, 0);
58 if (id3v2_extra_meta) {58 if (id3v2_extra_meta) {
59 ff_id3v2_parse_apic(s, &id3v2_extra_meta);59 ff_id3v2_parse_apic(s, id3v2_extra_meta);
60 ff_id3v2_parse_chapters(s, &id3v2_extra_meta);60 ff_id3v2_parse_chapters(s, id3v2_extra_meta);
61 }61 }
62 ff_id3v2_free_extra_meta(&id3v2_extra_meta);62 ff_id3v2_free_extra_meta(&id3v2_extra_meta);
63}63}
libavformat/hls.c+4−4
@@ -1070,12 +1070,12 @@ static void handle_id3(AVIOContext *pb, struct playlist *pls) · 1069 unmodified lines
1070 1070
1071 /* get picture attachment and set text metadata */1071 /* get picture attachment and set text metadata */
1072 if (pls->ctx->nb_streams)1072 if (pls->ctx->nb_streams)
1073 ff_id3v2_parse_apic(pls->ctx, &extra_meta);1073 ff_id3v2_parse_apic(pls->ctx, extra_meta);
1074 else1074 else
1075 /* demuxer not yet opened, defer picture attachment */1075 /* demuxer not yet opened, defer picture attachment */
1076 pls->id3_deferred_extra = extra_meta;1076 pls->id3_deferred_extra = extra_meta;
1077 1077
1078 ff_id3v2_parse_priv_dict(&metadata, &extra_meta);1078 ff_id3v2_parse_priv_dict(&metadata, extra_meta);
1079 av_dict_copy(&pls->ctx->metadata, metadata, 0);1079 av_dict_copy(&pls->ctx->metadata, metadata, 0);
1080 pls->id3_initial = metadata;1080 pls->id3_initial = metadata;
1081 1081
@@ -1965,9 +1965,9 @@ static int hls_read_header(AVFormatContext *s) · 883 unmodified lines
1965 goto fail;1965 goto fail;
1966 1966
1967 if (pls->id3_deferred_extra && pls->ctx->nb_streams == 1) {1967 if (pls->id3_deferred_extra && pls->ctx->nb_streams == 1) {
1968 ff_id3v2_parse_apic(pls->ctx, &pls->id3_deferred_extra);1968 ff_id3v2_parse_apic(pls->ctx, pls->id3_deferred_extra);
1969 avformat_queue_attached_pictures(pls->ctx);1969 avformat_queue_attached_pictures(pls->ctx);
1970 ff_id3v2_parse_priv(pls->ctx, &pls->id3_deferred_extra);1970 ff_id3v2_parse_priv(pls->ctx, pls->id3_deferred_extra);
1971 ff_id3v2_free_extra_meta(&pls->id3_deferred_extra);1971 ff_id3v2_free_extra_meta(&pls->id3_deferred_extra);
1972 }1972 }
1973 1973
libavformat/id3v2.c+7−7
@@ -1127,11 +1127,11 @@ void ff_id3v2_free_extra_meta(ID3v2ExtraMeta **extra_meta) · 1126 unmodified lines
1127 *extra_meta = NULL;1127 *extra_meta = NULL;
1128}1128}
1129 1129
1130int ff_id3v2_parse_apic(AVFormatContext *s, ID3v2ExtraMeta **extra_meta)1130int ff_id3v2_parse_apic(AVFormatContext *s, ID3v2ExtraMeta *extra_meta)
1131{1131{
1132 ID3v2ExtraMeta *cur;1132 ID3v2ExtraMeta *cur;
1133 1133
1134 for (cur = *extra_meta; cur; cur = cur->next) {1134 for (cur = extra_meta; cur; cur = cur->next) {
1135 ID3v2ExtraMetaAPIC *apic;1135 ID3v2ExtraMetaAPIC *apic;
1136 AVStream *st;1136 AVStream *st;
1137 1137
@@ -1167,7 +1167,7 @@ int ff_id3v2_parse_apic(AVFormatContext *s, ID3v2ExtraMeta **extra_meta) · 29 unmodified lines
1167 return 0;1167 return 0;
1168}1168}
1169 1169
1170int ff_id3v2_parse_chapters(AVFormatContext *s, ID3v2ExtraMeta **extra_meta)1170int ff_id3v2_parse_chapters(AVFormatContext *s, ID3v2ExtraMeta *extra_meta)
1171{1171{
1172 int ret = 0;1172 int ret = 0;
1173 ID3v2ExtraMeta *cur;1173 ID3v2ExtraMeta *cur;
@@ -1178,7 +1178,7 @@ int ff_id3v2_parse_chapters(AVFormatContext *s, ID3v2ExtraMeta **extra_meta) · 4 unmodified lines
1178 1178
1179 // since extra_meta is a linked list where elements are prepended,1179 // since extra_meta is a linked list where elements are prepended,
1180 // we need to reverse the order of chapters1180 // we need to reverse the order of chapters
1181 for (cur = *extra_meta; cur; cur = cur->next) {1181 for (cur = extra_meta; cur; cur = cur->next) {
1182 ID3v2ExtraMetaCHAP *chap;1182 ID3v2ExtraMetaCHAP *chap;
1183 1183
1184 if (strcmp(cur->tag, "CHAP"))1184 if (strcmp(cur->tag, "CHAP"))
@@ -1218,12 +1218,12 @@ end: · 33 unmodified lines
1218 return ret;1218 return ret;
1219}1219}
1220 1220
1221int ff_id3v2_parse_priv_dict(AVDictionary **metadata, ID3v2ExtraMeta **extra_meta)1221int ff_id3v2_parse_priv_dict(AVDictionary **metadata, ID3v2ExtraMeta *extra_meta)
1222{1222{
1223 ID3v2ExtraMeta *cur;1223 ID3v2ExtraMeta *cur;
1224 int dict_flags = AV_DICT_DONT_OVERWRITE | AV_DICT_DONT_STRDUP_KEY | AV_DICT_DONT_STRDUP_VAL;1224 int dict_flags = AV_DICT_DONT_OVERWRITE | AV_DICT_DONT_STRDUP_KEY | AV_DICT_DONT_STRDUP_VAL;
1225 1225
1226 for (cur = *extra_meta; cur; cur = cur->next) {1226 for (cur = extra_meta; cur; cur = cur->next) {
1227 if (!strcmp(cur->tag, "PRIV")) {1227 if (!strcmp(cur->tag, "PRIV")) {
1228 ID3v2ExtraMetaPRIV *priv = &cur->data.priv;1228 ID3v2ExtraMetaPRIV *priv = &cur->data.priv;
1229 AVBPrint bprint;1229 AVBPrint bprint;
@@ -1258,7 +1258,7 @@ int ff_id3v2_parse_priv_dict(AVDictionary **metadata, ID3v2ExtraMeta **extra_met · 28 unmodified lines
1258 return 0;1258 return 0;
1259}1259}
1260 1260
1261int ff_id3v2_parse_priv(AVFormatContext *s, ID3v2ExtraMeta **extra_meta)1261int ff_id3v2_parse_priv(AVFormatContext *s, ID3v2ExtraMeta *extra_meta)
1262{1262{
1263 return ff_id3v2_parse_priv_dict(&s->metadata, extra_meta);1263 return ff_id3v2_parse_priv_dict(&s->metadata, extra_meta);
1264}1264}
libavformat/id3v2.h+4−4
@@ -167,25 +167,25 @@ void ff_id3v2_free_extra_meta(ID3v2ExtraMeta **extra_meta); · 166 unmodified lines
167 * Create a stream for each APIC (attached picture) extracted from the167 * Create a stream for each APIC (attached picture) extracted from the
168 * ID3v2 header.168 * ID3v2 header.
169 */169 */
170int ff_id3v2_parse_apic(AVFormatContext *s, ID3v2ExtraMeta **extra_meta);170int ff_id3v2_parse_apic(AVFormatContext *s, ID3v2ExtraMeta *extra_meta);
171 171
172/**172/**
173 * Create chapters for all CHAP tags found in the ID3v2 header.173 * Create chapters for all CHAP tags found in the ID3v2 header.
174 */174 */
175int ff_id3v2_parse_chapters(AVFormatContext *s, ID3v2ExtraMeta **extra_meta);175int ff_id3v2_parse_chapters(AVFormatContext *s, ID3v2ExtraMeta *extra_meta);
176 176
177/**177/**
178 * Parse PRIV tags into a dictionary. The PRIV owner is the metadata key. The178 * Parse PRIV tags into a dictionary. The PRIV owner is the metadata key. The
179 * PRIV data is the value, with non-printable characters escaped.179 * PRIV data is the value, with non-printable characters escaped.
180 */180 */
181int ff_id3v2_parse_priv_dict(AVDictionary **d, ID3v2ExtraMeta **extra_meta);181int ff_id3v2_parse_priv_dict(AVDictionary **d, ID3v2ExtraMeta *extra_meta);
182 182
183/**183/**
184 * Add metadata for all PRIV tags in the ID3v2 header. The PRIV owner is the184 * Add metadata for all PRIV tags in the ID3v2 header. The PRIV owner is the
185 * metadata key. The PRIV data is the value, with non-printable characters185 * metadata key. The PRIV data is the value, with non-printable characters
186 * escaped.186 * escaped.
187 */187 */
188int ff_id3v2_parse_priv(AVFormatContext *s, ID3v2ExtraMeta **extra_meta);188int ff_id3v2_parse_priv(AVFormatContext *s, ID3v2ExtraMeta *extra_meta);
189 189
190extern const AVMetadataConv ff_id3v2_34_metadata_conv[];190extern const AVMetadataConv ff_id3v2_34_metadata_conv[];
191extern const AVMetadataConv ff_id3v2_4_metadata_conv[];191extern const AVMetadataConv ff_id3v2_4_metadata_conv[];
libavformat/iff.c+2−2
@@ -312,8 +312,8 @@ static int parse_dsd_prop(AVFormatContext *s, AVStream *st, uint64_t eof) · 311 unmodified lines
312 id3v2_extra_meta = NULL;312 id3v2_extra_meta = NULL;
313 ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, size);313 ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, size);
314 if (id3v2_extra_meta) {314 if (id3v2_extra_meta) {
315 if ((ret = ff_id3v2_parse_apic(s, &id3v2_extra_meta)) < 0 ||315 if ((ret = ff_id3v2_parse_apic(s, id3v2_extra_meta)) < 0 ||
316 (ret = ff_id3v2_parse_chapters(s, &id3v2_extra_meta)) < 0) {316 (ret = ff_id3v2_parse_chapters(s, id3v2_extra_meta)) < 0) {
317 ff_id3v2_free_extra_meta(&id3v2_extra_meta);317 ff_id3v2_free_extra_meta(&id3v2_extra_meta);
318 return ret;318 return ret;
319 }319 }
libavformat/omadec.c+1−1
@@ -396,7 +396,7 @@ static int oma_read_header(AVFormatContext *s) · 395 unmodified lines
396 OMAContext *oc = s->priv_data;396 OMAContext *oc = s->priv_data;
397 397
398 ff_id3v2_read(s, ID3v2_EA3_MAGIC, &extra_meta, 0);398 ff_id3v2_read(s, ID3v2_EA3_MAGIC, &extra_meta, 0);
399 if ((ret = ff_id3v2_parse_chapters(s, &extra_meta)) < 0) {399 if ((ret = ff_id3v2_parse_chapters(s, extra_meta)) < 0) {
400 ff_id3v2_free_extra_meta(&extra_meta);400 ff_id3v2_free_extra_meta(&extra_meta);
401 return ret;401 return ret;
402 }402 }
libavformat/utils.c+3−3
@@ -638,11 +638,11 @@ FF_ENABLE_DEPRECATION_WARNINGS · 637 unmodified lines
638 if (id3v2_extra_meta) {638 if (id3v2_extra_meta) {
639 if (!strcmp(s->iformat->name, "mp3") || !strcmp(s->iformat->name, "aac") ||639 if (!strcmp(s->iformat->name, "mp3") || !strcmp(s->iformat->name, "aac") ||
640 !strcmp(s->iformat->name, "tta") || !strcmp(s->iformat->name, "wav")) {640 !strcmp(s->iformat->name, "tta") || !strcmp(s->iformat->name, "wav")) {
641 if ((ret = ff_id3v2_parse_apic(s, &id3v2_extra_meta)) < 0)641 if ((ret = ff_id3v2_parse_apic(s, id3v2_extra_meta)) < 0)
642 goto close;642 goto close;
643 if ((ret = ff_id3v2_parse_chapters(s, &id3v2_extra_meta)) < 0)643 if ((ret = ff_id3v2_parse_chapters(s, id3v2_extra_meta)) < 0)
644 goto close;644 goto close;
645 if ((ret = ff_id3v2_parse_priv(s, &id3v2_extra_meta)) < 0)645 if ((ret = ff_id3v2_parse_priv(s, id3v2_extra_meta)) < 0)
646 goto close;646 goto close;
647 } else647 } else
648 av_log(s, AV_LOG_DEBUG, "demuxer does not support additional id3 data, skipping\n");648 av_log(s, AV_LOG_DEBUG, "demuxer does not support additional id3 data, skipping\n");
libavformat/wavdec.c+3−3
@@ -507,9 +507,9 @@ static int wav_read_header(AVFormatContext *s) · 506 unmodified lines
507 ID3v2ExtraMeta *id3v2_extra_meta = NULL;507 ID3v2ExtraMeta *id3v2_extra_meta = NULL;
508 ff_id3v2_read_dict(pb, &s->internal->id3v2_meta, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta);508 ff_id3v2_read_dict(pb, &s->internal->id3v2_meta, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta);
509 if (id3v2_extra_meta) {509 if (id3v2_extra_meta) {
510 ff_id3v2_parse_apic(s, &id3v2_extra_meta);510 ff_id3v2_parse_apic(s, id3v2_extra_meta);
511 ff_id3v2_parse_chapters(s, &id3v2_extra_meta);511 ff_id3v2_parse_chapters(s, id3v2_extra_meta);
512 ff_id3v2_parse_priv(s, &id3v2_extra_meta);512 ff_id3v2_parse_priv(s, id3v2_extra_meta);
513 }513 }
514 ff_id3v2_free_extra_meta(&id3v2_extra_meta);514 ff_id3v2_free_extra_meta(&id3v2_extra_meta);
515 }515 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t