I use nvivafilter to access the NVMM buffers. There are something in the pre_process() function that I don’t understand.
My image format is NV12. How do NV12 is store in the buffer? How do a make a pixel black?
Is there any documentations that you recommend? (I’m a newbie to this stuff)
Thank you.
Hi,
Please refer to the README:
2. Image processing APIs
a. Pre-/Post- processing
i. input parameters:
void ** sBaseAddr : mapped pointers array point to different
plane of image.
unsigned int * smemsize : actually allocated memory size array for
each image plane, no less than plane
width * height.
unsigned int * swidth : width array for each image plane
unsigned int * sheight : height array for each image plane
unsigned int * spitch : actual line width array in memory for
each image plane, no less than plane
width
ColorFormat * sformat : color format array, i.e.,
* NV12 image will have:
sformat[0] = COLOR_FORMAT_Y8
sformat[1] = COLOR_FORMAT_U8_V8
* RGBA image will have:
sformat[0] = COLOR_FORMAT_RGBA
unsigned int nsurfcount : number of planes of current image type
void ** userPtr : point to customer allocated buffer in
processing function
ii. output parameters:
none
Is there any tool to convert a .png file to RGBA format array?
Hi,
You would need to decode png through software decoder and then convert to RGBA. May try gstreamer pipeline like:
Problem with opening png sequence by gstreamer and nvvidconv - #2 by DaneLLL
Is possible to pass arguments from gstreamer pipeline to pre_process() function?
I put my pre_process() function below. I noticed that if the pipeline was left running for about 15 minutes, the jetson became very slow. Can you recommend what I should do to speed up the code? Thanks
static void
pre_process (void **sBaseAddr,
unsigned int *smemsize,
unsigned int *swidth,
unsigned int *sheight,
unsigned int *spitch,
ColorFormat *sformat,
unsigned int nsurfcount,
void ** usrptr)
{
if (sformat[0] == COLOR_FORMAT_RGBA) {
cairo_surface_t *surface, *mask_surface;
cairo_t *cairo_context;
surface = cairo_image_surface_create_for_data
((unsigned char *)sBaseAddr[0], CAIRO_FORMAT_ARGB32, swidth[0],
sheight[0], spitch[0]);
cairo_context = cairo_create (surface);
mask_surface = cairo_image_surface_create_from_png("Square_Mask_v2p00.png");
cairo_set_source_surface(cairo_context, mask_surface, 0.0, 0.0);
cairo_paint(cairo_context);
cairo_destroy (cairo_context);
cairo_surface_destroy (surface);
}
}
Hi,
Please run $ sudo nvpmodel -m 0 and $ sudo jetson_clocks to run CPU cores at maximum clock. This shall bring optimal perofrmance.
And please run $ sudo jetson_clocks to check system status. Probably the system has hit thermal condition and gets slow.
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.