@@ -63,7 +63,7 @@ INT32 main(INT32 argc, CHAR* argv[])
63
63
CHAR frameFilePath [MAX_PATH_LEN + 1 ], metadataKey [METADATA_MAX_KEY_LENGTH + 1 ], metadataValue [METADATA_MAX_VALUE_LENGTH + 1 ];
64
64
Frame frame ;
65
65
BYTE frameBuffer [200000 ]; // Assuming this is enough
66
- UINT32 frameSize = SIZEOF (frameBuffer ), frameIndex = 0 , fileIndex = 0 , n = 0 , numMetadata = 10 ;
66
+ UINT32 frameSize = SIZEOF (frameBuffer ), frameIndex = 0 , fileIndex = 0 , n = 0 , numMetadata = 9 ;
67
67
UINT64 streamStopTime , streamingDuration = DEFAULT_STREAM_DURATION ;
68
68
DOUBLE startUpLatency ;
69
69
BOOL firstFrame = TRUE;
@@ -84,7 +84,7 @@ INT32 main(INT32 argc, CHAR* argv[])
84
84
#else
85
85
if (argc < 2 ) {
86
86
DLOGE ("Usage: AWS_ACCESS_KEY_ID=SAMPLEKEY AWS_SECRET_ACCESS_KEY=SAMPLESECRET %s <stream_name>"
87
- "<codec> <duration_in_seconds> <frame_files_path> [num_metadata = 10 ]\n" ,
87
+ "<codec> <duration_in_seconds> <frame_files_path> [num_metadata = 9 ]\n" ,
88
88
argv [0 ]);
89
89
CHK (FALSE, STATUS_INVALID_ARG );
90
90
}
@@ -128,7 +128,7 @@ INT32 main(INT32 argc, CHAR* argv[])
128
128
if (argc >= 6 && !IS_EMPTY_STRING (argv [5 ])) {
129
129
numMetadata = STRTOUL (argv [5 ], NULL , 10 );
130
130
DLOGD ("numMetadata: %d\n" , numMetadata );
131
- CHK (numMetadata <= MAX_METADATA_PER_FRAGMENT , STATUS_INVALID_ARG );
131
+ CHK (numMetadata <= MAX_METADATA_PER_FRAGMENT - 1 , STATUS_INVALID_ARG );
132
132
}
133
133
134
134
streamStopTime = GETTIME () + streamingDuration ;
@@ -183,17 +183,6 @@ INT32 main(INT32 argc, CHAR* argv[])
183
183
184
184
CHK_STATUS (readFrameData (& frame , frameFilePath , videoCodec ));
185
185
186
- // Add the fragment metadata key-value pairs
187
- // For limits, refer to https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/limits.html#limits-streaming-metadata
188
- if (numMetadata > 0 && frame .flags == FRAME_FLAG_KEY_FRAME ) {
189
- DLOGD ("Adding metadata! frameIndex: %d" , frame .index );
190
- for (n = 1 ; n <= numMetadata ; n ++ ) {
191
- SNPRINTF (metadataKey , METADATA_MAX_KEY_LENGTH , "TEST_KEY_%d" , n );
192
- SNPRINTF (metadataValue , METADATA_MAX_VALUE_LENGTH , "TEST_VALUE_%d" , frame .index + n );
193
- CHK_STATUS (putKinesisVideoFragmentMetadata (streamHandle , metadataKey , metadataValue , TRUE));
194
- }
195
- }
196
-
197
186
CHK_STATUS (putKinesisVideoFrame (streamHandle , & frame ));
198
187
if (firstFrame ) {
199
188
startUpLatency = (DOUBLE ) (GETTIME () - startTime ) / (DOUBLE ) HUNDREDS_OF_NANOS_IN_A_MILLISECOND ;
@@ -202,6 +191,16 @@ INT32 main(INT32 argc, CHAR* argv[])
202
191
}
203
192
defaultThreadSleep (frame .duration );
204
193
194
+ // Add the fragment metadata key-value pairs
195
+ // For limits, refer to https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/limits.html#limits-streaming-metadata
196
+ if (frame .flags == FRAME_FLAG_KEY_FRAME ) {
197
+ for (n = 1 ; n <= numMetadata ; n ++ ) {
198
+ SNPRINTF (metadataKey , METADATA_MAX_KEY_LENGTH , "TEST_KEY_%d" , n );
199
+ SNPRINTF (metadataValue , METADATA_MAX_VALUE_LENGTH , "TEST_VALUE_%d" , frame .index + n );
200
+ CHK_STATUS (putKinesisVideoFragmentMetadata (streamHandle , metadataKey , metadataValue , FALSE));
201
+ }
202
+ }
203
+
205
204
frame .decodingTs += frame .duration ;
206
205
frame .presentationTs = frame .decodingTs ;
207
206
frameIndex ++ ;
0 commit comments