static const AVClass *filter_child_class_next(const AVClass *prev) { const AVFilter *f = NULL; while (prev && (f = avfilter_next(f))) if (f->priv_class == prev) break; while ((f = avfilter_next(f))) if (f->priv_class) return f->priv_class; return NULL; }
static const AVClass *filter_child_class_next(const AVClass *prev) { const AVFilter *f = NULL; /* find the filter that corresponds to prev */ while (prev && (f = avfilter_next(f))) if (f->priv_class == prev) break; /* could not find filter corresponding to prev */ if (prev && !f) return NULL; /* find next filter with specific options */ while ((f = avfilter_next(f))) if (f->priv_class) return f->priv_class; return NULL; }
/** * com.leixiaohua1020.sffmpegandroidhelloworld.MainActivity.avfilterinfo() * AVFilter Support Information */ JNIEXPORT jstring Java_com_leixiaohua1020_sffmpegandroidhelloworld_MainActivity_avfilterinfo(JNIEnv *env, jobject obj) { char info[40000] = { 0 }; av_register_all(); AVFilter *f_temp = (AVFilter *)avfilter_next(NULL); while (f_temp != NULL){ sprintf(info, "%s[%10s]\n", info, f_temp->name); } //LOGE("%s", info); return (*env)->NewStringUTF(env, info); }
const AVFilter *avfilter_get_by_name(const char *name) { const AVFilter *f = NULL; if (!name) return NULL; while ((f = avfilter_next(f))) if (!strcmp(f->name, name)) return f; return NULL; }