diff options
author | wm4 <wm4@nowhere> | 2018-03-21 14:55:37 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2018-03-26 19:47:08 +0200 |
commit | 0b4120919aa1e4e70b49dd3f93af0acddd7ea4d3 (patch) | |
tree | 8839d16bcc39e548eb15156211a8fc13d25314c4 /video | |
parent | f81ae9c3fc45886da45e6ae5fe90e5125a9e9bee (diff) | |
download | mpv-0b4120919aa1e4e70b49dd3f93af0acddd7ea4d3.tar.bz2 mpv-0b4120919aa1e4e70b49dd3f93af0acddd7ea4d3.tar.xz |
f_decoder_wrapper: retry decoding if libavcodec returns invalid state
At least the libavcodec MediaCodec wrapper sometimes seems to break the
libavcodec API, and does the following sequence:
send_packet() -> EAGAIN
receive_frame() -> EAGAIN
send_packet() -> OK
The libavcodec API never allows returning EAGAIN from both functions, so
we discarded packets in this case. Change it to retrying decoding, for
the sake of MediaCodec. Note that it could also happen due to internal
bugs in the vd_lavc.c hw fallback code, but if there are any remaining,
they should be fixed properly instead.
Requested.
Diffstat (limited to 'video')
0 files changed, 0 insertions, 0 deletions