libxcoder  5.2.0
ni_filter_utils.h
Go to the documentation of this file.
1 /*******************************************************************************
2  *
3  * Copyright (C) 2022 NETINT Technologies
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a copy
6  * of this software and associated documentation files (the "Software"), to deal
7  * in the Software without restriction, including without limitation the rights
8  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9  * copies of the Software, and to permit persons to whom the Software is
10  * furnished to do so, subject to the following conditions:
11  *
12  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18  * SOFTWARE.
19  *
20  ******************************************************************************/
21 
22 /*!*****************************************************************************
23  * \file filter_utils.h
24  *
25  * \brief Video filtering utility functions shared by Libxcoder API examples
26  ******************************************************************************/
27 #pragma once
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 typedef struct _ni_scale_params
34 {
35  int enabled;
36  int width;
37  int height;
38  int format;
40 
41 typedef struct _ni_drawbox_params
42 {
43  int enabled;
44  int box_w;
45  int box_h;
46  int box_x;
47  int box_y;
49 
50 int ni_scaler_params_set_value(ni_scale_params_t *params, const char *name, const char *value);
51 int ni_drawbox_params_set_value(ni_drawbox_params_t *params, const char *name, const char *value);
52 int retrieve_filter_params(char filter_params[], ni_scale_params_t *scale_params, ni_drawbox_params_t *drawbox_params);
53 
54 void init_scaler_params(ni_scaler_input_params_t *p_scaler_params, ni_scaler_opcode_t op, int in_rec_width,
55  int in_rec_height, int in_rec_x, int in_rec_y, int out_rec_x, int out_rec_y);
56 int scaler_session_open(ni_session_context_t *p_scaler_ctx, int iXcoderGUID, ni_scaler_opcode_t op);
57 int launch_scaler_operation(ni_session_context_t *p_scaler_ctx, int iXcoderGUID,
58  ni_frame_t *p_frame_in_up, ni_frame_t *p_frame_in_bg,
59  ni_session_data_io_t *p_data_out, ni_scaler_input_params_t scaler_params);
60 
61 int drawbox_filter(ni_session_context_t *p_crop_ctx, ni_session_context_t *p_pad_ctx,
62  ni_session_context_t *p_overlay_ctx, ni_session_context_t *p_fmt_ctx,
63  ni_frame_t *p_frame_in, ni_session_data_io_t *p_data_out, ni_drawbox_params_t *p_box_params,
64  int iXcoderGUID, int input_format, int output_format);
65 int scale_filter(ni_session_context_t *p_ctx, ni_frame_t *p_frame_in,
66  ni_session_data_io_t *p_data_out, int iXcoderGUID,
67  int scale_width, int scale_height, int in_format, int out_format);
68 
69 #ifdef __cplusplus
70 }
71 #endif
_ni_scale_params::height
int height
Definition: ni_filter_utils.h:37
ni_scaler_params_set_value
int ni_scaler_params_set_value(ni_scale_params_t *params, const char *name, const char *value)
Definition: ni_filter_utils.c:33
_ni_drawbox_params::box_x
int box_x
Definition: ni_filter_utils.h:46
_ni_drawbox_params::box_y
int box_y
Definition: ni_filter_utils.h:47
init_scaler_params
void init_scaler_params(ni_scaler_input_params_t *p_scaler_params, ni_scaler_opcode_t op, int in_rec_width, int in_rec_height, int in_rec_x, int in_rec_y, int out_rec_x, int out_rec_y)
Init scaler params here - both user setting params and fixed params.
Definition: ni_filter_utils.c:178
_ni_scaler_input_params_t
Definition: ni_device_api.h:2544
launch_scaler_operation
int launch_scaler_operation(ni_session_context_t *p_scaler_ctx, int iXcoderGUID, ni_frame_t *p_frame_in_up, ni_frame_t *p_frame_in_bg, ni_session_data_io_t *p_data_out, ni_scaler_input_params_t scaler_params)
Launch scaler operation and get the result hw frame.
Definition: ni_filter_utils.c:300
ni_scale_params_t
struct _ni_scale_params ni_scale_params_t
_ni_scale_params::format
int format
Definition: ni_filter_utils.h:38
_ni_drawbox_params::box_h
int box_h
Definition: ni_filter_utils.h:45
retrieve_filter_params
int retrieve_filter_params(char filter_params[], ni_scale_params_t *scale_params, ni_drawbox_params_t *drawbox_params)
Definition: ni_filter_utils.c:104
_ni_drawbox_params::box_w
int box_w
Definition: ni_filter_utils.h:44
_ni_scale_params::width
int width
Definition: ni_filter_utils.h:36
_ni_session_data_io
Definition: ni_device_api.h:2866
drawbox_filter
int drawbox_filter(ni_session_context_t *p_crop_ctx, ni_session_context_t *p_pad_ctx, ni_session_context_t *p_overlay_ctx, ni_session_context_t *p_fmt_ctx, ni_frame_t *p_frame_in, ni_session_data_io_t *p_data_out, ni_drawbox_params_t *p_box_params, int iXcoderGUID, int input_format, int output_format)
Use crop->pad->overlay to simulate a drawbox filter.
Definition: ni_filter_utils.c:375
_ni_scale_params
Definition: ni_filter_utils.h:33
_ni_session_context
Definition: ni_device_api.h:1408
_ni_frame
Definition: ni_device_api.h:2601
ni_scaler_opcode_t
enum _ni_scaler_opcode ni_scaler_opcode_t
ni_drawbox_params_t
struct _ni_drawbox_params ni_drawbox_params_t
scale_filter
int scale_filter(ni_session_context_t *p_ctx, ni_frame_t *p_frame_in, ni_session_data_io_t *p_data_out, int iXcoderGUID, int scale_width, int scale_height, int in_format, int out_format)
Do a scale and/or format-change operation.
Definition: ni_filter_utils.c:513
_ni_scale_params::enabled
int enabled
Definition: ni_filter_utils.h:35
_ni_drawbox_params::enabled
int enabled
Definition: ni_filter_utils.h:43
ni_drawbox_params_set_value
int ni_drawbox_params_set_value(ni_drawbox_params_t *params, const char *name, const char *value)
Definition: ni_filter_utils.c:75
_ni_drawbox_params
Definition: ni_filter_utils.h:41
scaler_session_open
int scaler_session_open(ni_session_context_t *p_scaler_ctx, int iXcoderGUID, ni_scaler_opcode_t op)
open scaler session
Definition: ni_filter_utils.c:261