goto exit;
}
}
+ g_object_set(G_OBJECT(audiosink), "mute", sink->av[AV_IDX_AUDIO].mute, NULL);
+ LOG_DEBUG("audiosink mute[%d]", sink->av[AV_IDX_AUDIO].mute);
if (!(audioresample = _create_element(DEFAULT_ELEMENT_AUDIORESAMPLE, NULL)))
goto exit;
RET_VAL_IF(sink->encoded_frame_cb != NULL, WEBRTC_ERROR_INVALID_OPERATION, "it may be a forwarding sink for encoded frame callback");
RET_VAL_IF((sink->media_types & MEDIA_TYPE_AUDIO) == 0x0, WEBRTC_ERROR_INVALID_OPERATION, "it's not an audio track");
RET_VAL_IF(sink->sound_stream_info.type == NULL, WEBRTC_ERROR_INVALID_OPERATION, "sound_stream_info is not set");
- RET_VAL_IF(!(audiosink = gst_bin_get_by_name(sink->bin, ELEMENT_NAME_AUDIO_SINK)), WEBRTC_ERROR_INVALID_OPERATION, "could not find audio sink element");
- g_object_set(G_OBJECT(audiosink), "mute", mute, NULL);
+ sink->av[AV_IDX_AUDIO].mute = mute;
+
+ if ((audiosink = gst_bin_get_by_name(sink->bin, ELEMENT_NAME_AUDIO_SINK)))
+ g_object_set(G_OBJECT(audiosink), "mute", mute, NULL);
LOG_INFO("webrtc[%p] track_id[%u] mute[%u]", webrtc, track_id, mute);
int _get_audio_mute_from_sink(webrtc_s *webrtc, unsigned int track_id, bool *muted)
{
webrtc_gst_slot_s *sink;
- GstElement *audiosink;
RET_VAL_IF(webrtc == NULL, WEBRTC_ERROR_INVALID_PARAMETER, "webrtc is NULL");
RET_VAL_IF(track_id == 0, WEBRTC_ERROR_INVALID_PARAMETER, "track id is 0");
RET_VAL_IF(sink->encoded_frame_cb != NULL, WEBRTC_ERROR_INVALID_OPERATION, "it may be a forwarding sink for encoded frame callback");
RET_VAL_IF((sink->media_types & MEDIA_TYPE_AUDIO) == 0x0, WEBRTC_ERROR_INVALID_OPERATION, "it's not an audio track");
RET_VAL_IF(sink->sound_stream_info.type == NULL, WEBRTC_ERROR_INVALID_OPERATION, "sound_stream_info is not set");
- RET_VAL_IF(!(audiosink = gst_bin_get_by_name(sink->bin, ELEMENT_NAME_AUDIO_SINK)), WEBRTC_ERROR_INVALID_OPERATION, "could not find audio sink element");
- g_object_get(G_OBJECT(audiosink), "mute", muted, NULL);
+ *muted = sink->av[AV_IDX_AUDIO].mute;
LOG_INFO("webrtc[%p] track_id[%u] muted[%u]", webrtc, track_id, *muted);