MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / modplug_load_metadata

Function modplug_load_metadata

libavformat/libmodplug.c:143–170  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

141} while (0)
142
143static int modplug_load_metadata(AVFormatContext *s)
144{
145 ModPlugContext *modplug = s->priv_data;
146 ModPlugFile *f = modplug->f;
147 char *extra;
148 const char *name = ModPlug_GetName(f);
149 const char *msg = ModPlug_GetMessage(f);
150
151 unsigned n_instruments = ModPlug_NumInstruments(f);
152 unsigned n_samples = ModPlug_NumSamples(f);
153 unsigned n_patterns = ModPlug_NumPatterns(f);
154 unsigned n_channels = ModPlug_NumChannels(f);
155
156 if (name && *name) av_dict_set(&s->metadata, "name", name, 0);
157 if (msg && *msg) av_dict_set(&s->metadata, "message", msg, 0);
158
159 extra = av_asprintf("%u pattern%s, %u channel%s",
160 n_patterns, n_patterns > 1 ? "s" : "",
161 n_channels, n_channels > 1 ? "s" : "");
162 if (!extra)
163 return AVERROR(ENOMEM);
164 av_dict_set(&s->metadata, "extra info", extra, AV_DICT_DONT_STRDUP_VAL);
165
166 ADD_META_MULTIPLE_ENTRIES(instrument, ModPlug_InstrumentName);
167 ADD_META_MULTIPLE_ENTRIES(sample, ModPlug_SampleName);
168
169 return 0;
170}
171
172#define AUDIO_PKT_SIZE 512
173

Callers 1

modplug_read_headerFunction · 0.85

Calls 2

av_dict_setFunction · 0.85
av_asprintfFunction · 0.85

Tested by

no test coverage detected