Skip to content
Snippets Groups Projects
Commit ff68ceb1 authored by Kevin Mitchell's avatar Kevin Mitchell Committed by Michael Niedermayer
Browse files

avfilter/vf_idet: add both multiple and single frame detection metadata

parent b5583fc3
No related branches found
No related tags found
No related merge requests found
...@@ -5573,6 +5573,34 @@ Detect video interlacing type. ...@@ -5573,6 +5573,34 @@ Detect video interlacing type.
This filter tries to detect if the input is interlaced or progressive, This filter tries to detect if the input is interlaced or progressive,
top or bottom field first. top or bottom field first.
The filter will log these metadata values:
@table @option
@item single.tff
Cumulative number of frames detected as top field first using single-frame detection.
@item multiple.tff
Cumulative number of frames detected as top field first using multiple-frame detection.
@item single.bff
Cumulative number of frames detected as bottom field first using single-frame detection.
@item multiple.bff
Cumulative number of frames detected as bottom field first using multiple-frame detection.
@item single.progressive
Cumulative number of frames detected as progressive using single-frame detection.
@item multiple.progressive
Cumulative number of frames detected as progressive using multiple-frame detection.
@item single.undetermined
Cumulative number of frames that could not be classified using single-frame detection.
@item multiple.undetermined
Cumulative number of frames that could not be classified using multiple-frame detection.
@end table
The filter accepts the following options: The filter accepts the following options:
@table @option @table @option
......
...@@ -30,8 +30,8 @@ ...@@ -30,8 +30,8 @@
#include "libavutil/version.h" #include "libavutil/version.h"
#define LIBAVFILTER_VERSION_MAJOR 5 #define LIBAVFILTER_VERSION_MAJOR 5
#define LIBAVFILTER_VERSION_MINOR 1 #define LIBAVFILTER_VERSION_MINOR 2
#define LIBAVFILTER_VERSION_MICRO 106 #define LIBAVFILTER_VERSION_MICRO 100
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
LIBAVFILTER_VERSION_MINOR, \ LIBAVFILTER_VERSION_MINOR, \
......
...@@ -178,10 +178,15 @@ static int filter_frame(AVFilterLink *link, AVFrame *picref) ...@@ -178,10 +178,15 @@ static int filter_frame(AVFilterLink *link, AVFrame *picref)
filter(ctx); filter(ctx);
av_dict_set_int(metadata, "lavfi.idet.tff", idet->prestat[TFF], 0); av_dict_set_int(metadata, "lavfi.idet.single.tff", idet->prestat[TFF], 0);
av_dict_set_int(metadata, "lavfi.idet.bff", idet->prestat[BFF], 0); av_dict_set_int(metadata, "lavfi.idet.single.bff", idet->prestat[BFF], 0);
av_dict_set_int(metadata, "lavfi.idet.progressive", idet->prestat[PROGRESSIVE], 0); av_dict_set_int(metadata, "lavfi.idet.single.progressive", idet->prestat[PROGRESSIVE], 0);
av_dict_set_int(metadata, "lavfi.idet.undetermined", idet->prestat[UNDETERMINED], 0); av_dict_set_int(metadata, "lavfi.idet.single.undetermined", idet->prestat[UNDETERMINED], 0);
av_dict_set_int(metadata, "lavfi.idet.multiple.tff", idet->poststat[TFF], 0);
av_dict_set_int(metadata, "lavfi.idet.multiple.bff", idet->poststat[BFF], 0);
av_dict_set_int(metadata, "lavfi.idet.multiple.progressive", idet->poststat[PROGRESSIVE], 0);
av_dict_set_int(metadata, "lavfi.idet.multiple.undetermined", idet->poststat[UNDETERMINED], 0);
return ff_filter_frame(ctx->outputs[0], av_frame_clone(idet->cur)); return ff_filter_frame(ctx->outputs[0], av_frame_clone(idet->cur));
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment