mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-14 23:34:08 +00:00
deps/media-playback: Add seek callback
Allows setting the current frame directly when seeking. If not set, will just use preload if avaialble.
This commit is contained in:
parent
d117908440
commit
bff7ae89ad
12
deps/media-playback/media-playback/media.c
vendored
12
deps/media-playback/media-playback/media.c
vendored
|
@ -416,10 +416,15 @@ static void mp_media_next_video(mp_media_t *m, bool preload)
|
|||
d->got_first_keyframe = true;
|
||||
}
|
||||
|
||||
if (preload)
|
||||
m->v_preload_cb(m->opaque, frame);
|
||||
else
|
||||
if (preload) {
|
||||
if (m->seek_next_ts && m->v_seek_cb) {
|
||||
m->v_seek_cb(m->opaque, frame);
|
||||
} else {
|
||||
m->v_preload_cb(m->opaque, frame);
|
||||
}
|
||||
} else {
|
||||
m->v_cb(m->opaque, frame);
|
||||
}
|
||||
}
|
||||
|
||||
static void mp_media_calc_next_ns(mp_media_t *m)
|
||||
|
@ -780,6 +785,7 @@ bool mp_media_init(mp_media_t *media, const struct mp_media_info *info)
|
|||
media->v_cb = info->v_cb;
|
||||
media->a_cb = info->a_cb;
|
||||
media->stop_cb = info->stop_cb;
|
||||
media->v_seek_cb = info->v_seek_cb;
|
||||
media->v_preload_cb = info->v_preload_cb;
|
||||
media->force_range = info->force_range;
|
||||
media->buffering = info->buffering;
|
||||
|
|
2
deps/media-playback/media-playback/media.h
vendored
2
deps/media-playback/media-playback/media.h
vendored
|
@ -46,6 +46,7 @@ struct mp_media {
|
|||
AVFormatContext *fmt;
|
||||
|
||||
mp_video_cb v_preload_cb;
|
||||
mp_video_cb v_seek_cb;
|
||||
mp_stop_cb stop_cb;
|
||||
mp_video_cb v_cb;
|
||||
mp_audio_cb a_cb;
|
||||
|
@ -109,6 +110,7 @@ struct mp_media_info {
|
|||
|
||||
mp_video_cb v_cb;
|
||||
mp_video_cb v_preload_cb;
|
||||
mp_video_cb v_seek_cb;
|
||||
mp_audio_cb a_cb;
|
||||
mp_stop_cb stop_cb;
|
||||
|
||||
|
|
Loading…
Reference in a new issue