vdr-plugin-softhddevice-drm-gles 1.4.0
Functions
test_pes.cpp File Reference

Unit tests for cPesVideo class. More...

#include <catch2/catch_test_macros.hpp>
#include "../pes.h"
#include <libavutil/avutil.h>
Include dependency graph for test_pes.cpp:

Go to the source code of this file.

Functions

std::vector< uint8_t > createBasicPesHeader (uint8_t streamId, bool withPts=false, uint16_t pesLength=0)
 
std::vector< uint8_t > createMpeg2PesPacket ()
 
std::vector< uint8_t > createH264PesPacket (bool withLeadingZero=false)
 
std::vector< uint8_t > createHevcPesVideoPacket (bool withLeadingZero=false)
 
std::vector< uint8_t > createAudioPesPacket ()
 
 TEST_CASE ("cPesVideo - Basic construction", "[pes]")
 
 TEST_CASE ("cPesVideo - Header validation", "[pes]")
 
 TEST_CASE ("cPesVideo - Stream type detection", "[pes]")
 
 TEST_CASE ("cPesVideo - PTS handling", "[pes]")
 
 TEST_CASE ("cPesVideo - Payload extraction", "[pes]")
 
 TEST_CASE ("cPesVideo - Packet length", "[pes]")
 
 TEST_CASE ("cPesAudio - Audio stream handling", "[pes]")
 
 TEST_CASE ("cPesVideo - Edge cases", "[pes]")
 
 TEST_CASE ("cReassemblyBufferVideo - MPEG2 codec detection", "[reassembly][video]")
 
 TEST_CASE ("cReassemblyBufferVideo - H.264 codec detection", "[reassembly][video]")
 
 TEST_CASE ("cReassemblyBufferVideo - HEVC codec detection", "[reassembly][video]")
 
 TEST_CASE ("cReassemblyBufferVideo - Unknown codec", "[reassembly][video]")
 
 TEST_CASE ("cReassemblyBufferVideo - HasLeadingZero detection", "[reassembly][video]")
 
 TEST_CASE ("cReassemblyBufferVideo - Push and drain", "[reassembly][video]")
 
 TEST_CASE ("cReassemblyBufferAudio - MP2 codec detection", "[reassembly][audio]")
 
 TEST_CASE ("cReassemblyBufferAudio - AC3 codec detection", "[reassembly][audio]")
 
 TEST_CASE ("cReassemblyBufferAudio - AAC LATM codec detection", "[reassembly][audio]")
 
 TEST_CASE ("cReassemblyBufferAudio - ADTS codec detection", "[reassembly][audio]")
 
 TEST_CASE ("cReassemblyBufferAudio - Private stream handling", "[reassembly][audio]")
 
 TEST_CASE ("cReassemblyBufferAudio - Unknown codec", "[reassembly][audio]")
 
 TEST_CASE ("cReassemblyBufferAudio - FindSyncWord at start", "[reassembly][audio][syncword]")
 
 TEST_CASE ("cReassemblyBufferAudio - FindSyncWord with offset", "[reassembly][audio][syncword]")
 
 TEST_CASE ("cReassemblyBufferAudio - FindSyncWord no match", "[reassembly][audio][syncword]")
 
 TEST_CASE ("cReassemblyBufferAudio - FindSyncWord multiple candidates", "[reassembly][audio][syncword]")
 
 TEST_CASE ("cReassemblyBufferAudio - TruncateBufferUntilFirstValidData at start", "[reassembly][audio][consecutive]")
 
 TEST_CASE ("cReassemblyBufferAudio - TruncateBufferUntilFirstValidData with offset", "[reassembly][audio][consecutive]")
 
 TEST_CASE ("cReassemblyBufferAudio - TruncateBufferUntilFirstValidData edge cases", "[reassembly][audio][consecutive]")
 
 TEST_CASE ("cReassemblyBufferAudio - TruncateBufferUntilFirstValidData no sync word", "[reassembly][audio][consecutive]")
 
 TEST_CASE ("cReassemblyBufferAudio - TruncateBufferUntilFirstValidData with maximum length", "[reassembly][audio][consecutive]")
 
 TEST_CASE ("cReassemblyBufferAudio - GetFrameSize LATM codec", "[reassembly][audio][framesize]")
 
 TEST_CASE ("cReassemblyBufferAudio - GetFrameSize AAC/ADTS codec", "[reassembly][audio][framesize]")
 
 TEST_CASE ("cReassemblyBufferAudio - GetFrameSize AC3 codec", "[reassembly][audio][framesize]")
 
 TEST_CASE ("cReassemblyBufferAudio - GetFrameSize AC3 error conditions", "[reassembly][audio][framesize]")
 
 TEST_CASE ("cReassemblyBufferAudio - GetFrameSize E-AC3 codec", "[reassembly][audio][framesize]")
 
 TEST_CASE ("cReassemblyBufferAudio - GetFrameSize E-AC3 error conditions", "[reassembly][audio][framesize]")
 
 TEST_CASE ("cReassemblyBufferAudio - GetFrameSize MP2 codec", "[reassembly][audio][framesize]")
 
 TEST_CASE ("cReassemblyBufferAudio - GetFrameSize MP2 error conditions", "[reassembly][audio][framesize]")
 
 TEST_CASE ("cPtsTrackingBuffer - Basic Push and GetPts", "[ptstracking]")
 
 TEST_CASE ("cPtsTrackingBuffer - Erase basic functionality", "[ptstracking][erase]")
 
 TEST_CASE ("cPtsTrackingBuffer - Erase with multiple PTS entries", "[ptstracking][erase]")
 
 TEST_CASE ("cPtsTrackingBuffer - Erase PTS inheritance logic", "[ptstracking][erase]")
 
 TEST_CASE ("cPtsTrackingBuffer - Erase with fragmented frames", "[ptstracking][erase]")
 
 TEST_CASE ("cPtsTrackingBuffer - Erase edge cases", "[ptstracking][erase]")
 
 TEST_CASE ("cPtsTrackingBuffer - Complex scenarios", "[ptstracking][erase]")
 
 TEST_CASE ("cPtsTrackingBuffer - Reset functionality", "[ptstracking]")
 

