@@ -82,15 +82,27 @@ Stream::Stream()
82
82
renderer_impl_(nullptr ),
83
83
audio_renderer_impl_(nullptr ),
84
84
d3d9_renderer_impl_(nullptr ),
85
+ #ifdef OWT_ENABLE_QUIC
86
+ source_ (AudioSourceInfo::kUnknown ,
87
+ VideoSourceInfo::kUnknown ,
88
+ DataSourceInfo::kUnknown ),
89
+ #else
85
90
source_ (AudioSourceInfo::kUnknown , VideoSourceInfo::kUnknown ),
91
+ #endif
86
92
ended_ (false ),
87
93
id_(" " ) {}
88
94
Stream::Stream (const std::string& id)
89
95
: media_stream_(nullptr ),
90
96
renderer_impl_(nullptr ),
91
97
audio_renderer_impl_(nullptr ),
92
98
d3d9_renderer_impl_(nullptr ),
99
+ #ifdef OWT_ENABLE_QUIC
100
+ source_ (AudioSourceInfo::kUnknown ,
101
+ VideoSourceInfo::kUnknown ,
102
+ DataSourceInfo::kUnknown ),
103
+ #else
93
104
source_ (AudioSourceInfo::kUnknown , VideoSourceInfo::kUnknown ),
105
+ #endif
94
106
ended_ (false ),
95
107
id_(id) {}
96
108
#elif defined(WEBRTC_LINUX)
@@ -439,6 +451,21 @@ std::shared_ptr<LocalStream> LocalStream::Create(
439
451
}
440
452
#endif
441
453
454
+ #ifdef OWT_ENABLE_QUIC
455
+ LocalStream::LocalStream (std::shared_ptr<QuicStream> quic_stream) {
456
+ quic_stream_ = quic_stream;
457
+ has_data_ = true ;
458
+ }
459
+
460
+ std::shared_ptr<LocalStream> LocalStream::Create (
461
+ std::shared_ptr<QuicStream> writable_stream,
462
+ int & error_code) {
463
+ std::shared_ptr<LocalStream> stream (new LocalStream (writable_stream));
464
+ error_code = 0 ;
465
+ return stream;
466
+ }
467
+ #endif
468
+
442
469
LocalStream::LocalStream (const LocalCameraStreamParameters& parameters,
443
470
int & error_code) {
444
471
if (!parameters.AudioEnabled () && !parameters.VideoEnabled ()) {
@@ -654,6 +681,7 @@ LocalStream::LocalStream(
654
681
media_stream_->AddRef ();
655
682
}
656
683
#endif
684
+
657
685
RemoteStream::RemoteStream (MediaStreamInterface* media_stream,
658
686
const std::string& from)
659
687
: origin_(from) {
@@ -662,6 +690,7 @@ RemoteStream::RemoteStream(MediaStreamInterface* media_stream,
662
690
media_stream_ = media_stream;
663
691
media_stream_->AddRef ();
664
692
}
693
+
665
694
RemoteStream::RemoteStream (
666
695
const std::string& id,
667
696
const std::string& from,
@@ -671,14 +700,63 @@ RemoteStream::RemoteStream(
671
700
origin_ (from),
672
701
subscription_capabilities_(subscription_capabilities),
673
702
publication_settings_(publication_settings) {}
703
+
674
704
std::string RemoteStream::Origin () {
675
705
return origin_;
676
706
}
707
+
708
+ RemoteStream::RemoteStream (const std::string& id, const std::string& from)
709
+ :Stream(id),
710
+ origin_(from) {
711
+ }
712
+
677
713
void RemoteStream::MediaStream (MediaStreamInterface* media_stream) {
678
714
Stream::MediaStream (media_stream);
679
715
}
680
716
MediaStreamInterface* RemoteStream::MediaStream () {
681
717
return media_stream_;
682
718
}
719
+
720
+ #ifdef OWT_ENABLE_QUIC
721
+ QuicStream::QuicStream (owt::quic::QuicTransportStreamInterface* quic_stream,
722
+ const std::string& session_id)
723
+ : quic_stream_(quic_stream), session_id_(session_id), can_read_(true ),
724
+ can_write_(true ), fin_read_(false ) {
725
+ }
726
+
727
+ QuicStream::~QuicStream () {
728
+ if (quic_stream_) {
729
+ delete quic_stream_;
730
+ quic_stream_ = nullptr ;
731
+ }
732
+ }
733
+
734
+ size_t QuicStream::Write (uint8_t * data, size_t length) {
735
+ if (quic_stream_ && !fin_read_ && data != nullptr && length > 0 ) {
736
+ return quic_stream_->Write (data, length);
737
+ }
738
+ return 0 ;
739
+ }
740
+
741
+ size_t QuicStream::Read (uint8_t * data, size_t length) {
742
+ if (quic_stream_ && data != nullptr && length > 0 && !fin_read_) {
743
+ return quic_stream_->Read (data, length);
744
+ } else {
745
+ return 0 ;
746
+ }
747
+ }
748
+
749
+ size_t QuicStream::ReadableBytes () const {
750
+ if (quic_stream_ && !fin_read_) {
751
+ return quic_stream_->ReadableBytes ();
752
+ } else {
753
+ return 0 ;
754
+ }
755
+ }
756
+
757
+ std::shared_ptr<owt::base::QuicStream> LocalStream::Stream () {
758
+ return quic_stream_;
759
+ }
760
+ #endif
683
761
} // namespace base
684
762
} // namespace owt
0 commit comments