Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
f2993b77
Commit
f2993b77
authored
Dec 23, 2015
by
Steve Lhomme
Committed by
Jean-Baptiste Kempf
Dec 23, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chromecast: use the enum to handle the connection status
Signed-off-by:
Jean-Baptiste Kempf
<
jb@videolan.org
>
parent
46d740aa
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
18 additions
and
18 deletions
+18
-18
modules/stream_out/chromecast/cast.cpp
modules/stream_out/chromecast/cast.cpp
+7
-7
modules/stream_out/chromecast/chromecast.h
modules/stream_out/chromecast/chromecast.h
+2
-2
modules/stream_out/chromecast/chromecast_ctrl.cpp
modules/stream_out/chromecast/chromecast_ctrl.cpp
+9
-9
No files found.
modules/stream_out/chromecast/cast.cpp
View file @
f2993b77
...
@@ -212,7 +212,7 @@ static int Open(vlc_object_t *p_this)
...
@@ -212,7 +212,7 @@ static int Open(vlc_object_t *p_this)
Clean
(
p_stream
);
Clean
(
p_stream
);
return
VLC_EGENERIC
;
return
VLC_EGENERIC
;
}
}
p_sys
->
p_intf
->
i
_status
=
CHROMECAST_TLS_CONNECTED
;
p_sys
->
p_intf
->
conn
_status
=
CHROMECAST_TLS_CONNECTED
;
char
psz_localIP
[
NI_MAXNUMERICHOST
];
char
psz_localIP
[
NI_MAXNUMERICHOST
];
if
(
net_GetSockAddress
(
p_sys
->
i_sock_fd
,
psz_localIP
,
NULL
))
if
(
net_GetSockAddress
(
p_sys
->
i_sock_fd
,
psz_localIP
,
NULL
))
...
@@ -265,7 +265,7 @@ static int Open(vlc_object_t *p_this)
...
@@ -265,7 +265,7 @@ static int Open(vlc_object_t *p_this)
int
i_ret
=
0
;
int
i_ret
=
0
;
const
mtime_t
deadline
=
mdate
()
+
6
*
CLOCK_FREQ
;
const
mtime_t
deadline
=
mdate
()
+
6
*
CLOCK_FREQ
;
vlc_mutex_lock
(
&
p_intf
->
lock
);
vlc_mutex_lock
(
&
p_intf
->
lock
);
while
(
p_sys
->
p_intf
->
i
_status
!=
CHROMECAST_MEDIA_LOAD_SENT
)
while
(
p_sys
->
p_intf
->
conn
_status
!=
CHROMECAST_MEDIA_LOAD_SENT
)
{
{
i_ret
=
vlc_cond_timedwait
(
&
p_sys
->
p_intf
->
loadCommandCond
,
&
p_intf
->
lock
,
deadline
);
i_ret
=
vlc_cond_timedwait
(
&
p_sys
->
p_intf
->
loadCommandCond
,
&
p_intf
->
lock
,
deadline
);
if
(
i_ret
==
ETIMEDOUT
)
if
(
i_ret
==
ETIMEDOUT
)
...
@@ -305,7 +305,7 @@ static void Close(vlc_object_t *p_this)
...
@@ -305,7 +305,7 @@ static void Close(vlc_object_t *p_this)
vlc_cancel
(
p_sys
->
chromecastThread
);
vlc_cancel
(
p_sys
->
chromecastThread
);
vlc_join
(
p_sys
->
chromecastThread
,
NULL
);
vlc_join
(
p_sys
->
chromecastThread
,
NULL
);
switch
(
p_sys
->
p_intf
->
i
_status
)
switch
(
p_sys
->
p_intf
->
conn
_status
)
{
{
case
CHROMECAST_MEDIA_LOAD_SENT
:
case
CHROMECAST_MEDIA_LOAD_SENT
:
case
CHROMECAST_APP_STARTED
:
case
CHROMECAST_APP_STARTED
:
...
@@ -387,7 +387,7 @@ static void disconnectChromecast(sout_stream_t *p_stream)
...
@@ -387,7 +387,7 @@ static void disconnectChromecast(sout_stream_t *p_stream)
vlc_tls_SessionDelete
(
p_sys
->
p_tls
);
vlc_tls_SessionDelete
(
p_sys
->
p_tls
);
vlc_tls_Delete
(
p_sys
->
p_creds
);
vlc_tls_Delete
(
p_sys
->
p_creds
);
p_sys
->
p_tls
=
NULL
;
p_sys
->
p_tls
=
NULL
;
p_sys
->
p_intf
->
i
_status
=
CHROMECAST_DISCONNECTED
;
p_sys
->
p_intf
->
conn
_status
=
CHROMECAST_DISCONNECTED
;
}
}
}
}
...
@@ -599,7 +599,7 @@ static void* chromecastThread(void* p_data)
...
@@ -599,7 +599,7 @@ static void* chromecastThread(void* p_data)
{
{
msg_Err
(
p_stream
,
"The connection to the Chromecast died."
);
msg_Err
(
p_stream
,
"The connection to the Chromecast died."
);
vlc_mutex_locker
locker
(
&
p_sys
->
p_intf
->
lock
);
vlc_mutex_locker
locker
(
&
p_sys
->
p_intf
->
lock
);
p_sys
->
p_intf
->
i
_status
=
CHROMECAST_CONNECTION_DEAD
;
p_sys
->
p_intf
->
conn
_status
=
CHROMECAST_CONNECTION_DEAD
;
break
;
break
;
}
}
...
@@ -628,12 +628,12 @@ static void* chromecastThread(void* p_data)
...
@@ -628,12 +628,12 @@ static void* chromecastThread(void* p_data)
{
{
msg_Err
(
p_stream
,
"The connection to the Chromecast died."
);
msg_Err
(
p_stream
,
"The connection to the Chromecast died."
);
vlc_mutex_locker
locker
(
&
p_sys
->
p_intf
->
lock
);
vlc_mutex_locker
locker
(
&
p_sys
->
p_intf
->
lock
);
p_sys
->
p_intf
->
i
_status
=
CHROMECAST_CONNECTION_DEAD
;
p_sys
->
p_intf
->
conn
_status
=
CHROMECAST_CONNECTION_DEAD
;
}
}
}
}
vlc_mutex_lock
(
&
p_sys
->
p_intf
->
lock
);
vlc_mutex_lock
(
&
p_sys
->
p_intf
->
lock
);
if
(
p_sys
->
p_intf
->
i
_status
==
CHROMECAST_CONNECTION_DEAD
)
if
(
p_sys
->
p_intf
->
conn
_status
==
CHROMECAST_CONNECTION_DEAD
)
{
{
vlc_mutex_unlock
(
&
p_sys
->
p_intf
->
lock
);
vlc_mutex_unlock
(
&
p_sys
->
p_intf
->
lock
);
break
;
break
;
...
...
modules/stream_out/chromecast/chromecast.h
View file @
f2993b77
...
@@ -47,7 +47,7 @@ static const std::string NAMESPACE_MEDIA = "urn:x-cast:com.google.cas
...
@@ -47,7 +47,7 @@ static const std::string NAMESPACE_MEDIA = "urn:x-cast:com.google.cas
// Status
// Status
enum
enum
connection_status
{
{
CHROMECAST_DISCONNECTED
,
CHROMECAST_DISCONNECTED
,
CHROMECAST_TLS_CONNECTED
,
CHROMECAST_TLS_CONNECTED
,
...
@@ -80,7 +80,7 @@ struct intf_sys_t
...
@@ -80,7 +80,7 @@ struct intf_sys_t
void
msgPlayerLoad
();
void
msgPlayerLoad
();
int
i
_status
;
enum
connection_status
conn
_status
;
std
::
queue
<
castchannel
::
CastMessage
>
messagesToSend
;
std
::
queue
<
castchannel
::
CastMessage
>
messagesToSend
;
unsigned
i_requestId
;
unsigned
i_requestId
;
...
...
modules/stream_out/chromecast/chromecast_ctrl.cpp
View file @
f2993b77
...
@@ -73,7 +73,7 @@ static castchannel::CastMessage buildMessage(std::string namespace_,
...
@@ -73,7 +73,7 @@ static castchannel::CastMessage buildMessage(std::string namespace_,
intf_sys_t
::
intf_sys_t
(
sout_stream_t
*
const
p_this
)
intf_sys_t
::
intf_sys_t
(
sout_stream_t
*
const
p_this
)
:
p_stream
(
p_this
)
:
p_stream
(
p_this
)
,
i
_status
(
CHROMECAST_DISCONNECTED
)
,
conn
_status
(
CHROMECAST_DISCONNECTED
)
,
i_requestId
(
0
)
,
i_requestId
(
0
)
{
{
vlc_mutex_init
(
&
lock
);
vlc_mutex_init
(
&
lock
);
...
@@ -111,7 +111,7 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
...
@@ -111,7 +111,7 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
else
else
{
{
vlc_mutex_locker
locker
(
&
lock
);
vlc_mutex_locker
locker
(
&
lock
);
i
_status
=
CHROMECAST_AUTHENTICATED
;
conn
_status
=
CHROMECAST_AUTHENTICATED
;
msgConnect
(
DEFAULT_CHOMECAST_RECEIVER
);
msgConnect
(
DEFAULT_CHOMECAST_RECEIVER
);
msgReceiverLaunchApp
();
msgReceiverLaunchApp
();
}
}
...
@@ -164,25 +164,25 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
...
@@ -164,25 +164,25 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
if
(
p_app
)
if
(
p_app
)
{
{
if
(
!
appTransportId
.
empty
()
if
(
!
appTransportId
.
empty
()
&&
i
_status
==
CHROMECAST_AUTHENTICATED
)
&&
conn
_status
==
CHROMECAST_AUTHENTICATED
)
{
{
i
_status
=
CHROMECAST_APP_STARTED
;
conn
_status
=
CHROMECAST_APP_STARTED
;
msgConnect
(
appTransportId
);
msgConnect
(
appTransportId
);
msgPlayerLoad
();
msgPlayerLoad
();
i
_status
=
CHROMECAST_MEDIA_LOAD_SENT
;
conn
_status
=
CHROMECAST_MEDIA_LOAD_SENT
;
vlc_cond_signal
(
&
loadCommandCond
);
vlc_cond_signal
(
&
loadCommandCond
);
}
}
}
}
else
else
{
{
switch
(
i
_status
)
switch
(
conn
_status
)
{
{
/* If the app is no longer present */
/* If the app is no longer present */
case
CHROMECAST_APP_STARTED
:
case
CHROMECAST_APP_STARTED
:
case
CHROMECAST_MEDIA_LOAD_SENT
:
case
CHROMECAST_MEDIA_LOAD_SENT
:
msg_Warn
(
p_stream
,
"app is no longer present. closing"
);
msg_Warn
(
p_stream
,
"app is no longer present. closing"
);
msgReceiverClose
(
appTransportId
);
msgReceiverClose
(
appTransportId
);
i
_status
=
CHROMECAST_CONNECTION_DEAD
;
conn
_status
=
CHROMECAST_CONNECTION_DEAD
;
default:
default:
break
;
break
;
}
}
...
@@ -214,7 +214,7 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
...
@@ -214,7 +214,7 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
msg_Err
(
p_stream
,
"Media load failed"
);
msg_Err
(
p_stream
,
"Media load failed"
);
msgReceiverClose
(
appTransportId
);
msgReceiverClose
(
appTransportId
);
vlc_mutex_lock
(
&
lock
);
vlc_mutex_lock
(
&
lock
);
i
_status
=
CHROMECAST_CONNECTION_DEAD
;
conn
_status
=
CHROMECAST_CONNECTION_DEAD
;
vlc_mutex_unlock
(
&
lock
);
vlc_mutex_unlock
(
&
lock
);
}
}
else
else
...
@@ -235,7 +235,7 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
...
@@ -235,7 +235,7 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
{
{
msg_Warn
(
p_stream
,
"received close message"
);
msg_Warn
(
p_stream
,
"received close message"
);
vlc_mutex_lock
(
&
lock
);
vlc_mutex_lock
(
&
lock
);
i
_status
=
CHROMECAST_CONNECTION_DEAD
;
conn
_status
=
CHROMECAST_CONNECTION_DEAD
;
vlc_mutex_unlock
(
&
lock
);
vlc_mutex_unlock
(
&
lock
);
}
}
else
else
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment