@@ -22,6 +22,51 @@
#define AVFILTER_BBOX_H
#include <stdint.h>
+#include "libavutil/rational.h"
+
+typedef struct BoundingBoxHeader {
+ /*
+ * Information about how the bounding box is generated.
+ * for example, the DNN model name.
+ */
+ char source[128];
+
+ /* Must be set to the size of BoundingBox (that is,
+ * sizeof(BoundingBox)).
+ */
+ uint32_t bbox_size;
+} BoundingBoxHeader;
+
+typedef struct BoundingBox {
+ /**
+ * Distance in pixels from the top edge of the frame to top
+ * and bottom, and from the left edge of the frame to left and
+ * right, defining the bounding box.
+ */
+ int top;
+ int left;
+ int bottom;
+ int right;
+
+#define BBOX_LABEL_NAME_MAX_LENGTH 32
+
+ /**
+ * Detect result with confidence
+ */
+ char detect_label[BBOX_LABEL_NAME_MAX_LENGTH+1];
+ AVRational detect_confidence;
+
+ /**
+ * At most 4 classifications based on the detected bounding box.
+ * For example, we can get max 4 different attributes with 4 different
+ * DNN models on one bounding box.
+ * classify_count is zero if no classification.
+ */
+#define AV_NUM_BBOX_CLASSIFY 4
+ uint32_t classify_count;
+ char classify_labels[AV_NUM_BBOX_CLASSIFY][BBOX_LABEL_NAME_MAX_LENGTH+1];
+ AVRational classify_confidences[AV_NUM_BBOX_CLASSIFY];
+} BoundingBox;
typedef struct FFBoundingBox {
int x1, x2, y1, y2;
They will be used for filters such as detect and classify. Signed-off-by: Guo, Yejun <yejun.guo@intel.com> --- libavfilter/bbox.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+)