summaryrefslogtreecommitdiff
path: root/libavfilter
Commit message (Collapse)AuthorAge
* avfilter/vf_guided: Don't needlessly copy properties, fix potential NPDAndreas Rheinhardt2021-05-23
| | | | | | | | | ref_frame is owned by the framesync structure and should therefore not be modified; furthermore, these properties that are copied don't seem to be used at all, so copying is unnecessary. Finally copying when the destination frame is NULL gives a guaranteed segfault. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/vf_guided: Fix leak of framesAndreas Rheinhardt2021-05-23
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/vf_guided: Don't free frame we don't ownAndreas Rheinhardt2021-05-23
| | | | | Reviewed-by: Steven Liu <lq@chinaffmpeg.org> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/avfiltergraph: Remove NULL checks after dereferencesMichael Niedermayer2021-05-19
| | | | | | Fixes: CID1398579 Dereference before null check Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavfi/vf_dnn_processing.c: fix CID 1460603Guo, Yejun2021-05-18
| | | | CID 1460603 (#1 of 1): Improper use of negative value (NEGATIVE_RETURNS)
* lavfi/dnn/dnn_io_proc.c: fix Improper use of negative value (NEGATIVE_RETURNS)Guo, Yejun2021-05-18
| | | | fix coverity CID 1473511 and 1473566
* lavfi/dnn/dnn_io_proc.c: Fix Out-of-bounds access (ARRAY_VS_SINGLETON)Guo, Yejun2021-05-18
| | | | fix coverity CID 1473571, 1473577 and 1482089
* lavfi/dnn_backend_native_layer_mathunary.h: DocumentationShubhanshu Saxena2021-05-17
| | | | | | Add documentation for Unary Math Layer Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
* lavfi/dnn_backend_native_layer_depth2space.h: DocumentationShubhanshu Saxena2021-05-17
| | | | | | Add documentation for Depth to Space Layer Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
* lavfi/dnn_backend_native_layer_dense.h: DocumentationShubhanshu Saxena2021-05-17
| | | | | | Add documentation for Dense Layer Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
* lavfi/dnn_backend_native_layer_conv2d.h: DocumentationShubhanshu Saxena2021-05-17
| | | | | | Add documentation for 2D Convolution Layer Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
* avfilter/metadata: add intuitive labels for metadata valuesGyan Doshi2021-05-16
|
* avfilter/guided: reindent after 93ddb9b617Gyan Doshi2021-05-14
|
* avfilter/guided: simplify subsampling assignment.Gyan Doshi2021-05-14
| | | | | | | Reduce option ranges to effective values. Signed-off-by: Gyan Doshi <ffmpeg@gyani.pro> Reviewed-by: Steven Liu <liuqi05@kuaishou.com>
* lavfi/dnn_backend_native_layer_avgpool.h: DocumentationShubhanshu Saxena2021-05-14
| | | | | | Add documentation for Average Pool Layer Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
* GSoC: Support fast guided filter.Xuewei Meng2021-05-13
| | | | | | | | | | | | Two modes are supported in guided filter, basic mode and fast mode. Basic mode is the initial pushed guided filter without optimization. Fast mode is implemented based on the basic one by sub-sampling method. The sub-sampling ratio which can be defined by users controls the algorithm complexity. The larger the sub-sampling ratio, the lower the algorithm complexity. Signed-off-by: Xuewei Meng <xwmeng96@gmail.com> Reviewed-by: Steven Liu <liuqi05@kuaishou.com>
* avfilter/dnn/dnn_backend_tf: fix cross library usageLimin Wang2021-05-11
| | | | | | | | duplicate ff_hex_to_data() function from avformat and rename it to hex_to_data() as static function. Reviewed-by: Guo, Yejun <yejun.guo@intel.com> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter/vf_dnn_classify: add result check for av_frame_get_side_dataSteven Liu2021-05-11
| | | | | | | | CID: 1482090 there can return null from av_frame_get_side_data, and will use sd->data after av_frame_get_side_data, so should check null return value. Signed-off-by: Steven Liu <liuqi05@kuaishou.com>
* dnn/vf_dnn_detect.c: add tensorflow output parse supportTing Fu2021-05-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | Testing model is tensorflow offical model in github repo, please refer https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf2_detection_zoo.md to download the detect model as you need. For example, local testing was carried on with 'ssd_mobilenet_v2_coco_2018_03_29.tar.gz', and used one image of dog in https://github.com/tensorflow/models/blob/master/research/object_detection/test_images/image1.jpg Testing command is: ./ffmpeg -i image1.jpg -vf dnn_detect=dnn_backend=tensorflow:input=image_tensor:output=\ "num_detections&detection_scores&detection_classes&detection_boxes":model=ssd_mobilenet_v2_coco.pb,\ showinfo -f null - We will see the result similar as below: [Parsed_showinfo_1 @ 0x33e65f0] side data - detection bounding boxes: [Parsed_showinfo_1 @ 0x33e65f0] source: ssd_mobilenet_v2_coco.pb [Parsed_showinfo_1 @ 0x33e65f0] index: 0, region: (382, 60) -> (1005, 593), label: 18, confidence: 9834/10000. [Parsed_showinfo_1 @ 0x33e65f0] index: 1, region: (12, 8) -> (328, 549), label: 18, confidence: 8555/10000. [Parsed_showinfo_1 @ 0x33e65f0] index: 2, region: (293, 7) -> (682, 458), label: 1, confidence: 8033/10000. [Parsed_showinfo_1 @ 0x33e65f0] index: 3, region: (342, 0) -> (690, 325), label: 1, confidence: 5878/10000. There are two boxes of dog with cores 94.05% & 93.45% and two boxes of person with scores 80.33% & 58.78%. Signed-off-by: Ting Fu <ting.fu@intel.com> Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
* lavfi/dnn_backend_tensorflow: support detect modelTing Fu2021-05-11
| | | | Signed-off-by: Ting Fu <ting.fu@intel.com>
* lavfi/dnn_backend_tensorflow: add multiple outputs supportTing Fu2021-05-11
| | | | Signed-off-by: Ting Fu <ting.fu@intel.com>
* dnn: add DCO_RGB color order to enum DNNColorOrderTing Fu2021-05-11
| | | | | | | Adding DCO_RGB color order to DNNColorOrder, since tensorflow model needs this kind of color oder as input. Signed-off-by: Ting Fu <ting.fu@intel.com>
* avfilter/vf_guided: Add missing constAndreas Rheinhardt2021-05-11
| | | | | | Forgotten in f8d910e90f599f338438833dfc92e2f1915ce414. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* GSoC: Add guided filterXuewei Meng2021-05-10
| | | | | | | | | Add examples on how to use this filter, and improve the code style. Implement the slice-level parallelism for guided filter. Add the basic version of guided filter. Signed-off-by: Xuewei Meng <xwmeng96@gmail.com> Reviewed-by: Steven Liu <liuqi05@kuaishou.com>
* lavfi/dnn_classify: add filter dnn_classify for classification based on ↵Guo, Yejun2021-05-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | detection bounding boxes classification is done on every detection bounding box in frame's side data, which are the results of object detection (filter dnn_detect). Please refer to commit log of dnn_detect for the material for detection, and see below for classification. - download material for classifcation: wget https://github.com/guoyejun/ffmpeg_dnn/raw/main/models/openvino/2021.1/emotions-recognition-retail-0003.bin wget https://github.com/guoyejun/ffmpeg_dnn/raw/main/models/openvino/2021.1/emotions-recognition-retail-0003.xml wget https://github.com/guoyejun/ffmpeg_dnn/raw/main/models/openvino/2021.1/emotions-recognition-retail-0003.label - run command as: ./ffmpeg -i cici.jpg -vf dnn_detect=dnn_backend=openvino:model=face-detection-adas-0001.xml:input=data:output=detection_out:confidence=0.6:labels=face-detection-adas-0001.label,dnn_classify=dnn_backend=openvino:model=emotions-recognition-retail-0003.xml:input=data:output=prob_emotion:confidence=0.3:labels=emotions-recognition-retail-0003.label:target=face,showinfo -f null - We'll see the detect&classify result as below: [Parsed_showinfo_2 @ 0x55b7d25e77c0] side data - detection bounding boxes: [Parsed_showinfo_2 @ 0x55b7d25e77c0] source: face-detection-adas-0001.xml, emotions-recognition-retail-0003.xml [Parsed_showinfo_2 @ 0x55b7d25e77c0] index: 0, region: (1005, 813) -> (1086, 905), label: face, confidence: 10000/10000. [Parsed_showinfo_2 @ 0x55b7d25e77c0] classify: label: happy, confidence: 6757/10000. [Parsed_showinfo_2 @ 0x55b7d25e77c0] index: 1, region: (888, 839) -> (967, 926), label: face, confidence: 6917/10000. [Parsed_showinfo_2 @ 0x55b7d25e77c0] classify: label: anger, confidence: 4320/10000. Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
* lavfi/dnn: add classify support with openvino backendGuo, Yejun2021-05-06
| | | | Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
* lavfi/dnn: refine dnn interface to add DNNExecBaseParamsGuo, Yejun2021-05-06
| | | | | | | | | | | | | Different function type of model requires different parameters, for example, object detection detects lots of objects (cat/dog/...) in the frame, and classifcation needs to know which object (cat or dog) it is going to classify. The current interface needs to add a new function with more parameters to support new requirement, with this change, we can just add a new struct (for example DNNExecClassifyParams) based on DNNExecBaseParams, and so we can continue to use the current interface execute_model just with params changed.
* lavfi/dnn_backend_openvino.c: move the logic for batch mode earlierGuo, Yejun2021-05-06
|
* lavfi/dnn_backend_openvino.c: add InferenceItem between TaskItem and RequestItemGuo, Yejun2021-05-06
| | | | | | | There's one task item for one function call from dnn interface, there's one request item for one call to openvino. For classify, one task might need multiple inference for classification on every bounding box, so add InferenceItem.
* lavfi/dnn_backend_openvino.c: unify code for infer request for sync/asyncGuo, Yejun2021-05-06
|
* lavfi/dnn_backend_native_layer_avgpool.c: Correct Spelling of PixelShubhanshu Saxena2021-05-06
| | | | | | Correct spelling of word `pixel` from `pxiels` Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
* avfilter/vf_identity: fix typoLimin Wang2021-05-01
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter/vf_identity: remove unnecessary checkLimin Wang2021-05-01
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter/vf_psnr: remove unnecessary checkLimin Wang2021-05-01
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter/vf_ssim: remove unnecessary checkLimin Wang2021-05-01
| | | | | | For the pointer have been checked in the previous few lines of code Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter/vf_scale: store the offset in a local variable before adding itJames Almer2021-04-30
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/dnn/dnn_backend_tf: simplify the code with ff_hex_to_dataLimin Wang2021-04-29
| | | | | | | | please use tools/python/tf_sess_config.py to get the sess_config after that. note the byte order of session config is in normal order. bump the MICRO version for the config change. Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter: Constify all AVFiltersAndreas Rheinhardt2021-04-27
| | | | | | | This is possible now that the next-API is gone. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Signed-off-by: James Almer <jamrial@gmail.com>
* Bump major versions of all libraries.Anton Khirnov2021-04-27
| | | | | Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/buffersrc: postpone removal of sws_paramJames Almer2021-04-27
| | | | | | It was depreacted less than two years ago Signed-off-by: James Almer <jamrial@gmail.com>
* avutil: remove deprecated AVClass.child_class_nextJames Almer2021-04-27
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* libavresample: Remove deprecated libraryAndreas Rheinhardt2021-04-27
| | | | | | | | Deprecated in c29038f3041a4080342b2e333c1967d136749c0f. The resample filter based upon this library has been removed as well. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avutil/buffer: Switch AVBuffer API to size_tAndreas Rheinhardt2021-04-27
| | | | | | | Announced in 14040a1d913794d9a3fd6406a6d8c2f0e37e0062. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avutil/pixdesc: Remove deprecated AV_PIX_FMT_FLAG_PSEUDOPALAndreas Rheinhardt2021-04-27
| | | | | | | Deprecated in d6fc031caf64eed921bbdef86d79d56bfc2633b0. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avutil/frame: Remove deprecated AVFrame.errorAndreas Rheinhardt2021-04-27
| | | | | | | Deprecated in 1aa24df74c052a73175c43e57d35b4835e537ec8. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avutil/frame: Remove AVFrame QP table APIAndreas Rheinhardt2021-04-27
| | | | | | | | Originally deprecated in 1296b1f6c0631ab79464e22d48a6a1548450b943; scheduled again for removal in a9915268327b097bba84a07f68968d8c07f4b549. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/Makefile: Don't compile transform.c unconditionallyAndreas Rheinhardt2021-04-27
| | | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/transform: Stop exporting internal functionsAndreas Rheinhardt2021-04-27
| | | | | | | | | | | | avfilter_transform, avfilter_(add|sub|mult)_matrix are not part of the public API (transform.h is not a public header), yet they are currently exported because of their name. This commit changes this: avfilter_transform is renamed to ff_affine_transform; the other functions are just removed as they have never been used at all. Found-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/formats: Remove avfilter_make_format64_list()Andreas Rheinhardt2021-04-27
| | | | | | | | The API it is part of has been made private long ago (see commit b74a1da49db5ebed51aceae6cacc2329288a92c1). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/avfilter: Remove deprecated avfilter_link_set_closed()Andreas Rheinhardt2021-04-27
| | | | | | | Deprecated in 39a09e995d32d16e4f8c87a6ff5273cb9d98146e. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>