diff options
author | Zane van Iperen <zane@zanevaniperen.com> | 2021-03-23 21:51:57 +1000 |
---|---|---|
committer | Zane van Iperen <zane@zanevaniperen.com> | 2021-03-25 16:34:42 +1000 |
commit | df9fbc442d47d3067f6dd978d54431567c8bf3f2 (patch) | |
tree | f7fa1922f3d446911e2be527c331960fa9627c82 | |
parent | 2fd48331d53f0ad258ef93e202a0385ef35b39aa (diff) | |
download | ffmpeg-df9fbc442d47d3067f6dd978d54431567c8bf3f2.tar.gz |
avformat/pp_bnk: allow seeking to start
Allows "ffplay -loop" to work.
Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
(cherry picked from commit 64fb63411de8b6970dda385bf87d4a70ce357602)
-rw-r--r-- | libavformat/pp_bnk.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/libavformat/pp_bnk.c b/libavformat/pp_bnk.c index 5c89295d27..07eeca3cd5 100644 --- a/libavformat/pp_bnk.c +++ b/libavformat/pp_bnk.c @@ -313,6 +313,25 @@ static int pp_bnk_read_close(AVFormatContext *s) return 0; } +static int pp_bnk_seek(AVFormatContext *s, int stream_index, + int64_t pts, int flags) +{ + PPBnkCtx *ctx = s->priv_data; + + if (pts != 0) + return AVERROR(EINVAL); + + if (ctx->is_music) { + av_assert0(stream_index == 0); + ctx->tracks[0].bytes_read = 0; + ctx->tracks[1].bytes_read = 0; + } else { + ctx->tracks[stream_index].bytes_read = 0; + } + + return 0; +} + AVInputFormat ff_pp_bnk_demuxer = { .name = "pp_bnk", .long_name = NULL_IF_CONFIG_SMALL("Pro Pinball Series Soundbank"), @@ -320,5 +339,6 @@ AVInputFormat ff_pp_bnk_demuxer = { .read_probe = pp_bnk_probe, .read_header = pp_bnk_read_header, .read_packet = pp_bnk_read_packet, - .read_close = pp_bnk_read_close + .read_close = pp_bnk_read_close, + .read_seek = pp_bnk_seek, }; |