const char *p = strchr(name, ':');
int len = p ? p - name : strlen(name);
- while (po->name != NULL) {
+ while (po->name) {
if (!strncmp(name, po->name, len) && strlen(po->name) == len)
break;
po++;
win32_argv_utf8 = av_mallocz(sizeof(char *) * (win32_argc + 1) + buffsize);
argstr_flat = (char *)win32_argv_utf8 + sizeof(char *) * (win32_argc + 1);
- if (win32_argv_utf8 == NULL) {
+ if (!win32_argv_utf8) {
LocalFree(argv_w);
return;
}
const char *long_name = NULL;
while ((ofmt = av_oformat_next(ofmt))) {
- if ((name == NULL || strcmp(ofmt->name, name) < 0) &&
+ if ((!name || strcmp(ofmt->name, name) < 0) &&
strcmp(ofmt->name, last_name) > 0) {
name = ofmt->name;
long_name = ofmt->long_name;
}
}
while ((ifmt = av_iformat_next(ifmt))) {
- if ((name == NULL || strcmp(ifmt->name, name) < 0) &&
+ if ((!name || strcmp(ifmt->name, name) < 0) &&
strcmp(ifmt->name, last_name) > 0) {
name = ifmt->name;
long_name = ifmt->long_name;
if (name && strcmp(ifmt->name, name) == 0)
decode = 1;
}
- if (name == NULL)
+ if (!name)
break;
last_name = name;
int show_filters(void *optctx, const char *opt, const char *arg)
{
- const AVFilter av_unused(*filter) = NULL;
+#if CONFIG_AVFILTER
+ const AVFilter *filter = NULL;
printf("Filters:\n");
-#if CONFIG_AVFILTER
while ((filter = avfilter_next(filter)))
printf("%-16s %s\n", filter->name, filter->description);
+#else
+ printf("No filters available: libavfilter disabled\n");
#endif
return 0;
}
spec += 2;
stream_id = strtol(spec, &endptr, 0);
return stream_id == st->id;
+ } else if (*spec == 'm' && *(spec + 1) == ':') {
+ AVDictionaryEntry *tag;
+ char *key, *val;
+ int ret;
+
+ spec += 2;
+ val = strchr(spec, ':');
+
+ key = val ? av_strndup(spec, val - spec) : av_strdup(spec);
+ if (!key)
+ return AVERROR(ENOMEM);
+
+ tag = av_dict_get(st->metadata, key, NULL, 0);
+ if (tag) {
+ if (!val || !strcmp(tag->value, val + 1))
+ ret = 1;
+ else
+ ret = 0;
+ } else
+ ret = 0;
+
+ av_freep(&key);
+ return ret;
} else if (!*spec) /* empty specifier, matches everything */
return 1;