Skip to content

Commit 0c680f1

Browse files
committed
changes
1 parent 7394c78 commit 0c680f1

File tree

2 files changed

+45
-29
lines changed

2 files changed

+45
-29
lines changed

libvmaf/src/feature/feature_collector.c

+31-27
Original file line numberDiff line numberDiff line change
@@ -347,36 +347,40 @@ int vmaf_feature_collector_append(VmafFeatureCollector *feature_collector,
347347

348348
VmafCallbackItem *metadata_iter = feature_collector->metadata ?
349349
feature_collector->metadata->head : NULL;
350-
while(metadata_iter)
351-
{
352-
VmafPredictModel *model_iter = feature_collector->models;
353-
while (model_iter)
354-
{
355-
VmafModel *model = model_iter->model;
356-
pthread_mutex_unlock(&(feature_collector->lock));
357-
res = vmaf_feature_collector_get_score(feature_collector, model->name,
358-
&score, picture_index);
359-
pthread_mutex_lock(&(feature_collector->lock));
360-
if (!res) {
361-
model_iter = model_iter->next;
362-
continue;
363-
}
364-
pthread_mutex_unlock(&(feature_collector->lock));
365-
res = vmaf_predict_score_at_index(model, feature_collector, picture_index,
366-
&score, true, true, 0);
367-
pthread_mutex_lock(&(feature_collector->lock));
368-
if (res) goto unlock;
369-
370-
VmafMetadata data = {
371-
.feature_name = model->name,
350+
while (metadata_iter) {
351+
VmafPredictModel *model_iter = feature_collector->models;
352+
while (model_iter) {
353+
VmafModel *model = model_iter->model;
354+
355+
pthread_mutex_unlock(&(feature_collector->lock));
356+
res = vmaf_feature_collector_get_score(feature_collector,
357+
metadata_iter->metadata_cfg.feature_name,
358+
&score, picture_index);
359+
pthread_mutex_lock(&(feature_collector->lock));
360+
361+
if (!res) {
362+
model_iter = model_iter->next;
363+
continue;
364+
}
365+
366+
pthread_mutex_unlock(&(feature_collector->lock));
367+
res = vmaf_predict_score_at_index(model, feature_collector,
368+
picture_index, &score, true, true, 0);
369+
pthread_mutex_lock(&(feature_collector->lock));
370+
371+
if (res) goto unlock;
372+
373+
VmafMetadata data = {
374+
.feature_name = metadata_iter->metadata_cfg.feature_name,
372375
.picture_index = picture_index,
373376
.score = score,
374-
};
377+
};
378+
379+
metadata_iter->metadata_cfg.callback(metadata_iter->metadata_cfg.data, &data);
380+
model_iter = model_iter->next;
381+
}
375382

376-
metadata_iter->metadata_cfg.callback(metadata_iter->metadata_cfg.data, &data);
377-
model_iter = model_iter->next;
378-
}
379-
metadata_iter = metadata_iter->next;
383+
metadata_iter = metadata_iter->next;
380384
}
381385

382386
unlock:

libvmaf/tools/vmaf.c

+14-2
Original file line numberDiff line numberDiff line change
@@ -253,11 +253,23 @@ int main(int argc, char *argv[])
253253
return -1;
254254
}
255255

256-
VmafMetadataConfiguration metadata_cfg = {
256+
VmafMetadataConfiguration metadata_cfg_1 = {
257+
.feature_name = "vmaf",
257258
.callback = &my_callback,
258259
};
259260

260-
err = vmaf_register_metadata_callback(vmaf, metadata_cfg);
261+
err = vmaf_register_metadata_callback(vmaf, metadata_cfg_1);
262+
if (err) {
263+
fprintf(stderr, "problem during vmaf_register_metadata_callback\n");
264+
return -1;
265+
}
266+
267+
VmafMetadataConfiguration metadata_cfg_2 = {
268+
.feature_name = "psnr",
269+
.callback = &my_callback,
270+
};
271+
272+
err = vmaf_register_metadata_callback(vmaf, metadata_cfg_2);
261273
if (err) {
262274
fprintf(stderr, "problem during vmaf_register_metadata_callback\n");
263275
return -1;

0 commit comments

Comments
 (0)