Commit 513c203d authored by Sebastian Dröge's avatar Sebastian Dröge
Browse files

Set transceivers as sendonly before creating the offers

parent 34565736
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -398,6 +398,21 @@ impl Publisher {
        }
        webrtcbin.set_property_from_str("bundle-policy", "max-bundle");

        // Set transceiver as "sendonly". It was added above when linking the pipeline.
        let transceiver = webrtcbin
            .emit("get-transceiver", &[&0i32])
            .expect("Can't emit get-transceiver(0)")
            .unwrap()
            .get::<gst_webrtc::WebRTCRTPTransceiver>()
            .expect("Invalid type")
            .unwrap();
        transceiver
            .set_property(
                "direction",
                &gst_webrtc::WebRTCRTPTransceiverDirection::Sendonly,
            )
            .unwrap();

        // Spawn task for forwarding all GStreamer messages to our event loop
        let bus = pipeline.get_bus().expect("Pipeline without bus");
        let mut bus_stream = bus.stream();
+15 −2
Original line number Diff line number Diff line
@@ -100,6 +100,21 @@ impl Subscriber {
            .link_pads(Some("src"), &webrtcbin, Some("sink_%u"))
            .expect("Couldn't link appsrc to webrtcbin");

        // Set transceiver as "sendonly". It was added above when linking the pipeline.
        let transceiver = webrtcbin
            .emit("get-transceiver", &[&0i32])
            .expect("Can't emit get-transceiver(0)")
            .unwrap()
            .get::<gst_webrtc::WebRTCRTPTransceiver>()
            .expect("Invalid type")
            .unwrap();
        transceiver
            .set_property(
                "direction",
                &gst_webrtc::WebRTCRTPTransceiverDirection::Sendonly,
            )
            .unwrap();

        Ok(Subscriber {
            cfg,
            rooms: rooms.downgrade(),
@@ -241,8 +256,6 @@ impl Subscriber {
                .expect("Invalid argument")
                .unwrap();

            // TODO: SDP media should be sendonly

            debug!("Created offer {:#?}", offer.get_sdp());

            webrtcbin