test-helpers.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import {isVideoCodec, isAudioCodec} from '../src/codecs.js';
  2. const codecAliasMap = {
  3. mp3: ['mp3', 'mp4a.40.34', 'mp4a.6b'],
  4. aac: ['aac', 'mp4a.40.2', 'mp4a.40.5', 'mp4a.40.29']
  5. };
  6. Object.keys(codecAliasMap).forEach((alias) => {
  7. // map aliases as keys so that everything is linked to each other
  8. codecAliasMap[alias].forEach((subalias) => {
  9. codecAliasMap[subalias] = codecAliasMap[alias];
  10. });
  11. });
  12. export const doesCodecMatch = function(a, b) {
  13. if (!a) {
  14. return false;
  15. }
  16. if (codecAliasMap[b]) {
  17. return codecAliasMap[a].indexOf(b) !== -1;
  18. }
  19. return a === b;
  20. };
  21. export const codecsFromFile = function(file) {
  22. const codecs = {};
  23. const extension = file.split('.').pop();
  24. const codecStr = file.replace(`.${extension}`, '');
  25. codecStr.split(',').forEach((codec) => {
  26. if (isVideoCodec(codec)) {
  27. codecs.video = codec;
  28. } else if (isAudioCodec(codec)) {
  29. codecs.audio = codec;
  30. } else {
  31. throw new Error(`${codec} is not detected as audio or video`);
  32. }
  33. });
  34. return codecs;
  35. };