Skip to content

Commit f4bfa60

Browse files
kanatipavlidakis
authored andcommitted
Android improvements. (#20)
Start/Stop receiving stream method for VideoTrack (#25) Properly remove observer upon deconstruction (#26) feat: Expose setCodecPreferences/getCapabilities for android. (#61) fix: add WrappedVideoDecoderFactory.java. (#74) Exposing Adapter types in PeerConnectionFactory (#78) Co-authored-by: davidliu <[email protected]> Co-authored-by: Mohamed Risaldar UT <[email protected]> (cherry picked from commit e91f003) # Conflicts: # media/base/media_channel.h # media/engine/webrtc_video_engine.cc # media/engine/webrtc_video_engine.h
1 parent 45b98d8 commit f4bfa60

File tree

5 files changed

+39
-1
lines changed

5 files changed

+39
-1
lines changed

api/media_stream_interface.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ bool VideoTrackInterface::should_receive() const {
2323
return true;
2424
}
2525

26+
bool VideoTrackInterface::should_receive() const {
27+
return true;
28+
}
29+
2630
VideoTrackInterface::ContentHint VideoTrackInterface::content_hint() const {
2731
return ContentHint::kNone;
2832
}

media/engine/webrtc_video_engine.cc

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2779,6 +2779,24 @@ WebRtcVideoReceiveChannel::~WebRtcVideoReceiveChannel() {
27792779
delete kv.second;
27802780
}
27812781

2782+
void WebRtcVideoReceiveChannel::StartReceive(uint32_t ssrc) {
2783+
RTC_DCHECK_RUN_ON(&thread_checker_);
2784+
WebRtcVideoReceiveStream* stream = FindReceiveStream(ssrc);
2785+
if(!stream) {
2786+
return;
2787+
}
2788+
stream->StartStream();
2789+
}
2790+
2791+
void WebRtcVideoReceiveChannel::StopReceive(uint32_t ssrc) {
2792+
RTC_DCHECK_RUN_ON(&thread_checker_);
2793+
WebRtcVideoReceiveStream* stream = FindReceiveStream(ssrc);
2794+
if(!stream) {
2795+
return;
2796+
}
2797+
stream->StopStream();
2798+
}
2799+
27822800
void WebRtcVideoReceiveChannel::SetReceiverFeedbackParameters(
27832801
bool lntf_enabled,
27842802
bool nack_enabled,

media/engine/webrtc_video_engine.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,6 @@ class WebRtcVideoSendChannel : public MediaChannelUtil,
286286
}
287287
return send_codec()->rtx_time;
288288
}
289-
290289
private:
291290
struct ChangedSenderParameters {
292291
// These optionals are unset if not changed.
@@ -719,6 +718,9 @@ class WebRtcVideoReceiveChannel : public MediaChannelUtil,
719718
void SetDepacketizerToDecoderFrameTransformer(
720719
scoped_refptr<FrameTransformerInterface> frame_transformer);
721720

721+
void StartStream();
722+
void StopStream();
723+
722724
void SetLocalSsrc(uint32_t local_ssrc);
723725
void UpdateRtxSsrc(uint32_t ssrc);
724726
void StartReceiveStream();

pc/video_rtp_receiver.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ class VideoRtpReceiver : public RtpReceiverInternal,
6565
// ObserverInterface implementation
6666
void OnChanged() override;
6767

68+
// ObserverInterface implementation
69+
void OnChanged() override;
70+
6871
// RtpReceiverInterface implementation
6972
scoped_refptr<MediaStreamTrackInterface> track() const override {
7073
return track_;

sdk/android/src/jni/video_track.cc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,16 @@ static jboolean JNI_VideoTrack_GetShouldReceive(JNIEnv* jni,
5757
return reinterpret_cast<VideoTrackInterface*>(j_native_track)->should_receive();
5858
}
5959

60+
static void JNI_VideoTrack_SetShouldReceive(JNIEnv* jni,
61+
jlong j_native_track,
62+
jboolean should_receive) {
63+
reinterpret_cast<VideoTrackInterface*>(j_native_track)->set_should_receive(should_receive);
64+
}
65+
66+
static jboolean JNI_VideoTrack_GetShouldReceive(JNIEnv* jni,
67+
jlong j_native_track) {
68+
return reinterpret_cast<VideoTrackInterface*>(j_native_track)->should_receive();
69+
}
70+
6071
} // namespace jni
6172
} // namespace webrtc

0 commit comments

Comments
 (0)