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
0f44a068
Commit
0f44a068
authored
Feb 15, 2014
by
Jean-Paul Saman
Committed by
Rafaël Carré
Feb 15, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sout: report muxer errors back
parent
f04a7c62
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
31 additions
and
16 deletions
+31
-16
include/vlc_sout.h
include/vlc_sout.h
+1
-1
modules/stream_out/es.c
modules/stream_out/es.c
+1
-3
modules/stream_out/rtp.c
modules/stream_out/rtp.c
+1
-2
modules/stream_out/standard.c
modules/stream_out/standard.c
+1
-2
modules/stream_out/transcode/transcode.c
modules/stream_out/transcode/transcode.c
+5
-1
src/input/decoder.c
src/input/decoder.c
+18
-3
src/missing.c
src/missing.c
+1
-1
src/stream_output/stream_output.c
src/stream_output/stream_output.c
+3
-3
No files found.
include/vlc_sout.h
View file @
0f44a068
...
...
@@ -157,7 +157,7 @@ VLC_API sout_mux_t * sout_MuxNew( sout_instance_t*, const char *, sout_access_ou
VLC_API
sout_input_t
*
sout_MuxAddStream
(
sout_mux_t
*
,
es_format_t
*
)
VLC_USED
;
VLC_API
void
sout_MuxDeleteStream
(
sout_mux_t
*
,
sout_input_t
*
);
VLC_API
void
sout_MuxDelete
(
sout_mux_t
*
);
VLC_API
void
sout_MuxSendBuffer
(
sout_mux_t
*
,
sout_input_t
*
,
block_t
*
);
VLC_API
int
sout_MuxSendBuffer
(
sout_mux_t
*
,
sout_input_t
*
,
block_t
*
);
VLC_API
int
sout_MuxGetStream
(
sout_mux_t
*
,
int
,
mtime_t
*
);
static
inline
int
sout_MuxControl
(
sout_mux_t
*
p_mux
,
int
i_query
,
...
)
...
...
modules/stream_out/es.c
View file @
0f44a068
...
...
@@ -427,8 +427,6 @@ static int Send( sout_stream_t *p_stream, sout_stream_id_sys_t *id,
block_t
*
p_buffer
)
{
VLC_UNUSED
(
p_stream
);
sout_MuxSendBuffer
(
id
->
p_mux
,
id
->
p_input
,
p_buffer
);
return
VLC_SUCCESS
;
return
sout_MuxSendBuffer
(
id
->
p_mux
,
id
->
p_input
,
p_buffer
);
}
modules/stream_out/rtp.c
View file @
0f44a068
...
...
@@ -1697,8 +1697,7 @@ static int MuxSend( sout_stream_t *p_stream, sout_stream_id_sys_t *id,
sout_mux_t
*
p_mux
=
p_stream
->
p_sys
->
p_mux
;
assert
(
p_mux
!=
NULL
);
sout_MuxSendBuffer
(
p_mux
,
(
sout_input_t
*
)
id
,
p_buffer
);
return
VLC_SUCCESS
;
return
sout_MuxSendBuffer
(
p_mux
,
(
sout_input_t
*
)
id
,
p_buffer
);
}
...
...
modules/stream_out/standard.c
View file @
0f44a068
...
...
@@ -146,8 +146,7 @@ static int Del( sout_stream_t *p_stream, sout_stream_id_sys_t *id )
static
int
Send
(
sout_stream_t
*
p_stream
,
sout_stream_id_sys_t
*
id
,
block_t
*
p_buffer
)
{
sout_MuxSendBuffer
(
p_stream
->
p_sys
->
p_mux
,
(
sout_input_t
*
)
id
,
p_buffer
);
return
VLC_SUCCESS
;
return
sout_MuxSendBuffer
(
p_stream
->
p_sys
->
p_mux
,
(
sout_input_t
*
)
id
,
p_buffer
);
}
static
void
create_SDP
(
sout_stream_t
*
p_stream
,
sout_access_out_t
*
p_access
)
{
...
...
modules/stream_out/transcode/transcode.c
View file @
0f44a068
...
...
@@ -657,7 +657,11 @@ static int Send( sout_stream_t *p_stream, sout_stream_id_sys_t *id,
switch
(
id
->
p_decoder
->
fmt_in
.
i_cat
)
{
case
AUDIO_ES
:
transcode_audio_process
(
p_stream
,
id
,
p_buffer
,
&
p_out
);
if
(
transcode_audio_process
(
p_stream
,
id
,
p_buffer
,
&
p_out
)
!=
VLC_SUCCESS
)
{
return
VLC_EGENERIC
;
}
break
;
case
VIDEO_ES
:
...
...
src/input/decoder.c
View file @
0f44a068
...
...
@@ -1467,7 +1467,7 @@ static void DecoderPlaySpu( decoder_t *p_dec, subpicture_t *p_subpic )
}
#ifdef ENABLE_SOUT
static
void
DecoderPlaySout
(
decoder_t
*
p_dec
,
block_t
*
p_sout_block
)
static
int
DecoderPlaySout
(
decoder_t
*
p_dec
,
block_t
*
p_sout_block
)
{
decoder_owner_sys_t
*
p_owner
=
p_dec
->
p_owner
;
...
...
@@ -1490,9 +1490,15 @@ static void DecoderPlaySout( decoder_t *p_dec, block_t *p_sout_block )
vlc_mutex_unlock
(
&
p_owner
->
lock
);
if
(
!
b_reject
)
sout_InputSendBuffer
(
p_owner
->
p_sout_input
,
p_sout_block
);
// FIXME --VLC_TS_INVALID inspect stream_output/*
{
/* FIXME --VLC_TS_INVALID inspect stream_output*/
return
sout_InputSendBuffer
(
p_owner
->
p_sout_input
,
p_sout_block
);
}
else
{
block_Release
(
p_sout_block
);
return
VLC_EGENERIC
;
}
}
#endif
...
...
@@ -1541,7 +1547,16 @@ static void DecoderProcessSout( decoder_t *p_dec, block_t *p_block )
p_sout_block
->
p_next
=
NULL
;
DecoderPlaySout
(
p_dec
,
p_sout_block
);
if
(
DecoderPlaySout
(
p_dec
,
p_sout_block
)
==
VLC_EGENERIC
)
{
msg_Err
(
p_dec
,
"cannot continue streaming due to errors"
);
p_dec
->
b_error
=
true
;
/* Cleanup */
block_ChainRelease
(
p_next
);
return
;
}
p_sout_block
=
p_next
;
}
...
...
src/missing.c
View file @
0f44a068
...
...
@@ -287,7 +287,7 @@ sout_mux_t *sout_MuxNew (sout_instance_t *instance, const char *mux,
assert
(
0
);
}
void
sout_MuxSendBuffer
(
sout_mux_t
*
mux
,
sout_input_t
*
input
,
block_t
*
block
)
int
sout_MuxSendBuffer
(
sout_mux_t
*
mux
,
sout_input_t
*
input
,
block_t
*
block
)
{
assert
(
0
);
}
...
...
src/stream_output/stream_output.c
View file @
0f44a068
...
...
@@ -512,7 +512,7 @@ void sout_MuxDeleteStream( sout_mux_t *p_mux, sout_input_t *p_input )
/*****************************************************************************
* sout_MuxSendBuffer:
*****************************************************************************/
void
sout_MuxSendBuffer
(
sout_mux_t
*
p_mux
,
sout_input_t
*
p_input
,
int
sout_MuxSendBuffer
(
sout_mux_t
*
p_mux
,
sout_input_t
*
p_input
,
block_t
*
p_buffer
)
{
block_FifoPut
(
p_input
->
p_fifo
,
p_buffer
);
...
...
@@ -535,10 +535,10 @@ void sout_MuxSendBuffer( sout_mux_t *p_mux, sout_input_t *p_input,
/* Wait until we have enought data before muxing */
if
(
p_mux
->
i_add_stream_start
<
0
||
p_buffer
->
i_dts
<
p_mux
->
i_add_stream_start
+
i_caching
)
return
;
return
VLC_SUCCESS
;
p_mux
->
b_waiting_stream
=
false
;
}
p_mux
->
pf_mux
(
p_mux
);
return
p_mux
->
pf_mux
(
p_mux
);
}
...
...
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