-
Notifications
You must be signed in to change notification settings - Fork 428
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
Adding missing manifest information on to segments (EXT-X-PROGRAM-DATE-TIME) #236
Conversation
💖 Thanks for opening this pull request! 💖 Things that will help get your PR across the finish line:
We get a lot of pull requests on this repo, so please be patient and we will get back to you as soon as we can. |
…E-TIME); Missed test file update during commit.
@@ -1371,6 +1371,8 @@ export default class SegmentLoader extends videojs.EventTarget { | |||
|
|||
const Cue = window.WebKitDataCue || window.VTTCue; | |||
const value = { | |||
dateTimeObject: (segment && segment.dateTimeObject) || null, | |||
dateTimeString: (segment && segment.dateTimeString) || null, |
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 should probably default to the empty string.
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.
Didn't seem accurate to me. I felt null was a better representation of the value not being there (e.g. manifest doesn't have that information). I can change if ''
is preferred, though.
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.
I think it should either be a string to match the type of that property when a value is present, or, maybe better yet, not have the property at all if a value is absent.
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.
I disagree; but ok :) I'll make the update.
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.
Why do you think having null values would be better?
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.
I like the consistency in the segment object plus think it could avoid issues of developer not checking if the property is there and getting a error like "cannot read property getTime of undefined" — trying to do dateTimeObject.getTime — for example not knowing that the prop won't be there sometimes. Ultimately, one way or another devs will need to check but just it felt more reliable to be that way.
Not sure if all of the other props there will always be in manifests but according to the code, the other properties are not skipped if not in.
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.
If a property is missing, it'll still be the same null-check:
if (cue.dataTimeObject) {
}
if (cue.dateTimeString) {
}
Also, I only was saying that the dateTimeString
should have defaulted to an empty string (which is a falsey value) and not the dateTimeObject
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.
so you're ok with dateTimeObject being null? You just want dateTimeString to be ''
?
or are we sticking with removing them all together when not present?
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.
@gkatsev where do we stand on this adjustment?
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.
@rart I believe what you have is fine, if the program date time tag has no value for some reason (not sure if this is allowed in the HLS spec) I don't think we should have the property be present with an empty string but rather use null.
Congrats on merging your first pull request! 🎉🎉🎉 |
Description
The segment metadata is currently missing the information that comes from the
EXT-X-PROGRAM-DATE-TIME
.Specific Changes proposed
I've added the
dateTimeObject
&dateTimeString
to the segment data object. The information as already coming through from the buffer, only missing to be added to the segment data object that's published.Requirements Checklist