@@ -110,22 +110,35 @@ 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+ "num-channels = 1" \
122+ "; " \
123+ "video/x-raw(" GST_CAPS_FEATURE_BATCHED_MEMORY "), " \
124+ "format = (string) " TIOVX_COLOR_CONVERT_SUPPORTED_FORMATS_SRC ", " \
125+ "width = " TIOVX_COLOR_CONVERT_SUPPORTED_WIDTH ", " \
126+ "height = " TIOVX_COLOR_CONVERT_SUPPORTED_HEIGHT ", " \
127+ "num-channels = " TIOVX_COLOR_CONVERT_SUPPORTED_CHANNELS \
121128
122129/* 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
130+ #define TIOVX_COLOR_CONVERT_STATIC_CAPS_SINK \
131+ "video/x-raw, " \
132+ "format = (string) " TIOVX_COLOR_CONVERT_SUPPORTED_FORMATS_SINK ", " \
133+ "width = " TIOVX_COLOR_CONVERT_SUPPORTED_WIDTH ", " \
134+ "height = " TIOVX_COLOR_CONVERT_SUPPORTED_HEIGHT ", " \
135+ "num-channels = 1" \
136+ "; " \
137+ "video/x-raw(" GST_CAPS_FEATURE_BATCHED_MEMORY "), " \
138+ "format = (string) " TIOVX_COLOR_CONVERT_SUPPORTED_FORMATS_SINK ", " \
139+ "width = " TIOVX_COLOR_CONVERT_SUPPORTED_WIDTH ", " \
140+ "height = " TIOVX_COLOR_CONVERT_SUPPORTED_HEIGHT ", " \
141+ "num-channels = " TIOVX_COLOR_CONVERT_SUPPORTED_CHANNELS
129142
130143/* Pads definitions */
131144static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink" ,
@@ -495,6 +508,7 @@ gst_tiovx_color_convert_init_module (GstTIOVXSiso * trans, vx_context context,
495508 TIOVXColorConvertModuleObj * colorconvert = NULL ;
496509 GstVideoInfo in_info ;
497510 GstVideoInfo out_info ;
511+ gboolean ret = FALSE;
498512
499513 g_return_val_if_fail (trans , FALSE);
500514 g_return_val_if_fail (VX_SUCCESS == vxGetStatus ((vx_reference ) context ),
@@ -510,16 +524,16 @@ gst_tiovx_color_convert_init_module (GstTIOVXSiso * trans, vx_context context,
510524
511525 if (!gst_video_info_from_caps (& in_info , in_caps )) {
512526 GST_ERROR_OBJECT (self , "Failed to get video info from input caps" );
513- return FALSE ;
527+ goto exit ;
514528 }
515529 if (!gst_video_info_from_caps (& out_info , out_caps )) {
516530 GST_ERROR_OBJECT (self , "Failed to get video info from output caps" );
517- return FALSE ;
531+ goto exit ;
518532 }
519533
520534 /* Configure TIOVXColorConvertModuleObj */
521535 colorconvert = & self -> obj ;
522- colorconvert -> num_channels = DEFAULT_NUM_CHANNELS ;
536+ colorconvert -> num_channels = num_channels ;
523537 colorconvert -> input .bufq_depth = num_channels ;
524538 colorconvert -> output .bufq_depth = num_channels ;
525539
@@ -539,10 +553,13 @@ gst_tiovx_color_convert_init_module (GstTIOVXSiso * trans, vx_context context,
539553 status = tiovx_color_convert_module_init (context , colorconvert );
540554 if (VX_SUCCESS != status ) {
541555 GST_ERROR_OBJECT (self , "Module init failed with error: %d" , status );
542- return FALSE ;
556+ goto exit ;
543557 }
558+ ret = TRUE;
544559
545- return TRUE;
560+ exit :
561+
562+ return ret ;
546563}
547564
548565static gboolean
0 commit comments