Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mpd
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Иван Мажукин
mpd
Commits
aa769404
Commit
aa769404
authored
9 years ago
by
Max Kellermann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
decoder/Thread: pass InputStream errors to DecoderControl::error
Give MPD clients access to the error condition.
parent
e2bc6321
sisyphus
0.23.15-alt1
0.23.14-alt1
0.23.13-alt1
0.23.12-alt1
0.23.11-alt1
0.23.8-alt3
0.23.8-alt2
0.23.8-alt1
0.21.24-alt1.1
0.21.24-alt1
0.20.23-alt3
0.20.23-alt2
0.20.23-alt1
0.20.21-alt1
0.20.15-alt1
mpd/0.20.6-alt1
gb-sisyphus-task339776.6100
gb-sisyphus-task337393.100
gb-sisyphus-task337176.300
gb-sisyphus-task334590.100
gb-sisyphus-task333607.100
gb-sisyphus-task331543.2500
gb-sisyphus-task328663.4700
gb-sisyphus-task325064.100
gb-sisyphus-task319111.4000
gb-sisyphus-task313704.100
gb-sisyphus-task312885.100
gb-sisyphus-task308905.3200
gb-sisyphus-task305294.500
gb-sisyphus-task304007.100
gb-sisyphus-task303674.1700
gb-sisyphus-task298681.300
gb-sisyphus-task296051.1000
gb-sisyphus-task274827.100
gb-sisyphus-task269249.2000
gb-sisyphus-task266579.400
gb-sisyphus-task258132.600
gb-sisyphus-task254601.200
gb-sisyphus-task253310.100
gb-sisyphus-task252214.300
gb-sisyphus-task251539.6100
gb-sisyphus-task247988.7000
gb-sisyphus-task238768.6000
gb-sisyphus-task229151.100
gb-sisyphus-task227574.200
gb-sisyphus-task226762.6000
gb-sisyphus-task219546.1700
gb-sisyphus-task213491.100
gb-sisyphus-task198806.100
gb-sisyphus-task181400.100
gb-p9-task277538.2600
gb-c9f2-task327704.1100
No related merge requests found
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
11 additions
and
20 deletions
+11
-20
NEWS
NEWS
+1
-0
DecoderThread.cxx
src/decoder/DecoderThread.cxx
+10
-20
No files found.
NEWS
View file @
aa769404
...
...
@@ -15,6 +15,7 @@ ver 0.20 (not yet released)
are ISO-Latin-1
* decoder
- improved error logging
- report I/O errors to clients
- ffmpeg: support ReplayGain and MixRamp
- ffmpeg: support stream tags
- gme: add option "accuracy"
...
...
This diff is collapsed.
Click to expand it.
src/decoder/DecoderThread.cxx
View file @
aa769404
...
...
@@ -56,18 +56,12 @@ static constexpr Domain decoder_thread_domain("decoder_thread");
* received, nullptr on error
*/
static
std
::
unique_ptr
<
InputStream
>
decoder_input_stream_open
(
DecoderControl
&
dc
,
const
char
*
uri
)
decoder_input_stream_open
(
DecoderControl
&
dc
,
const
char
*
uri
,
Error
&
error
)
{
Error
error
;
std
::
unique_ptr
<
InputStream
>
is
(
InputStream
::
Open
(
uri
,
dc
.
mutex
,
dc
.
cond
,
error
));
if
(
is
==
nullptr
)
{
if
(
error
.
IsDefined
())
LogError
(
error
);
if
(
is
==
nullptr
)
return
nullptr
;
}
/* wait for the input stream to become ready; its metadata
will be available then */
...
...
@@ -82,25 +76,19 @@ decoder_input_stream_open(DecoderControl &dc, const char *uri)
is
->
Update
();
}
if
(
!
is
->
Check
(
error
))
{
LogError
(
error
);
if
(
!
is
->
Check
(
error
))
return
nullptr
;
}
return
is
;
}
static
std
::
unique_ptr
<
InputStream
>
decoder_input_stream_open
(
DecoderControl
&
dc
,
Path
path
)
decoder_input_stream_open
(
DecoderControl
&
dc
,
Path
path
,
Error
&
error
)
{
Error
error
;
std
::
unique_ptr
<
InputStream
>
is
(
OpenLocalInputStream
(
path
,
dc
.
mutex
,
dc
.
cond
,
error
));
if
(
is
==
nullptr
)
{
LogError
(
error
);
if
(
is
==
nullptr
)
return
nullptr
;
}
assert
(
is
->
IsReady
());
...
...
@@ -264,7 +252,7 @@ decoder_run_stream(Decoder &decoder, const char *uri)
DecoderControl
&
dc
=
decoder
.
dc
;
std
::
unique_ptr
<
InputStream
>
input_stream
=
decoder_input_stream_open
(
dc
,
uri
);
decoder_input_stream_open
(
dc
,
uri
,
decoder
.
error
);
if
(
input_stream
==
nullptr
)
return
false
;
...
...
@@ -311,9 +299,11 @@ TryDecoderFile(Decoder &decoder, Path path_fs, const char *suffix,
return
decoder_file_decode
(
plugin
,
decoder
,
path_fs
);
}
else
if
(
plugin
.
stream_decode
!=
nullptr
)
{
std
::
unique_ptr
<
InputStream
>
input_stream
=
decoder_input_stream_open
(
dc
,
path_fs
);
decoder_input_stream_open
(
dc
,
path_fs
,
decoder
.
error
);
if
(
input_stream
==
nullptr
)
return
false
;
/* returning true to stop the search for
another decoder plugin */
return
true
;
const
ScopeLock
protect
(
dc
.
mutex
);
return
decoder_stream_decode
(
plugin
,
decoder
,
*
input_stream
);
...
...
This diff is collapsed.
Click to expand it.
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