From 8561c9c5a6e43c40fe9ee6a450ff94ecffe82d69 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 26 Aug 2014 11:27:41 +0200 Subject: DecoderAPI: add decoder_seek_where_frame() --- src/decoder/DecoderAPI.cxx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/decoder/DecoderAPI.cxx') diff --git a/src/decoder/DecoderAPI.cxx b/src/decoder/DecoderAPI.cxx index 926a3955e..7349b00db 100644 --- a/src/decoder/DecoderAPI.cxx +++ b/src/decoder/DecoderAPI.cxx @@ -237,6 +237,24 @@ decoder_seek_where_ms(Decoder &decoder) return unsigned(dc.seek_where * 1000); } +uint64_t +decoder_seek_where_frame(Decoder &decoder) +{ + const DecoderControl &dc = decoder.dc; + + assert(dc.pipe != nullptr); + + if (decoder.initial_seek_running) + return uint64_t(dc.start_ms) * dc.in_audio_format.sample_rate + / 1000; + + assert(dc.command == DecoderCommand::SEEK); + + decoder.seeking = true; + + return uint64_t(dc.seek_where * dc.in_audio_format.sample_rate); +} + void decoder_seek_error(Decoder & decoder) { DecoderControl &dc = decoder.dc; -- cgit v1.2.3