{
  "name": "filters",
  "version": "7.2.0",
  "kurentoVersion": "^7.1.0",
  "imports": [
    {
      "name": "core",
      "version": "^7.1.0",
      "mavenVersion": "[7.1.0,8.0.0-SNAPSHOT)",
      "npmVersion": ">=7.1.0 <8.0.0"
    },
    {
      "name": "elements",
      "version": "^7.1.0",
      "mavenVersion": "[7.1.0,8.0.0-SNAPSHOT)",
      "npmVersion": ">=7.1.0 <8.0.0"
    }
  ],
  "code": {
    "kmd": {
      "java": {
        "mavenGroupId": "org.kurento",
        "mavenArtifactId": "kms-api-filters",
        "mavenVersion": "7.2.0"
      }
    },
    "api": {
      "java": {
        "packageName": "org.kurento.client",
        "mavenGroupId": "org.kurento",
        "mavenArtifactId": "kurento-client",
        "mavenVersion": "7.2.0"
      },
      "js": {
        "nodeName": "kurento-client-filters",
        "npmDescription": "JavaScript Client API for Kurento Media Server",
        "npmGit": "https://github.com/Kurento/kurento-client-filters-js.git",
        "npmVersion": "7.2.0"
      }
    },
    "implementation": {
      "cppNamespace": "kurento",
      "lib": "libkmsfilters"
    }
  },
  "remoteClasses": [
    {
      "name": "FaceOverlayFilter",
      "doc": "FaceOverlayFilter interface. This type of :rom:cls:`Filter` detects faces in a video feed. The face is then overlaid with an image.",
      "extends": "Filter",
      "constructor": {
        "params": [
          {
            "name": "mediaPipeline",
            "doc": "pipeline to which this :rom:cls:`Filter` belons",
            "type": "MediaPipeline"
          }
        ],
        "doc": "FaceOverlayFilter interface. This type of :rom:cls:`Filter` detects faces in a video feed. The face is then overlaid with an image."
      },
      "methods": [
        {
          "params": [],
          "name": "unsetOverlayedImage",
          "doc": "Clear the image to be shown over each detected face. Stops overlaying the faces."
        },
        {
          "params": [
            {
              "name": "uri",
              "doc": "URI where the image is located",
              "type": "String"
            },
            {
              "name": "offsetXPercent",
              "doc": "the offset applied to the image, from the X coordinate of the detected face upper right corner. A positive value indicates right displacement, while a negative value moves the overlaid image to the left. This offset is specified as a percentage of the face width.\n\nFor example, to cover the detected face with the overlaid image, the parameter has to be ``0.0``. Values of ``1.0`` or ``-1.0`` indicate that the image upper right corner will be at the face´s X coord, +- the face´s width.\n\n.. note::\n\n    The parameter name is misleading, the value is not a percent but a ratio",
              "type": "float"
            },
            {
              "name": "offsetYPercent",
              "doc": "the offset applied to the image, from the Y coordinate of the detected face upper right corner. A positive value indicates up displacement, while a negative value moves the overlaid image down. This offset is specified as a percentage of the face width.\n\nFor example, to cover the detected face with the overlaid image, the parameter has to be ``0.0``. Values of ``1.0`` or ``-1.0`` indicate that the image upper right corner will be at the face´s Y coord, +- the face´s width.\n\n.. note::\n\n    The parameter name is misleading, the value is not a percent but a ratio",
              "type": "float"
            },
            {
              "name": "widthPercent",
              "doc": "proportional width of the overlaid image, relative to the width of the detected face. A value of 1.0 implies that the overlaid image will have the same width as the detected face. Values greater than 1.0 are allowed, while negative values are forbidden.\n\n.. note::\n\n    The parameter name is misleading, the value is not a percent but a ratio",
              "type": "float"
            },
            {
              "name": "heightPercent",
              "doc": "proportional height of the overlaid image, relative to the height of the detected face. A value of 1.0 implies that the overlaid image will have the same height as the detected face. Values greater than 1.0 are allowed, while negative values are forbidden.\n\n.. note::\n\n    The parameter name is misleading, the value is not a percent but a ratio",
              "type": "float"
            }
          ],
          "name": "setOverlayedImage",
          "doc": "Sets the image to use as overlay on the detected faces."
        }
      ]
    },
    {
      "name": "GStreamerFilter",
      "doc": "A generic filter that allows injecting a single GStreamer element.\n<p>\n  The current implementation of GStreamerFilter only allows single elements to\n  be injected; one cannot indicate more than one at the same time; use several\n  GStreamerFilters if you need to inject more than one element into the\n  pipeline.\n</p>\n<p>\n  Note that usage of some popular GStreamer elements requires installation of\n  additional packages. For example, overlay elements such as\n  <em>timeoverlay</em> or <em>textoverlay</em> require installation of the\n  <strong>gstreamer1.0-x</strong> package, which will also install the\n  <em>Pango</em> rendering library.\n</p>\n      ",
      "extends": "Filter",
      "constructor": {
        "params": [
          {
            "name": "mediaPipeline",
            "doc": "the :rom:cls:`MediaPipeline` to which the filter belongs",
            "type": "MediaPipeline"
          },
          {
            "name": "command",
            "doc": "String used to instantiate the GStreamer element, as in gst-launch (https://gstreamer.freedesktop.org/documentation/tools/gst-launch.html).",
            "type": "String"
          },
          {
            "name": "filterType",
            "doc": "Sets the filter as Audio, Video, or Autodetect.",
            "type": "FilterType",
            "optional": true,
            "defaultValue": "AUTODETECT"
          }
        ],
        "doc": "Create a :rom:cls:`GStreamerFilter`."
      },
      "properties": [
        {
          "name": "command",
          "doc": "String used to instantiate the GStreamer element, as in gst-launch (https://gstreamer.freedesktop.org/documentation/tools/gst-launch.html).",
          "type": "String",
          "readOnly": true
        }
      ],
      "methods": [
        {
          "params": [
            {
              "name": "propertyName",
              "doc": "Name of the property that needs to be modified in the GStreamer element.",
              "type": "String"
            },
            {
              "name": "propertyValue",
              "doc": "Value that must be assigned to the property.",
              "type": "String"
            }
          ],
          "name": "setElementProperty",
          "doc": "Provide a value to one of the GStreamer element's properties."
        }
      ]
    },
    {
      "name": "ImageOverlayFilter",
      "doc": "ImageOverlayFilter interface. This type of :rom:cls:`Filter` draws an image in a configured position over a video feed.",
      "extends": "Filter",
      "constructor": {
        "params": [
          {
            "name": "mediaPipeline",
            "doc": "pipeline to which this :rom:cls:`Filter` belongs",
            "type": "MediaPipeline"
          }
        ],
        "doc": "ImageOverlayFilter interface. This type of :rom:cls:`Filter` draws an image in a configured position over a video feed."
      },
      "methods": [
        {
          "params": [
            {
              "name": "id",
              "doc": "Image ID to be removed",
              "type": "String"
            }
          ],
          "name": "removeImage",
          "doc": "Remove the image with the given ID."
        },
        {
          "params": [
            {
              "name": "id",
              "doc": "image ID",
              "type": "String"
            },
            {
              "name": "uri",
              "doc": "URI where the image is located",
              "type": "String"
            },
            {
              "name": "offsetXPercent",
              "doc": "Percentage relative to the image width to calculate the X coordinate of the position (left upper corner) [0..1]",
              "type": "float"
            },
            {
              "name": "offsetYPercent",
              "doc": "Percentage relative to the image height to calculate the Y coordinate of the position (left upper corner) [0..1]",
              "type": "float"
            },
            {
              "name": "widthPercent",
              "doc": "Proportional width of the overlaid image, relative to the width of the video [0..1].",
              "type": "float"
            },
            {
              "name": "heightPercent",
              "doc": "Proportional height of the overlaid image, relative to the height of the video [0..1].",
              "type": "float"
            },
            {
              "name": "keepAspectRatio",
              "doc": "Keep the aspect ratio of the original image.",
              "type": "boolean"
            },
            {
              "name": "center",
              "doc": "If the image doesn't fit in the dimensions, the image will be center into the region defined by height and width.",
              "type": "boolean"
            }
          ],
          "name": "addImage",
          "doc": "Add an image to be used as overlay."
        }
      ]
    },
    {
      "name": "OpenCVFilter",
      "doc": "Generic OpenCV Filter",
      "abstract": true,
      "extends": "Filter"
    },
    {
      "name": "ZBarFilter",
      "doc": "This filter detects QR codes in a video feed. When a code is found, the filter raises a :rom:evnt:`CodeFound` event.",
      "extends": "Filter",
      "constructor": {
        "params": [
          {
            "name": "mediaPipeline",
            "doc": "the :rom:cls:`MediaPipeline` to which the filter belongs",
            "type": "MediaPipeline"
          }
        ],
        "doc": "Builder for the :rom:cls:`ZBarFilter`."
      },
      "events": [
        "CodeFound"
      ]
    }
  ],
  "complexTypes": [],
  "events": [
    {
      "properties": [
        {
          "name": "codeType",
          "doc": "type of QR code found",
          "type": "String"
        },
        {
          "name": "value",
          "doc": "value contained in the QR code",
          "type": "String"
        }
      ],
      "extends": "Media",
      "name": "CodeFound",
      "doc": "Event raised by a :rom:cls:`ZBarFilter` when a code is found in the data being streamed."
    }
  ]
}
