amazon-kinesis-video-streams-producer-sdk-cpp icon indicating copy to clipboard operation
amazon-kinesis-video-streams-producer-sdk-cpp copied to clipboard

[FEATURE] Kvssink deliver-images with putEventMetadata

Open niyatim23 opened this issue 1 year ago • 4 comments

Issue #, if available:

Description of changes:

  • Introduced a new prop / attribute in kvssink which allows enabling / disabling image-generation
  • Surfaced a public API- putEventMetadata from the C layer to the CPP layer

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Issue #, if available:

What was changed?

  • Introduced a new prop / attribute in kvssink which allows enabling / disabling image-generation

Why was it changed?

  • To maintain feature parity between producer c, cpp and kvssink

How was it changed?

  • Surfaced a public API- putEventMetadata from the C layer to the CPP layer.
  • It is invoked from gst_kvs_sink_handle_buffer for every key frame if the generate_images bool is set

What testing was done for the changes? Tested the following locally:

  • Tested that the image tags were added to the video with mkvinfo when generate-images was set to TRUE
  • Tested that setting generate-images to FALSE doesn't generate image tags in the video

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

niyatim23 avatar May 12 '24 21:05 niyatim23

As discussed in the other PR, please adjust to every N keyframes to make this feature more flexible.

Also, please edit PR title, description, GStreamer parameter description, etc to clearly mark that this feature is explicitly for s3 image delivery. The s3 delivery mkv simple tag is not needed for image generation through GetImages, and thus, "image generation" is already supported in its current state.

For completeness, can you also share an outline of the procedure you used to verify the tag was added and a screenshot of some media with the tag.

sirknightj avatar May 14 '24 00:05 sirknightj

Discussed offline waiting for a change here to trigger a call to the put event metadata API based on receiving GST_EVENT_CUSTOM_DOWNSTREAM similar to the put fragment metadata API.

hassanctech avatar May 14 '24 22:05 hassanctech

I will push for keeping consistent with the docs and calling this image delivery to avoid confusion with the other feature getimages https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/gs-getImages.html

Also, please update the readme as there is no information about how to use it.

sirknightj avatar Jun 22 '24 02:06 sirknightj

@niyatim23 Do you have any updates for this PR? This feature would be really useful! 👍

jameselsey avatar Jan 15 '25 04:01 jameselsey