Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: webrtc/api/java/jni/peerconnection_jni.cc

Issue 1817473002: Delete VideoRendererInterface. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebase. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2013 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 using webrtc::PeerConnectionFactoryInterface; 99 using webrtc::PeerConnectionFactoryInterface;
100 using webrtc::PeerConnectionInterface; 100 using webrtc::PeerConnectionInterface;
101 using webrtc::PeerConnectionObserver; 101 using webrtc::PeerConnectionObserver;
102 using webrtc::RtpReceiverInterface; 102 using webrtc::RtpReceiverInterface;
103 using webrtc::RtpSenderInterface; 103 using webrtc::RtpSenderInterface;
104 using webrtc::SessionDescriptionInterface; 104 using webrtc::SessionDescriptionInterface;
105 using webrtc::SetSessionDescriptionObserver; 105 using webrtc::SetSessionDescriptionObserver;
106 using webrtc::StatsObserver; 106 using webrtc::StatsObserver;
107 using webrtc::StatsReport; 107 using webrtc::StatsReport;
108 using webrtc::StatsReports; 108 using webrtc::StatsReports;
109 using webrtc::VideoRendererInterface;
110 using webrtc::VideoTrackSourceInterface; 109 using webrtc::VideoTrackSourceInterface;
111 using webrtc::VideoTrackInterface; 110 using webrtc::VideoTrackInterface;
112 using webrtc::VideoTrackVector; 111 using webrtc::VideoTrackVector;
113 using webrtc::kVideoCodecVP8; 112 using webrtc::kVideoCodecVP8;
114 113
115 namespace webrtc_jni { 114 namespace webrtc_jni {
116 115
117 // Field trials initialization string 116 // Field trials initialization string
118 static char *field_trials_init_string = NULL; 117 static char *field_trials_init_string = NULL;
119 118
(...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after
724 } 723 }
725 724
726 const ScopedGlobalRef<jobject> j_observer_global_; 725 const ScopedGlobalRef<jobject> j_observer_global_;
727 const ScopedGlobalRef<jclass> j_observer_class_; 726 const ScopedGlobalRef<jclass> j_observer_class_;
728 const ScopedGlobalRef<jclass> j_stats_report_class_; 727 const ScopedGlobalRef<jclass> j_stats_report_class_;
729 const jmethodID j_stats_report_ctor_; 728 const jmethodID j_stats_report_ctor_;
730 const ScopedGlobalRef<jclass> j_value_class_; 729 const ScopedGlobalRef<jclass> j_value_class_;
731 const jmethodID j_value_ctor_; 730 const jmethodID j_value_ctor_;
732 }; 731 };
733 732
734 // Adapter presenting a cricket::VideoRenderer as a 733 // Wrapper dispatching rtc::VideoSinkInterface to a Java VideoRenderer
735 // webrtc::VideoRendererInterface.
736 class VideoRendererWrapper : public VideoRendererInterface {
737 public:
738 static VideoRendererWrapper* Create(cricket::VideoRenderer* renderer) {
739 if (renderer)
740 return new VideoRendererWrapper(renderer);
741 return NULL;
742 }
743
744 virtual ~VideoRendererWrapper() {}
745
746 void RenderFrame(const cricket::VideoFrame* video_frame) override {
747 ScopedLocalRefFrame local_ref_frame(AttachCurrentThreadIfNeeded());
748 renderer_->RenderFrame(video_frame->GetCopyWithRotationApplied());
749 }
750
751 private:
752 explicit VideoRendererWrapper(cricket::VideoRenderer* renderer)
753 : renderer_(renderer) {}
754 scoped_ptr<cricket::VideoRenderer> renderer_;
755 };
756
757 // Wrapper dispatching webrtc::VideoRendererInterface to a Java VideoRenderer
758 // instance. 734 // instance.
759 class JavaVideoRendererWrapper : public VideoRendererInterface { 735 class JavaVideoRendererWrapper
736 : public rtc::VideoSinkInterface<cricket::VideoFrame> {
760 public: 737 public:
761 JavaVideoRendererWrapper(JNIEnv* jni, jobject j_callbacks) 738 JavaVideoRendererWrapper(JNIEnv* jni, jobject j_callbacks)
762 : j_callbacks_(jni, j_callbacks), 739 : j_callbacks_(jni, j_callbacks),
763 j_render_frame_id_(GetMethodID( 740 j_render_frame_id_(GetMethodID(
764 jni, GetObjectClass(jni, j_callbacks), "renderFrame", 741 jni, GetObjectClass(jni, j_callbacks), "renderFrame",
765 "(Lorg/webrtc/VideoRenderer$I420Frame;)V")), 742 "(Lorg/webrtc/VideoRenderer$I420Frame;)V")),
766 j_frame_class_(jni, 743 j_frame_class_(jni,
767 FindClass(jni, "org/webrtc/VideoRenderer$I420Frame")), 744 FindClass(jni, "org/webrtc/VideoRenderer$I420Frame")),
768 j_i420_frame_ctor_id_(GetMethodID( 745 j_i420_frame_ctor_id_(GetMethodID(
769 jni, *j_frame_class_, "<init>", "(III[I[Ljava/nio/ByteBuffer;J)V")), 746 jni, *j_frame_class_, "<init>", "(III[I[Ljava/nio/ByteBuffer;J)V")),
770 j_texture_frame_ctor_id_(GetMethodID( 747 j_texture_frame_ctor_id_(GetMethodID(
771 jni, *j_frame_class_, "<init>", 748 jni, *j_frame_class_, "<init>",
772 "(IIII[FJ)V")), 749 "(IIII[FJ)V")),
773 j_byte_buffer_class_(jni, FindClass(jni, "java/nio/ByteBuffer")) { 750 j_byte_buffer_class_(jni, FindClass(jni, "java/nio/ByteBuffer")) {
774 CHECK_EXCEPTION(jni); 751 CHECK_EXCEPTION(jni);
775 } 752 }
776 753
777 virtual ~JavaVideoRendererWrapper() {} 754 virtual ~JavaVideoRendererWrapper() {}
778 755
779 void RenderFrame(const cricket::VideoFrame* video_frame) override { 756 void OnFrame(const cricket::VideoFrame& video_frame) override {
780 ScopedLocalRefFrame local_ref_frame(jni()); 757 ScopedLocalRefFrame local_ref_frame(jni());
781 jobject j_frame = (video_frame->GetNativeHandle() != nullptr) 758 jobject j_frame = (video_frame.GetNativeHandle() != nullptr)
782 ? CricketToJavaTextureFrame(video_frame) 759 ? CricketToJavaTextureFrame(&video_frame)
783 : CricketToJavaI420Frame(video_frame); 760 : CricketToJavaI420Frame(&video_frame);
784 // |j_callbacks_| is responsible for releasing |j_frame| with 761 // |j_callbacks_| is responsible for releasing |j_frame| with
785 // VideoRenderer.renderFrameDone(). 762 // VideoRenderer.renderFrameDone().
786 jni()->CallVoidMethod(*j_callbacks_, j_render_frame_id_, j_frame); 763 jni()->CallVoidMethod(*j_callbacks_, j_render_frame_id_, j_frame);
787 CHECK_EXCEPTION(jni()); 764 CHECK_EXCEPTION(jni());
788 } 765 }
789 766
790 private: 767 private:
791 // Make a shallow copy of |frame| to be used with Java. The callee has 768 // Make a shallow copy of |frame| to be used with Java. The callee has
792 // ownership of the frame, and the frame should be released with 769 // ownership of the frame, and the frame should be released with
793 // VideoRenderer.releaseNativeFrame(). 770 // VideoRenderer.releaseNativeFrame().
(...skipping 1196 matching lines...) Expand 10 before | Expand all | Expand 10 after
1990 1967
1991 JOW(jboolean, MediaStreamTrack_nativeSetEnabled)( 1968 JOW(jboolean, MediaStreamTrack_nativeSetEnabled)(
1992 JNIEnv* jni, jclass, jlong j_p, jboolean enabled) { 1969 JNIEnv* jni, jclass, jlong j_p, jboolean enabled) {
1993 return reinterpret_cast<MediaStreamTrackInterface*>(j_p) 1970 return reinterpret_cast<MediaStreamTrackInterface*>(j_p)
1994 ->set_enabled(enabled); 1971 ->set_enabled(enabled);
1995 } 1972 }
1996 1973
1997 JOW(void, VideoTrack_nativeAddRenderer)( 1974 JOW(void, VideoTrack_nativeAddRenderer)(
1998 JNIEnv* jni, jclass, 1975 JNIEnv* jni, jclass,
1999 jlong j_video_track_pointer, jlong j_renderer_pointer) { 1976 jlong j_video_track_pointer, jlong j_renderer_pointer) {
2000 reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer)->AddRenderer( 1977 reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer)
2001 reinterpret_cast<VideoRendererInterface*>(j_renderer_pointer)); 1978 ->AddOrUpdateSink(
1979 reinterpret_cast<rtc::VideoSinkInterface<cricket::VideoFrame>*>(
1980 j_renderer_pointer),
1981 rtc::VideoSinkWants());
2002 } 1982 }
2003 1983
2004 JOW(void, VideoTrack_nativeRemoveRenderer)( 1984 JOW(void, VideoTrack_nativeRemoveRenderer)(
2005 JNIEnv* jni, jclass, 1985 JNIEnv* jni, jclass,
2006 jlong j_video_track_pointer, jlong j_renderer_pointer) { 1986 jlong j_video_track_pointer, jlong j_renderer_pointer) {
2007 reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer)->RemoveRenderer( 1987 reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer)
2008 reinterpret_cast<VideoRendererInterface*>(j_renderer_pointer)); 1988 ->RemoveSink(
1989 reinterpret_cast<rtc::VideoSinkInterface<cricket::VideoFrame>*>(
1990 j_renderer_pointer));
2009 } 1991 }
2010 1992
2011 JOW(jlong, CallSessionFileRotatingLogSink_nativeAddSink)( 1993 JOW(jlong, CallSessionFileRotatingLogSink_nativeAddSink)(
2012 JNIEnv* jni, jclass, 1994 JNIEnv* jni, jclass,
2013 jstring j_dirPath, jint j_maxFileSize, jint j_severity) { 1995 jstring j_dirPath, jint j_maxFileSize, jint j_severity) {
2014 std::string dir_path = JavaToStdString(jni, j_dirPath); 1996 std::string dir_path = JavaToStdString(jni, j_dirPath);
2015 rtc::CallSessionFileRotatingLogSink* sink = 1997 rtc::CallSessionFileRotatingLogSink* sink =
2016 new rtc::CallSessionFileRotatingLogSink(dir_path, j_maxFileSize); 1998 new rtc::CallSessionFileRotatingLogSink(dir_path, j_maxFileSize);
2017 if (!sink->Init()) { 1999 if (!sink->Init()) {
2018 LOG_V(rtc::LoggingSeverity::LS_WARNING) << 2000 LOG_V(rtc::LoggingSeverity::LS_WARNING) <<
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
2103 return JavaStringFromStdString( 2085 return JavaStringFromStdString(
2104 jni, 2086 jni,
2105 reinterpret_cast<RtpReceiverInterface*>(j_rtp_receiver_pointer)->id()); 2087 reinterpret_cast<RtpReceiverInterface*>(j_rtp_receiver_pointer)->id());
2106 } 2088 }
2107 2089
2108 JOW(void, RtpReceiver_free)(JNIEnv* jni, jclass, jlong j_rtp_receiver_pointer) { 2090 JOW(void, RtpReceiver_free)(JNIEnv* jni, jclass, jlong j_rtp_receiver_pointer) {
2109 reinterpret_cast<RtpReceiverInterface*>(j_rtp_receiver_pointer)->Release(); 2091 reinterpret_cast<RtpReceiverInterface*>(j_rtp_receiver_pointer)->Release();
2110 } 2092 }
2111 2093
2112 } // namespace webrtc_jni 2094 } // namespace webrtc_jni
OLDNEW
« no previous file with comments | « webrtc/api/java/android/org/webrtc/SurfaceViewRenderer.java ('k') | webrtc/api/java/src/org/webrtc/VideoRenderer.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698