Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-1.1
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-1.1
Commits
e03130e4
Commit
e03130e4
authored
Nov 27, 2008
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
RTP: notify demux thread when RTP flow is dead
parent
431e5dfa
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
23 additions
and
19 deletions
+23
-19
modules/access/rtp/input.c
modules/access/rtp/input.c
+16
-14
modules/access/rtp/rtp.c
modules/access/rtp/rtp.c
+1
-0
modules/access/rtp/rtp.h
modules/access/rtp/rtp.h
+6
-5
No files found.
modules/access/rtp/input.c
View file @
e03130e4
...
...
@@ -160,30 +160,32 @@ void *rtp_thread (void *data)
demux_t
*
demux
=
data
;
demux_sys_t
*
p_sys
=
demux
->
p_sys
;
for
(;;)
do
{
block_t
*
block
=
rtp_recv
(
demux
);
if
(
block
==
NULL
)
break
;
/* fatal error: abort */
vlc_mutex_lock
(
&
p_sys
->
lock
);
/* Autodetect payload type, _before_ rtp_queue()
*/
if
(
p_sys
->
autodetect
)
if
(
block
==
NULL
)
p_sys
->
dead
=
true
;
/* Fatal error: abort
*/
else
{
if
(
rtp_autodetect
(
demux
,
p_sys
->
session
,
block
))
{
block_Release
(
block
);
continue
;
if
(
p_sys
->
autodetect
)
{
/* Autodetect payload type, _before_ rtp_queue() */
if
(
rtp_autodetect
(
demux
,
p_sys
->
session
,
block
))
{
vlc_mutex_unlock
(
&
p_sys
->
lock
);
block_Release
(
block
);
continue
;
}
p_sys
->
autodetect
=
false
;
}
p_sys
->
autodetect
=
false
;
rtp_queue
(
demux
,
p_sys
->
session
,
block
)
;
}
rtp_queue
(
demux
,
p_sys
->
session
,
block
);
vlc_cond_signal
(
&
p_sys
->
wait
);
vlc_mutex_unlock
(
&
p_sys
->
lock
);
}
/* TODO: return 0 from Demux */
while
(
!
p_sys
->
dead
);
return
NULL
;
}
...
...
modules/access/rtp/rtp.c
View file @
e03130e4
...
...
@@ -237,6 +237,7 @@ static int Open (vlc_object_t *obj)
p_sys
->
max_misorder
=
var_CreateGetInteger
(
obj
,
"rtp-max-misorder"
);
p_sys
->
autodetect
=
true
;
p_sys
->
framed_rtp
=
(
tp
==
IPPROTO_TCP
);
p_sys
->
dead
=
false
;
demux
->
pf_demux
=
Demux
;
demux
->
pf_control
=
Control
;
...
...
modules/access/rtp/rtp.h
View file @
e03130e4
...
...
@@ -63,10 +63,11 @@ struct demux_sys_t
unsigned
caching
;
unsigned
timeout
;
uint8_t
max_src
;
uint16_t
max_dropout
;
uint16_t
max_misorder
;
bool
autodetect
;
bool
framed_rtp
;
uint16_t
max_dropout
;
/**< Max packet forward misordering */
uint16_t
max_misorder
;
/**< Max packet backward misordering */
uint8_t
max_src
;
/**< Max simultaneous RTP sources */
bool
autodetect
;
/**< Payload format autodetection */
bool
framed_rtp
;
/**< Framed RTP packets over TCP */
bool
dead
;
/**< End of stream */
};
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