Detailed Description

Unit tests for cPesVideo class.

Definition in file test_pes.cpp.

Function Documentation

◆ createAudioPesPacket()

std::vector< uint8_t > createAudioPesPacket ( )

Definition at line 133 of file test_pes.cpp.

References createBasicPesHeader().

Referenced by TEST_CASE().

◆ createBasicPesHeader()

std::vector< uint8_t > createBasicPesHeader ( uint8_t  streamId,
bool  withPts = false,
uint16_t  pesLength = 0 
)

◆ createH264PesPacket()

std::vector< uint8_t > createH264PesPacket ( bool  withLeadingZero = false)

Definition at line 87 of file test_pes.cpp.

References createBasicPesHeader().

Referenced by TEST_CASE().

◆ createHevcPesVideoPacket()

std::vector< uint8_t > createHevcPesVideoPacket ( bool  withLeadingZero = false)

Definition at line 110 of file test_pes.cpp.

References createBasicPesHeader().

◆ createMpeg2PesPacket()

std::vector< uint8_t > createMpeg2PesPacket ( )

Definition at line 69 of file test_pes.cpp.

References createBasicPesHeader().

Referenced by TEST_CASE().

◆ TEST_CASE() [1/45]

TEST_CASE ( "cPesAudio - Audio stream handling"  ,
""  [pes] 
)

Definition at line 396 of file test_pes.cpp.

References createAudioPesPacket(), createBasicPesHeader(), and cPes::IsValid().

◆ TEST_CASE() [2/45]

TEST_CASE ( "cPesVideo - Basic construction"  ,
""  [pes] 
)

Definition at line 144 of file test_pes.cpp.

References createBasicPesHeader(), and cPes::IsValid().

◆ TEST_CASE() [3/45]

TEST_CASE ( "cPesVideo - Edge cases"  ,
""  [pes] 
)

Definition at line 412 of file test_pes.cpp.

References createBasicPesHeader(), and cPes::IsValid().

◆ TEST_CASE() [4/45]

TEST_CASE ( "cPesVideo - Header validation"  ,
""  [pes] 
)

Definition at line 160 of file test_pes.cpp.

References createBasicPesHeader(), and cPes::IsValid().

◆ TEST_CASE() [5/45]

TEST_CASE ( "cPesVideo - Packet length"  ,
""  [pes] 
)

◆ TEST_CASE() [6/45]

TEST_CASE ( "cPesVideo - Payload extraction"  ,
""  [pes] 
)

Definition at line 256 of file test_pes.cpp.

References createMpeg2PesPacket(), cPes::GetPayload(), and cPes::GetPayloadSize().

◆ TEST_CASE() [7/45]

TEST_CASE ( "cPesVideo - PTS handling"  ,
""  [pes] 
)

Definition at line 236 of file test_pes.cpp.

