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

Add Audio/Video Track support to video.js #3137

Closed
22 tasks done
brandonocasey opened this issue Feb 24, 2016 · 7 comments
Closed
22 tasks done

Add Audio/Video Track support to video.js #3137

brandonocasey opened this issue Feb 24, 2016 · 7 comments
Labels
enhancement in progress minor This PR can be added to a minor release. It should not be added to a patch release.

Comments

@brandonocasey
Copy link
Contributor

brandonocasey commented Feb 24, 2016

Purpose

To extend the capabilities of video.js so that we can support multiple audio and video tracks much like we support multiple text tracks right now.

Proposal

  • Follow the embedded content specification to:
    • implement the sharing of common functionality between TextTracks, AudioTracks, and VideoTracks.
    • implement VideoTrack, VideoTrackList, and enumerations
    • implement AudioTrack, AudioTrackList, and enumerations
    • possibly implement HTMLSourceElement
  • Add functionality to video.js to utilize the new track lists in api

API Spec

The main portions of the API will be defined in accordance with embedded content specification
Integration with video.js with follow the current patterns that TextTrack has laid out where it makes sense.

Acceptance Criteria Most Covered by #3173

  1. Convert Current TextTrack functionality to use ES6 syntax - (converted remaining text-track modules to full es6 #3130)
  2. move tracks/text-track* files into tracks/text/text-track* - (Moved Text Track files and Unit tests into a text sub directory #3146) Not Doing
  3. Convert text track related unit test to full es6 syntax - (updated text track unit tests to use full es6 syntax #3148)
  4. Move common functionality from TextTrackList so that it can be reused by other TracksLists (Integrate video & audio tracks with video.js #3173)
  5. Move common functionality from TextTrack so that it can be reused by other Tracks (Integrate video & audio tracks with video.js #3173)
  6. Research and implement the HTMLSourceElement api if required Not Doing
  7. Follow the AudioTrack specification and reuse existing functionality to create the following: (Integrate video & audio tracks with video.js #3173)
  8. Follow the VideoTrack specification and reuse existing functionality to create the following: (Integrate video & audio tracks with video.js #3173)
  9. Add audioTracks getter to: (Integrate video & audio tracks with video.js #3173)
  10. Add videoTracks getter to player and tech (Integrate video & audio tracks with video.js #3173)
@gkatsev
Copy link
Member

gkatsev commented Feb 24, 2016

It's interesting that in the DOM, AudioTrackList, VideoTrackList, and TextTrackList all extend from EventTarget directly instead of from a "TrackList" parent.
Also, the AudioTrack, VideoTrack, and TextTrack, all share the same base set properties of id, kind, label, language, so we could probably abstract that part out as well.
I'd be interested to see if there is a usecase for implementing our own custom HTMLSourceElement.
This sounds good to me.

@gkatsev
Copy link
Member

gkatsev commented Feb 24, 2016

Oh, just realized that you mentioned that we can pull TextTrack out into a shared Track. We probably should do that separately from the TextTrackList PR to make it easier to merge.

We should try and make each PR for this epic as small and self contained as possible so we could merge chunks one at a time and not fall into the trap we always do (like captions) where we have a massive PR out for 3 months before it gets merged.

@gkatsev
Copy link
Member

gkatsev commented Feb 24, 2016

One other thing to mention, each of these tests need accompanying tests, of course :)

@brandonocasey
Copy link
Contributor Author

Updated the issues steps to separate TextTrack and TextTrackList into their own steps (for moving common functionality out of them)

@brandonocasey
Copy link
Contributor Author

added another task to move all of the tracks/text-track* files into tracks/text/text-track*

@brandonocasey
Copy link
Contributor Author

added another task to convert remaining text-track unit test into full es6 syntax

@gkatsev gkatsev added enhancement minor This PR can be added to a minor release. It should not be added to a patch release. in progress needs: updates and removed needs: updates labels Mar 14, 2016
@forbesjo forbesjo mentioned this issue Mar 29, 2016
@brandonocasey
Copy link
Contributor Author

brandonocasey commented Apr 22, 2016

#3173 is now merged, I think this issue can be closed

@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 27, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement in progress minor This PR can be added to a minor release. It should not be added to a patch release.
Projects
None yet
Development

No branches or pull requests

2 participants