@@ -31,9 +31,10 @@ const auto fuaHeaderSize = 2;
31
31
const uint8_t naluTypeSTAPA = 24 ;
32
32
const uint8_t naluTypeFUA = 28 ;
33
33
34
- message_vector H264RtpDepacketizer::buildFrames (message_vector::iterator begin,
35
- message_vector::iterator end) {
36
- message_vector out = {};
34
+ frame_info_vector H264RtpDepacketizer::buildFrameInfos (message_vector::iterator begin,
35
+ message_vector::iterator end,
36
+ uint32_t timestamp) {
37
+ frame_info_vector out = {};
37
38
auto fua_buffer = std::vector<std::byte>{};
38
39
39
40
for (auto it = begin; it != end; it++) {
@@ -58,11 +59,11 @@ message_vector H264RtpDepacketizer::buildFrames(message_vector::iterator begin,
58
59
fua_buffer.at (0 ) =
59
60
std::byte (nalUnitHeader.idc () | nalUnitFragmentHeader.unitType ());
60
61
61
- out.push_back (make_message (std::move (fua_buffer)));
62
+ out.push_back (make_frame_info (std::move (fua_buffer), timestamp ));
62
63
fua_buffer.clear ();
63
64
}
64
65
} else if (nalUnitHeader.unitType () > 0 && nalUnitHeader.unitType () < 24 ) {
65
- out.push_back (make_message (pkt->begin () + headerSize, pkt->end ()));
66
+ out.push_back (make_frame_info (pkt->begin () + headerSize, pkt->end (), timestamp ));
66
67
} else if (nalUnitHeader.unitType () == naluTypeSTAPA) {
67
68
auto currOffset = stapaHeaderSize + headerSize;
68
69
@@ -76,8 +77,8 @@ message_vector H264RtpDepacketizer::buildFrames(message_vector::iterator begin,
76
77
throw std::runtime_error (" STAP-A declared size is larger then buffer" );
77
78
}
78
79
79
- out.push_back (
80
- make_message (pkt-> begin () + currOffset, pkt->begin () + currOffset + naluSize));
80
+ out.push_back (make_frame_info (pkt-> begin () + currOffset,
81
+ pkt->begin () + currOffset + naluSize, timestamp ));
81
82
currOffset += naluSize;
82
83
}
83
84
@@ -128,7 +129,7 @@ void H264RtpDepacketizer::incoming(message_vector &messages, const message_callb
128
129
auto begin = mRtpBuffer .begin ();
129
130
auto end = mRtpBuffer .begin () + (packets_in_timestamp - 1 );
130
131
131
- auto frames = buildFrames (begin, end + 1 );
132
+ auto frames = buildFrameInfos (begin, end + 1 , current_timestamp );
132
133
messages.insert (messages.end (), frames.begin (), frames.end ());
133
134
mRtpBuffer .erase (mRtpBuffer .begin (), mRtpBuffer .begin () + packets_in_timestamp);
134
135
}
0 commit comments