Transforming GstMeta for saturation overlays

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Transforming GstMeta for saturation overlays

Josh Doe
I'd like to create a pair of video filters, the first basically creates a mask, indicating which pixels are saturated (or just over/under a threshold), which are "stuck" (haven't changed in the last N frames), perhaps adding other criteria in the future. A second element would apply some visualizations to the stream, such as zebra stripes or flashing colors. I'm aware of the existing zebrastripe element, but it doesn't quite fit my need, as I typically perform transformations to the video, such as contrast stretching, mapping 16-bit to 8-bit, or scaling, but want the criteria applied to the raw input video.

If I create a new GstMeta in the first element, which will contain the mask, the meta will be invalid if videoscale, videoflip, videocrop, or any number of other transformations occur.

I see there is a GstMetaTransformFunction, which gave me hope, but I can't find any usages. Anything I'm missing? Thanks!

-Josh

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Transforming GstMeta for saturation overlays

Nicolas Dufresne-4
Le mardi 12 juillet 2016 à 07:36 -0400, Josh Doe a écrit :
> I see there is a GstMetaTransformFunction, which gave me hope, but I
> can't find any usages. Anything I'm missing? Thanks!

Look into GStreamer Video library. You'll see that there is already a
Scale transformation for metas. It can be extended for you needs of
course.

Nicolas
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (188 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Transforming GstMeta for saturation overlays

Tim Müller
In reply to this post by Josh Doe
On Tue, 2016-07-12 at 07:36 -0400, Josh Doe wrote:

Hi Josh,

> I'd like to create a pair of video filters, the first basically
> creates a mask, indicating which pixels are saturated (or just
> over/under a threshold), which are "stuck" (haven't changed in the
> last N frames), perhaps adding other criteria in the future. A second
> element would apply some visualizations to the stream, such as zebra
> stripes or flashing colors. I'm aware of the existing zebrastripe
> element, but it doesn't quite fit my need, as I typically perform
> transformations to the video, such as contrast stretching, mapping
> 16-bit to 8-bit, or scaling, but want the criteria applied to the raw
> input video.
>
> If I create a new GstMeta in the first element, which will contain
> the mask, the meta will be invalid if videoscale, videoflip,
> videocrop, or any number of other transformations occur.
>
> I see there is a GstMetaTransformFunction, which gave me hope, but I
> can't find any usages. Anything I'm missing? Thanks!

Make sure to use a recent version of GStreamer, there have been some
changes/fixes to make sure metas get passed through in many places.

Make sure your metas carry the right tags and implement a transform
function to make sure they don't get dropped. As Nicolas pointed out,
check out the existing ones in the video library.

Cheers
 -Tim

--

Tim Müller, Centricular Ltd - http://www.centricular.com
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Transforming GstMeta for saturation overlays

Josh Doe
On Wed, Jul 13, 2016 at 2:33 AM, Tim Müller <[hidden email]> wrote:

Make sure to use a recent version of GStreamer, there have been some
changes/fixes to make sure metas get passed through in many places.

Make sure your metas carry the right tags and implement a transform
function to make sure they don't get dropped. As Nicolas pointed out,
check out the existing ones in the video library.

Thanks Nicolas and Tim, I'll give it a go, seems pretty straightforward.

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel