Skip to content

Commit 9ea38d8

Browse files
authored
Move RtcRtpSendParameters into submodule in medea-flutter-webrtc-native crate (#225, #210)
1 parent a8382e4 commit 9ea38d8

File tree

8 files changed

+101
-68
lines changed

8 files changed

+101
-68
lines changed

crates/native/src/api/mod.rs

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ pub mod capability;
44
pub mod media_info;
55
pub mod media_stream_track;
66
pub mod rtc_rtp_encoding_parameters;
7+
pub mod rtc_rtp_send_parameters;
78
pub mod stats;
89

910
use std::{
@@ -35,6 +36,7 @@ pub use self::{
3536
track_state, track_width, update_audio_processing,
3637
},
3738
rtc_rtp_encoding_parameters::RtcRtpEncodingParameters,
39+
rtc_rtp_send_parameters::RtcRtpSendParameters,
3840
stats::{
3941
CandidateType, IceCandidateStats, IceRole, Protocol,
4042
RtcIceCandidateStats, RtcInboundRtpStreamMediaType,
@@ -641,37 +643,6 @@ pub struct RtcRtpTransceiver {
641643
pub direction: RtpTransceiverDirection,
642644
}
643645

644-
/// Representation of [RTCRtpSendParameters][0].
645-
///
646-
/// [0]: https://w3.org/TR/webrtc#dom-rtcrtpsendparameters
647-
pub struct RtcRtpSendParameters {
648-
/// Sequence containing parameters for sending [RTP] encodings of media.
649-
///
650-
/// [RTP]: https://en.wikipedia.org/wiki/Real-time_Transport_Protocol
651-
pub encodings:
652-
Vec<(RtcRtpEncodingParameters, RustOpaque<Arc<RtpEncodingParameters>>)>,
653-
654-
/// Reference to the Rust side [`RtpParameters`].
655-
pub inner: RustOpaque<Arc<RtpParameters>>,
656-
}
657-
658-
impl From<RtpParameters> for RtcRtpSendParameters {
659-
fn from(v: RtpParameters) -> Self {
660-
let encodings = v
661-
.get_encodings()
662-
.into_iter()
663-
.map(|e| {
664-
(
665-
RtcRtpEncodingParameters::from(&e),
666-
RustOpaque::new(Arc::new(RtpEncodingParameters::from(e))),
667-
)
668-
})
669-
.collect();
670-
671-
Self { encodings, inner: RustOpaque::new(Arc::new(v)) }
672-
}
673-
}
674-
675646
/// Representation of a track event, sent when a new [`MediaStreamTrack`] is
676647
/// added to an [`RtcRtpTransceiver`] as part of a [`PeerConnection`].
677648
#[derive(Clone)]
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
//! [RTCRtpSendParameters][0] definitions.
2+
//!
3+
//! [0]: https://w3.org/TR/webrtc#dom-rtcrtpsendparameters
4+
5+
use std::sync::Arc;
6+
7+
use crate::{
8+
RtpEncodingParameters, RtpParameters, api::RtcRtpEncodingParameters,
9+
frb_generated::RustOpaque,
10+
};
11+
12+
/// Representation of [RTCRtpSendParameters][0].
13+
///
14+
/// [0]: https://w3.org/TR/webrtc#dom-rtcrtpsendparameters
15+
pub struct RtcRtpSendParameters {
16+
/// Sequence containing parameters for sending [RTP] encodings of media.
17+
///
18+
/// [RTP]: https://en.wikipedia.org/wiki/Real-time_Transport_Protocol
19+
pub encodings:
20+
Vec<(RtcRtpEncodingParameters, RustOpaque<Arc<RtpEncodingParameters>>)>,
21+
22+
/// Reference to the Rust side [`RtpParameters`].
23+
pub inner: RustOpaque<Arc<RtpParameters>>,
24+
}
25+
26+
impl From<RtpParameters> for RtcRtpSendParameters {
27+
fn from(v: RtpParameters) -> Self {
28+
let encodings = v
29+
.get_encodings()
30+
.into_iter()
31+
.map(|e| {
32+
(
33+
RtcRtpEncodingParameters::from(&e),
34+
RustOpaque::new(Arc::new(RtpEncodingParameters::from(e))),
35+
)
36+
})
37+
.collect();
38+
39+
Self { encodings, inner: RustOpaque::new(Arc::new(v)) }
40+
}
41+
}

crates/native/src/frb_generated.rs

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -521,7 +521,7 @@ fn wire__crate__api__sender_set_parameters_impl(
521521
let message = unsafe { flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire(ptr_, rust_vec_len_, data_len_) };
522522
let mut deserializer = flutter_rust_bridge::for_generated::SseDeserializer::new(message);
523523
let api_transceiver = <RustOpaqueMoi<Arc < RtpTransceiver >>>::sse_decode(&mut deserializer);
524-
let api_params = <crate::api::RtcRtpSendParameters>::sse_decode(&mut deserializer);deserializer.end(); move |context| {
524+
let api_params = <crate::api::rtc_rtp_send_parameters::RtcRtpSendParameters>::sse_decode(&mut deserializer);deserializer.end(); move |context| {
525525
transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>((move || {
526526
let output_ok = crate::api::sender_set_parameters(api_transceiver, api_params)?; Ok(output_ok)
527527
})())
@@ -2044,7 +2044,7 @@ impl SseDecode
20442044
}
20452045
}
20462046

2047-
impl SseDecode for crate::api::RtcRtpSendParameters {
2047+
impl SseDecode for crate::api::rtc_rtp_send_parameters::RtcRtpSendParameters {
20482048
// Codec=Sse (Serialization based), see doc to use other codecs
20492049
fn sse_decode(
20502050
deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer,
@@ -2055,7 +2055,7 @@ impl SseDecode for crate::api::RtcRtpSendParameters {
20552055
)>>::sse_decode(deserializer);
20562056
let mut var_inner =
20572057
<RustOpaqueMoi<Arc<RtpParameters>>>::sse_decode(deserializer);
2058-
return crate::api::RtcRtpSendParameters {
2058+
return crate::api::rtc_rtp_send_parameters::RtcRtpSendParameters {
20592059
encodings: var_encodings,
20602060
inner: var_inner,
20612061
};
@@ -3491,7 +3491,9 @@ impl
34913491
}
34923492
}
34933493
// Codec=Dco (DartCObject based), see doc to use other codecs
3494-
impl flutter_rust_bridge::IntoDart for crate::api::RtcRtpSendParameters {
3494+
impl flutter_rust_bridge::IntoDart
3495+
for crate::api::rtc_rtp_send_parameters::RtcRtpSendParameters
3496+
{
34953497
fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi {
34963498
[
34973499
self.encodings.into_into_dart().into_dart(),
@@ -3501,13 +3503,17 @@ impl flutter_rust_bridge::IntoDart for crate::api::RtcRtpSendParameters {
35013503
}
35023504
}
35033505
impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive
3504-
for crate::api::RtcRtpSendParameters
3506+
for crate::api::rtc_rtp_send_parameters::RtcRtpSendParameters
35053507
{
35063508
}
3507-
impl flutter_rust_bridge::IntoIntoDart<crate::api::RtcRtpSendParameters>
3508-
for crate::api::RtcRtpSendParameters
3509+
impl
3510+
flutter_rust_bridge::IntoIntoDart<
3511+
crate::api::rtc_rtp_send_parameters::RtcRtpSendParameters,
3512+
> for crate::api::rtc_rtp_send_parameters::RtcRtpSendParameters
35093513
{
3510-
fn into_into_dart(self) -> crate::api::RtcRtpSendParameters {
3514+
fn into_into_dart(
3515+
self,
3516+
) -> crate::api::rtc_rtp_send_parameters::RtcRtpSendParameters {
35113517
self
35123518
}
35133519
}
@@ -5290,7 +5296,7 @@ impl SseEncode
52905296
}
52915297
}
52925298

5293-
impl SseEncode for crate::api::RtcRtpSendParameters {
5299+
impl SseEncode for crate::api::rtc_rtp_send_parameters::RtcRtpSendParameters {
52945300
// Codec=Sse (Serialization based), see doc to use other codecs
52955301
fn sse_encode(
52965302
self,

lib/src/api/bridge/api.dart

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,14 @@ import 'api/media_stream_track.dart';
1111
import 'api/media_stream_track/audio_processing_config.dart';
1212
import 'api/media_stream_track/media_type.dart';
1313
import 'api/rtc_rtp_encoding_parameters.dart';
14+
import 'api/rtc_rtp_send_parameters.dart';
1415
import 'frb_generated.dart';
1516
import 'lib.dart';
1617

1718
part 'api.freezed.dart';
1819

1920
// These types are ignored because they are neither used by any `pub` functions nor (for structs and enums) marked `#[frb(unignore)]`: `TrackKind`
20-
// These function are ignored because they are on traits that is not defined in current crate (put an empty `#[frb]` on it to unignore): `assert_receiver_is_total_eq`, `assert_receiver_is_total_eq`, `assert_receiver_is_total_eq`, `assert_receiver_is_total_eq`, `assert_receiver_is_total_eq`, `assert_receiver_is_total_eq`, `assert_receiver_is_total_eq`, `assert_receiver_is_total_eq`, `assert_receiver_is_total_eq`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `eq`, `eq`, `eq`, `eq`, `eq`, `eq`, `eq`, `eq`, `eq`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`
21+
// These function are ignored because they are on traits that is not defined in current crate (put an empty `#[frb]` on it to unignore): `assert_receiver_is_total_eq`, `assert_receiver_is_total_eq`, `assert_receiver_is_total_eq`, `assert_receiver_is_total_eq`, `assert_receiver_is_total_eq`, `assert_receiver_is_total_eq`, `assert_receiver_is_total_eq`, `assert_receiver_is_total_eq`, `assert_receiver_is_total_eq`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `eq`, `eq`, `eq`, `eq`, `eq`, `eq`, `eq`, `eq`, `eq`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`
2122

2223
/// Returns all [`VideoCodecInfo`]s of the supported video encoders.
2324
Future<List<VideoCodecInfo>> videoEncoders() =>
@@ -684,32 +685,6 @@ class RtcIceServer {
684685
credential == other.credential;
685686
}
686687

687-
/// Representation of [RTCRtpSendParameters][0].
688-
///
689-
/// [0]: https://w3.org/TR/webrtc#dom-rtcrtpsendparameters
690-
class RtcRtpSendParameters {
691-
/// Sequence containing parameters for sending [RTP] encodings of media.
692-
///
693-
/// [RTP]: https://en.wikipedia.org/wiki/Real-time_Transport_Protocol
694-
final List<(RtcRtpEncodingParameters, ArcRtpEncodingParameters)> encodings;
695-
696-
/// Reference to the Rust side [`RtpParameters`].
697-
final ArcRtpParameters inner;
698-
699-
const RtcRtpSendParameters({required this.encodings, required this.inner});
700-
701-
@override
702-
int get hashCode => encodings.hashCode ^ inner.hashCode;
703-
704-
@override
705-
bool operator ==(Object other) =>
706-
identical(this, other) ||
707-
other is RtcRtpSendParameters &&
708-
runtimeType == other.runtimeType &&
709-
encodings == other.encodings &&
710-
inner == other.inner;
711-
}
712-
713688
/// Representation of a permanent pair of an [RTCRtpSender] and an
714689
/// [RTCRtpReceiver], along with some shared state.
715690
///
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// This file is automatically generated, so please do not edit it.
2+
// @generated by `flutter_rust_bridge`@ 2.10.0.
3+
4+
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
5+
6+
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
7+
8+
import '../frb_generated.dart';
9+
import '../lib.dart';
10+
import 'rtc_rtp_encoding_parameters.dart';
11+
12+
// These function are ignored because they are on traits that is not defined in current crate (put an empty `#[frb]` on it to unignore): `from`
13+
14+
/// Representation of [RTCRtpSendParameters][0].
15+
///
16+
/// [0]: https://w3.org/TR/webrtc#dom-rtcrtpsendparameters
17+
class RtcRtpSendParameters {
18+
/// Sequence containing parameters for sending [RTP] encodings of media.
19+
///
20+
/// [RTP]: https://en.wikipedia.org/wiki/Real-time_Transport_Protocol
21+
final List<(RtcRtpEncodingParameters, ArcRtpEncodingParameters)> encodings;
22+
23+
/// Reference to the Rust side [`RtpParameters`].
24+
final ArcRtpParameters inner;
25+
26+
const RtcRtpSendParameters({required this.encodings, required this.inner});
27+
28+
@override
29+
int get hashCode => encodings.hashCode ^ inner.hashCode;
30+
31+
@override
32+
bool operator ==(Object other) =>
33+
identical(this, other) ||
34+
other is RtcRtpSendParameters &&
35+
runtimeType == other.runtimeType &&
36+
encodings == other.encodings &&
37+
inner == other.inner;
38+
}

lib/src/api/bridge/frb_generated.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import 'api/media_stream_track/media_type.dart';
2121
import 'api/media_stream_track/track_event.dart';
2222
import 'api/media_stream_track/track_state.dart';
2323
import 'api/rtc_rtp_encoding_parameters.dart';
24+
import 'api/rtc_rtp_send_parameters.dart';
2425
import 'api/stats.dart';
2526
import 'api/stats/ice_role.dart';
2627
import 'api/stats/rtc_ice_candidate_stats.dart';

lib/src/api/bridge/frb_generated.io.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import 'api/media_stream_track/media_type.dart';
2222
import 'api/media_stream_track/track_event.dart';
2323
import 'api/media_stream_track/track_state.dart';
2424
import 'api/rtc_rtp_encoding_parameters.dart';
25+
import 'api/rtc_rtp_send_parameters.dart';
2526
import 'api/stats.dart';
2627
import 'api/stats/ice_role.dart';
2728
import 'api/stats/rtc_ice_candidate_stats.dart';

lib/src/api/parameters.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import 'package:flutter/services.dart';
22

3-
import 'bridge/api.dart' as ffi;
3+
import 'bridge/api/rtc_rtp_send_parameters.dart' as ffi;
44
import 'bridge/lib.dart' as ffi_ty;
55
import 'send_encoding_parameters.dart';
66

0 commit comments

Comments
 (0)