vaapipostproc: a previous colorbalance item is reset if other changes
Hi all,
i’m facing an issue related to gstreamers module “vaapipostproc” in version 1.14.4. I’m trying to adjust the colorbalance of a video stream by setting the following properties
- saturation
- contrast
- brightness
while active streaming.
I’m doing this by setting the following properties:
g_object_set( G_OBJECT( vaapipostproc ), "saturation", saturation, NULL ); g_object_set( G_OBJECT( vaapipostproc ), "contrast", contrast, NULL ); g_object_set( G_OBJECT( vaapipostproc ), "brightness", brightness, NULL );
whereas saturation, contrast and brightness are properly initialized gfloat variables.
It seems that there is a domination order contrast > brightness > saturation.
I’ll explain this shortly:
Case I:
- Setting saturation to maximum -> Image is properly adjusted
- Minimal reduction of brightness -> Saturation of image is reset
- Resetting brightness to default value -> Image has again the saturation of (1)
Case II:
- Setting brightness to maximum -> Image is properly adjusted
- Minimal reduction of contrast -> Brightness of image is reset
- Resetting contrast to default value -> Image has again the brightness of (1)
Case III:
- Setting saturation to maximum -> Image is properly adjusted
- Minimal reduction of contrast -> Saturation of the image is reset
- Resetting the contrast to default value -> Image has again the saturation of (1)
I’ve checked this behavior by setting the property values programmatically in code and also by setting up the pipeline with the corresponding values up front.
Am I doing wrong, or is there a bug in the module “vaapipostproc”?
For further diagnosis i've attached a logfile from vaapipostproc, which was recorded while changing the parameters from above (recorded at loglevel 5). My pipeline is configured as follows:
udpsrc port=50004 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96" ! rtph264depay ! vaapih264dec ! vaapipostproc name=postproc ! video/x-raw, format=RGBA ! appsink name=sink emit-signals=true sync=false max-buffers=1 drop=true"
Thanks in advance!
Best regards Michael