tirtc-devtools-cli 0.0.15 → 0.1.1
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.
- package/README.md +5 -1
- package/USAGE.md +6 -3
- package/dist/cli/src/index.js +19 -3
- package/dist/cli/src/media_assets.js +27 -6
- package/dist/cli/src/role_driver.js +8 -3
- package/package.json +1 -1
- package/vendor/devtools/driver/linux-x64/devtools_driver_probe +0 -0
- package/vendor/devtools/driver/macos-arm64/devtools_driver_probe +0 -0
- package/vendor/runtime/linux-x64/include/tirtc/audio.h +237 -0
- package/vendor/runtime/linux-x64/include/tirtc/audio_codec.h +23 -0
- package/vendor/runtime/linux-x64/include/tirtc/audio_frame.h +36 -0
- package/vendor/runtime/linux-x64/include/tirtc/audio_io.h +65 -0
- package/vendor/runtime/linux-x64/include/tirtc/audio_io_android.h +19 -0
- package/vendor/runtime/linux-x64/include/tirtc/audio_io_apple.h +19 -0
- package/vendor/runtime/linux-x64/include/tirtc/audio_io_harmony.h +19 -0
- package/vendor/runtime/linux-x64/include/tirtc/audio_io_windows.h +19 -0
- package/vendor/runtime/linux-x64/include/tirtc/audio_processing.h +56 -0
- package/vendor/runtime/linux-x64/include/tirtc/audio_sample_rate.h +18 -0
- package/vendor/runtime/linux-x64/include/tirtc/av.h +236 -0
- package/vendor/runtime/linux-x64/include/tirtc/error.h +102 -0
- package/vendor/runtime/linux-x64/include/tirtc/foundation/build_info.h +27 -0
- package/vendor/runtime/linux-x64/include/tirtc/http.h +57 -0
- package/vendor/runtime/linux-x64/include/tirtc/logging.h +55 -0
- package/vendor/runtime/linux-x64/include/tirtc/media_codec.h +21 -0
- package/vendor/runtime/linux-x64/include/tirtc/media_downlink.h +199 -0
- package/vendor/runtime/linux-x64/include/tirtc/media_uplink.h +120 -0
- package/vendor/runtime/linux-x64/include/tirtc/transport.h +445 -0
- package/vendor/runtime/linux-x64/include/tirtc/trp.h +187 -0
- package/vendor/runtime/linux-x64/include/tirtc/video_codec.h +112 -0
- package/vendor/runtime/linux-x64/include/tirtc/video_frame.h +55 -0
- package/vendor/runtime/linux-x64/include/tirtc/video_io.h +53 -0
- package/vendor/runtime/linux-x64/include/tirtc/video_io_android.h +34 -0
- package/vendor/runtime/linux-x64/include/tirtc/video_io_apple.h +47 -0
- package/vendor/runtime/linux-x64/include/tirtc/video_io_harmony.h +32 -0
- package/vendor/runtime/linux-x64/include/tirtc/video_io_windows.h +26 -0
- package/vendor/runtime/linux-x64/include/tirtc/video_processing.h +34 -0
- package/vendor/runtime/linux-x64/lib/libTiRTC.a +0 -0
- package/vendor/runtime/linux-x64/lib/libcrypto.a +0 -0
- package/vendor/runtime/linux-x64/lib/libmatrix_runtime_audio.a +0 -0
- package/vendor/runtime/linux-x64/lib/libmatrix_runtime_facade.a +0 -0
- package/vendor/runtime/linux-x64/lib/libmatrix_runtime_foundation_http.a +0 -0
- package/vendor/runtime/linux-x64/lib/libmatrix_runtime_foundation_logging.a +0 -0
- package/vendor/runtime/linux-x64/lib/libmatrix_runtime_media.a +0 -0
- package/vendor/runtime/linux-x64/lib/libmatrix_runtime_transport.a +0 -0
- package/vendor/runtime/linux-x64/lib/libmatrix_runtime_video.a +0 -0
- package/vendor/runtime/linux-x64/lib/libssl.a +0 -0
- package/vendor/runtime/linux-x64/lib/libwebrtc_apm.a +0 -0
- package/vendor/runtime/linux-x64/lib/libxlog.a +0 -0
- package/vendor/runtime/linux-x64/manifest.txt +45 -0
- package/vendor/runtime/macos-arm64/include/tirtc/audio.h +21 -0
- package/vendor/runtime/macos-arm64/include/tirtc/av.h +28 -0
- package/vendor/runtime/macos-arm64/include/tirtc/error.h +41 -2
- package/vendor/runtime/macos-arm64/include/tirtc/media_downlink.h +45 -0
- package/vendor/runtime/macos-arm64/include/tirtc/video_codec.h +13 -0
- package/vendor/runtime/macos-arm64/lib/libmatrix_runtime_audio.a +0 -0
- package/vendor/runtime/macos-arm64/lib/libmatrix_runtime_facade.a +0 -0
- package/vendor/runtime/macos-arm64/lib/libmatrix_runtime_foundation_http.a +0 -0
- package/vendor/runtime/macos-arm64/lib/libmatrix_runtime_foundation_logging.a +0 -0
- package/vendor/runtime/macos-arm64/lib/libmatrix_runtime_media.a +0 -0
- package/vendor/runtime/macos-arm64/lib/libmatrix_runtime_transport.a +0 -0
- package/vendor/runtime/macos-arm64/lib/libmatrix_runtime_video.a +0 -0
- package/vendor/runtime/macos-arm64/manifest.txt +13 -13
- package/vendor/runtime/script/prepare_runtime_media_dataset.sh +15 -0
- package/vendor/devtools/driver/macos-arm64/runtime_validation_client_bin +0 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
#ifndef TIRTC_MEDIA_DOWNLINK_H_
|
|
2
|
+
#define TIRTC_MEDIA_DOWNLINK_H_
|
|
3
|
+
|
|
4
|
+
#include <stdint.h>
|
|
5
|
+
|
|
6
|
+
#include "tirtc/audio_frame.h"
|
|
7
|
+
#include "tirtc/audio_io.h"
|
|
8
|
+
#include "tirtc/audio_processing.h"
|
|
9
|
+
#include "tirtc/error.h"
|
|
10
|
+
#include "tirtc/video_codec.h"
|
|
11
|
+
#include "tirtc/video_frame.h"
|
|
12
|
+
#include "tirtc/video_io.h"
|
|
13
|
+
|
|
14
|
+
#ifdef __cplusplus
|
|
15
|
+
extern "C" {
|
|
16
|
+
#endif
|
|
17
|
+
|
|
18
|
+
typedef struct TirtcMediaDownlinkAudio TirtcMediaDownlinkAudio;
|
|
19
|
+
typedef struct TirtcMediaDownlinkVideo TirtcMediaDownlinkVideo;
|
|
20
|
+
|
|
21
|
+
typedef enum TirtcMediaDownlinkState {
|
|
22
|
+
TIRTC_MEDIA_DOWNLINK_STATE_IDLE = 0,
|
|
23
|
+
TIRTC_MEDIA_DOWNLINK_STATE_RENDERING = 1,
|
|
24
|
+
TIRTC_MEDIA_DOWNLINK_STATE_BUFFERING = 2,
|
|
25
|
+
TIRTC_MEDIA_DOWNLINK_STATE_FAILED = 3,
|
|
26
|
+
} TirtcMediaDownlinkState;
|
|
27
|
+
|
|
28
|
+
typedef struct TirtcMediaDownlinkAudioOptions {
|
|
29
|
+
uint32_t volume_percent;
|
|
30
|
+
TirtcAudioAgcLevel agc_level;
|
|
31
|
+
TirtcAudioAnsLevel ans_level;
|
|
32
|
+
} TirtcMediaDownlinkAudioOptions;
|
|
33
|
+
|
|
34
|
+
typedef struct TirtcMediaDownlinkVideoOptions {
|
|
35
|
+
TirtcVideoDecoderPreference decoder_preference;
|
|
36
|
+
} TirtcMediaDownlinkVideoOptions;
|
|
37
|
+
|
|
38
|
+
typedef struct TirtcMediaDownlinkAudioObserver {
|
|
39
|
+
void (*on_state_changed)(TirtcMediaDownlinkAudio* downlink, TirtcMediaDownlinkState state,
|
|
40
|
+
TirtcError error, void* user_data);
|
|
41
|
+
} TirtcMediaDownlinkAudioObserver;
|
|
42
|
+
|
|
43
|
+
typedef struct TirtcMediaDownlinkVideoObserver {
|
|
44
|
+
void (*on_state_changed)(TirtcMediaDownlinkVideo* downlink, TirtcMediaDownlinkState state,
|
|
45
|
+
TirtcError error, void* user_data);
|
|
46
|
+
void (*on_output_size_changed)(TirtcMediaDownlinkVideo* downlink, uint32_t width, uint32_t height,
|
|
47
|
+
void* user_data);
|
|
48
|
+
} TirtcMediaDownlinkVideoObserver;
|
|
49
|
+
|
|
50
|
+
typedef struct TirtcMediaDownlinkStutterMetricsSnapshot {
|
|
51
|
+
int session_started;
|
|
52
|
+
uint64_t session_duration_ms;
|
|
53
|
+
uint64_t session_stutter_total_ms;
|
|
54
|
+
uint32_t session_stutter_count;
|
|
55
|
+
uint64_t session_stutter_peak_ms;
|
|
56
|
+
double session_stutter_ratio;
|
|
57
|
+
uint32_t recent_window_duration_ms;
|
|
58
|
+
uint64_t recent_window_stutter_total_ms;
|
|
59
|
+
uint32_t recent_window_stutter_count;
|
|
60
|
+
uint64_t recent_window_stutter_peak_ms;
|
|
61
|
+
double recent_window_stutter_ratio;
|
|
62
|
+
} TirtcMediaDownlinkStutterMetricsSnapshot;
|
|
63
|
+
|
|
64
|
+
typedef struct TirtcMediaDownlinkPendingMetricsSnapshot {
|
|
65
|
+
uint64_t undecoded_pending_duration_ms;
|
|
66
|
+
uint64_t decoded_pending_duration_ms;
|
|
67
|
+
} TirtcMediaDownlinkPendingMetricsSnapshot;
|
|
68
|
+
|
|
69
|
+
typedef struct TirtcMediaDownlinkAudioMetricsSnapshot {
|
|
70
|
+
TirtcMediaDownlinkStutterMetricsSnapshot stutter;
|
|
71
|
+
TirtcMediaDownlinkPendingMetricsSnapshot pending;
|
|
72
|
+
} TirtcMediaDownlinkAudioMetricsSnapshot;
|
|
73
|
+
|
|
74
|
+
typedef struct TirtcMediaDownlinkVideoStartupMetricsSnapshot {
|
|
75
|
+
int has_first_video_input;
|
|
76
|
+
int has_first_video_decoded;
|
|
77
|
+
int has_first_video_rendered;
|
|
78
|
+
uint64_t first_video_input_monotonic_ms;
|
|
79
|
+
uint64_t first_video_decoded_monotonic_ms;
|
|
80
|
+
uint64_t first_video_rendered_monotonic_ms;
|
|
81
|
+
} TirtcMediaDownlinkVideoStartupMetricsSnapshot;
|
|
82
|
+
|
|
83
|
+
typedef struct TirtcMediaDownlinkVideoMetricsSnapshot {
|
|
84
|
+
TirtcMediaDownlinkVideoStartupMetricsSnapshot startup;
|
|
85
|
+
TirtcMediaDownlinkStutterMetricsSnapshot stutter;
|
|
86
|
+
TirtcMediaDownlinkPendingMetricsSnapshot pending;
|
|
87
|
+
} TirtcMediaDownlinkVideoMetricsSnapshot;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Diagnostic facts currently known by an audio downlink.
|
|
91
|
+
*
|
|
92
|
+
* The snapshot is a value copy into caller-owned storage. `codec` is
|
|
93
|
+
* `TIRTC_MEDIA_CODEC_NONE` until the downlink accepts a valid encoded audio frame.
|
|
94
|
+
*/
|
|
95
|
+
typedef struct TirtcMediaDownlinkAudioDebugSnapshot {
|
|
96
|
+
TirtcMediaCodec codec;
|
|
97
|
+
} TirtcMediaDownlinkAudioDebugSnapshot;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Diagnostic facts currently known by a video downlink.
|
|
101
|
+
*
|
|
102
|
+
* The snapshot is a value copy into caller-owned storage. Zero values mean the downlink has not
|
|
103
|
+
* observed the corresponding fact since start/reset. `requested_decoder_preference` reflects the
|
|
104
|
+
* configured option; `resolved_decoder_backend` is only set after the runtime locks a concrete
|
|
105
|
+
* decode route.
|
|
106
|
+
*/
|
|
107
|
+
typedef struct TirtcMediaDownlinkVideoDebugSnapshot {
|
|
108
|
+
TirtcMediaCodec codec;
|
|
109
|
+
TirtcVideoBitstreamFormat bitstream_format;
|
|
110
|
+
uint32_t width;
|
|
111
|
+
uint32_t height;
|
|
112
|
+
TirtcVideoDecoderPreference requested_decoder_preference;
|
|
113
|
+
TirtcVideoDecoderBackendKind resolved_decoder_backend;
|
|
114
|
+
} TirtcMediaDownlinkVideoDebugSnapshot;
|
|
115
|
+
|
|
116
|
+
TirtcError tirtc_media_downlink_audio_create(TirtcMediaDownlinkAudio** out_downlink);
|
|
117
|
+
void tirtc_media_downlink_audio_retain(TirtcMediaDownlinkAudio* downlink);
|
|
118
|
+
void tirtc_media_downlink_audio_release(TirtcMediaDownlinkAudio* downlink);
|
|
119
|
+
void tirtc_media_downlink_audio_destroy(TirtcMediaDownlinkAudio* downlink);
|
|
120
|
+
TirtcError tirtc_media_downlink_audio_set_aout(TirtcMediaDownlinkAudio* downlink,
|
|
121
|
+
TirtcAudioAout* aout);
|
|
122
|
+
TirtcError tirtc_media_downlink_audio_set_options(TirtcMediaDownlinkAudio* downlink,
|
|
123
|
+
const TirtcMediaDownlinkAudioOptions* options);
|
|
124
|
+
TirtcError tirtc_media_downlink_audio_set_observer(TirtcMediaDownlinkAudio* downlink,
|
|
125
|
+
const TirtcMediaDownlinkAudioObserver* observer,
|
|
126
|
+
void* user_data);
|
|
127
|
+
TirtcError tirtc_media_downlink_audio_clear_observer(TirtcMediaDownlinkAudio* downlink);
|
|
128
|
+
TirtcError tirtc_media_downlink_audio_submit_frame(TirtcMediaDownlinkAudio* downlink,
|
|
129
|
+
const TirtcAudioEncodedFrame* frame);
|
|
130
|
+
TirtcError tirtc_media_downlink_audio_signal_end_of_stream(TirtcMediaDownlinkAudio* downlink);
|
|
131
|
+
TirtcError tirtc_media_downlink_audio_get_current_pts(TirtcMediaDownlinkAudio* downlink,
|
|
132
|
+
int64_t* out_pts_us);
|
|
133
|
+
TirtcError tirtc_media_downlink_audio_start(TirtcMediaDownlinkAudio* downlink);
|
|
134
|
+
TirtcError tirtc_media_downlink_audio_stop(TirtcMediaDownlinkAudio* downlink);
|
|
135
|
+
TirtcError tirtc_media_downlink_audio_start_raw_dump(TirtcMediaDownlinkAudio* downlink,
|
|
136
|
+
const char* prefix);
|
|
137
|
+
TirtcError tirtc_media_downlink_audio_stop_raw_dump(TirtcMediaDownlinkAudio* downlink);
|
|
138
|
+
|
|
139
|
+
TirtcError tirtc_media_downlink_video_create(TirtcMediaDownlinkVideo** out_downlink);
|
|
140
|
+
void tirtc_media_downlink_video_retain(TirtcMediaDownlinkVideo* downlink);
|
|
141
|
+
void tirtc_media_downlink_video_release(TirtcMediaDownlinkVideo* downlink);
|
|
142
|
+
void tirtc_media_downlink_video_destroy(TirtcMediaDownlinkVideo* downlink);
|
|
143
|
+
TirtcError tirtc_media_downlink_video_set_vout(TirtcMediaDownlinkVideo* downlink,
|
|
144
|
+
TirtcVideoVout* vout);
|
|
145
|
+
TirtcError tirtc_media_downlink_video_set_options(TirtcMediaDownlinkVideo* downlink,
|
|
146
|
+
const TirtcMediaDownlinkVideoOptions* options);
|
|
147
|
+
TirtcError tirtc_media_downlink_video_set_observer(TirtcMediaDownlinkVideo* downlink,
|
|
148
|
+
const TirtcMediaDownlinkVideoObserver* observer,
|
|
149
|
+
void* user_data);
|
|
150
|
+
TirtcError tirtc_media_downlink_video_clear_observer(TirtcMediaDownlinkVideo* downlink);
|
|
151
|
+
TirtcError tirtc_media_downlink_video_submit_frame(TirtcMediaDownlinkVideo* downlink,
|
|
152
|
+
const TirtcVideoEncodedFrame* frame);
|
|
153
|
+
TirtcError tirtc_media_downlink_video_signal_end_of_stream(TirtcMediaDownlinkVideo* downlink);
|
|
154
|
+
TirtcError tirtc_media_downlink_video_get_current_pts(TirtcMediaDownlinkVideo* downlink,
|
|
155
|
+
int64_t* out_pts_us);
|
|
156
|
+
TirtcError tirtc_media_downlink_video_get_output_size(TirtcMediaDownlinkVideo* downlink,
|
|
157
|
+
uint32_t* out_width, uint32_t* out_height);
|
|
158
|
+
TirtcError tirtc_media_downlink_video_follow_audio(TirtcMediaDownlinkVideo* follower,
|
|
159
|
+
TirtcMediaDownlinkAudio* source);
|
|
160
|
+
TirtcError tirtc_media_downlink_video_follow_video(TirtcMediaDownlinkVideo* follower,
|
|
161
|
+
TirtcMediaDownlinkVideo* source);
|
|
162
|
+
TirtcError tirtc_media_downlink_video_use_self_timing(TirtcMediaDownlinkVideo* downlink);
|
|
163
|
+
TirtcError tirtc_media_downlink_video_start(TirtcMediaDownlinkVideo* downlink);
|
|
164
|
+
TirtcError tirtc_media_downlink_video_stop(TirtcMediaDownlinkVideo* downlink);
|
|
165
|
+
TirtcError tirtc_media_downlink_video_start_raw_dump(TirtcMediaDownlinkVideo* downlink,
|
|
166
|
+
const char* prefix);
|
|
167
|
+
TirtcError tirtc_media_downlink_video_stop_raw_dump(TirtcMediaDownlinkVideo* downlink);
|
|
168
|
+
|
|
169
|
+
TirtcError tirtc_media_downlink_audio_get_metrics_snapshot(
|
|
170
|
+
TirtcMediaDownlinkAudio* downlink, TirtcMediaDownlinkAudioMetricsSnapshot* out_snapshot);
|
|
171
|
+
void tirtc_media_downlink_audio_reset_metrics_session(TirtcMediaDownlinkAudio* downlink);
|
|
172
|
+
|
|
173
|
+
TirtcError tirtc_media_downlink_video_get_metrics_snapshot(
|
|
174
|
+
TirtcMediaDownlinkVideo* downlink, TirtcMediaDownlinkVideoMetricsSnapshot* out_snapshot);
|
|
175
|
+
void tirtc_media_downlink_video_reset_metrics_session(TirtcMediaDownlinkVideo* downlink);
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Copies the current audio downlink diagnostic snapshot.
|
|
179
|
+
*
|
|
180
|
+
* This call does not start, stop, flush, or otherwise change the downlink. It returns
|
|
181
|
+
* `TIRTC_ERROR_INVALID_ARGUMENT` when `downlink` or `out_snapshot` is null.
|
|
182
|
+
*/
|
|
183
|
+
TirtcError tirtc_media_downlink_audio_get_debug_snapshot(
|
|
184
|
+
TirtcMediaDownlinkAudio* downlink, TirtcMediaDownlinkAudioDebugSnapshot* out_snapshot);
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Copies the current video downlink diagnostic snapshot.
|
|
188
|
+
*
|
|
189
|
+
* This call does not start, stop, flush, or otherwise change the downlink. It returns
|
|
190
|
+
* `TIRTC_ERROR_INVALID_ARGUMENT` when `downlink` or `out_snapshot` is null.
|
|
191
|
+
*/
|
|
192
|
+
TirtcError tirtc_media_downlink_video_get_debug_snapshot(
|
|
193
|
+
TirtcMediaDownlinkVideo* downlink, TirtcMediaDownlinkVideoDebugSnapshot* out_snapshot);
|
|
194
|
+
|
|
195
|
+
#ifdef __cplusplus
|
|
196
|
+
}
|
|
197
|
+
#endif
|
|
198
|
+
|
|
199
|
+
#endif // TIRTC_MEDIA_DOWNLINK_H_
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
#ifndef TIRTC_MEDIA_UPLINK_H_
|
|
2
|
+
#define TIRTC_MEDIA_UPLINK_H_
|
|
3
|
+
|
|
4
|
+
#include <stdint.h>
|
|
5
|
+
|
|
6
|
+
#include "tirtc/audio_frame.h"
|
|
7
|
+
#include "tirtc/audio_io.h"
|
|
8
|
+
#include "tirtc/audio_processing.h"
|
|
9
|
+
#include "tirtc/error.h"
|
|
10
|
+
#include "tirtc/media_codec.h"
|
|
11
|
+
#include "tirtc/video_codec.h"
|
|
12
|
+
#include "tirtc/video_frame.h"
|
|
13
|
+
#include "tirtc/video_io.h"
|
|
14
|
+
|
|
15
|
+
#ifdef __cplusplus
|
|
16
|
+
extern "C" {
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
typedef struct TirtcMediaUplinkPtsSource TirtcMediaUplinkPtsSource;
|
|
20
|
+
typedef struct TirtcMediaUplinkAudio TirtcMediaUplinkAudio;
|
|
21
|
+
typedef struct TirtcMediaUplinkVideo TirtcMediaUplinkVideo;
|
|
22
|
+
|
|
23
|
+
typedef enum TirtcMediaUplinkState {
|
|
24
|
+
TIRTC_MEDIA_UPLINK_STATE_IDLE = 0,
|
|
25
|
+
TIRTC_MEDIA_UPLINK_STATE_RUNNING = 1,
|
|
26
|
+
TIRTC_MEDIA_UPLINK_STATE_PAUSED = 2,
|
|
27
|
+
TIRTC_MEDIA_UPLINK_STATE_STOPPED = 3,
|
|
28
|
+
TIRTC_MEDIA_UPLINK_STATE_FAILED = 4,
|
|
29
|
+
} TirtcMediaUplinkState;
|
|
30
|
+
|
|
31
|
+
typedef struct TirtcMediaUplinkAudioOptions {
|
|
32
|
+
TirtcAudioSampleRate sample_rate;
|
|
33
|
+
TirtcAudioAecMode aec_mode;
|
|
34
|
+
TirtcAudioAgcLevel agc_level;
|
|
35
|
+
TirtcAudioAnsLevel ans_level;
|
|
36
|
+
} TirtcMediaUplinkAudioOptions;
|
|
37
|
+
|
|
38
|
+
typedef struct TirtcMediaUplinkVideoOptions {
|
|
39
|
+
TirtcMediaCodec codec;
|
|
40
|
+
uint32_t width;
|
|
41
|
+
uint32_t height;
|
|
42
|
+
uint32_t fps;
|
|
43
|
+
uint32_t bitrate_kbps;
|
|
44
|
+
TirtcVideoEncoderPreference encoder_preference;
|
|
45
|
+
} TirtcMediaUplinkVideoOptions;
|
|
46
|
+
|
|
47
|
+
typedef struct TirtcMediaUplinkAudioSink {
|
|
48
|
+
void (*on_encoded_frame)(TirtcMediaUplinkAudio* uplink, const TirtcAudioEncodedFrame* frame,
|
|
49
|
+
void* user_data);
|
|
50
|
+
} TirtcMediaUplinkAudioSink;
|
|
51
|
+
|
|
52
|
+
typedef struct TirtcMediaUplinkVideoSink {
|
|
53
|
+
void (*on_encoded_frame)(TirtcMediaUplinkVideo* uplink, const TirtcVideoEncodedFrame* frame,
|
|
54
|
+
void* user_data);
|
|
55
|
+
} TirtcMediaUplinkVideoSink;
|
|
56
|
+
|
|
57
|
+
typedef struct TirtcMediaUplinkAudioObserver {
|
|
58
|
+
void (*on_state_changed)(TirtcMediaUplinkAudio* uplink, TirtcMediaUplinkState state,
|
|
59
|
+
TirtcError error, void* user_data);
|
|
60
|
+
} TirtcMediaUplinkAudioObserver;
|
|
61
|
+
|
|
62
|
+
typedef struct TirtcMediaUplinkVideoObserver {
|
|
63
|
+
void (*on_state_changed)(TirtcMediaUplinkVideo* uplink, TirtcMediaUplinkState state,
|
|
64
|
+
TirtcError error, void* user_data);
|
|
65
|
+
void (*on_output_size_changed)(TirtcMediaUplinkVideo* uplink, uint32_t width, uint32_t height,
|
|
66
|
+
void* user_data);
|
|
67
|
+
} TirtcMediaUplinkVideoObserver;
|
|
68
|
+
|
|
69
|
+
TirtcError tirtc_media_uplink_pts_source_create(TirtcMediaUplinkPtsSource** out_pts_source);
|
|
70
|
+
void tirtc_media_uplink_pts_source_destroy(TirtcMediaUplinkPtsSource* pts_source);
|
|
71
|
+
|
|
72
|
+
TirtcError tirtc_media_uplink_audio_create(TirtcMediaUplinkAudio** out_uplink);
|
|
73
|
+
void tirtc_media_uplink_audio_destroy(TirtcMediaUplinkAudio* uplink);
|
|
74
|
+
TirtcError tirtc_media_uplink_audio_set_pts_source(TirtcMediaUplinkAudio* uplink,
|
|
75
|
+
TirtcMediaUplinkPtsSource* pts_source);
|
|
76
|
+
TirtcError tirtc_media_uplink_audio_set_ain(TirtcMediaUplinkAudio* uplink, TirtcAudioAin* ain);
|
|
77
|
+
TirtcError tirtc_media_uplink_audio_set_options(TirtcMediaUplinkAudio* uplink,
|
|
78
|
+
const TirtcMediaUplinkAudioOptions* options);
|
|
79
|
+
TirtcError tirtc_media_uplink_audio_set_sink(TirtcMediaUplinkAudio* uplink,
|
|
80
|
+
const TirtcMediaUplinkAudioSink* sink,
|
|
81
|
+
void* user_data);
|
|
82
|
+
TirtcError tirtc_media_uplink_audio_clear_sink(TirtcMediaUplinkAudio* uplink);
|
|
83
|
+
TirtcError tirtc_media_uplink_audio_set_observer(TirtcMediaUplinkAudio* uplink,
|
|
84
|
+
const TirtcMediaUplinkAudioObserver* observer,
|
|
85
|
+
void* user_data);
|
|
86
|
+
TirtcError tirtc_media_uplink_audio_clear_observer(TirtcMediaUplinkAudio* uplink);
|
|
87
|
+
TirtcError tirtc_media_uplink_audio_start(TirtcMediaUplinkAudio* uplink);
|
|
88
|
+
TirtcError tirtc_media_uplink_audio_stop(TirtcMediaUplinkAudio* uplink);
|
|
89
|
+
|
|
90
|
+
TirtcError tirtc_media_uplink_video_create(TirtcMediaUplinkVideo** out_uplink);
|
|
91
|
+
void tirtc_media_uplink_video_destroy(TirtcMediaUplinkVideo* uplink);
|
|
92
|
+
TirtcError tirtc_media_uplink_video_set_pts_source(TirtcMediaUplinkVideo* uplink,
|
|
93
|
+
TirtcMediaUplinkPtsSource* pts_source);
|
|
94
|
+
TirtcError tirtc_media_uplink_video_set_vin(TirtcMediaUplinkVideo* uplink, TirtcVideoVin* vin);
|
|
95
|
+
TirtcError tirtc_media_uplink_video_set_options(TirtcMediaUplinkVideo* uplink,
|
|
96
|
+
const TirtcMediaUplinkVideoOptions* options);
|
|
97
|
+
TirtcError tirtc_media_uplink_video_set_sink(TirtcMediaUplinkVideo* uplink,
|
|
98
|
+
const TirtcMediaUplinkVideoSink* sink,
|
|
99
|
+
void* user_data);
|
|
100
|
+
TirtcError tirtc_media_uplink_video_clear_sink(TirtcMediaUplinkVideo* uplink);
|
|
101
|
+
TirtcError tirtc_media_uplink_video_set_observer(TirtcMediaUplinkVideo* uplink,
|
|
102
|
+
const TirtcMediaUplinkVideoObserver* observer,
|
|
103
|
+
void* user_data);
|
|
104
|
+
TirtcError tirtc_media_uplink_video_clear_observer(TirtcMediaUplinkVideo* uplink);
|
|
105
|
+
TirtcError tirtc_media_uplink_video_set_preview_vout(TirtcMediaUplinkVideo* uplink,
|
|
106
|
+
TirtcVideoVout* vout);
|
|
107
|
+
TirtcError tirtc_media_uplink_video_clear_preview_vout(TirtcMediaUplinkVideo* uplink);
|
|
108
|
+
TirtcError tirtc_media_uplink_video_get_output_size(TirtcMediaUplinkVideo* uplink,
|
|
109
|
+
uint32_t* out_width, uint32_t* out_height);
|
|
110
|
+
TirtcError tirtc_media_uplink_video_request_key_frame(TirtcMediaUplinkVideo* uplink);
|
|
111
|
+
TirtcError tirtc_media_uplink_video_start(TirtcMediaUplinkVideo* uplink);
|
|
112
|
+
TirtcError tirtc_media_uplink_video_stop(TirtcMediaUplinkVideo* uplink);
|
|
113
|
+
TirtcError tirtc_media_uplink_video_submit_encoded_frame(TirtcMediaUplinkVideo* uplink,
|
|
114
|
+
const TirtcVideoEncodedFrame* frame);
|
|
115
|
+
|
|
116
|
+
#ifdef __cplusplus
|
|
117
|
+
}
|
|
118
|
+
#endif
|
|
119
|
+
|
|
120
|
+
#endif // TIRTC_MEDIA_UPLINK_H_
|