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 12:51:10 +1000 |
commit | 64fb63411de8b6970dda385bf87d4a70ce357602 (patch) | |
tree | 8c35ca4a5ccdc596f16bbbb949da5dbedb30d01f | |
parent | ea9732c5d618c92e9fef3c4ffcb803b969524539 (diff) |
avformat/pp_bnk: allow seeking to start
Allows "ffplay -loop" to work.
Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
-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, }; |