mirror of
https://github.com/mpv-player/mpv.git
synced 2025-12-28 05:33:14 +00:00
demux, f_decoder_wrapper: fix coverart in backward mode
Shitty ancient hack that wastes my time all the time. demux.c: always return the coverart packet as soon as possible, and don't let the backward demux state machine possibly stop it. f_decoder_wrapper.c: mess with some shit until it somehow starts to work. I think the old code tried to let it cleverly fall through so the packet was processed "normally"; just make it run the "usual" code instead.
This commit is contained in:
@@ -2258,17 +2258,6 @@ static int dequeue_packet(struct demux_stream *ds, struct demux_packet **res)
|
||||
if (in->blocked)
|
||||
return 0;
|
||||
|
||||
if (ds->eager) {
|
||||
in->reading = true; // enable readahead
|
||||
in->eof = false; // force retry
|
||||
pthread_cond_signal(&in->wakeup); // possibly read more
|
||||
}
|
||||
|
||||
if (ds->back_resuming || ds->back_restarting) {
|
||||
assert(in->back_demuxing);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ds->sh->attached_picture) {
|
||||
ds->eof = true;
|
||||
if (ds->attached_picture_added)
|
||||
@@ -2282,6 +2271,17 @@ static int dequeue_packet(struct demux_stream *ds, struct demux_packet **res)
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (ds->eager) {
|
||||
in->reading = true; // enable readahead
|
||||
in->eof = false; // force retry
|
||||
pthread_cond_signal(&in->wakeup); // possibly read more
|
||||
}
|
||||
|
||||
if (ds->back_resuming || ds->back_restarting) {
|
||||
assert(in->back_demuxing);
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool eof = !ds->reader_head && ds->eof;
|
||||
|
||||
if (in->back_demuxing) {
|
||||
|
||||
Reference in New Issue
Block a user