diff options
Diffstat (limited to 'player/core.h')
-rw-r--r-- | player/core.h | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/player/core.h b/player/core.h index ad61500741..4767830bc9 100644 --- a/player/core.h +++ b/player/core.h @@ -435,6 +435,21 @@ typedef struct MPContext { // --- The following fields are protected by lock struct mp_cancel *demuxer_cancel; // cancel handle for MPContext.demuxer + + // --- Owned by MPContext + pthread_t open_thread; + bool open_active; // open_thread is a valid thread handle, all setup + atomic_bool open_done; + // --- All fields below are immutable while open_active is true. + // Otherwise, they're owned by MPContext. + struct mp_cancel *open_cancel; + char *open_url; + char *open_format; + int open_url_flags; + // --- All fields below are owned by open_thread, unless open_done was set + // to true. + struct demuxer *open_res_demuxer; + int open_res_error; } MPContext; // audio.c @@ -480,7 +495,7 @@ struct track *mp_track_by_tid(struct MPContext *mpctx, enum stream_type type, void add_demuxer_tracks(struct MPContext *mpctx, struct demuxer *demuxer); bool mp_remove_track(struct MPContext *mpctx, struct track *track); struct playlist_entry *mp_next_file(struct MPContext *mpctx, int direction, - bool force); + bool force, bool mutate); void mp_set_playlist_entry(struct MPContext *mpctx, struct playlist_entry *e); void mp_play_files(struct MPContext *mpctx); void update_demuxer_properties(struct MPContext *mpctx); @@ -490,6 +505,7 @@ void prepare_playlist(struct MPContext *mpctx, struct playlist *pl); void autoload_external_files(struct MPContext *mpctx); struct track *select_default_track(struct MPContext *mpctx, int order, enum stream_type type); +void prefetch_next(struct MPContext *mpctx); // main.c int mp_initialize(struct MPContext *mpctx, char **argv); @@ -508,8 +524,6 @@ void update_vo_playback_state(struct MPContext *mpctx); void update_window_title(struct MPContext *mpctx, bool force); void error_on_track(struct MPContext *mpctx, struct track *track); int stream_dump(struct MPContext *mpctx, const char *source_filename); -int mpctx_run_reentrant(struct MPContext *mpctx, void (*thread_fn)(void *arg), - void *thread_arg); double get_track_seek_offset(struct MPContext *mpctx, struct track *track); // osd.c |