-
Notifications
You must be signed in to change notification settings - Fork 4k
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
feat(ivs): support Multitrack Video #33370
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(This review is outdated)
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #33370 +/- ##
=======================================
Coverage 81.00% 81.00%
=======================================
Files 238 238
Lines 14269 14269
Branches 2492 2492
=======================================
Hits 11558 11558
Misses 2425 2425
Partials 286 286
Flags with carried forward coverage won't be shown. Click here to find out more.
|
✅ Updated pull request passes all PRLinter validations. Dismissing previous PRLinter review.
fafae4f
to
12393ae
Compare
@@ -235,6 +331,15 @@ export class Channel extends ChannelBase { | |||
type: props.type, | |||
preset, | |||
recordingConfigurationArn: props.recordingConfiguration?.recordingConfigurationArn, | |||
containerFormat: props.containerFormat ?? | |||
(props.multitrackInputConfiguration ? ContainerFormat.FRAGMENTED_MP4 : undefined), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When using multitrack video, the containerFormat needs to be set to fMP4.
Therefore, when multitrackInputConfiguration is set but containerFormat is not specified, I configured it to automatically set fMP4.
While I considered making it a validation error when containerFormat is not set, I decided this approach would be more user-friendly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
agree with this approach 👍
(props.multitrackInputConfiguration ? ContainerFormat.FRAGMENTED_MP4 : undefined), | ||
multitrackInputConfiguration: props.multitrackInputConfiguration ? | ||
{ | ||
enabled: true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are two configuration patterns for multitrackInputConfiguration
in CFn:
- When
enabled
isfalse
, other properties cannot be set. The IVS default setting hasenabled
asfalse
. - When
enabled
istrue
, other properties must be set.
I felt that implementing these patterns in validation would become complex, and there's no real need to explicitly set enabled
to false
.
Therefore, in the L2 Construct, I abstracted this so that multitrackInputConfiguration
is only set when we want to use multitrack video with enabled
set to true
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
agree with this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No notes, this LGTM. Thank you for the contribution as always
@@ -235,6 +331,15 @@ export class Channel extends ChannelBase { | |||
type: props.type, | |||
preset, | |||
recordingConfigurationArn: props.recordingConfiguration?.recordingConfigurationArn, | |||
containerFormat: props.containerFormat ?? | |||
(props.multitrackInputConfiguration ? ContainerFormat.FRAGMENTED_MP4 : undefined), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
agree with this approach 👍
(props.multitrackInputConfiguration ? ContainerFormat.FRAGMENTED_MP4 : undefined), | ||
multitrackInputConfiguration: props.multitrackInputConfiguration ? | ||
{ | ||
enabled: true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
agree with this
Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
Comments on closed issues and PRs are hard for our team to see. |
Issue # (if applicable)
N/A
Reason for this change
To support Multitrack video features.
Description of changes
Add following properties:
Describe any new or updated permissions being added
Nothing.
Description of how you validated changes
Add unit tests and an integ test.
Checklist
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license