utils.clock.test.js 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. 'use strict';
  2. var
  3. QUnit = require('qunit'),
  4. clock = require('../lib/utils/clock');
  5. QUnit.module('Clock Utils');
  6. QUnit.test('converts from seconds to video timestamps', function(assert) {
  7. assert.equal(clock.secondsToVideoTs(0), 0, 'converts seconds to video timestamp');
  8. assert.equal(clock.secondsToVideoTs(1), 90000, 'converts seconds to video timestamp');
  9. assert.equal(clock.secondsToVideoTs(10), 900000, 'converts seconds to video timestamp');
  10. assert.equal(clock.secondsToVideoTs(-1), -90000, 'converts seconds to video timestamp');
  11. assert.equal(clock.secondsToVideoTs(3), 270000, 'converts seconds to video timestamp');
  12. assert.equal(clock.secondsToVideoTs(0.1), 9000, 'converts seconds to video timestamp');
  13. });
  14. QUnit.test('converts from seconds to audio timestamps', function(assert) {
  15. assert.equal(clock.secondsToAudioTs(0, 90000),
  16. 0,
  17. 'converts seconds to audio timestamp');
  18. assert.equal(clock.secondsToAudioTs(1, 90000),
  19. 90000,
  20. 'converts seconds to audio timestamp');
  21. assert.equal(clock.secondsToAudioTs(-1, 90000),
  22. -90000,
  23. 'converts seconds to audio timestamp');
  24. assert.equal(clock.secondsToAudioTs(3, 90000),
  25. 270000,
  26. 'converts seconds to audio timestamp');
  27. assert.equal(clock.secondsToAudioTs(0, 44100),
  28. 0,
  29. 'converts seconds to audio timestamp');
  30. assert.equal(clock.secondsToAudioTs(1, 44100),
  31. 44100,
  32. 'converts seconds to audio timestamp');
  33. assert.equal(clock.secondsToAudioTs(3, 44100),
  34. 132300,
  35. 'converts seconds to audio timestamp');
  36. assert.equal(clock.secondsToAudioTs(-1, 44100),
  37. -44100,
  38. 'converts seconds to audio timestamp');
  39. assert.equal(clock.secondsToAudioTs(0.1, 44100),
  40. 4410,
  41. 'converts seconds to audio timestamp');
  42. });
  43. QUnit.test('converts from video timestamp to seconds', function(assert) {
  44. assert.equal(clock.videoTsToSeconds(0), 0, 'converts video timestamp to seconds');
  45. assert.equal(clock.videoTsToSeconds(90000), 1, 'converts video timestamp to seconds');
  46. assert.equal(clock.videoTsToSeconds(900000), 10, 'converts video timestamp to seconds');
  47. assert.equal(clock.videoTsToSeconds(-90000), -1, 'converts video timestamp to seconds');
  48. assert.equal(clock.videoTsToSeconds(270000), 3, 'converts video timestamp to seconds');
  49. assert.equal(clock.videoTsToSeconds(9000), 0.1, 'converts video timestamp to seconds');
  50. });
  51. QUnit.test('converts from audio timestamp to seconds', function(assert) {
  52. assert.equal(clock.audioTsToSeconds(0, 90000),
  53. 0,
  54. 'converts seconds to audio timestamp');
  55. assert.equal(clock.audioTsToSeconds(90000, 90000),
  56. 1,
  57. 'converts seconds to audio timestamp');
  58. assert.equal(clock.audioTsToSeconds(-90000, 90000),
  59. -1,
  60. 'converts seconds to audio timestamp');
  61. assert.equal(clock.audioTsToSeconds(270000, 90000),
  62. 3,
  63. 'converts seconds to audio timestamp');
  64. assert.equal(clock.audioTsToSeconds(0, 44100),
  65. 0,
  66. 'converts seconds to audio timestamp');
  67. assert.equal(clock.audioTsToSeconds(44100, 44100),
  68. 1,
  69. 'converts seconds to audio timestamp');
  70. assert.equal(clock.audioTsToSeconds(132300, 44100),
  71. 3,
  72. 'converts seconds to audio timestamp');
  73. assert.equal(clock.audioTsToSeconds(-44100, 44100),
  74. -1,
  75. 'converts seconds to audio timestamp');
  76. assert.equal(clock.audioTsToSeconds(4410, 44100),
  77. 0.1,
  78. 'converts seconds to audio timestamp');
  79. });
  80. QUnit.test('converts from audio timestamp to video timestamp', function(assert) {
  81. assert.equal(clock.audioTsToVideoTs(0, 90000),
  82. 0,
  83. 'converts audio timestamp to video timestamp');
  84. assert.equal(clock.audioTsToVideoTs(90000, 90000),
  85. 90000,
  86. 'converts audio timestamp to video timestamp');
  87. assert.equal(clock.audioTsToVideoTs(900000, 90000),
  88. 900000,
  89. 'converts audio timestamp to video timestamp');
  90. assert.equal(clock.audioTsToVideoTs(-90000, 90000),
  91. -90000,
  92. 'converts audio timestamp to video timestamp');
  93. assert.equal(clock.audioTsToVideoTs(270000, 90000),
  94. 270000,
  95. 'converts audio timestamp to video timestamp');
  96. assert.equal(clock.audioTsToVideoTs(9000, 90000),
  97. 9000,
  98. 'converts audio timestamp to video timestamp');
  99. assert.equal(clock.audioTsToVideoTs(0, 44100),
  100. 0,
  101. 'converts audio timestamp to video timestamp');
  102. assert.equal(clock.audioTsToVideoTs(44100, 44100),
  103. 90000,
  104. 'converts audio timestamp to video timestamp');
  105. assert.equal(clock.audioTsToVideoTs(441000, 44100),
  106. 900000,
  107. 'converts audio timestamp to video timestamp');
  108. assert.equal(clock.audioTsToVideoTs(-44100, 44100),
  109. -90000,
  110. 'converts audio timestamp to video timestamp');
  111. assert.equal(clock.audioTsToVideoTs(132300, 44100),
  112. 270000,
  113. 'converts audio timestamp to video timestamp');
  114. assert.equal(clock.audioTsToVideoTs(4410, 44100),
  115. 9000,
  116. 'converts audio timestamp to video timestamp');
  117. });
  118. QUnit.test('converts from video timestamp to audio timestamp', function(assert) {
  119. assert.equal(clock.videoTsToAudioTs(0, 90000),
  120. 0,
  121. 'converts video timestamp to audio timestamp');
  122. assert.equal(clock.videoTsToAudioTs(90000, 90000),
  123. 90000,
  124. 'converts video timestamp to audio timestamp');
  125. assert.equal(clock.videoTsToAudioTs(900000, 90000),
  126. 900000,
  127. 'converts video timestamp to audio timestamp');
  128. assert.equal(clock.videoTsToAudioTs(-90000, 90000),
  129. -90000,
  130. 'converts video timestamp to audio timestamp');
  131. assert.equal(clock.videoTsToAudioTs(270000, 90000),
  132. 270000,
  133. 'converts video timestamp to audio timestamp');
  134. assert.equal(clock.videoTsToAudioTs(9000, 90000),
  135. 9000,
  136. 'converts video timestamp to audio timestamp');
  137. assert.equal(clock.videoTsToAudioTs(0, 44100),
  138. 0,
  139. 'converts video timestamp to audio timestamp');
  140. assert.equal(clock.videoTsToAudioTs(90000, 44100),
  141. 44100,
  142. 'converts video timestamp to audio timestamp');
  143. assert.equal(clock.videoTsToAudioTs(900000, 44100),
  144. 441000,
  145. 'converts video timestamp to audio timestamp');
  146. assert.equal(clock.videoTsToAudioTs(-90000, 44100),
  147. -44100,
  148. 'converts video timestamp to audio timestamp');
  149. assert.equal(clock.videoTsToAudioTs(270000, 44100),
  150. 132300,
  151. 'converts video timestamp to audio timestamp');
  152. assert.equal(clock.videoTsToAudioTs(9000, 44100),
  153. 4410,
  154. 'converts video timestamp to audio timestamp');
  155. });
  156. QUnit.test('converts from metadata timestamp to seconds', function(assert) {
  157. assert.equal(clock.metadataTsToSeconds(90000, 90000, false),
  158. 0,
  159. 'converts metadata timestamp to seconds and adjusts by timelineStartPts');
  160. assert.equal(clock.metadataTsToSeconds(270000, 90000, false),
  161. 2,
  162. 'converts metadata timestamp to seconds and adjusts by timelineStartPts');
  163. assert.equal(clock.metadataTsToSeconds(90000, 90000, true),
  164. 1,
  165. 'converts metadata timestamp to seconds while keeping original timestamps');
  166. assert.equal(clock.metadataTsToSeconds(180000, 0, true),
  167. 2,
  168. 'converts metadata timestamp to seconds while keeping original timestamps');
  169. });