DisplayVideoPlayer.Play reuturns ERR_GENERIC or ERR_TIMEOUT

Started by PatrickVossen, January 10, 2023, 10:02:56 AM

Previous topic - Next topic

PatrickVossen

Hi Severino,

At first the best wishes for 2023.

We have an WPF application (.net 4.6.2) that is playing several videofiles at the same time.
The application contains the "Audio DJ Studio for .net" component, but the issue also occurs when using the "API for .net" component
The ADJ control is initialized using the WASAPI sound system and nine (9) decks are initialized.
deck 8 and 9 are used for continuously play a list of MP4 AAC/AVC files (ambient files).
These files have various lengths between 7seconds and 2 minutes.
2 other decks are used for playing video adds. Also MP4 AAC/AVC files.

Sometimes, when a file is loaded (using .Load or .LoadSync), everything seems to go OK.
No error is raised and retrieving total time after LoadDone is raised, gives the correct total time.

But when we start the playback of the track (using .play or .playrange command) this results in an ERR_GENERIC or ERR_TIMEOUT error. and the track is not started.

Current system is Windows 11, K-lite is latest version.
Do you know if there are any limitations (qty loaded tracks?) or workarounds to handle this issue?

Best regards
Patrick Vossen


Administrator

Hello Patrick,

I'm not aware about limitations about the amount of loaded tracks but, from returned errors, there seems to be something disrupting things after the loading phase invoked by the VideoPlayer.Load method:

- ERR_GENERIC is returned when the filters graph created by the loading phase is no more available for playback, meaning that something destroyed it but the responsible weren't the CloseSound or the VideoPlayer.Close methods, otherwise the returned error would have been ERR_SOUND_NOT_LOADED

- ERR_TIMEOUT is returned when the filters graphs fails to be run after a reasonable amount of time

Both situations are not normal and seem to depend from something unknown happening: I would recommend to verify that the .Load and .Play methods are both invoked from the same thread because DirectShow doesn't behave correctly in a threaded environment.

Hope this helps in some way.

Kind Regards

Severino Delaurenti
MultiMedia Soft


PatrickVossen

Hi Severino,

Thanks for your advise.
I will check if sometimes a track if loaded from a different thread.

Best regards
Patrick Vossen

PatrickVossen

Hi Severino,

Coming back to the ERR_TIMEOUT issue, mentioned in this topic.

On my development machine (Win11/Latest K-Lite/VS2022/application running in 32bit mode), I am getting more and more
- ERR_TIMEOUT return value when starting (not when loading, but starting) MP4 (AVC/AAC/ 720or1080) files.
- ERR_INVALID_FORMAT return value when loading MP4 (AVC/AAC/ 720or1080) files.

At that moment multiple video files are playing simultaneously (4 or 5 files)
Are there know limitations in in AudioDJStudio/Bass/DirectX that is causing this issue?
Do you know if this will occur often in debug mode?
I have already upgraded/changed my Graphics card and soundcard, no success.

Best regards
Patrick Vossen

Administrator

Hello Patrick,

unfortunately, apart from low memory/resources conditions inside the system, as mentioned in my previous reply I don't have any evidence that there could be some kind of specific limitation from DirectShow when dealing with multiple video tracks.
Both errors are generated deeply inside DirectShow and reported back to our multimedia engine so, not knowing internals of DirectShow, I really don't know where the issue could be located: nobody else reported this specific issue till now so there could be some kind of weirdness we are not aware of.

Very sorry of not being of immediate help.

Kind regards

Severino Delaurenti
MultiMedia Soft