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

Side by Side Diff: talk/app/webrtc/java/jni/peerconnection_jni.cc

Issue 1207613006: Support for onbufferedamountlow (Closed) Base URL: https://chromium.googlesource.com/external/webrtc/trunk/talk.git@master
Patch Set: Fix path problems Created 5 years, 5 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 * 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 541 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 }; 552 };
553 553
554 // Adapter for a Java DataChannel$Observer presenting a C++ DataChannelObserver 554 // Adapter for a Java DataChannel$Observer presenting a C++ DataChannelObserver
555 // and dispatching the callback from C++ back to Java. 555 // and dispatching the callback from C++ back to Java.
556 class DataChannelObserverWrapper : public DataChannelObserver { 556 class DataChannelObserverWrapper : public DataChannelObserver {
557 public: 557 public:
558 DataChannelObserverWrapper(JNIEnv* jni, jobject j_observer) 558 DataChannelObserverWrapper(JNIEnv* jni, jobject j_observer)
559 : j_observer_global_(jni, j_observer), 559 : j_observer_global_(jni, j_observer),
560 j_observer_class_(jni, GetObjectClass(jni, j_observer)), 560 j_observer_class_(jni, GetObjectClass(jni, j_observer)),
561 j_buffer_class_(jni, FindClass(jni, "org/webrtc/DataChannel$Buffer")), 561 j_buffer_class_(jni, FindClass(jni, "org/webrtc/DataChannel$Buffer")),
562 j_on_buffered_amount_change_mid_(GetMethodID(jni, *j_observer_class_,
563 "onBufferedAmountChange", "(J)V")),
562 j_on_state_change_mid_(GetMethodID(jni, *j_observer_class_, 564 j_on_state_change_mid_(GetMethodID(jni, *j_observer_class_,
563 "onStateChange", "()V")), 565 "onStateChange", "()V")),
564 j_on_message_mid_(GetMethodID(jni, *j_observer_class_, "onMessage", 566 j_on_message_mid_(GetMethodID(jni, *j_observer_class_, "onMessage",
565 "(Lorg/webrtc/DataChannel$Buffer;)V")), 567 "(Lorg/webrtc/DataChannel$Buffer;)V")),
566 j_buffer_ctor_(GetMethodID(jni, *j_buffer_class_, 568 j_buffer_ctor_(GetMethodID(jni, *j_buffer_class_,
567 "<init>", "(Ljava/nio/ByteBuffer;Z)V")) { 569 "<init>", "(Ljava/nio/ByteBuffer;Z)V")) {
568 } 570 }
569 571
570 virtual ~DataChannelObserverWrapper() {} 572 virtual ~DataChannelObserverWrapper() {}
571 573
574 void OnBufferedAmountChange(uint64 previous_amount) override {
575 ScopedLocalRefFrame local_ref_frame(jni());
576 jni()->CallVoidMethod(*j_observer_global_,
577 j_on_buffered_amount_change_mid_, previous_amount);
578 CHECK_EXCEPTION(jni()) << "error during CallVoidMethod";
579 }
580
572 void OnStateChange() override { 581 void OnStateChange() override {
573 ScopedLocalRefFrame local_ref_frame(jni()); 582 ScopedLocalRefFrame local_ref_frame(jni());
574 jni()->CallVoidMethod(*j_observer_global_, j_on_state_change_mid_); 583 jni()->CallVoidMethod(*j_observer_global_, j_on_state_change_mid_);
575 CHECK_EXCEPTION(jni()) << "error during CallVoidMethod"; 584 CHECK_EXCEPTION(jni()) << "error during CallVoidMethod";
576 } 585 }
577 586
578 void OnMessage(const DataBuffer& buffer) override { 587 void OnMessage(const DataBuffer& buffer) override {
579 ScopedLocalRefFrame local_ref_frame(jni()); 588 ScopedLocalRefFrame local_ref_frame(jni());
580 jobject byte_buffer = jni()->NewDirectByteBuffer( 589 jobject byte_buffer = jni()->NewDirectByteBuffer(
581 const_cast<char*>(buffer.data.data<char>()), buffer.data.size()); 590 const_cast<char*>(buffer.data.data<char>()), buffer.data.size());
582 jobject j_buffer = jni()->NewObject(*j_buffer_class_, j_buffer_ctor_, 591 jobject j_buffer = jni()->NewObject(*j_buffer_class_, j_buffer_ctor_,
583 byte_buffer, buffer.binary); 592 byte_buffer, buffer.binary);
584 jni()->CallVoidMethod(*j_observer_global_, j_on_message_mid_, j_buffer); 593 jni()->CallVoidMethod(*j_observer_global_, j_on_message_mid_, j_buffer);
585 CHECK_EXCEPTION(jni()) << "error during CallVoidMethod"; 594 CHECK_EXCEPTION(jni()) << "error during CallVoidMethod";
586 } 595 }
587 596
588 private: 597 private:
589 JNIEnv* jni() { 598 JNIEnv* jni() {
590 return AttachCurrentThreadIfNeeded(); 599 return AttachCurrentThreadIfNeeded();
591 } 600 }
592 601
593 const ScopedGlobalRef<jobject> j_observer_global_; 602 const ScopedGlobalRef<jobject> j_observer_global_;
594 const ScopedGlobalRef<jclass> j_observer_class_; 603 const ScopedGlobalRef<jclass> j_observer_class_;
595 const ScopedGlobalRef<jclass> j_buffer_class_; 604 const ScopedGlobalRef<jclass> j_buffer_class_;
605 const jmethodID j_on_buffered_amount_change_mid_;
596 const jmethodID j_on_state_change_mid_; 606 const jmethodID j_on_state_change_mid_;
597 const jmethodID j_on_message_mid_; 607 const jmethodID j_on_message_mid_;
598 const jmethodID j_buffer_ctor_; 608 const jmethodID j_buffer_ctor_;
599 }; 609 };
600 610
601 // Adapter for a Java StatsObserver presenting a C++ StatsObserver and 611 // Adapter for a Java StatsObserver presenting a C++ StatsObserver and
602 // dispatching the callback from C++ back to Java. 612 // dispatching the callback from C++ back to Java.
603 class StatsObserverWrapper : public StatsObserver { 613 class StatsObserverWrapper : public StatsObserver {
604 public: 614 public:
605 StatsObserverWrapper(JNIEnv* jni, jobject j_observer) 615 StatsObserverWrapper(JNIEnv* jni, jobject j_observer)
(...skipping 1070 matching lines...) Expand 10 before | Expand all | Expand 10 after
1676 } 1686 }
1677 1687
1678 JOW(void, VideoTrack_nativeRemoveRenderer)( 1688 JOW(void, VideoTrack_nativeRemoveRenderer)(
1679 JNIEnv* jni, jclass, 1689 JNIEnv* jni, jclass,
1680 jlong j_video_track_pointer, jlong j_renderer_pointer) { 1690 jlong j_video_track_pointer, jlong j_renderer_pointer) {
1681 reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer)->RemoveRenderer( 1691 reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer)->RemoveRenderer(
1682 reinterpret_cast<VideoRendererInterface*>(j_renderer_pointer)); 1692 reinterpret_cast<VideoRendererInterface*>(j_renderer_pointer));
1683 } 1693 }
1684 1694
1685 } // namespace webrtc_jni 1695 } // namespace webrtc_jni
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698