@@ -316,6 +316,61 @@ TEST_F(RtpFunctionalityTest, packingUnpackingVerifySameOpusFrame)
316
316
MEMFREE (depayload);
317
317
}
318
318
319
+ TEST_F (RtpFunctionalityTest, packingUnpackingVerifySameAacFrame)
320
+ {
321
+ BYTE payload[] = {0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 };
322
+ PBYTE depayload = (PBYTE) MEMALLOC (1500 ); // This is more than max mtu
323
+ UINT32 depayloadSize = 1500 ;
324
+ UINT32 payloadLen = 6 ;
325
+ PayloadArray payloadArray;
326
+ UINT32 newPayloadSubLen = 0 ;
327
+
328
+ payloadArray.maxPayloadLength = 0 ;
329
+ payloadArray.maxPayloadSubLenSize = 0 ;
330
+ payloadArray.payloadBuffer = NULL ;
331
+ payloadArray.payloadSubLength = NULL ;
332
+
333
+ // First call for payload size and sub payload length size
334
+ EXPECT_EQ (STATUS_SUCCESS,
335
+ createPayloadForAac (DEFAULT_MTU_SIZE_BYTES, (PBYTE) &payload, payloadLen, NULL , &payloadArray.payloadLength , NULL ,
336
+ &payloadArray.payloadSubLenSize ));
337
+
338
+ if (payloadArray.payloadLength > payloadArray.maxPayloadLength ) {
339
+ if (payloadArray.payloadBuffer != NULL ) {
340
+ MEMFREE (payloadArray.payloadBuffer );
341
+ }
342
+ payloadArray.payloadBuffer = (PBYTE) MEMALLOC (payloadArray.payloadLength );
343
+ payloadArray.maxPayloadLength = payloadArray.payloadLength ;
344
+ }
345
+ if (payloadArray.payloadSubLenSize > payloadArray.maxPayloadSubLenSize ) {
346
+ if (payloadArray.payloadSubLength != NULL ) {
347
+ MEMFREE (payloadArray.payloadSubLength );
348
+ }
349
+ payloadArray.payloadSubLength = (PUINT32) MEMALLOC (payloadArray.payloadSubLenSize * SIZEOF (UINT32));
350
+ payloadArray.maxPayloadSubLenSize = payloadArray.payloadSubLenSize ;
351
+ }
352
+
353
+ // Second call with actual buffer to fill in data
354
+ EXPECT_EQ (STATUS_SUCCESS,
355
+ createPayloadForAac (DEFAULT_MTU_SIZE_BYTES, (PBYTE) &payload, payloadLen, payloadArray.payloadBuffer , &payloadArray.payloadLength ,
356
+ payloadArray.payloadSubLength , &payloadArray.payloadSubLenSize ));
357
+
358
+ EXPECT_EQ (1 , payloadArray.payloadSubLenSize );
359
+ EXPECT_EQ (6 , payloadArray.payloadSubLength [0 ]);
360
+
361
+ EXPECT_EQ (STATUS_SUCCESS, depayAacFromRtpPayload (payloadArray.payloadBuffer , payloadArray.payloadSubLength [0 ], NULL , &newPayloadSubLen, NULL ));
362
+ EXPECT_EQ (6 , newPayloadSubLen);
363
+
364
+ newPayloadSubLen = depayloadSize;
365
+ EXPECT_EQ (STATUS_SUCCESS,
366
+ depayAacFromRtpPayload (payloadArray.payloadBuffer , payloadArray.payloadSubLength [0 ], depayload, &newPayloadSubLen, NULL ));
367
+ EXPECT_TRUE (MEMCMP (payload, depayload, newPayloadSubLen) == 0 );
368
+
369
+ MEMFREE (payloadArray.payloadBuffer );
370
+ MEMFREE (payloadArray.payloadSubLength );
371
+ MEMFREE (depayload);
372
+ }
373
+
319
374
TEST_F (RtpFunctionalityTest, packingUnpackingVerifySameShortG711Frame)
320
375
{
321
376
BYTE payload[] = {0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 };
0 commit comments