References AV_NOPTS_VALUE, createBasicPesHeader(), and cPes::GetPts().

◆ TEST_CASE() [8/45]

TEST_CASE ( "cPesVideo - Stream type detection"  ,
""  [pes] 
)

Definition at line 206 of file test_pes.cpp.

References createBasicPesHeader(), and cPes::IsValid().

◆ TEST_CASE() [9/45]

TEST_CASE ( "cPtsTrackingBuffer - Basic Push and GetPts"  ,
""  [ptstracking] 
)

◆ TEST_CASE() [10/45]

TEST_CASE ( "cPtsTrackingBuffer - Complex scenarios"  ,
""  [ptstracking][erase] 
)

◆ TEST_CASE() [11/45]

TEST_CASE ( "cPtsTrackingBuffer - Erase basic functionality"  ,
""  [ptstracking][erase] 
)

◆ TEST_CASE() [12/45]

TEST_CASE ( "cPtsTrackingBuffer - Erase edge cases"  ,
""  [ptstracking][erase] 
)

◆ TEST_CASE() [13/45]

TEST_CASE ( "cPtsTrackingBuffer - Erase PTS inheritance logic"  ,
""  [ptstracking][erase] 
)

◆ TEST_CASE() [14/45]

TEST_CASE ( "cPtsTrackingBuffer - Erase with fragmented frames"  ,
""  [ptstracking][erase] 
)

◆ TEST_CASE() [15/45]

TEST_CASE ( "cPtsTrackingBuffer - Erase with multiple PTS entries"  ,
""  [ptstracking][erase] 
)

◆ TEST_CASE() [16/45]

TEST_CASE ( "cPtsTrackingBuffer - Reset functionality"  ,
""  [ptstracking] 
)

◆ TEST_CASE() [17/45]

TEST_CASE ( "cReassemblyBufferAudio - AAC LATM codec detection"  ,
""  [reassembly][audio] 
)

Definition at line 639 of file test_pes.cpp.

References cReassemblyBufferAudio::DetectCodecFromSyncWord().

◆ TEST_CASE() [18/45]

TEST_CASE ( "cReassemblyBufferAudio - AC3 codec detection"  ,
""  [reassembly][audio] 
)

Definition at line 619 of file test_pes.cpp.

References cReassemblyBufferAudio::DetectCodecFromSyncWord().

◆ TEST_CASE() [19/45]

TEST_CASE ( "cReassemblyBufferAudio - ADTS codec detection"  ,
""  [reassembly][audio] 
)

Definition at line 650 of file test_pes.cpp.

References cReassemblyBufferAudio::DetectCodecFromSyncWord().

◆ TEST_CASE() [20/45]

TEST_CASE ( "cReassemblyBufferAudio - FindSyncWord at start"  ,
""  [reassembly][audio][syncword] 
)

◆ TEST_CASE() [21/45]

TEST_CASE ( "cReassemblyBufferAudio - FindSyncWord multiple candidates"  ,
""  [reassembly][audio][syncword] 
)

◆ TEST_CASE() [22/45]

TEST_CASE ( "cReassemblyBufferAudio - FindSyncWord no match"  ,
""  [reassembly][audio][syncword] 
)

◆ TEST_CASE() [23/45]

TEST_CASE ( "cReassemblyBufferAudio - FindSyncWord with offset"  ,
""  [reassembly][audio][syncword] 
)

◆ TEST_CASE() [24/45]

TEST_CASE ( "cReassemblyBufferAudio - GetFrameSize AAC/ADTS codec"  ,
""  [reassembly][audio][framesize] 
)

Definition at line 1022 of file test_pes.cpp.

References cReassemblyBufferAudio::GetFrameSizeForCodec().

◆ TEST_CASE() [25/45]

TEST_CASE ( "cReassemblyBufferAudio - GetFrameSize AC3 codec"  ,
""  [reassembly][audio][framesize] 
)

Definition at line 1066 of file test_pes.cpp.

References cReassemblyBufferAudio::GetFrameSizeForCodec().

◆ TEST_CASE() [26/45]

TEST_CASE ( "cReassemblyBufferAudio - GetFrameSize AC3 error conditions"  ,
""  [reassembly][audio][framesize] 
)

Definition at line 1110 of file test_pes.cpp.

References cReassemblyBufferAudio::GetFrameSizeForCodec().

◆ TEST_CASE() [27/45]

TEST_CASE ( "cReassemblyBufferAudio - GetFrameSize E-AC3 codec"  ,
""  [reassembly][audio][framesize] 
)

