diff options
author | Dudemanguy <random342@airmail.cc> | 2023-09-30 08:58:56 -0500 |
---|---|---|
committer | Dudemanguy <random342@airmail.cc> | 2023-09-30 09:02:57 -0500 |
commit | 3a572c7a88329666a803bb8eb4de0a5a19e60cf8 (patch) | |
tree | 48b8f9f4d218149a67c12f838a8f0989799e338f /demux | |
parent | 84fa7ea411e8e99fced66295c973ecdf94ee07b2 (diff) | |
download | mpv-3a572c7a88329666a803bb8eb4de0a5a19e60cf8.tar.bz2 mpv-3a572c7a88329666a803bb8eb4de0a5a19e60cf8.tar.xz |
Revert "demux: improve stream selection state"
The stream selection state wasn't improved. I didn't realize this messed
with caches. All in all, just not a good idea. Back to drawing board I
guess.
This reverts commit f40bbfec4fcd2d9a787a4d98ec7698a646e5607e.
Diffstat (limited to 'demux')
-rw-r--r-- | demux/demux.c | 17 | ||||
-rw-r--r-- | demux/demux.h | 4 | ||||
-rw-r--r-- | demux/demux_disc.c | 2 | ||||
-rw-r--r-- | demux/demux_timeline.c | 2 |
4 files changed, 12 insertions, 13 deletions
diff --git a/demux/demux.c b/demux/demux.c index 0e125dc660..b5d0bc0bc9 100644 --- a/demux/demux.c +++ b/demux/demux.c @@ -864,8 +864,7 @@ static void wakeup_ds(struct demux_stream *ds) } static void update_stream_selection_state(struct demux_internal *in, - struct demux_stream *ds, - bool paused) + struct demux_stream *ds) { ds->eof = false; ds->refreshing = false; @@ -887,8 +886,8 @@ static void update_stream_selection_state(struct demux_internal *in, } // Subtitles are only eagerly read if there are no other eagerly read - // streams or the player is paused. - if (any_av_streams && !paused) { + // streams. + if (any_av_streams) { for (int n = 0; n < in->num_streams; n++) { struct demux_stream *s = in->streams[n]->ds; @@ -1003,7 +1002,7 @@ static void demux_add_sh_stream_locked(struct demux_internal *in, sh->ds->queue = in->current_range->streams[sh->ds->index]; } - update_stream_selection_state(in, sh->ds, false); + update_stream_selection_state(in, sh->ds); switch (ds->type) { case STREAM_AUDIO: @@ -3962,7 +3961,7 @@ static void initiate_refresh_seek(struct demux_internal *in, // ref_pts is used only if the stream is enabled. Then it serves as approximate // start pts for this stream (in the worst case it is ignored). void demuxer_select_track(struct demuxer *demuxer, struct sh_stream *stream, - double ref_pts, bool selected, bool paused) + double ref_pts, bool selected) { struct demux_internal *in = demuxer->in; struct demux_stream *ds = stream->ds; @@ -3972,7 +3971,7 @@ void demuxer_select_track(struct demuxer *demuxer, struct sh_stream *stream, if (ds->selected != selected) { MP_VERBOSE(in, "%sselect track %d\n", selected ? "" : "de", stream->index); ds->selected = selected; - update_stream_selection_state(in, ds, paused); + update_stream_selection_state(in, ds); in->tracks_switched = true; if (ds->selected) { if (in->back_demuxing) @@ -3992,7 +3991,7 @@ void demuxer_select_track(struct demuxer *demuxer, struct sh_stream *stream, // Execute a refresh seek on the given stream. // ref_pts has the same meaning as with demuxer_select_track() void demuxer_refresh_track(struct demuxer *demuxer, struct sh_stream *stream, - double ref_pts, bool paused) + double ref_pts) { struct demux_internal *in = demuxer->in; struct demux_stream *ds = stream->ds; @@ -4000,7 +3999,7 @@ void demuxer_refresh_track(struct demuxer *demuxer, struct sh_stream *stream, ref_pts = MP_ADD_PTS(ref_pts, -in->ts_offset); if (ds->selected) { MP_VERBOSE(in, "refresh track %d\n", stream->index); - update_stream_selection_state(in, ds, paused); + update_stream_selection_state(in, ds); if (in->back_demuxing) ds->back_seek_pos = ref_pts; if (!in->after_seek) diff --git a/demux/demux.h b/demux/demux.h index 4582c544e7..08904f26cc 100644 --- a/demux/demux.h +++ b/demux/demux.h @@ -319,9 +319,9 @@ void demux_get_reader_state(struct demuxer *demuxer, struct demux_reader_state * void demux_block_reading(struct demuxer *demuxer, bool block); void demuxer_select_track(struct demuxer *demuxer, struct sh_stream *stream, - double ref_pts, bool selected, bool paused); + double ref_pts, bool selected); void demuxer_refresh_track(struct demuxer *demuxer, struct sh_stream *stream, - double ref_pts, bool paused); + double ref_pts); int demuxer_help(struct mp_log *log, const m_option_t *opt, struct bstr name); diff --git a/demux/demux_disc.c b/demux/demux_disc.c index 5f8885e5e8..3dfff45403 100644 --- a/demux/demux_disc.c +++ b/demux/demux_disc.c @@ -59,7 +59,7 @@ static void reselect_streams(demuxer_t *demuxer) for (int n = 0; n < MPMIN(num_slave, p->num_streams); n++) { if (p->streams[n]) { demuxer_select_track(p->slave, demux_get_stream(p->slave, n), - MP_NOPTS_VALUE, demux_stream_is_selected(p->streams[n]), false); + MP_NOPTS_VALUE, demux_stream_is_selected(p->streams[n])); } } } diff --git a/demux/demux_timeline.c b/demux/demux_timeline.c index 21fdcdbe5b..5572fb53bf 100644 --- a/demux/demux_timeline.c +++ b/demux/demux_timeline.c @@ -170,7 +170,7 @@ static void reselect_streams(struct demuxer *demuxer) if (!src->current || seg->d != src->current->d) selected = false; struct sh_stream *sh = demux_get_stream(seg->d, i); - demuxer_select_track(seg->d, sh, MP_NOPTS_VALUE, selected, false); + demuxer_select_track(seg->d, sh, MP_NOPTS_VALUE, selected); update_slave_stats(demuxer, seg->d); } |