agora-python-server-sdk 2.0.0__tar.gz → 2.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of agora-python-server-sdk might be problematic. Click here for more details.
- {agora_python_server_sdk-2.0.0/agora_python_server_sdk.egg-info → agora_python_server_sdk-2.0.2}/PKG-INFO +1 -1
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/_audio_frame_observer.py +10 -10
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/_local_user_observer.py +6 -71
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/_video_encoded_frame_observer.py +1 -1
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/_video_frame_observer.py +1 -1
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/remote_audio_track.py +15 -1
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2/agora_python_server_sdk.egg-info}/PKG-INFO +1 -1
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/setup.py +1 -1
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/MANIFEST.in +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/README.md +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/__init__.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/_rtc_connection_observer.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/agora_base.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/agora_parameter.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/agora_service.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/audio_encoded_frame_sender.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/audio_frame_observer.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/audio_pcm_data_sender.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/audio_vad.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/globals.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/local_audio_track.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/local_user.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/local_user_observer.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/local_video_track.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/media_node_factory.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/remote_video_track.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/rtc_connection.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/rtc_connection_observer.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/video_encoded_frame_observer.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/video_frame_observer.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/video_frame_sender.py +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora_python_server_sdk.egg-info/SOURCES.txt +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora_python_server_sdk.egg-info/dependency_links.txt +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora_python_server_sdk.egg-info/top_level.txt +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/pyproject.toml +0 -0
- {agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/setup.cfg +0 -0
{agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/_audio_frame_observer.py
RENAMED
|
@@ -73,31 +73,31 @@ class AudioFrameObserverInner(ctypes.Structure):
|
|
|
73
73
|
# self.on_get_ear_monitoring_audio_frame_param = ON_GET_EAR_MONITORING_AUDIO_FRAME_PARAM_CALLBACK(self._on_get_ear_monitoring_audio_frame_param)
|
|
74
74
|
|
|
75
75
|
def _on_record_audio_frame(self, local_user_handle, channel_id, audio_frame_inner):
|
|
76
|
-
print("AudioFrameObserverInner _on_record_audio_frame", local_user_handle, channel_id, audio_frame_inner)
|
|
76
|
+
# print("AudioFrameObserverInner _on_record_audio_frame", local_user_handle, channel_id, audio_frame_inner)
|
|
77
77
|
channel_id_str = channel_id.decode('utf-8')
|
|
78
78
|
frame = audio_frame_inner.contents._to_audio_frame()
|
|
79
79
|
ret = self.observer.on_record_audio_frame(self.local_user, channel_id_str, frame)
|
|
80
80
|
return ret
|
|
81
81
|
|
|
82
82
|
def _on_playback_audio_frame(self, local_user_handle, channel_id, audio_frame_inner):
|
|
83
|
-
print("AudioFrameObserverInner _on_playback_audio_frame", local_user_handle, channel_id, audio_frame_inner)
|
|
83
|
+
# print("AudioFrameObserverInner _on_playback_audio_frame", local_user_handle, channel_id, audio_frame_inner)
|
|
84
84
|
channel_id_str = channel_id.decode('utf-8')
|
|
85
85
|
frame = audio_frame_inner.contents._to_audio_frame()
|
|
86
86
|
ret = self.observer.on_playback_audio_frame(self.local_user, channel_id_str, frame)
|
|
87
87
|
return ret
|
|
88
88
|
|
|
89
89
|
def _on_mixed_audio_frame(self, local_user_handle, channel_id, audio_frame_inner):
|
|
90
|
-
print("AudioFrameObserverInner _on_mixed_audio_frame", local_user_handle, channel_id, audio_frame_inner)
|
|
90
|
+
# print("AudioFrameObserverInner _on_mixed_audio_frame", local_user_handle, channel_id, audio_frame_inner)
|
|
91
91
|
ret = self.observer.on_mixed_audio_frame(self.local_user, audio_frame_inner)
|
|
92
92
|
return ret
|
|
93
93
|
|
|
94
94
|
def _on_ear_monitoring_audio_frame(self, local_user_handle, audio_frame_inner):
|
|
95
|
-
print("AudioFrameObserverInner _on_ear_monitoring_audio_frame", local_user_handle, audio_frame_inner)
|
|
95
|
+
# print("AudioFrameObserverInner _on_ear_monitoring_audio_frame", local_user_handle, audio_frame_inner)
|
|
96
96
|
ret = self.observer.on_ear_monitoring_audio_frame(self.local_user, audio_frame_inner)
|
|
97
97
|
return ret
|
|
98
98
|
|
|
99
99
|
def _on_playback_audio_frame_before_mixing(self, local_user_handle, channel_id, user_id, audio_frame_inner):
|
|
100
|
-
print("AudioFrameObserverInner _on_playback_audio_frame_before_mixing", local_user_handle, channel_id, user_id, audio_frame_inner)
|
|
100
|
+
# print("AudioFrameObserverInner _on_playback_audio_frame_before_mixing", local_user_handle, channel_id, user_id, audio_frame_inner)
|
|
101
101
|
if channel_id is None:
|
|
102
102
|
channel_id_str = ""
|
|
103
103
|
else:
|
|
@@ -109,12 +109,12 @@ class AudioFrameObserverInner(ctypes.Structure):
|
|
|
109
109
|
return ret
|
|
110
110
|
|
|
111
111
|
def _on_get_audio_frame_position(self, local_user_handle):
|
|
112
|
-
print("AudioFrameObserverInner _on_get_audio_frame_position", local_user_handle)
|
|
112
|
+
# print("AudioFrameObserverInner _on_get_audio_frame_position", local_user_handle)
|
|
113
113
|
return 0
|
|
114
114
|
return self.observer.on_get_audio_frame_position(self.local_user)
|
|
115
115
|
|
|
116
116
|
def _on_get_playback_audio_frame_param(self, local_user_handle):
|
|
117
|
-
print("AudioFrameObserverInner _on_get_playback_audio_frame_param", local_user_handle)
|
|
117
|
+
# print("AudioFrameObserverInner _on_get_playback_audio_frame_param", local_user_handle)
|
|
118
118
|
params = AudioParams()
|
|
119
119
|
params.sample_rate = 16000 # 示例值
|
|
120
120
|
params.channels = 1 # 示例值
|
|
@@ -124,7 +124,7 @@ class AudioFrameObserverInner(ctypes.Structure):
|
|
|
124
124
|
return self.observer.on_get_playback_audio_frame_param(self.local_user)
|
|
125
125
|
|
|
126
126
|
def _on_get_record_audio_frame_param(self, local_user_handle):
|
|
127
|
-
print("AudioFrameObserverInner _on_get_record_audio_frame_param", local_user_handle)
|
|
127
|
+
# print("AudioFrameObserverInner _on_get_record_audio_frame_param", local_user_handle)
|
|
128
128
|
params = AudioParams()
|
|
129
129
|
params.sample_rate = 16000 # 示例值
|
|
130
130
|
params.channels = 1 # 示例值
|
|
@@ -134,7 +134,7 @@ class AudioFrameObserverInner(ctypes.Structure):
|
|
|
134
134
|
return self.observer.on_get_record_audio_frame_param(self.local_user)
|
|
135
135
|
|
|
136
136
|
def _on_get_mixed_audio_frame_param(self, local_user_handle):
|
|
137
|
-
print("AudioFrameObserverInner _on_get_mixed_audio_frame_param", local_user_handle)
|
|
137
|
+
# print("AudioFrameObserverInner _on_get_mixed_audio_frame_param", local_user_handle)
|
|
138
138
|
params = AudioParams()
|
|
139
139
|
params.sample_rate = 16000 # 示例值
|
|
140
140
|
params.channels = 1 # 示例值
|
|
@@ -144,7 +144,7 @@ class AudioFrameObserverInner(ctypes.Structure):
|
|
|
144
144
|
return self.observer.on_get_mixed_audio_frame_param(self.local_user)
|
|
145
145
|
|
|
146
146
|
def _on_get_ear_monitoring_audio_frame_param(self, local_user_handle):
|
|
147
|
-
print("AudioFrameObserverInner _on_get_ear_monitoring_audio_frame_param", local_user_handle)
|
|
147
|
+
# print("AudioFrameObserverInner _on_get_ear_monitoring_audio_frame_param", local_user_handle)
|
|
148
148
|
params = AudioParams()
|
|
149
149
|
params.sample_rate = 16000 # 示例值
|
|
150
150
|
params.channels = 1 # 示例值
|
{agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/_local_user_observer.py
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import ctypes
|
|
2
2
|
from .agora_base import *
|
|
3
3
|
from .local_user import *
|
|
4
|
-
from .
|
|
5
|
-
from .remote_video_track import RemoteVideoTrack
|
|
4
|
+
from .remote_audio_track import RemoteAudioTrack, RemoteAudioTrackStats
|
|
5
|
+
from .remote_video_track import RemoteVideoTrack, RemoteVideoTrackStats
|
|
6
6
|
uid_t = ctypes.c_uint
|
|
7
7
|
track_id_t = ctypes.c_uint
|
|
8
8
|
|
|
@@ -10,21 +10,6 @@ track_id_t = ctypes.c_uint
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
class RemoteAudioTrackStats(ctypes.Structure):
|
|
14
|
-
_fields_ = [
|
|
15
|
-
("uid", ctypes.c_uint),
|
|
16
|
-
("quality", ctypes.c_int),
|
|
17
|
-
("network_transport_delay", ctypes.c_int),
|
|
18
|
-
("jitter_buffer_delay", ctypes.c_int),
|
|
19
|
-
("audio_loss_rate", ctypes.c_int),
|
|
20
|
-
("num_channels", ctypes.c_int),
|
|
21
|
-
("received_sample_rate", ctypes.c_int),
|
|
22
|
-
("received_bitrate", ctypes.c_int),
|
|
23
|
-
("total_frozen_time", ctypes.c_int),
|
|
24
|
-
("frozen_rate", ctypes.c_int),
|
|
25
|
-
("received_bytes", ctypes.c_int64)
|
|
26
|
-
]
|
|
27
|
-
|
|
28
13
|
class VideoTrackInfoInner(ctypes.Structure):
|
|
29
14
|
_fields_ = [
|
|
30
15
|
("is_local", ctypes.c_int),
|
|
@@ -51,56 +36,6 @@ class VideoTrackInfoInner(ctypes.Structure):
|
|
|
51
36
|
track_info.owner_uid = self.owner_uid
|
|
52
37
|
return track_info
|
|
53
38
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
class LocalVideoTrackStats(ctypes.Structure):
|
|
57
|
-
_fields_ = [
|
|
58
|
-
("number_of_streams", ctypes.c_uint64),
|
|
59
|
-
("bytes_major_stream", ctypes.c_uint64),
|
|
60
|
-
("bytes_minor_stream", ctypes.c_uint64),
|
|
61
|
-
("frames_encoded", ctypes.c_uint32),
|
|
62
|
-
("ssrc_major_stream", ctypes.c_uint32),
|
|
63
|
-
("ssrc_minor_stream", ctypes.c_uint32),
|
|
64
|
-
("capture_frame_rate", ctypes.c_int),
|
|
65
|
-
("regulated_capture_frame_rate", ctypes.c_int),
|
|
66
|
-
("input_frame_rate", ctypes.c_int),
|
|
67
|
-
("encode_frame_rate", ctypes.c_int),
|
|
68
|
-
("render_frame_rate", ctypes.c_int),
|
|
69
|
-
("target_media_bitrate_bps", ctypes.c_int),
|
|
70
|
-
("media_bitrate_bps", ctypes.c_int),
|
|
71
|
-
("total_bitrate_bps", ctypes.c_int),
|
|
72
|
-
("capture_width", ctypes.c_int),
|
|
73
|
-
("capture_height", ctypes.c_int),
|
|
74
|
-
("regulated_capture_width", ctypes.c_int),
|
|
75
|
-
("regulated_capture_height", ctypes.c_int),
|
|
76
|
-
("width", ctypes.c_int),
|
|
77
|
-
("height", ctypes.c_int),
|
|
78
|
-
("encoder_type", ctypes.c_uint32),
|
|
79
|
-
("uplink_cost_time_ms", ctypes.c_uint32),
|
|
80
|
-
("quality_adapt_indication", ctypes.c_int)
|
|
81
|
-
]
|
|
82
|
-
class RemoteVideoTrackStats(ctypes.Structure):
|
|
83
|
-
_fields_ = [
|
|
84
|
-
("uid", ctypes.c_uint),
|
|
85
|
-
("delay", ctypes.c_int),
|
|
86
|
-
("width", ctypes.c_int),
|
|
87
|
-
("height", ctypes.c_int),
|
|
88
|
-
("received_bitrate", ctypes.c_int),
|
|
89
|
-
("decoder_output_frame_rate", ctypes.c_int),
|
|
90
|
-
("renderer_output_frame_rate", ctypes.c_int),
|
|
91
|
-
("frame_loss_rate", ctypes.c_int),
|
|
92
|
-
("packet_loss_rate", ctypes.c_int),
|
|
93
|
-
("rx_stream_type", ctypes.c_int),
|
|
94
|
-
("total_frozen_time", ctypes.c_int),
|
|
95
|
-
("frozen_rate", ctypes.c_int),
|
|
96
|
-
("total_decoded_frames", ctypes.c_uint32),
|
|
97
|
-
("av_sync_time_ms", ctypes.c_int),
|
|
98
|
-
("downlink_process_time_ms", ctypes.c_uint32),
|
|
99
|
-
("frame_render_delay_ms", ctypes.c_uint32),
|
|
100
|
-
("totalActiveTime", ctypes.c_uint64),
|
|
101
|
-
("publishDuration", ctypes.c_uint64)
|
|
102
|
-
]
|
|
103
|
-
|
|
104
39
|
class AudioVolumeInfo(ctypes.Structure):
|
|
105
40
|
_fields_ = [
|
|
106
41
|
("user_id", ctypes.c_uint),
|
|
@@ -338,7 +273,7 @@ class RTCLocalUserObserverInner(ctypes.Structure):
|
|
|
338
273
|
self.local_user_observer.on_user_audio_track_subscribed(self.local_user, user_id_str, remote_audio_track)
|
|
339
274
|
|
|
340
275
|
def _on_remote_audio_track_statistics(self, local_user_handle, remote_audio_track_handle, stats):
|
|
341
|
-
print("LocalUserCB _on_remote_audio_track_statistics:", local_user_handle, remote_audio_track_handle, stats)
|
|
276
|
+
# print("LocalUserCB _on_remote_audio_track_statistics:", local_user_handle, remote_audio_track_handle, stats)
|
|
342
277
|
audio_stats = stats.contents #RemoteAudioTrackStats
|
|
343
278
|
remote_audio_track = self.local_user.get_remote_audio_map(remote_audio_track_handle)
|
|
344
279
|
self.local_user_observer.on_remote_audio_track_statistics(self.local_user, remote_audio_track, audio_stats)
|
|
@@ -404,7 +339,7 @@ class RTCLocalUserObserverInner(ctypes.Structure):
|
|
|
404
339
|
#note: for video, one user can publish multiple video tracks, so the identifier is the remote_video_track_handle,
|
|
405
340
|
# its diff to audiotrack
|
|
406
341
|
self.local_user.set_remote_video_map(remote_video_track_handle, remote_video_track)
|
|
407
|
-
track_info = video_track_info.contents.
|
|
342
|
+
track_info = video_track_info.contents._convert_to_video_track_info()
|
|
408
343
|
self.local_user_observer.on_user_video_track_subscribed(self.local_user, user_id_str, track_info, remote_video_track)
|
|
409
344
|
|
|
410
345
|
def _on_user_video_track_state_changed(self, local_user_handle, user_id, remote_video_track_handle, state, reason, elapsed):
|
|
@@ -480,10 +415,10 @@ class RTCLocalUserObserverInner(ctypes.Structure):
|
|
|
480
415
|
self.local_user_observer.on_remote_subscribe_fallback_to_audio_only(self.local_user, user_id_str, is_fallback)
|
|
481
416
|
|
|
482
417
|
def _on_stream_message(self, local_user_handle, user_id, stream_id, data, size):
|
|
483
|
-
print("LocalUserCB _on_stream_message:", local_user_handle, user_id, stream_id, data, size)
|
|
418
|
+
# print("LocalUserCB _on_stream_message:", local_user_handle, user_id, stream_id, data, size)
|
|
484
419
|
user_id_str = user_id.decode('utf-8') if user_id else ""
|
|
485
420
|
bytes_from_c = ctypes.string_at(data, size)
|
|
486
|
-
data_byte_array = bytearray(bytes_from_c)
|
|
421
|
+
data_byte_array = bytearray(bytes_from_c).decode()
|
|
487
422
|
#note: do not use date_byte_array.decode() for the stream msg is binary data, not limited to only text
|
|
488
423
|
self.local_user_observer.on_stream_message(self.local_user, user_id_str, stream_id, data_byte_array, size)
|
|
489
424
|
|
|
@@ -53,7 +53,7 @@ class VideoEncodedFrameObserverInner(ctypes.Structure):
|
|
|
53
53
|
self.on_encoded_video_frame = ON_ENCODED_VIDEO_FRAME(self._on_encoded_video_frame)
|
|
54
54
|
|
|
55
55
|
def _on_encoded_video_frame(self, agora_video_encoded_frame_observer ,uid, image_buffer, length, video_encoded_frame_info):
|
|
56
|
-
print("VideoEncodedFrameObserverInnerCB on_encoded_video_frame")
|
|
56
|
+
# print("VideoEncodedFrameObserverInnerCB on_encoded_video_frame")
|
|
57
57
|
img_buffer = ctypes.string_at(image_buffer, length)
|
|
58
58
|
vefi = video_encoded_frame_info.contents._to_encoded_video_frame_info()
|
|
59
59
|
self.video_encoded_frame_observer.on_encoded_video_frame(agora_video_encoded_frame_observer, uid, img_buffer, length, vefi)
|
{agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/_video_frame_observer.py
RENAMED
|
@@ -63,7 +63,7 @@ class VideoFrameObserverInner(ctypes.Structure):
|
|
|
63
63
|
|
|
64
64
|
def _on_frame(self, agora_handle, channel_id, user_id, video_frame:VideoFrameInner):
|
|
65
65
|
vf = video_frame.contents
|
|
66
|
-
print("VideoFrameObserver _on_frame:", agora_handle, channel_id, user_id, vf.metadata_buffer, vf.metadata_size)
|
|
66
|
+
# print("VideoFrameObserver _on_frame:", agora_handle, channel_id, user_id, vf.metadata_buffer, vf.metadata_size)
|
|
67
67
|
self.video_frame_observer.on_frame(agora_handle, channel_id.decode() if channel_id else None, user_id.decode(), vf.to_video_frame())
|
|
68
68
|
|
|
69
69
|
|
{agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/remote_audio_track.py
RENAMED
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
import ctypes
|
|
2
2
|
from .agora_base import *
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
|
|
5
|
+
class RemoteAudioTrackStats(ctypes.Structure):
|
|
6
|
+
_fields_ = [
|
|
7
|
+
("uid", ctypes.c_uint),
|
|
8
|
+
("quality", ctypes.c_int),
|
|
9
|
+
("network_transport_delay", ctypes.c_int),
|
|
10
|
+
("jitter_buffer_delay", ctypes.c_int),
|
|
11
|
+
("audio_loss_rate", ctypes.c_int),
|
|
12
|
+
("num_channels", ctypes.c_int),
|
|
13
|
+
("received_sample_rate", ctypes.c_int),
|
|
14
|
+
("received_bitrate", ctypes.c_int),
|
|
15
|
+
("total_frozen_time", ctypes.c_int),
|
|
16
|
+
("frozen_rate", ctypes.c_int),
|
|
17
|
+
("received_bytes", ctypes.c_int64)
|
|
18
|
+
]
|
|
5
19
|
|
|
6
20
|
agora_remote_audio_track_get_statistics = agora_lib.agora_remote_audio_track_get_statistics
|
|
7
21
|
agora_remote_audio_track_get_statistics.restype = ctypes.POINTER(RemoteAudioTrackStats)
|
|
@@ -47,7 +47,7 @@ class CustomInstallCommand(install):
|
|
|
47
47
|
|
|
48
48
|
setup(
|
|
49
49
|
name='agora_python_server_sdk',
|
|
50
|
-
version='2.0.
|
|
50
|
+
version='2.0.2',
|
|
51
51
|
description='A Python SDK for Agora Server',
|
|
52
52
|
long_description=open('README.md').read(),
|
|
53
53
|
long_description_content_type='text/markdown',
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/agora_parameter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/audio_frame_observer.py
RENAMED
|
File without changes
|
{agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/audio_pcm_data_sender.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/local_audio_track.py
RENAMED
|
File without changes
|
|
File without changes
|
{agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/local_user_observer.py
RENAMED
|
File without changes
|
{agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/local_video_track.py
RENAMED
|
File without changes
|
{agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/media_node_factory.py
RENAMED
|
File without changes
|
{agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/remote_video_track.py
RENAMED
|
File without changes
|
|
File without changes
|
{agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/rtc_connection_observer.py
RENAMED
|
File without changes
|
|
File without changes
|
{agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/video_frame_observer.py
RENAMED
|
File without changes
|
{agora_python_server_sdk-2.0.0 → agora_python_server_sdk-2.0.2}/agora/rtc/video_frame_sender.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|