Definition at line 1132 of file test_pes.cpp.

References cReassemblyBufferAudio::GetFrameSizeForCodec().

◆ TEST_CASE() [28/45]

TEST_CASE ( "cReassemblyBufferAudio - GetFrameSize E-AC3 error conditions"  ,
""  [reassembly][audio][framesize] 
)

Definition at line 1168 of file test_pes.cpp.

References cReassemblyBufferAudio::GetFrameSizeForCodec().

◆ TEST_CASE() [29/45]

TEST_CASE ( "cReassemblyBufferAudio - GetFrameSize LATM codec"  ,
""  [reassembly][audio][framesize] 
)

Definition at line 996 of file test_pes.cpp.

References cReassemblyBufferAudio::GetFrameSizeForCodec().

◆ TEST_CASE() [30/45]

TEST_CASE ( "cReassemblyBufferAudio - GetFrameSize MP2 codec"  ,
""  [reassembly][audio][framesize] 
)

Definition at line 1178 of file test_pes.cpp.

References cReassemblyBufferAudio::GetFrameSizeForCodec().

◆ TEST_CASE() [31/45]

TEST_CASE ( "cReassemblyBufferAudio - GetFrameSize MP2 error conditions"  ,
""  [reassembly][audio][framesize] 
)

Definition at line 1238 of file test_pes.cpp.

References cReassemblyBufferAudio::GetFrameSizeForCodec().

◆ TEST_CASE() [32/45]

TEST_CASE ( "cReassemblyBufferAudio - MP2 codec detection"  ,
""  [reassembly][audio] 
)

Definition at line 607 of file test_pes.cpp.

References cReassemblyBufferAudio::DetectCodecFromSyncWord().

◆ TEST_CASE() [33/45]

TEST_CASE ( "cReassemblyBufferAudio - Private stream handling"  ,
""  [reassembly][audio] 
)

Definition at line 661 of file test_pes.cpp.

References cReassemblyBufferAudio::DetectCodecFromSyncWord().

◆ TEST_CASE() [34/45]

TEST_CASE ( "cReassemblyBufferAudio - TruncateBufferUntilFirstValidData at start"  ,
""  [reassembly][audio][consecutive] 
)

◆ TEST_CASE() [35/45]

TEST_CASE ( "cReassemblyBufferAudio - TruncateBufferUntilFirstValidData edge cases"  ,
""  [reassembly][audio][consecutive] 
)

◆ TEST_CASE() [36/45]

TEST_CASE ( "cReassemblyBufferAudio - TruncateBufferUntilFirstValidData no sync word"  ,
""  [reassembly][audio][consecutive] 
)

◆ TEST_CASE() [37/45]

TEST_CASE ( "cReassemblyBufferAudio - TruncateBufferUntilFirstValidData with maximum length"  ,
""  [reassembly][audio][consecutive] 
)

◆ TEST_CASE() [38/45]

TEST_CASE ( "cReassemblyBufferAudio - TruncateBufferUntilFirstValidData with offset"  ,
""  [reassembly][audio][consecutive] 
)

◆ TEST_CASE() [39/45]

TEST_CASE ( "cReassemblyBufferAudio - Unknown codec"  ,
""  [reassembly][audio] 
)

Definition at line 672 of file test_pes.cpp.

References cReassemblyBufferAudio::DetectCodecFromSyncWord().

◆ TEST_CASE() [40/45]

TEST_CASE ( "cReassemblyBufferVideo - H.264 codec detection"  ,
""  [reassembly][video] 
)

◆ TEST_CASE() [41/45]

TEST_CASE ( "cReassemblyBufferVideo - HasLeadingZero detection"  ,
""  [reassembly][video] 
)

Definition at line 510 of file test_pes.cpp.

References cReassemblyBufferVideo::HasLeadingZero().

◆ TEST_CASE() [42/45]

TEST_CASE ( "cReassemblyBufferVideo - HEVC codec detection"  ,
""  [reassembly][video] 
)

◆ TEST_CASE() [43/45]

TEST_CASE ( "cReassemblyBufferVideo - MPEG2 codec detection"  ,
""  [reassembly][video] 
)

◆ TEST_CASE() [44/45]

TEST_CASE ( "cReassemblyBufferVideo - Push and drain"  ,
""  [reassembly][video] 
)

◆ TEST_CASE() [45/45]

TEST_CASE ( "cReassemblyBufferVideo - Unknown codec"  ,
""  [reassembly][video] 
)