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 706 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
717 class VideoRendererWrapper : public VideoRendererInterface { | 717 class VideoRendererWrapper : public VideoRendererInterface { |
718 public: | 718 public: |
719 static VideoRendererWrapper* Create(cricket::VideoRenderer* renderer) { | 719 static VideoRendererWrapper* Create(cricket::VideoRenderer* renderer) { |
720 if (renderer) | 720 if (renderer) |
721 return new VideoRendererWrapper(renderer); | 721 return new VideoRendererWrapper(renderer); |
722 return NULL; | 722 return NULL; |
723 } | 723 } |
724 | 724 |
725 virtual ~VideoRendererWrapper() {} | 725 virtual ~VideoRendererWrapper() {} |
726 | 726 |
727 // This wraps VideoRenderer which still has SetSize. | |
728 void RenderFrame(const cricket::VideoFrame* video_frame) override { | 727 void RenderFrame(const cricket::VideoFrame* video_frame) override { |
729 ScopedLocalRefFrame local_ref_frame(AttachCurrentThreadIfNeeded()); | 728 ScopedLocalRefFrame local_ref_frame(AttachCurrentThreadIfNeeded()); |
730 const cricket::VideoFrame* frame = | 729 renderer_->RenderFrame(video_frame->GetCopyWithRotationApplied()); |
731 video_frame->GetCopyWithRotationApplied(); | |
732 if (width_ != frame->GetWidth() || height_ != frame->GetHeight()) { | |
733 width_ = frame->GetWidth(); | |
734 height_ = frame->GetHeight(); | |
735 renderer_->SetSize(width_, height_, 0); | |
736 } | |
737 renderer_->RenderFrame(frame); | |
738 } | 730 } |
739 | 731 |
740 private: | 732 private: |
741 explicit VideoRendererWrapper(cricket::VideoRenderer* renderer) | 733 explicit VideoRendererWrapper(cricket::VideoRenderer* renderer) |
742 : width_(0), height_(0), renderer_(renderer) {} | 734 : renderer_(renderer) {} |
743 int width_, height_; | |
744 scoped_ptr<cricket::VideoRenderer> renderer_; | 735 scoped_ptr<cricket::VideoRenderer> renderer_; |
745 }; | 736 }; |
746 | 737 |
747 // Wrapper dispatching webrtc::VideoRendererInterface to a Java VideoRenderer | 738 // Wrapper dispatching webrtc::VideoRendererInterface to a Java VideoRenderer |
748 // instance. | 739 // instance. |
749 class JavaVideoRendererWrapper : public VideoRendererInterface { | 740 class JavaVideoRendererWrapper : public VideoRendererInterface { |
750 public: | 741 public: |
751 JavaVideoRendererWrapper(JNIEnv* jni, jobject j_callbacks) | 742 JavaVideoRendererWrapper(JNIEnv* jni, jobject j_callbacks) |
752 : j_callbacks_(jni, j_callbacks), | 743 : j_callbacks_(jni, j_callbacks), |
753 j_render_frame_id_(GetMethodID( | 744 j_render_frame_id_(GetMethodID( |
(...skipping 1403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2157 return JavaStringFromStdString( | 2148 return JavaStringFromStdString( |
2158 jni, | 2149 jni, |
2159 reinterpret_cast<RtpReceiverInterface*>(j_rtp_receiver_pointer)->id()); | 2150 reinterpret_cast<RtpReceiverInterface*>(j_rtp_receiver_pointer)->id()); |
2160 } | 2151 } |
2161 | 2152 |
2162 JOW(void, RtpReceiver_free)(JNIEnv* jni, jclass, jlong j_rtp_receiver_pointer) { | 2153 JOW(void, RtpReceiver_free)(JNIEnv* jni, jclass, jlong j_rtp_receiver_pointer) { |
2163 reinterpret_cast<RtpReceiverInterface*>(j_rtp_receiver_pointer)->Release(); | 2154 reinterpret_cast<RtpReceiverInterface*>(j_rtp_receiver_pointer)->Release(); |
2164 } | 2155 } |
2165 | 2156 |
2166 } // namespace webrtc_jni | 2157 } // namespace webrtc_jni |
OLD | NEW |