Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LAV Splitter Source/Audio Decoder does not honor S_FALSE from downstream. #164

Open
JohnPWest opened this issue Oct 4, 2017 · 3 comments

Comments

@JohnPWest
Copy link

I have a stream switching filter which returns S_FALSE from its Receive method on its input pin while it is initiating seek processing, before sending the seek upstream. Standard DirectShow protocol is that the upstream sending filter, in this case the LAV Audio Decoder should stop sending samples until the graph stops or completes a flush operation (which would happen during the subsequent seek). The LAV Splitter Source and LAV Audio Decoder just keep sending samples, including calling EndOfStream if it gets to the end of the stream.

LAV Filters 0.70.2 x64.

JW

@Nevcairiel
Copy link
Owner

Unfortunately, this is just the way it is. There have been way too many filters that didn't handle this right that playback would often break if S_FALSE would be taken as a literal "stop sending" command.

If you are queueing a seek anyway, wouldn't you just keep rejecting samples and then perform the seek, and all would be the same?

@JohnPWest
Copy link
Author

The problem may be that I start rejecting samples BEFORE sending the seek upstream. Does the decoder honor S_FALSE if it is in mid-flush?

@Nevcairiel
Copy link
Owner

Once the seek has reached the source filter and a BeginFlush was issued, then no further samples should be delivered until EndFlush and NewSegment are called.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants