tirtc-devtools-cli 0.0.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.
Files changed (156) hide show
  1. package/README.md +52 -0
  2. package/USAGE.md +417 -0
  3. package/bin/tirtc-devtool.js +2 -0
  4. package/dist/app-server/protocol-client/index.d.ts +25 -0
  5. package/dist/app-server/protocol-client/index.js +114 -0
  6. package/dist/devtools/cli/src/config.d.ts +46 -0
  7. package/dist/devtools/cli/src/config.js +98 -0
  8. package/dist/devtools/cli/src/dummy.d.ts +0 -0
  9. package/dist/devtools/cli/src/dummy.js +1 -0
  10. package/dist/devtools/cli/src/embedded_paths.d.ts +7 -0
  11. package/dist/devtools/cli/src/embedded_paths.js +85 -0
  12. package/dist/devtools/cli/src/facade.d.ts +723 -0
  13. package/dist/devtools/cli/src/facade.js +194 -0
  14. package/dist/devtools/cli/src/ffmpeg_tool.d.ts +6 -0
  15. package/dist/devtools/cli/src/ffmpeg_tool.js +146 -0
  16. package/dist/devtools/cli/src/guide.d.ts +1 -0
  17. package/dist/devtools/cli/src/guide.js +49 -0
  18. package/dist/devtools/cli/src/index.d.ts +1 -0
  19. package/dist/devtools/cli/src/index.js +753 -0
  20. package/dist/devtools/cli/src/media_assets.d.ts +25 -0
  21. package/dist/devtools/cli/src/media_assets.js +121 -0
  22. package/dist/devtools/cli/src/session_manager.d.ts +25 -0
  23. package/dist/devtools/cli/src/session_manager.js +393 -0
  24. package/dist/devtools/cli/src/token_tool.d.ts +33 -0
  25. package/dist/devtools/cli/src/token_tool.js +217 -0
  26. package/dist/devtools/cli/src/transport.d.ts +30 -0
  27. package/dist/devtools/cli/src/transport.js +84 -0
  28. package/dist/dummy.d.ts +0 -0
  29. package/dist/dummy.js +1 -0
  30. package/dist/index.d.ts +1 -0
  31. package/dist/index.js +48 -0
  32. package/package.json +54 -0
  33. package/script/ensure_ffmpeg.sh +22 -0
  34. package/vendor/app-server/bin/native/macos-arm64/credential_napi.node +0 -0
  35. package/vendor/app-server/bin/native/macos-arm64/libcrypto.dylib +0 -0
  36. package/vendor/app-server/bin/native/macos-arm64/libssl.dylib +0 -0
  37. package/vendor/app-server/bin/native/macos-arm64/libtgrtc.dylib +0 -0
  38. package/vendor/app-server/bin/native/macos-arm64/runtime_host_napi.node +0 -0
  39. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/audio_codec.h +23 -0
  40. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/audio_frame.h +36 -0
  41. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/audio_io.h +56 -0
  42. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/audio_io_android.h +19 -0
  43. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/audio_io_apple.h +19 -0
  44. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/audio_io_harmony.h +19 -0
  45. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/audio_io_windows.h +19 -0
  46. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/audio_processing.h +56 -0
  47. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/audio_sample_rate.h +18 -0
  48. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/error.h +20 -0
  49. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/logging.h +53 -0
  50. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/media_codec.h +21 -0
  51. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/media_downlink.h +89 -0
  52. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/media_uplink.h +115 -0
  53. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/runtime.h +236 -0
  54. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/video_codec.h +57 -0
  55. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/video_frame.h +55 -0
  56. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/video_io.h +46 -0
  57. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/video_io_android.h +32 -0
  58. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/video_io_apple.h +34 -0
  59. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/video_io_harmony.h +32 -0
  60. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/video_io_windows.h +26 -0
  61. package/vendor/app-server/bin/runtime/linux-x64/include/tirtc/video_processing.h +34 -0
  62. package/vendor/app-server/bin/runtime/linux-x64/lib/libmatrix_runtime_audio.a +0 -0
  63. package/vendor/app-server/bin/runtime/linux-x64/lib/libmatrix_runtime_facade.a +0 -0
  64. package/vendor/app-server/bin/runtime/linux-x64/lib/libmatrix_runtime_foundation_logging.a +0 -0
  65. package/vendor/app-server/bin/runtime/linux-x64/lib/libmatrix_runtime_media.a +0 -0
  66. package/vendor/app-server/bin/runtime/linux-x64/lib/libmatrix_runtime_video.a +0 -0
  67. package/vendor/app-server/bin/runtime/linux-x64/lib/libwebrtc_apm.a +0 -0
  68. package/vendor/app-server/bin/runtime/linux-x64/lib/libxlog.a +0 -0
  69. package/vendor/app-server/bin/runtime/linux-x64/manifest.txt +34 -0
  70. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/audio.h +398 -0
  71. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/audio_codec.h +23 -0
  72. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/audio_frame.h +36 -0
  73. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/audio_io.h +56 -0
  74. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/audio_io_android.h +19 -0
  75. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/audio_io_apple.h +19 -0
  76. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/audio_io_harmony.h +19 -0
  77. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/audio_io_windows.h +19 -0
  78. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/audio_processing.h +56 -0
  79. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/audio_sample_rate.h +18 -0
  80. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/av.h +452 -0
  81. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/credential.h +34 -0
  82. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/error.h +30 -0
  83. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/foundation/build_info.h +27 -0
  84. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/http.h +57 -0
  85. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/logging.h +55 -0
  86. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/media_codec.h +21 -0
  87. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/media_downlink.h +95 -0
  88. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/media_fixture_av_sync.h +61 -0
  89. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/media_fixture_source.h +77 -0
  90. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/media_live_source.h +71 -0
  91. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/media_uplink.h +116 -0
  92. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/transport.h +481 -0
  93. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/trp.h +541 -0
  94. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/video_codec.h +58 -0
  95. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/video_frame.h +55 -0
  96. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/video_io.h +46 -0
  97. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/video_io_android.h +32 -0
  98. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/video_io_apple.h +47 -0
  99. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/video_io_harmony.h +32 -0
  100. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/video_io_windows.h +26 -0
  101. package/vendor/app-server/bin/runtime/macos-arm64/include/tirtc/video_processing.h +34 -0
  102. package/vendor/app-server/bin/runtime/macos-arm64/lib/libcrypto.a +0 -0
  103. package/vendor/app-server/bin/runtime/macos-arm64/lib/libcrypto.dylib +0 -0
  104. package/vendor/app-server/bin/runtime/macos-arm64/lib/libmatrix_runtime_audio.a +0 -0
  105. package/vendor/app-server/bin/runtime/macos-arm64/lib/libmatrix_runtime_credential.a +0 -0
  106. package/vendor/app-server/bin/runtime/macos-arm64/lib/libmatrix_runtime_facade.a +0 -0
  107. package/vendor/app-server/bin/runtime/macos-arm64/lib/libmatrix_runtime_foundation_http.a +0 -0
  108. package/vendor/app-server/bin/runtime/macos-arm64/lib/libmatrix_runtime_foundation_logging.a +0 -0
  109. package/vendor/app-server/bin/runtime/macos-arm64/lib/libmatrix_runtime_media.a +0 -0
  110. package/vendor/app-server/bin/runtime/macos-arm64/lib/libmatrix_runtime_transport.a +0 -0
  111. package/vendor/app-server/bin/runtime/macos-arm64/lib/libmatrix_runtime_video.a +0 -0
  112. package/vendor/app-server/bin/runtime/macos-arm64/lib/libssl.a +0 -0
  113. package/vendor/app-server/bin/runtime/macos-arm64/lib/libssl.dylib +0 -0
  114. package/vendor/app-server/bin/runtime/macos-arm64/lib/libwebrtc_apm.a +0 -0
  115. package/vendor/app-server/bin/runtime/macos-arm64/lib/libxlog.a +0 -0
  116. package/vendor/app-server/bin/runtime/macos-arm64/manifest.txt +50 -0
  117. package/vendor/app-server/bin/tirtc-devtool-host.js +2 -0
  118. package/vendor/app-server/dist/host/ArtifactManager.d.ts +18 -0
  119. package/vendor/app-server/dist/host/ArtifactManager.js +83 -0
  120. package/vendor/app-server/dist/host/HostProtocol.d.ts +107 -0
  121. package/vendor/app-server/dist/host/HostProtocol.js +256 -0
  122. package/vendor/app-server/dist/host/HostServer.d.ts +49 -0
  123. package/vendor/app-server/dist/host/HostServer.js +635 -0
  124. package/vendor/app-server/dist/host/HostState.d.ts +60 -0
  125. package/vendor/app-server/dist/host/HostState.js +19 -0
  126. package/vendor/app-server/dist/host/RuntimeAdapter.d.ts +81 -0
  127. package/vendor/app-server/dist/host/RuntimeAdapter.js +559 -0
  128. package/vendor/app-server/dist/host/RuntimeCredentialTokenIssuer.d.ts +30 -0
  129. package/vendor/app-server/dist/host/RuntimeCredentialTokenIssuer.js +224 -0
  130. package/vendor/app-server/dist/host/RuntimeReceiveWorker.d.ts +37 -0
  131. package/vendor/app-server/dist/host/RuntimeReceiveWorker.js +186 -0
  132. package/vendor/app-server/dist/host/RuntimeSendWorker.d.ts +42 -0
  133. package/vendor/app-server/dist/host/RuntimeSendWorker.js +274 -0
  134. package/vendor/app-server/dist/host/TokenTool.d.ts +15 -0
  135. package/vendor/app-server/dist/host/TokenTool.js +84 -0
  136. package/vendor/app-server/dist/host/WebPreviewGateway.d.ts +28 -0
  137. package/vendor/app-server/dist/host/WebPreviewGateway.js +815 -0
  138. package/vendor/app-server/dist/host/native/RuntimeCredentialTokenIssuer.d.ts +26 -0
  139. package/vendor/app-server/dist/host/native/RuntimeCredentialTokenIssuer.js +118 -0
  140. package/vendor/app-server/dist/host/native/RuntimeHostBridge.d.ts +19 -0
  141. package/vendor/app-server/dist/host/native/RuntimeHostBridge.js +141 -0
  142. package/vendor/app-server/dist/host/runtime_backed_preflight.d.ts +10 -0
  143. package/vendor/app-server/dist/host/runtime_backed_preflight.js +78 -0
  144. package/vendor/app-server/dist/host/tests/helpers/host_socket_client.d.ts +28 -0
  145. package/vendor/app-server/dist/host/tests/helpers/host_socket_client.js +85 -0
  146. package/vendor/app-server/dist/host/tests/helpers/runtime_e2e_local_config.d.ts +10 -0
  147. package/vendor/app-server/dist/host/tests/helpers/runtime_e2e_local_config.js +41 -0
  148. package/vendor/app-server/dist/host/tests/helpers/runtime_test_env.d.ts +11 -0
  149. package/vendor/app-server/dist/host/tests/helpers/runtime_test_env.js +32 -0
  150. package/vendor/app-server/dist/protocol/contract.d.ts +983 -0
  151. package/vendor/app-server/dist/protocol/contract.js +198 -0
  152. package/vendor/app-server/dist/protocol-client/index.d.ts +25 -0
  153. package/vendor/app-server/dist/protocol-client/index.js +114 -0
  154. package/vendor/app-server/dist/src/index.d.ts +1 -0
  155. package/vendor/app-server/dist/src/index.js +294 -0
  156. package/vendor/runtime/script/prepare_runtime_media_dataset.sh +427 -0
@@ -0,0 +1,95 @@
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/error.h"
9
+ #include "tirtc/video_frame.h"
10
+ #include "tirtc/video_io.h"
11
+
12
+ #ifdef __cplusplus
13
+ extern "C" {
14
+ #endif
15
+
16
+ typedef struct TirtcMediaDownlinkAudio TirtcMediaDownlinkAudio;
17
+ typedef struct TirtcMediaDownlinkVideo TirtcMediaDownlinkVideo;
18
+
19
+ typedef enum TirtcMediaDownlinkState {
20
+ TIRTC_MEDIA_DOWNLINK_STATE_IDLE = 0,
21
+ TIRTC_MEDIA_DOWNLINK_STATE_RENDERING = 1,
22
+ TIRTC_MEDIA_DOWNLINK_STATE_BUFFERING = 2,
23
+ TIRTC_MEDIA_DOWNLINK_STATE_PAUSED = 3,
24
+ TIRTC_MEDIA_DOWNLINK_STATE_COMPLETED = 4,
25
+ TIRTC_MEDIA_DOWNLINK_STATE_FAILED = 5,
26
+ } TirtcMediaDownlinkState;
27
+
28
+ typedef struct TirtcMediaDownlinkAudioOptions {
29
+ uint32_t volume_percent;
30
+ int gain_level;
31
+ int noise_reduction_level;
32
+ } TirtcMediaDownlinkAudioOptions;
33
+
34
+ typedef struct TirtcMediaDownlinkAudioObserver {
35
+ void (*on_state_changed)(TirtcMediaDownlinkAudio* downlink, TirtcMediaDownlinkState state,
36
+ TirtcError error, void* user_data);
37
+ } TirtcMediaDownlinkAudioObserver;
38
+
39
+ typedef struct TirtcMediaDownlinkVideoObserver {
40
+ void (*on_state_changed)(TirtcMediaDownlinkVideo* downlink, TirtcMediaDownlinkState state,
41
+ TirtcError error, void* user_data);
42
+ void (*on_output_size_changed)(TirtcMediaDownlinkVideo* downlink, uint32_t width, uint32_t height,
43
+ void* user_data);
44
+ } TirtcMediaDownlinkVideoObserver;
45
+
46
+ TirtcError tirtc_media_downlink_audio_create(TirtcMediaDownlinkAudio** out_downlink);
47
+ void tirtc_media_downlink_audio_retain(TirtcMediaDownlinkAudio* downlink);
48
+ void tirtc_media_downlink_audio_release(TirtcMediaDownlinkAudio* downlink);
49
+ void tirtc_media_downlink_audio_destroy(TirtcMediaDownlinkAudio* downlink);
50
+ TirtcError tirtc_media_downlink_audio_set_aout(TirtcMediaDownlinkAudio* downlink,
51
+ TirtcAudioAout* aout);
52
+ TirtcError tirtc_media_downlink_audio_set_options(TirtcMediaDownlinkAudio* downlink,
53
+ const TirtcMediaDownlinkAudioOptions* options);
54
+ TirtcError tirtc_media_downlink_audio_set_observer(TirtcMediaDownlinkAudio* downlink,
55
+ const TirtcMediaDownlinkAudioObserver* observer,
56
+ void* user_data);
57
+ TirtcError tirtc_media_downlink_audio_clear_observer(TirtcMediaDownlinkAudio* downlink);
58
+ TirtcError tirtc_media_downlink_audio_submit_frame(TirtcMediaDownlinkAudio* downlink,
59
+ const TirtcAudioEncodedFrame* frame);
60
+ TirtcError tirtc_media_downlink_audio_signal_end_of_stream(TirtcMediaDownlinkAudio* downlink);
61
+ TirtcError tirtc_media_downlink_audio_get_current_pts(TirtcMediaDownlinkAudio* downlink,
62
+ int64_t* out_pts_us);
63
+ TirtcError tirtc_media_downlink_audio_start(TirtcMediaDownlinkAudio* downlink);
64
+ TirtcError tirtc_media_downlink_audio_stop(TirtcMediaDownlinkAudio* downlink);
65
+
66
+ TirtcError tirtc_media_downlink_video_create(TirtcMediaDownlinkVideo** out_downlink);
67
+ void tirtc_media_downlink_video_retain(TirtcMediaDownlinkVideo* downlink);
68
+ void tirtc_media_downlink_video_release(TirtcMediaDownlinkVideo* downlink);
69
+ void tirtc_media_downlink_video_destroy(TirtcMediaDownlinkVideo* downlink);
70
+ TirtcError tirtc_media_downlink_video_set_vout(TirtcMediaDownlinkVideo* downlink,
71
+ TirtcVideoVout* vout);
72
+ TirtcError tirtc_media_downlink_video_set_observer(TirtcMediaDownlinkVideo* downlink,
73
+ const TirtcMediaDownlinkVideoObserver* observer,
74
+ void* user_data);
75
+ TirtcError tirtc_media_downlink_video_clear_observer(TirtcMediaDownlinkVideo* downlink);
76
+ TirtcError tirtc_media_downlink_video_submit_frame(TirtcMediaDownlinkVideo* downlink,
77
+ const TirtcVideoEncodedFrame* frame);
78
+ TirtcError tirtc_media_downlink_video_signal_end_of_stream(TirtcMediaDownlinkVideo* downlink);
79
+ TirtcError tirtc_media_downlink_video_get_current_pts(TirtcMediaDownlinkVideo* downlink,
80
+ int64_t* out_pts_us);
81
+ TirtcError tirtc_media_downlink_video_get_output_size(TirtcMediaDownlinkVideo* downlink,
82
+ uint32_t* out_width, uint32_t* out_height);
83
+ TirtcError tirtc_media_downlink_video_follow_audio(TirtcMediaDownlinkVideo* follower,
84
+ TirtcMediaDownlinkAudio* source);
85
+ TirtcError tirtc_media_downlink_video_follow_video(TirtcMediaDownlinkVideo* follower,
86
+ TirtcMediaDownlinkVideo* source);
87
+ TirtcError tirtc_media_downlink_video_use_self_timing(TirtcMediaDownlinkVideo* downlink);
88
+ TirtcError tirtc_media_downlink_video_start(TirtcMediaDownlinkVideo* downlink);
89
+ TirtcError tirtc_media_downlink_video_stop(TirtcMediaDownlinkVideo* downlink);
90
+
91
+ #ifdef __cplusplus
92
+ }
93
+ #endif
94
+
95
+ #endif // TIRTC_MEDIA_DOWNLINK_H_
@@ -0,0 +1,61 @@
1
+ #ifndef TIRTC_MEDIA_FIXTURE_AV_SYNC_H_
2
+ #define TIRTC_MEDIA_FIXTURE_AV_SYNC_H_
3
+
4
+ #include <stddef.h>
5
+ #include <stdint.h>
6
+
7
+ #include "tirtc/audio_io.h"
8
+ #include "tirtc/error.h"
9
+ #include "tirtc/video_frame.h"
10
+ #include "tirtc/video_io.h"
11
+
12
+ #ifdef __cplusplus
13
+ extern "C" {
14
+ #endif
15
+
16
+ typedef struct TirtcMediaFixtureAvSyncOptions {
17
+ const char* fixture_dir;
18
+
19
+ /* Encoded source paths under fixture_dir (or absolute paths). */
20
+ const char* audio_g711a_path;
21
+ const char* audio_packets_path;
22
+ const char* video_h264_path;
23
+ const char* video_packets_path;
24
+
25
+ uint32_t audio_sample_rate_hz;
26
+ uint32_t audio_samples_per_channel;
27
+ uint32_t video_width;
28
+ uint32_t video_height;
29
+ uint32_t video_fps;
30
+ TirtcVideoPixelFormat video_output_pixel_format;
31
+
32
+ /* Deprecated legacy fields kept for API compatibility. */
33
+ const char* audio_pcm_path;
34
+ const char* video_preview_path;
35
+ uint32_t video_stride;
36
+ uint32_t video_bytes_per_frame;
37
+ } TirtcMediaFixtureAvSyncOptions;
38
+
39
+ typedef struct TirtcMediaFixtureAvSyncRunOptions {
40
+ uint64_t duration_us;
41
+ uint8_t enable_realtime_pacing;
42
+ uint32_t max_audio_packets;
43
+ uint32_t max_video_packets;
44
+ } TirtcMediaFixtureAvSyncRunOptions;
45
+
46
+ typedef struct TirtcMediaFixtureAvSyncObserver {
47
+ int (*on_audio_frame)(const TirtcAudioPcmFrame* frame, void* user_data);
48
+ int (*on_video_frame)(const TirtcVideoPixelFrame* frame, void* user_data);
49
+ } TirtcMediaFixtureAvSyncObserver;
50
+
51
+ TirtcError tirtc_media_fixture_av_sync_run(const TirtcMediaFixtureAvSyncOptions* options,
52
+ const TirtcMediaFixtureAvSyncRunOptions* run_options,
53
+ const TirtcMediaFixtureAvSyncObserver* observer,
54
+ void* user_data, uint64_t* out_audio_frames,
55
+ uint64_t* out_video_frames);
56
+
57
+ #ifdef __cplusplus
58
+ }
59
+ #endif
60
+
61
+ #endif // TIRTC_MEDIA_FIXTURE_AV_SYNC_H_
@@ -0,0 +1,77 @@
1
+ #ifndef TIRTC_MEDIA_FIXTURE_SOURCE_H_
2
+ #define TIRTC_MEDIA_FIXTURE_SOURCE_H_
3
+
4
+ #include <stddef.h>
5
+ #include <stdint.h>
6
+
7
+ #include "tirtc/error.h"
8
+ #include "tirtc/media_live_source.h"
9
+
10
+ #ifdef __cplusplus
11
+ extern "C" {
12
+ #endif
13
+
14
+ typedef struct TirtcMediaFixtureSource {
15
+ TirtcMediaLiveSource* live_source;
16
+ } TirtcMediaFixtureSource;
17
+
18
+ typedef enum TirtcMediaFixturePacketKind {
19
+ TIRTC_MEDIA_FIXTURE_PACKET_KIND_AUDIO = 1,
20
+ TIRTC_MEDIA_FIXTURE_PACKET_KIND_VIDEO = 2,
21
+ } TirtcMediaFixturePacketKind;
22
+
23
+ typedef struct TirtcMediaFixturePacket {
24
+ TirtcMediaFixturePacketKind kind;
25
+ int64_t pts_us;
26
+ uint8_t is_key_frame;
27
+ uint32_t audio_sample_rate;
28
+ uint32_t audio_channels;
29
+ uint32_t video_width;
30
+ uint32_t video_height;
31
+ uint32_t video_stride;
32
+ uint32_t video_pixel_format;
33
+ const void* data;
34
+ size_t data_bytes;
35
+ } TirtcMediaFixturePacket;
36
+
37
+ typedef struct TirtcMediaFixtureSourceOptions {
38
+ const char* fixture_dir;
39
+ const char* audio_path;
40
+ const char* audio_packets_path;
41
+ const char* video_path;
42
+ const char* video_packets_path;
43
+ } TirtcMediaFixtureSourceOptions;
44
+
45
+ typedef struct TirtcMediaFixtureRunOptions {
46
+ uint64_t duration_us;
47
+ uint8_t enable_realtime_pacing;
48
+ uint8_t emit_audio;
49
+ uint8_t emit_video;
50
+ uint8_t reserved0;
51
+ uint8_t reserved1;
52
+ } TirtcMediaFixtureRunOptions;
53
+
54
+ typedef struct TirtcMediaFixtureSourceObserver {
55
+ int (*on_packet)(const TirtcMediaFixturePacket* packet, void* user_data);
56
+ } TirtcMediaFixtureSourceObserver;
57
+
58
+ TirtcError tirtc_media_fixture_source_create(TirtcMediaFixtureSource** out_source);
59
+ void tirtc_media_fixture_source_destroy(TirtcMediaFixtureSource* source);
60
+
61
+ TirtcError tirtc_media_fixture_source_load(TirtcMediaFixtureSource* source,
62
+ const TirtcMediaFixtureSourceOptions* options);
63
+ void tirtc_media_fixture_source_unload(TirtcMediaFixtureSource* source);
64
+
65
+ TirtcError tirtc_media_fixture_source_run(TirtcMediaFixtureSource* source,
66
+ const TirtcMediaFixtureRunOptions* options,
67
+ const TirtcMediaFixtureSourceObserver* observer,
68
+ void* user_data);
69
+
70
+ size_t tirtc_media_fixture_source_audio_packet_count(const TirtcMediaFixtureSource* source);
71
+ size_t tirtc_media_fixture_source_video_packet_count(const TirtcMediaFixtureSource* source);
72
+
73
+ #ifdef __cplusplus
74
+ }
75
+ #endif
76
+
77
+ #endif // TIRTC_MEDIA_FIXTURE_SOURCE_H_
@@ -0,0 +1,71 @@
1
+ #ifndef TIRTC_MEDIA_LIVE_SOURCE_H_
2
+ #define TIRTC_MEDIA_LIVE_SOURCE_H_
3
+
4
+ #include <stddef.h>
5
+ #include <stdint.h>
6
+
7
+ #include "tirtc/audio_io.h"
8
+ #include "tirtc/error.h"
9
+ #include "tirtc/video_frame.h"
10
+ #include "tirtc/video_io.h"
11
+
12
+ #ifdef __cplusplus
13
+ extern "C" {
14
+ #endif
15
+
16
+ typedef struct TirtcMediaLiveSource TirtcMediaLiveSource;
17
+
18
+ typedef enum TirtcMediaLiveSourceMode {
19
+ TIRTC_MEDIA_LIVE_SOURCE_MODE_AIN_VIN = 1,
20
+ TIRTC_MEDIA_LIVE_SOURCE_MODE_RAW_CALLBACK = 2,
21
+ } TirtcMediaLiveSourceMode;
22
+
23
+ typedef struct TirtcMediaLiveSourceOptions {
24
+ const char* dataset_dir;
25
+ TirtcMediaLiveSourceMode mode;
26
+ uint32_t audio_sample_rate_hz;
27
+ uint32_t enable_realtime_pacing;
28
+ } TirtcMediaLiveSourceOptions;
29
+
30
+ typedef struct TirtcMediaLiveSourceRawAudioFrame {
31
+ int64_t pts_us;
32
+ uint32_t sample_rate;
33
+ uint32_t channels;
34
+ uint32_t samples_per_channel;
35
+ const int16_t* data;
36
+ } TirtcMediaLiveSourceRawAudioFrame;
37
+
38
+ typedef struct TirtcMediaLiveSourceRawVideoFrame {
39
+ int64_t pts_us;
40
+ uint32_t width;
41
+ uint32_t height;
42
+ uint32_t pixel_format;
43
+ const uint8_t* data;
44
+ size_t data_bytes;
45
+ uint32_t stride;
46
+ } TirtcMediaLiveSourceRawVideoFrame;
47
+
48
+ typedef struct TirtcMediaLiveSourceRawObserver {
49
+ int (*on_audio_frame)(const TirtcMediaLiveSourceRawAudioFrame* frame, void* user_data);
50
+ int (*on_video_frame)(const TirtcMediaLiveSourceRawVideoFrame* frame, void* user_data);
51
+ } TirtcMediaLiveSourceRawObserver;
52
+
53
+ TirtcError tirtc_media_live_source_create(const TirtcMediaLiveSourceOptions* options,
54
+ TirtcMediaLiveSource** out_source);
55
+ TirtcError tirtc_media_live_source_start(TirtcMediaLiveSource* source);
56
+ TirtcError tirtc_media_live_source_stop(TirtcMediaLiveSource* source);
57
+ void tirtc_media_live_source_destroy(TirtcMediaLiveSource* source);
58
+
59
+ TirtcError tirtc_media_live_source_set_raw_observer(TirtcMediaLiveSource* source,
60
+ const TirtcMediaLiveSourceRawObserver* observer,
61
+ void* user_data);
62
+ TirtcError tirtc_media_live_source_clear_raw_observer(TirtcMediaLiveSource* source);
63
+
64
+ TirtcAudioAin* tirtc_media_live_source_get_ain(TirtcMediaLiveSource* source);
65
+ TirtcVideoVin* tirtc_media_live_source_get_vin(TirtcMediaLiveSource* source);
66
+
67
+ #ifdef __cplusplus
68
+ }
69
+ #endif
70
+
71
+ #endif // TIRTC_MEDIA_LIVE_SOURCE_H_
@@ -0,0 +1,116 @@
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_frame.h"
12
+ #include "tirtc/video_io.h"
13
+
14
+ #ifdef __cplusplus
15
+ extern "C" {
16
+ #endif
17
+
18
+ typedef struct TirtcMediaUplinkPtsSource TirtcMediaUplinkPtsSource;
19
+ typedef struct TirtcMediaUplinkAudio TirtcMediaUplinkAudio;
20
+ typedef struct TirtcMediaUplinkVideo TirtcMediaUplinkVideo;
21
+
22
+ typedef enum TirtcMediaUplinkState {
23
+ TIRTC_MEDIA_UPLINK_STATE_IDLE = 0,
24
+ TIRTC_MEDIA_UPLINK_STATE_RUNNING = 1,
25
+ TIRTC_MEDIA_UPLINK_STATE_PAUSED = 2,
26
+ TIRTC_MEDIA_UPLINK_STATE_STOPPED = 3,
27
+ TIRTC_MEDIA_UPLINK_STATE_FAILED = 4,
28
+ } TirtcMediaUplinkState;
29
+
30
+ typedef struct TirtcMediaUplinkAudioOptions {
31
+ TirtcAudioSampleRate sample_rate;
32
+ TirtcAudioAecMode aec_mode;
33
+ TirtcAudioAgcLevel agc_level;
34
+ TirtcAudioAnsLevel ans_level;
35
+ } TirtcMediaUplinkAudioOptions;
36
+
37
+ typedef struct TirtcMediaUplinkVideoOptions {
38
+ TirtcMediaCodec codec;
39
+ uint32_t width;
40
+ uint32_t height;
41
+ uint32_t fps;
42
+ uint32_t bitrate_kbps;
43
+ } TirtcMediaUplinkVideoOptions;
44
+
45
+ typedef struct TirtcMediaUplinkAudioSink {
46
+ void (*on_encoded_frame)(TirtcMediaUplinkAudio* uplink, const TirtcAudioEncodedFrame* frame,
47
+ void* user_data);
48
+ } TirtcMediaUplinkAudioSink;
49
+
50
+ typedef struct TirtcMediaUplinkVideoSink {
51
+ void (*on_encoded_frame)(TirtcMediaUplinkVideo* uplink, const TirtcVideoEncodedFrame* frame,
52
+ void* user_data);
53
+ } TirtcMediaUplinkVideoSink;
54
+
55
+ typedef struct TirtcMediaUplinkAudioObserver {
56
+ void (*on_state_changed)(TirtcMediaUplinkAudio* uplink, TirtcMediaUplinkState state,
57
+ TirtcError error, void* user_data);
58
+ } TirtcMediaUplinkAudioObserver;
59
+
60
+ typedef struct TirtcMediaUplinkVideoObserver {
61
+ void (*on_state_changed)(TirtcMediaUplinkVideo* uplink, TirtcMediaUplinkState state,
62
+ TirtcError error, void* user_data);
63
+ void (*on_output_size_changed)(TirtcMediaUplinkVideo* uplink, uint32_t width, uint32_t height,
64
+ void* user_data);
65
+ } TirtcMediaUplinkVideoObserver;
66
+
67
+ TirtcError tirtc_media_uplink_pts_source_create(TirtcMediaUplinkPtsSource** out_pts_source);
68
+ void tirtc_media_uplink_pts_source_destroy(TirtcMediaUplinkPtsSource* pts_source);
69
+
70
+ TirtcError tirtc_media_uplink_audio_create(TirtcMediaUplinkAudio** out_uplink);
71
+ void tirtc_media_uplink_audio_destroy(TirtcMediaUplinkAudio* uplink);
72
+ TirtcError tirtc_media_uplink_audio_set_pts_source(TirtcMediaUplinkAudio* uplink,
73
+ TirtcMediaUplinkPtsSource* pts_source);
74
+ TirtcError tirtc_media_uplink_audio_set_ain(TirtcMediaUplinkAudio* uplink, TirtcAudioAin* ain);
75
+ TirtcError tirtc_media_uplink_audio_set_options(TirtcMediaUplinkAudio* uplink,
76
+ const TirtcMediaUplinkAudioOptions* options);
77
+ TirtcError tirtc_media_uplink_audio_set_sink(TirtcMediaUplinkAudio* uplink,
78
+ const TirtcMediaUplinkAudioSink* sink,
79
+ void* user_data);
80
+ TirtcError tirtc_media_uplink_audio_clear_sink(TirtcMediaUplinkAudio* uplink);
81
+ TirtcError tirtc_media_uplink_audio_set_observer(TirtcMediaUplinkAudio* uplink,
82
+ const TirtcMediaUplinkAudioObserver* observer,
83
+ void* user_data);
84
+ TirtcError tirtc_media_uplink_audio_clear_observer(TirtcMediaUplinkAudio* uplink);
85
+ TirtcError tirtc_media_uplink_audio_start(TirtcMediaUplinkAudio* uplink);
86
+ TirtcError tirtc_media_uplink_audio_stop(TirtcMediaUplinkAudio* uplink);
87
+
88
+ TirtcError tirtc_media_uplink_video_create(TirtcMediaUplinkVideo** out_uplink);
89
+ void tirtc_media_uplink_video_destroy(TirtcMediaUplinkVideo* uplink);
90
+ TirtcError tirtc_media_uplink_video_set_pts_source(TirtcMediaUplinkVideo* uplink,
91
+ TirtcMediaUplinkPtsSource* pts_source);
92
+ TirtcError tirtc_media_uplink_video_set_vin(TirtcMediaUplinkVideo* uplink, TirtcVideoVin* vin);
93
+ TirtcError tirtc_media_uplink_video_set_options(TirtcMediaUplinkVideo* uplink,
94
+ const TirtcMediaUplinkVideoOptions* options);
95
+ TirtcError tirtc_media_uplink_video_set_sink(TirtcMediaUplinkVideo* uplink,
96
+ const TirtcMediaUplinkVideoSink* sink,
97
+ void* user_data);
98
+ TirtcError tirtc_media_uplink_video_clear_sink(TirtcMediaUplinkVideo* uplink);
99
+ TirtcError tirtc_media_uplink_video_set_observer(TirtcMediaUplinkVideo* uplink,
100
+ const TirtcMediaUplinkVideoObserver* observer,
101
+ void* user_data);
102
+ TirtcError tirtc_media_uplink_video_clear_observer(TirtcMediaUplinkVideo* uplink);
103
+ TirtcError tirtc_media_uplink_video_set_preview_vout(TirtcMediaUplinkVideo* uplink,
104
+ TirtcVideoVout* vout);
105
+ TirtcError tirtc_media_uplink_video_clear_preview_vout(TirtcMediaUplinkVideo* uplink);
106
+ TirtcError tirtc_media_uplink_video_get_output_size(TirtcMediaUplinkVideo* uplink,
107
+ uint32_t* out_width, uint32_t* out_height);
108
+ TirtcError tirtc_media_uplink_video_request_key_frame(TirtcMediaUplinkVideo* uplink);
109
+ TirtcError tirtc_media_uplink_video_start(TirtcMediaUplinkVideo* uplink);
110
+ TirtcError tirtc_media_uplink_video_stop(TirtcMediaUplinkVideo* uplink);
111
+
112
+ #ifdef __cplusplus
113
+ }
114
+ #endif
115
+
116
+ #endif // TIRTC_MEDIA_UPLINK_H_