@@ -19,11 +19,12 @@ class H264Repacketizer : public RtpRepacketizer {
1919 H264Repacketizer (std::shared_ptr<rtc::RtpPacketizationConfig> rtpConf)
2020 : RtpRepacketizer(rtpConf->ssrc, rtpConf->payloadType),
2121 rtpConf_ (rtpConf) {
22- // TODO: remove this workaround for
23- // https://github.com/paullouisageneau/libdatachannel/issues/1216
24- rtpConf_->playoutDelayId = 0 ;
25- packet_ = std::make_shared<rtc::H264RtpPacketizer>(
26- rtc::NalUnit::Separator::LongStartSequence, rtpConf_);
22+ depacketizerMediaHandler_ = std::make_shared<rtc::MediaHandler>();
23+ depacketizerMediaHandler_->addToChain (std::make_shared<rtc::H264RtpDepacketizer>(rtc::H264RtpDepacketizer ()));
24+
25+ repacketizerMediaHandler_ = std::make_shared<rtc::MediaHandler>();
26+
27+ repacketizerMediaHandler_->addToChain (std::make_shared<rtc::H264RtpPacketizer>(rtc::H264RtpPacketizer (rtc::NalUnit::Separator::LongStartSequence, rtpConf)));
2728 }
2829
2930 std::vector<std::vector<uint8_t >> handlePacket (std::vector<uint8_t > data) {
@@ -40,23 +41,21 @@ class H264Repacketizer : public RtpRepacketizer {
4041 rtc::message_vector vec;
4142 vec.push_back (msg);
4243
43- depacket_.incoming (vec, nullptr );
44-
45- if (vec.size () > 0 ) {
46- rtpConf_->timestamp = vec[0 ]->frameInfo ->timestamp ;
47- packet_->outgoing (vec, nullptr );
44+ depacketizerMediaHandler_->incomingChain (vec, nullptr );
4845
49- for ( auto m : vec) {
50- uint8_t * src = ( uint8_t *)m-> data ();
51- ret. push_back (std::vector< uint8_t >(src, src + m->size ()) );
52- }
46+ repacketizerMediaHandler_-> outgoingChain ( vec, nullptr );
47+ for ( auto m : vec) {
48+ uint8_t * src = ( uint8_t *) m->data ( );
49+ ret. push_back (std::vector< uint8_t >(src, src + m-> size ()));
5350 }
5451 return ret;
5552 }
5653
5754 private:
58- rtc::H264RtpDepacketizer depacket_;
59- std::shared_ptr<rtc::H264RtpPacketizer> packet_ = nullptr ;
55+ std::shared_ptr<rtc::MediaHandler> depacketizerMediaHandler_;
56+ std::shared_ptr<rtc::MediaHandler> repacketizerMediaHandler_;
57+ // rtc::H264RtpDepacketizer depacket_;
58+ // std::shared_ptr<rtc::H264RtpPacketizer> packet_ = nullptr;
6059 std::shared_ptr<rtc::RtpPacketizationConfig> rtpConf_ = nullptr ;
6160};
6261
0 commit comments