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

Feature functional tests audio switching #3472

Conversation

vrosenberg
Copy link
Contributor

No description provided.

@vrosenberg vrosenberg self-assigned this Dec 3, 2020
@dsilhavy dsilhavy added this to the 3.2.1 milestone Dec 4, 2020
- get list of audio tracks at stream setup (see "play" test)
- skip "audioSwitch" test if no more than 1 audio track
- check if playing after each audio track switch
@bbert
Copy link
Contributor

bbert commented Dec 29, 2020

@vrosenberg please find my code review in commit 602b7c4 on branch https://github.com/Dash-Industry-Forum/dash.js/tree/fraunhoferfokus-feature-functionalTestsAudioSwitching

If you agree with that you could proceed the same way for text tracks switching

@vrosenberg
Copy link
Contributor Author

@bbert
The play progress check doesn't seem to work
Often ending in an assertion error, where false was to be expected true
I tested without this part of the code:

utils.log(NAME, 'Check if playing');
const progressing = await command.executeAsync(player.isProgressing, [constants.PROGRESS_DELAY, constants.EVENT_TIMEOUT]);
assert.isTrue(progressing);

and the audio switch case seems to function.

An example stream where the progress check failed would be:
https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd

Do you have an idea what the problem might be?

I will proceed the same for text track switching

@bbert
Copy link
Contributor

bbert commented Jan 4, 2021

@vrosenberg there is indeed an issue, let me explain you:

  • when getting the tracks through the Leadfoot command, undefined object properties are transformed to null values
  • when setting new track, if new track is the same but if any property (such as 'id' for example) is undefined, then a null value will be compared to an undefined value in MediaController.isTracksEqual(), and tracks will be considered as being different
  • as a consequence, that leads to inconsistencies in the player which fails to play after track switch

I am trying to find a solution and will let you lnow

@bbert
Copy link
Contributor

bbert commented Jan 4, 2021

@vrosenberg Please check branch https://github.com/Dash-Industry-Forum/dash.js/tree/fraunhoferfokus-feature-functionalTestsAudioSwitching, I've updated so that we do not switch on initial track to get around issue I described

@dsilhavy shouldn't MediaPlayer API return only objects/values that can serialized to JSON to avoid issues with undefined property values?

@vrosenberg
Copy link
Contributor Author

Thank you @bbert
I will implement that solution for text switching (#3465).
Would the same workaround function with initial text (#3500) and initial audio (#3499)?

@bbert
Copy link
Contributor

bbert commented Jan 5, 2021

No you don't need since you simply set the default language for these tests

@vrosenberg
Copy link
Contributor Author

@bbert
I merged your changes from your branch.
Please check it out.
If there is nothing more to add to this PR we will merge it.

@bbert
Copy link
Contributor

bbert commented Jan 8, 2021

@vrosenberg that sounds good, thx

@dsilhavy dsilhavy merged commit 2db5104 into Dash-Industry-Forum:development Jan 8, 2021
@vrosenberg vrosenberg deleted the feature-functionalTestsAudioSwitching branch March 5, 2021 11:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants