MCPcopy Create free account
hub / github.com/FFMS/ffms2 / Seek

Method Seek

src/core/audiosource.cpp:540–554  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

538}
539
540void FFMS_AudioSource::Seek() {
541 size_t TargetPacket = GetSeekablePacketNumber(Frames, PacketNumber);
542 LastValidTS = AV_NOPTS_VALUE;
543
544 int Flags = Frames.HasTS ? AVSEEK_FLAG_BACKWARD : AVSEEK_FLAG_BACKWARD | AVSEEK_FLAG_BYTE;
545
546 if (av_seek_frame(FormatContext, TrackNumber, FrameTS(TargetPacket), Flags) < 0)
547 av_seek_frame(FormatContext, TrackNumber, FrameTS(TargetPacket), Flags | AVSEEK_FLAG_ANY);
548
549 if (TargetPacket != PacketNumber) {
550 // Decode until the PTS changes so we know where we are
551 int64_t LastPTS = FrameTS(PacketNumber);
552 while (LastPTS == FrameTS(PacketNumber)) DecodeNextBlock();
553 }
554}
555
556bool FFMS_AudioSource::ReadPacket(AVPacket *Packet) {
557 while (av_read_frame(FormatContext, Packet) >= 0) {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected