如何将ffmpeg中的atadenoise迁移到我自己的项目中?
这是atadenoise过滤器的入口: libavfilter/vf_atadenoise.c如何将ffmpeg中的atadenoise迁移到我自己的项目中?,ffmpeg,Ffmpeg,这是atadenoise过滤器的入口: libavfilter/vf_atadenoise.c static int filter_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) { ... } // const char *filter_descr = "scale=78:24,transpose=cclock"; const char *filter_descr = "
static int filter_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
{
...
}
// const char *filter_descr = "scale=78:24,transpose=cclock";
const char *filter_descr =
"atadenoise=0a=0.2:1a=0.2:2a=0.2:0b=0.3:1b=0.3:2b=0.3";
/* other way:
scale=78:24 [scl]; [scl] transpose=cclock // assumes "[in]" and "[out]" to be input output pads respectively
*/
......
int main(int argc, char **argv)
{
int ret;
AVPacket packet;
AVFrame *frame;
AVFrame *filt_frame;
if (argc != 2) {
fprintf(stderr, "Usage: %s file\n", argv[0]);
exit(1);
}
......
哪个用来打电话
s->dsp.filter_row[p](src, dst, srcf, w, mid, size, thra, thrb, weights);
因此,根据配置的参数选择具体的降噪方法:
static void fweight_row##name(const uint8_t *ssrc, uint8_t *ddst, \
const uint8_t *ssrcf[SIZE], \
int w, int mid, int size, \
int thra, int thrb, const float *weights) \
...
static void fweight_row##name##_serial(const uint8_t *ssrc, uint8_t *ddst, \
const uint8_t *ssrcf[SIZE], \
int w, int mid, int size, \
int thra, int thrb, \
const float *weights) \
.....
我使用示例代码调用atadenoise函数:
doc/examples/filtering\u video.c
static int filter_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
{
...
}
// const char *filter_descr = "scale=78:24,transpose=cclock";
const char *filter_descr =
"atadenoise=0a=0.2:1a=0.2:2a=0.2:0b=0.3:1b=0.3:2b=0.3";
/* other way:
scale=78:24 [scl]; [scl] transpose=cclock // assumes "[in]" and "[out]" to be input output pads respectively
*/
......
int main(int argc, char **argv)
{
int ret;
AVPacket packet;
AVFrame *frame;
AVFrame *filt_frame;
if (argc != 2) {
fprintf(stderr, "Usage: %s file\n", argv[0]);
exit(1);
}
......
以这种方式配置const char*filter\u descr
以调用atadenoise:
const char *filter_descr =
"atadenoise=0a=0.2:1a=0.2:2a=0.2:0b=0.3:1b=0.3:2b=0.3";
如果我想将atadenoise连接到我的项目,我应该从filter_slice开始。但我不知道如何向它提供参数
目前我使用Xcode在atadenoise中设置断点,但这并不稳定。现在我不能插手了。也许我不小心改变了一些配置