OLD | NEW |
1 /* | 1 /* |
2 * libjingle | 2 * libjingle |
3 * Copyright 2013 Google Inc. | 3 * Copyright 2013 Google Inc. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
(...skipping 722 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
733 class VideoRendererWrapper : public VideoRendererInterface { | 733 class VideoRendererWrapper : public VideoRendererInterface { |
734 public: | 734 public: |
735 static VideoRendererWrapper* Create(cricket::VideoRenderer* renderer) { | 735 static VideoRendererWrapper* Create(cricket::VideoRenderer* renderer) { |
736 if (renderer) | 736 if (renderer) |
737 return new VideoRendererWrapper(renderer); | 737 return new VideoRendererWrapper(renderer); |
738 return NULL; | 738 return NULL; |
739 } | 739 } |
740 | 740 |
741 virtual ~VideoRendererWrapper() {} | 741 virtual ~VideoRendererWrapper() {} |
742 | 742 |
743 // This wraps VideoRenderer which still has SetSize. | |
744 void RenderFrame(const cricket::VideoFrame* video_frame) override { | 743 void RenderFrame(const cricket::VideoFrame* video_frame) override { |
745 ScopedLocalRefFrame local_ref_frame(AttachCurrentThreadIfNeeded()); | 744 ScopedLocalRefFrame local_ref_frame(AttachCurrentThreadIfNeeded()); |
746 const cricket::VideoFrame* frame = | 745 renderer_->RenderFrame(video_frame->GetCopyWithRotationApplied()); |
747 video_frame->GetCopyWithRotationApplied(); | |
748 if (width_ != frame->GetWidth() || height_ != frame->GetHeight()) { | |
749 width_ = frame->GetWidth(); | |
750 height_ = frame->GetHeight(); | |
751 renderer_->SetSize(width_, height_, 0); | |
752 } | |
753 renderer_->RenderFrame(frame); | |
754 } | 746 } |
755 | 747 |
756 private: | 748 private: |
757 explicit VideoRendererWrapper(cricket::VideoRenderer* renderer) | 749 explicit VideoRendererWrapper(cricket::VideoRenderer* renderer) |
758 : width_(0), height_(0), renderer_(renderer) {} | 750 : renderer_(renderer) {} |
759 int width_, height_; | |
760 scoped_ptr<cricket::VideoRenderer> renderer_; | 751 scoped_ptr<cricket::VideoRenderer> renderer_; |
761 }; | 752 }; |
762 | 753 |
763 // Wrapper dispatching webrtc::VideoRendererInterface to a Java VideoRenderer | 754 // Wrapper dispatching webrtc::VideoRendererInterface to a Java VideoRenderer |
764 // instance. | 755 // instance. |
765 class JavaVideoRendererWrapper : public VideoRendererInterface { | 756 class JavaVideoRendererWrapper : public VideoRendererInterface { |
766 public: | 757 public: |
767 JavaVideoRendererWrapper(JNIEnv* jni, jobject j_callbacks) | 758 JavaVideoRendererWrapper(JNIEnv* jni, jobject j_callbacks) |
768 : j_callbacks_(jni, j_callbacks), | 759 : j_callbacks_(jni, j_callbacks), |
769 j_render_frame_id_(GetMethodID( | 760 j_render_frame_id_(GetMethodID( |
(...skipping 1393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2163 return JavaStringFromStdString( | 2154 return JavaStringFromStdString( |
2164 jni, | 2155 jni, |
2165 reinterpret_cast<RtpReceiverInterface*>(j_rtp_receiver_pointer)->id()); | 2156 reinterpret_cast<RtpReceiverInterface*>(j_rtp_receiver_pointer)->id()); |
2166 } | 2157 } |
2167 | 2158 |
2168 JOW(void, RtpReceiver_free)(JNIEnv* jni, jclass, jlong j_rtp_receiver_pointer) { | 2159 JOW(void, RtpReceiver_free)(JNIEnv* jni, jclass, jlong j_rtp_receiver_pointer) { |
2169 reinterpret_cast<RtpReceiverInterface*>(j_rtp_receiver_pointer)->Release(); | 2160 reinterpret_cast<RtpReceiverInterface*>(j_rtp_receiver_pointer)->Release(); |
2170 } | 2161 } |
2171 | 2162 |
2172 } // namespace webrtc_jni | 2163 } // namespace webrtc_jni |
OLD | NEW |