/** * @brief Connect to the Chromecast * @param p_stream the sout_stream_t structure * @return the opened socket file descriptor or -1 on error */ static int connectChromecast(sout_stream_t *p_stream, char *psz_ipChromecast) { sout_stream_sys_t *p_sys = p_stream->p_sys; int fd = net_ConnectTCP(p_stream, psz_ipChromecast, CHROMECAST_CONTROL_PORT); if (fd < 0) return -1; p_sys->p_creds = vlc_tls_ClientCreate(VLC_OBJECT(p_stream)); if (p_sys->p_creds == NULL) { net_Close(fd); return -1; } p_sys->p_tls = vlc_tls_ClientSessionCreate(p_sys->p_creds, fd, psz_ipChromecast, "tcps", NULL, NULL); if (p_sys->p_tls == NULL) { vlc_tls_Delete(p_sys->p_creds); return -1; } return fd; }
/** * @brief Disconnect from the Chromecast */ void intf_sys_t::disconnectChromecast() { if (p_tls) { vlc_tls_SessionDelete(p_tls); vlc_tls_Delete(p_creds); p_tls = NULL; setConnectionStatus(CHROMECAST_DISCONNECTED); } }
/** * @brief Disconnect from the Chromecast */ static void disconnectChromecast(sout_stream_t *p_stream) { sout_stream_sys_t *p_sys = p_stream->p_sys; if (p_sys->p_tls) { vlc_tls_SessionDelete(p_sys->p_tls); vlc_tls_Delete(p_sys->p_creds); p_sys->p_tls = NULL; p_sys->i_status = CHROMECAST_DISCONNECTED; } }