summaryrefslogtreecommitdiffstats
path: root/demux
diff options
context:
space:
mode:
authorDudemanguy <random342@airmail.cc>2023-09-30 08:58:56 -0500
committerDudemanguy <random342@airmail.cc>2023-09-30 09:02:57 -0500
commit3a572c7a88329666a803bb8eb4de0a5a19e60cf8 (patch)
tree48b8f9f4d218149a67c12f838a8f0989799e338f /demux
parent84fa7ea411e8e99fced66295c973ecdf94ee07b2 (diff)
downloadmpv-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.c17
-rw-r--r--demux/demux.h4
-rw-r--r--demux/demux_disc.c2
-rw-r--r--demux/demux_timeline.c2
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);
}