@@ -470,19 +470,6 @@ static GstFlowReturn on_new_sample(GstElement *sink, CustomData *data) {
470470 } else {
471471 if (key_frame_count % KEYFRAME_EVENT_INTERVAL == 0 ) {
472472 key_frame_count = 0 ;
473- switch (gEvents ) {
474- case 1 :
475- data->kinesis_video_stream ->putEventMetadata (STREAM_EVENT_TYPE_NOTIFICATION, NULL );
476- break ;
477- case 2 :
478- data->kinesis_video_stream ->putEventMetadata (STREAM_EVENT_TYPE_IMAGE_GENERATION, NULL );
479- break ;
480- case 3 :
481- data->kinesis_video_stream ->putEventMetadata (STREAM_EVENT_TYPE_NOTIFICATION | STREAM_EVENT_TYPE_IMAGE_GENERATION, NULL );
482- break ;
483- default :
484- break ;
485- }
486473 }
487474 kinesis_video_flags = FRAME_FLAG_KEY_FRAME;
488475 key_frame_count++;
@@ -516,6 +503,29 @@ static GstFlowReturn on_new_sample(GstElement *sink, CustomData *data) {
516503
517504 data->kinesis_video_stream ->putFrame (frame);
518505
506+ // Sample to demonstrate how event metadata tags can be generated for fragment(s)
507+ // Ref: https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/notifications.html
508+ // https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/images.html
509+ if (CHECK_FRAME_FLAG_KEY_FRAME (frame.flags )) {
510+ // Add event metadata after key frame
511+ switch (gEvents ) {
512+ case 1 :
513+ DLOGI (" Adding metadata for notification" );
514+ data->kinesis_video_stream ->putEventMetadata (STREAM_EVENT_TYPE_NOTIFICATION, NULL );
515+ break ;
516+ case 2 :
517+ DLOGI (" Adding the metadata for image generation" );
518+ data->kinesis_video_stream ->putEventMetadata (STREAM_EVENT_TYPE_IMAGE_GENERATION, NULL );
519+ break ;
520+ case 3 :
521+ DLOGI (" Adding the metadata for both notification and image generaion" );
522+ data->kinesis_video_stream ->putEventMetadata (STREAM_EVENT_TYPE_NOTIFICATION | STREAM_EVENT_TYPE_IMAGE_GENERATION, NULL );
523+ break ;
524+ default :
525+ break ;
526+ }
527+ }
528+
519529CleanUp:
520530
521531 if (info.data != nullptr ) {
0 commit comments