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

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

Issue 2383093002: Delete all use of cricket::VideoFrame and cricket::WebRtcVideoFrame. (Closed)
Patch Set: Deleted a newline. Created 4 years, 1 month 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 715 matching lines...) Expand 10 before | Expand all | Expand 10 after
726 const ScopedGlobalRef<jclass> j_observer_class_; 726 const ScopedGlobalRef<jclass> j_observer_class_;
727 const ScopedGlobalRef<jclass> j_stats_report_class_; 727 const ScopedGlobalRef<jclass> j_stats_report_class_;
728 const jmethodID j_stats_report_ctor_; 728 const jmethodID j_stats_report_ctor_;
729 const ScopedGlobalRef<jclass> j_value_class_; 729 const ScopedGlobalRef<jclass> j_value_class_;
730 const jmethodID j_value_ctor_; 730 const jmethodID j_value_ctor_;
731 }; 731 };
732 732
733 // Wrapper dispatching rtc::VideoSinkInterface to a Java VideoRenderer 733 // Wrapper dispatching rtc::VideoSinkInterface to a Java VideoRenderer
734 // instance. 734 // instance.
735 class JavaVideoRendererWrapper 735 class JavaVideoRendererWrapper
736 : public rtc::VideoSinkInterface<cricket::VideoFrame> { 736 : public rtc::VideoSinkInterface<webrtc::VideoFrame> {
737 public: 737 public:
738 JavaVideoRendererWrapper(JNIEnv* jni, jobject j_callbacks) 738 JavaVideoRendererWrapper(JNIEnv* jni, jobject j_callbacks)
739 : j_callbacks_(jni, j_callbacks), 739 : j_callbacks_(jni, j_callbacks),
740 j_render_frame_id_(GetMethodID( 740 j_render_frame_id_(GetMethodID(
741 jni, GetObjectClass(jni, j_callbacks), "renderFrame", 741 jni, GetObjectClass(jni, j_callbacks), "renderFrame",
742 "(Lorg/webrtc/VideoRenderer$I420Frame;)V")), 742 "(Lorg/webrtc/VideoRenderer$I420Frame;)V")),
743 j_frame_class_(jni, 743 j_frame_class_(jni,
744 FindClass(jni, "org/webrtc/VideoRenderer$I420Frame")), 744 FindClass(jni, "org/webrtc/VideoRenderer$I420Frame")),
745 j_i420_frame_ctor_id_(GetMethodID( 745 j_i420_frame_ctor_id_(GetMethodID(
746 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")),
747 j_texture_frame_ctor_id_(GetMethodID( 747 j_texture_frame_ctor_id_(GetMethodID(
748 jni, *j_frame_class_, "<init>", 748 jni, *j_frame_class_, "<init>",
749 "(IIII[FJ)V")), 749 "(IIII[FJ)V")),
750 j_byte_buffer_class_(jni, FindClass(jni, "java/nio/ByteBuffer")) { 750 j_byte_buffer_class_(jni, FindClass(jni, "java/nio/ByteBuffer")) {
751 CHECK_EXCEPTION(jni); 751 CHECK_EXCEPTION(jni);
752 } 752 }
753 753
754 virtual ~JavaVideoRendererWrapper() {} 754 virtual ~JavaVideoRendererWrapper() {}
755 755
756 void OnFrame(const cricket::VideoFrame& video_frame) override { 756 void OnFrame(const webrtc::VideoFrame& video_frame) override {
757 ScopedLocalRefFrame local_ref_frame(jni()); 757 ScopedLocalRefFrame local_ref_frame(jni());
758 jobject j_frame = 758 jobject j_frame =
759 (video_frame.video_frame_buffer()->native_handle() != nullptr) 759 (video_frame.video_frame_buffer()->native_handle() != nullptr)
760 ? CricketToJavaTextureFrame(&video_frame) 760 ? CricketToJavaTextureFrame(&video_frame)
761 : CricketToJavaI420Frame(&video_frame); 761 : CricketToJavaI420Frame(&video_frame);
762 // |j_callbacks_| is responsible for releasing |j_frame| with 762 // |j_callbacks_| is responsible for releasing |j_frame| with
763 // VideoRenderer.renderFrameDone(). 763 // VideoRenderer.renderFrameDone().
764 jni()->CallVoidMethod(*j_callbacks_, j_render_frame_id_, j_frame); 764 jni()->CallVoidMethod(*j_callbacks_, j_render_frame_id_, j_frame);
765 CHECK_EXCEPTION(jni()); 765 CHECK_EXCEPTION(jni());
766 } 766 }
767 767
768 private: 768 private:
769 // Make a shallow copy of |frame| to be used with Java. The callee has 769 // Make a shallow copy of |frame| to be used with Java. The callee has
770 // ownership of the frame, and the frame should be released with 770 // ownership of the frame, and the frame should be released with
771 // VideoRenderer.releaseNativeFrame(). 771 // VideoRenderer.releaseNativeFrame().
772 static jlong javaShallowCopy(const cricket::VideoFrame* frame) { 772 static jlong javaShallowCopy(const webrtc::VideoFrame* frame) {
773 return jlongFromPointer(new cricket::WebRtcVideoFrame( 773 return jlongFromPointer(new webrtc::VideoFrame(*frame));
774 frame->video_frame_buffer(), frame->rotation(), frame->timestamp_us()));
775 } 774 }
776 775
777 // Return a VideoRenderer.I420Frame referring to the data in |frame|. 776 // Return a VideoRenderer.I420Frame referring to the data in |frame|.
778 jobject CricketToJavaI420Frame(const cricket::VideoFrame* frame) { 777 jobject CricketToJavaI420Frame(const webrtc::VideoFrame* frame) {
779 jintArray strides = jni()->NewIntArray(3); 778 jintArray strides = jni()->NewIntArray(3);
780 jint* strides_array = jni()->GetIntArrayElements(strides, NULL); 779 jint* strides_array = jni()->GetIntArrayElements(strides, NULL);
781 strides_array[0] = frame->video_frame_buffer()->StrideY(); 780 strides_array[0] = frame->video_frame_buffer()->StrideY();
782 strides_array[1] = frame->video_frame_buffer()->StrideU(); 781 strides_array[1] = frame->video_frame_buffer()->StrideU();
783 strides_array[2] = frame->video_frame_buffer()->StrideV(); 782 strides_array[2] = frame->video_frame_buffer()->StrideV();
784 jni()->ReleaseIntArrayElements(strides, strides_array, 0); 783 jni()->ReleaseIntArrayElements(strides, strides_array, 0);
785 jobjectArray planes = jni()->NewObjectArray(3, *j_byte_buffer_class_, NULL); 784 jobjectArray planes = jni()->NewObjectArray(3, *j_byte_buffer_class_, NULL);
786 jobject y_buffer = jni()->NewDirectByteBuffer( 785 jobject y_buffer = jni()->NewDirectByteBuffer(
787 const_cast<uint8_t*>(frame->video_frame_buffer()->DataY()), 786 const_cast<uint8_t*>(frame->video_frame_buffer()->DataY()),
788 frame->video_frame_buffer()->StrideY() * 787 frame->video_frame_buffer()->StrideY() *
(...skipping 10 matching lines...) Expand all
799 jni()->SetObjectArrayElement(planes, 1, u_buffer); 798 jni()->SetObjectArrayElement(planes, 1, u_buffer);
800 jni()->SetObjectArrayElement(planes, 2, v_buffer); 799 jni()->SetObjectArrayElement(planes, 2, v_buffer);
801 return jni()->NewObject( 800 return jni()->NewObject(
802 *j_frame_class_, j_i420_frame_ctor_id_, 801 *j_frame_class_, j_i420_frame_ctor_id_,
803 frame->width(), frame->height(), 802 frame->width(), frame->height(),
804 static_cast<int>(frame->rotation()), 803 static_cast<int>(frame->rotation()),
805 strides, planes, javaShallowCopy(frame)); 804 strides, planes, javaShallowCopy(frame));
806 } 805 }
807 806
808 // Return a VideoRenderer.I420Frame referring texture object in |frame|. 807 // Return a VideoRenderer.I420Frame referring texture object in |frame|.
809 jobject CricketToJavaTextureFrame(const cricket::VideoFrame* frame) { 808 jobject CricketToJavaTextureFrame(const webrtc::VideoFrame* frame) {
810 NativeHandleImpl* handle = reinterpret_cast<NativeHandleImpl*>( 809 NativeHandleImpl* handle = reinterpret_cast<NativeHandleImpl*>(
811 frame->video_frame_buffer()->native_handle()); 810 frame->video_frame_buffer()->native_handle());
812 jfloatArray sampling_matrix = handle->sampling_matrix.ToJava(jni()); 811 jfloatArray sampling_matrix = handle->sampling_matrix.ToJava(jni());
813 812
814 return jni()->NewObject( 813 return jni()->NewObject(
815 *j_frame_class_, j_texture_frame_ctor_id_, 814 *j_frame_class_, j_texture_frame_ctor_id_,
816 frame->width(), frame->height(), 815 frame->width(), frame->height(),
817 static_cast<int>(frame->rotation()), 816 static_cast<int>(frame->rotation()),
818 handle->oes_texture_id, sampling_matrix, javaShallowCopy(frame)); 817 handle->oes_texture_id, sampling_matrix, javaShallowCopy(frame));
819 } 818 }
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
937 JOW(void, MediaSource_free)(JNIEnv*, jclass, jlong j_p) { 936 JOW(void, MediaSource_free)(JNIEnv*, jclass, jlong j_p) {
938 reinterpret_cast<rtc::RefCountInterface*>(j_p)->Release(); 937 reinterpret_cast<rtc::RefCountInterface*>(j_p)->Release();
939 } 938 }
940 939
941 JOW(void, VideoRenderer_freeWrappedVideoRenderer)(JNIEnv*, jclass, jlong j_p) { 940 JOW(void, VideoRenderer_freeWrappedVideoRenderer)(JNIEnv*, jclass, jlong j_p) {
942 delete reinterpret_cast<JavaVideoRendererWrapper*>(j_p); 941 delete reinterpret_cast<JavaVideoRendererWrapper*>(j_p);
943 } 942 }
944 943
945 JOW(void, VideoRenderer_releaseNativeFrame)( 944 JOW(void, VideoRenderer_releaseNativeFrame)(
946 JNIEnv* jni, jclass, jlong j_frame_ptr) { 945 JNIEnv* jni, jclass, jlong j_frame_ptr) {
947 delete reinterpret_cast<const cricket::VideoFrame*>(j_frame_ptr); 946 delete reinterpret_cast<const webrtc::VideoFrame*>(j_frame_ptr);
948 } 947 }
949 948
950 JOW(void, MediaStreamTrack_free)(JNIEnv*, jclass, jlong j_p) { 949 JOW(void, MediaStreamTrack_free)(JNIEnv*, jclass, jlong j_p) {
951 reinterpret_cast<MediaStreamTrackInterface*>(j_p)->Release(); 950 reinterpret_cast<MediaStreamTrackInterface*>(j_p)->Release();
952 } 951 }
953 952
954 JOW(jboolean, MediaStream_nativeAddAudioTrack)( 953 JOW(jboolean, MediaStream_nativeAddAudioTrack)(
955 JNIEnv* jni, jclass, jlong pointer, jlong j_audio_track_pointer) { 954 JNIEnv* jni, jclass, jlong pointer, jlong j_audio_track_pointer) {
956 return reinterpret_cast<MediaStreamInterface*>(pointer)->AddTrack( 955 return reinterpret_cast<MediaStreamInterface*>(pointer)->AddTrack(
957 reinterpret_cast<AudioTrackInterface*>(j_audio_track_pointer)); 956 reinterpret_cast<AudioTrackInterface*>(j_audio_track_pointer));
(...skipping 1144 matching lines...) Expand 10 before | Expand all | Expand 10 after
2102 return reinterpret_cast<MediaStreamTrackInterface*>(j_p) 2101 return reinterpret_cast<MediaStreamTrackInterface*>(j_p)
2103 ->set_enabled(enabled); 2102 ->set_enabled(enabled);
2104 } 2103 }
2105 2104
2106 JOW(void, VideoTrack_nativeAddRenderer)( 2105 JOW(void, VideoTrack_nativeAddRenderer)(
2107 JNIEnv* jni, jclass, 2106 JNIEnv* jni, jclass,
2108 jlong j_video_track_pointer, jlong j_renderer_pointer) { 2107 jlong j_video_track_pointer, jlong j_renderer_pointer) {
2109 LOG(LS_INFO) << "VideoTrack::nativeAddRenderer"; 2108 LOG(LS_INFO) << "VideoTrack::nativeAddRenderer";
2110 reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer) 2109 reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer)
2111 ->AddOrUpdateSink( 2110 ->AddOrUpdateSink(
2112 reinterpret_cast<rtc::VideoSinkInterface<cricket::VideoFrame>*>( 2111 reinterpret_cast<rtc::VideoSinkInterface<webrtc::VideoFrame>*>(
2113 j_renderer_pointer), 2112 j_renderer_pointer),
2114 rtc::VideoSinkWants()); 2113 rtc::VideoSinkWants());
2115 } 2114 }
2116 2115
2117 JOW(void, VideoTrack_nativeRemoveRenderer)( 2116 JOW(void, VideoTrack_nativeRemoveRenderer)(
2118 JNIEnv* jni, jclass, 2117 JNIEnv* jni, jclass,
2119 jlong j_video_track_pointer, jlong j_renderer_pointer) { 2118 jlong j_video_track_pointer, jlong j_renderer_pointer) {
2120 reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer) 2119 reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer)
2121 ->RemoveSink( 2120 ->RemoveSink(
2122 reinterpret_cast<rtc::VideoSinkInterface<cricket::VideoFrame>*>( 2121 reinterpret_cast<rtc::VideoSinkInterface<webrtc::VideoFrame>*>(
2123 j_renderer_pointer)); 2122 j_renderer_pointer));
2124 } 2123 }
2125 2124
2126 JOW(jlong, CallSessionFileRotatingLogSink_nativeAddSink)( 2125 JOW(jlong, CallSessionFileRotatingLogSink_nativeAddSink)(
2127 JNIEnv* jni, jclass, 2126 JNIEnv* jni, jclass,
2128 jstring j_dirPath, jint j_maxFileSize, jint j_severity) { 2127 jstring j_dirPath, jint j_maxFileSize, jint j_severity) {
2129 std::string dir_path = JavaToStdString(jni, j_dirPath); 2128 std::string dir_path = JavaToStdString(jni, j_dirPath);
2130 rtc::CallSessionFileRotatingLogSink* sink = 2129 rtc::CallSessionFileRotatingLogSink* sink =
2131 new rtc::CallSessionFileRotatingLogSink(dir_path, j_maxFileSize); 2130 new rtc::CallSessionFileRotatingLogSink(dir_path, j_maxFileSize);
2132 if (!sink->Init()) { 2131 if (!sink->Init()) {
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
2392 return JavaStringFromStdString( 2391 return JavaStringFromStdString(
2393 jni, 2392 jni,
2394 reinterpret_cast<RtpReceiverInterface*>(j_rtp_receiver_pointer)->id()); 2393 reinterpret_cast<RtpReceiverInterface*>(j_rtp_receiver_pointer)->id());
2395 } 2394 }
2396 2395
2397 JOW(void, RtpReceiver_free)(JNIEnv* jni, jclass, jlong j_rtp_receiver_pointer) { 2396 JOW(void, RtpReceiver_free)(JNIEnv* jni, jclass, jlong j_rtp_receiver_pointer) {
2398 reinterpret_cast<RtpReceiverInterface*>(j_rtp_receiver_pointer)->Release(); 2397 reinterpret_cast<RtpReceiverInterface*>(j_rtp_receiver_pointer)->Release();
2399 } 2398 }
2400 2399
2401 } // namespace webrtc_jni 2400 } // namespace webrtc_jni
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698