Browse Source

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n2.5
Kevin Mitchell Michael Niedermayer 11 years ago
parent
commit
ff68ceb1b5
3 changed files with 39 additions and 6 deletions
  1. +28
    -0
      doc/filters.texi
  2. +2
    -2
      libavfilter/version.h
  3. +9
    -4
      libavfilter/vf_idet.c

+ 28
- 0
doc/filters.texi View File

@@ -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


+ 2
- 2
libavfilter/version.h View File

@@ -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_MICRO 106
#define LIBAVFILTER_VERSION_MINOR 2
#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, \


+ 9
- 4
libavfilter/vf_idet.c View File

@@ -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.bff", idet->prestat[BFF], 0);
av_dict_set_int(metadata, "lavfi.idet.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.tff", idet->prestat[TFF], 0);
av_dict_set_int(metadata, "lavfi.idet.single.bff", idet->prestat[BFF], 0);
av_dict_set_int(metadata, "lavfi.idet.single.progressive", idet->prestat[PROGRESSIVE], 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));
} }


Loading…
Cancel
Save