@@ -110,22 +110,33 @@ enum
110110#define TIOVX_COLOR_CONVERT_SUPPORTED_FORMATS_SINK "{RGB, RGBx, NV12, NV21, UYVY, YUY2, I420}"
111111#define TIOVX_COLOR_CONVERT_SUPPORTED_WIDTH "[1 , 8192]"
112112#define TIOVX_COLOR_CONVERT_SUPPORTED_HEIGHT "[1 , 8192]"
113+ #define TIOVX_COLOR_CONVERT_SUPPORTED_CHANNELS "[1 , 16]"
113114
114115/* Src caps */
115- #define TIOVX_COLOR_CONVERT_STATIC_CAPS_SRC \
116- "video/x-raw, " \
117- "format = (string) " TIOVX_COLOR_CONVERT_SUPPORTED_FORMATS_SRC ", " \
118- "width = " TIOVX_COLOR_CONVERT_SUPPORTED_WIDTH ", " \
119- "height = " TIOVX_COLOR_CONVERT_SUPPORTED_HEIGHT ", " \
120- "framerate = " GST_VIDEO_FPS_RANGE
116+ #define TIOVX_COLOR_CONVERT_STATIC_CAPS_SRC \
117+ "video/x-raw, " \
118+ "format = (string) " TIOVX_COLOR_CONVERT_SUPPORTED_FORMATS_SRC ", " \
119+ "width = " TIOVX_COLOR_CONVERT_SUPPORTED_WIDTH ", " \
120+ "height = " TIOVX_COLOR_CONVERT_SUPPORTED_HEIGHT \
121+ "; " \
122+ "video/x-raw(" GST_CAPS_FEATURE_BATCHED_MEMORY "), " \
123+ "format = (string) " TIOVX_COLOR_CONVERT_SUPPORTED_FORMATS_SRC ", " \
124+ "width = " TIOVX_COLOR_CONVERT_SUPPORTED_WIDTH ", " \
125+ "height = " TIOVX_COLOR_CONVERT_SUPPORTED_HEIGHT ", " \
126+ "num-channels = " TIOVX_COLOR_CONVERT_SUPPORTED_CHANNELS \
121127
122128/* Sink caps */
123- #define TIOVX_COLOR_CONVERT_STATIC_CAPS_SINK \
124- "video/x-raw, " \
125- "format = (string) " TIOVX_COLOR_CONVERT_SUPPORTED_FORMATS_SINK ", " \
126- "width = " TIOVX_COLOR_CONVERT_SUPPORTED_WIDTH ", " \
127- "height = " TIOVX_COLOR_CONVERT_SUPPORTED_HEIGHT ", " \
128- "framerate = " GST_VIDEO_FPS_RANGE
129+ #define TIOVX_COLOR_CONVERT_STATIC_CAPS_SINK \
130+ "video/x-raw, " \
131+ "format = (string) " TIOVX_COLOR_CONVERT_SUPPORTED_FORMATS_SINK ", " \
132+ "width = " TIOVX_COLOR_CONVERT_SUPPORTED_WIDTH ", " \
133+ "height = " TIOVX_COLOR_CONVERT_SUPPORTED_HEIGHT \
134+ "; " \
135+ "video/x-raw(" GST_CAPS_FEATURE_BATCHED_MEMORY "), " \
136+ "format = (string) " TIOVX_COLOR_CONVERT_SUPPORTED_FORMATS_SINK ", " \
137+ "width = " TIOVX_COLOR_CONVERT_SUPPORTED_WIDTH ", " \
138+ "height = " TIOVX_COLOR_CONVERT_SUPPORTED_HEIGHT ", " \
139+ "num-channels = " TIOVX_COLOR_CONVERT_SUPPORTED_CHANNELS
129140
130141/* Pads definitions */
131142static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink" ,
@@ -495,6 +506,7 @@ gst_tiovx_color_convert_init_module (GstTIOVXSiso * trans, vx_context context,
495506 TIOVXColorConvertModuleObj * colorconvert = NULL ;
496507 GstVideoInfo in_info ;
497508 GstVideoInfo out_info ;
509+ gboolean ret = FALSE;
498510
499511 g_return_val_if_fail (trans , FALSE);
500512 g_return_val_if_fail (VX_SUCCESS == vxGetStatus ((vx_reference ) context ),
@@ -510,16 +522,16 @@ gst_tiovx_color_convert_init_module (GstTIOVXSiso * trans, vx_context context,
510522
511523 if (!gst_video_info_from_caps (& in_info , in_caps )) {
512524 GST_ERROR_OBJECT (self , "Failed to get video info from input caps" );
513- return FALSE ;
525+ goto exit ;
514526 }
515527 if (!gst_video_info_from_caps (& out_info , out_caps )) {
516528 GST_ERROR_OBJECT (self , "Failed to get video info from output caps" );
517- return FALSE ;
529+ goto exit ;
518530 }
519531
520532 /* Configure TIOVXColorConvertModuleObj */
521533 colorconvert = & self -> obj ;
522- colorconvert -> num_channels = DEFAULT_NUM_CHANNELS ;
534+ colorconvert -> num_channels = num_channels ;
523535 colorconvert -> input .bufq_depth = num_channels ;
524536 colorconvert -> output .bufq_depth = num_channels ;
525537
@@ -539,10 +551,13 @@ gst_tiovx_color_convert_init_module (GstTIOVXSiso * trans, vx_context context,
539551 status = tiovx_color_convert_module_init (context , colorconvert );
540552 if (VX_SUCCESS != status ) {
541553 GST_ERROR_OBJECT (self , "Module init failed with error: %d" , status );
542- return FALSE ;
554+ goto exit ;
543555 }
556+ ret = TRUE;
544557
545- return TRUE;
558+ exit :
559+
560+ return ret ;
546561}
547562
548563static gboolean
0 commit comments