timingsrc 1.2.15 → 1.2.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/es2019/factories/set-playback-rate.d.ts +1 -1
- package/build/es2019/factories/set-playback-rate.d.ts.map +1 -1
- package/build/es2019/factories/set-playback-rate.js +3 -3
- package/build/es2019/factories/set-playback-rate.js.map +1 -1
- package/build/es2019/module.d.ts.map +1 -1
- package/build/es2019/module.js +1 -1
- package/build/es2019/module.js.map +1 -1
- package/build/es5/bundle.js +4 -4
- package/package.json +8 -8
- package/src/factories/set-playback-rate.ts +7 -3
- package/src/module.ts +6 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const createSetPlaybackRate: (playbackRateAssignments: WeakMap<HTMLMediaElement, [number, number]
|
|
1
|
+
export declare const createSetPlaybackRate: (negativeMaximum: number, playbackRateAssignments: WeakMap<HTMLMediaElement, [number, number]>, positiveMinimum: number) => (mediaElement: HTMLMediaElement, previousValue: number, nextValue: number) => void;
|
|
2
2
|
//# sourceMappingURL=set-playback-rate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-playback-rate.d.ts","sourceRoot":"","sources":["../../../src/factories/set-playback-rate.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"set-playback-rate.d.ts","sourceRoot":"","sources":["../../../src/factories/set-playback-rate.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,oBACb,MAAM,2BACE,QAAQ,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,mBACnD,MAAM,oBAED,gBAAgB,iBAAiB,MAAM,aAAa,MAAM,SAcnF,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export const createSetPlaybackRate = (playbackRateAssignments) => {
|
|
1
|
+
export const createSetPlaybackRate = (negativeMaximum, playbackRateAssignments, positiveMinimum) => {
|
|
2
2
|
return (mediaElement, previousValue, nextValue) => {
|
|
3
3
|
const playbackRateAssignment = playbackRateAssignments.get(mediaElement);
|
|
4
4
|
if (playbackRateAssignment === undefined ||
|
|
5
5
|
playbackRateAssignment[0] !== previousValue ||
|
|
6
6
|
playbackRateAssignment[1] !== nextValue) {
|
|
7
|
-
//
|
|
8
|
-
mediaElement.playbackRate = nextValue
|
|
7
|
+
// Bug #6: Chrome does not adjust the tempo when the playbackRate is very close to 1.
|
|
8
|
+
mediaElement.playbackRate = nextValue > 1 ? Math.max(positiveMinimum, nextValue) : Math.min(negativeMaximum, nextValue);
|
|
9
9
|
playbackRateAssignments.set(mediaElement, [mediaElement.playbackRate, nextValue]);
|
|
10
10
|
}
|
|
11
11
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-playback-rate.js","sourceRoot":"","sources":["../../../src/factories/set-playback-rate.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,
|
|
1
|
+
{"version":3,"file":"set-playback-rate.js","sourceRoot":"","sources":["../../../src/factories/set-playback-rate.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACjC,eAAuB,EACvB,uBAAoE,EACpE,eAAuB,EACzB,EAAE;IACA,OAAO,CAAC,YAA8B,EAAE,aAAqB,EAAE,SAAiB,EAAE,EAAE;QAChF,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEzE,IACI,sBAAsB,KAAK,SAAS;YACpC,sBAAsB,CAAC,CAAC,CAAC,KAAK,aAAa;YAC3C,sBAAsB,CAAC,CAAC,CAAC,KAAK,SAAS,EACzC;YACE,qFAAqF;YACrF,YAAY,CAAC,YAAY,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;YAExH,uBAAuB,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;SACrF;IACL,CAAC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAQrE,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,eAAO,MAAM,oBAAoB;;;;;;;;EAA0D,CAAC;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAQrE,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,eAAO,MAAM,oBAAoB;;;;;;;;EAA0D,CAAC;AAS5F,eAAO,MAAM,oCAAoC,sVAKhD,CAAC;AAEF,eAAO,MAAM,YAAY,4LAQxB,CAAC"}
|
package/build/es2019/module.js
CHANGED
|
@@ -16,7 +16,7 @@ import { play } from './functions/play';
|
|
|
16
16
|
export { createSetTimingsrc };
|
|
17
17
|
export { createUpdateGradually };
|
|
18
18
|
export const createUpdateStepwise = createUpdateStepwiseFactory(translateTimingStateVector);
|
|
19
|
-
const updateMediaElement = createUpdateMediaElement(pause, play, createSetCurrentTime(new WeakMap()), createSetPlaybackRate(new WeakMap()));
|
|
19
|
+
const updateMediaElement = createUpdateMediaElement(pause, play, createSetCurrentTime(new WeakMap()), createSetPlaybackRate(881 / 882, new WeakMap(), 882 / 881));
|
|
20
20
|
export const setTimingsrcWithCustomUpdateFunction = createSetTimingsrcWithCustomUpdateFunction(animationFrame, document, on, updateMediaElement);
|
|
21
21
|
export const setTimingsrc = createDefaultSetTimingsrc(createComputeVelocity, createSetTimingsrc, createUpdateGradually, createUpdateStepwise, determineSupportedPlaybackRateValues, setTimingsrcWithCustomUpdateFunction, createWindow());
|
|
22
22
|
//# sourceMappingURL=module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,0CAA0C,EAAE,MAAM,uDAAuD,CAAC;AACnH,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oCAAoC,EAAE,MAAM,sDAAsD,CAAC;AAC5G,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,0BAA0B,CAAC,CAAC;AAE5F,MAAM,kBAAkB,GAAG,wBAAwB,
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,0CAA0C,EAAE,MAAM,uDAAuD,CAAC;AACnH,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oCAAoC,EAAE,MAAM,sDAAsD,CAAC;AAC5G,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,0BAA0B,CAAC,CAAC;AAE5F,MAAM,kBAAkB,GAAG,wBAAwB,CAC/C,KAAK,EACL,IAAI,EACJ,oBAAoB,CAAC,IAAI,OAAO,EAAE,CAAC,EACnC,qBAAqB,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,OAAO,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAC7D,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAAG,0CAA0C,CAC1F,cAAc,EACd,QAAQ,EACR,EAAE,EACF,kBAAkB,CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,yBAAyB,CACjD,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,oCAAoC,EACpC,oCAAoC,EACpC,YAAY,EAAE,CACjB,CAAC"}
|
package/build/es5/bundle.js
CHANGED
|
@@ -31,12 +31,12 @@
|
|
|
31
31
|
};
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
-
var createSetPlaybackRate = function createSetPlaybackRate(playbackRateAssignments) {
|
|
34
|
+
var createSetPlaybackRate = function createSetPlaybackRate(negativeMaximum, playbackRateAssignments, positiveMinimum) {
|
|
35
35
|
return function (mediaElement, previousValue, nextValue) {
|
|
36
36
|
var playbackRateAssignment = playbackRateAssignments.get(mediaElement);
|
|
37
37
|
if (playbackRateAssignment === undefined || playbackRateAssignment[0] !== previousValue || playbackRateAssignment[1] !== nextValue) {
|
|
38
|
-
//
|
|
39
|
-
mediaElement.playbackRate = nextValue
|
|
38
|
+
// Bug #6: Chrome does not adjust the tempo when the playbackRate is very close to 1.
|
|
39
|
+
mediaElement.playbackRate = nextValue > 1 ? Math.max(positiveMinimum, nextValue) : Math.min(negativeMaximum, nextValue);
|
|
40
40
|
playbackRateAssignments.set(mediaElement, [mediaElement.playbackRate, nextValue]);
|
|
41
41
|
}
|
|
42
42
|
};
|
|
@@ -364,7 +364,7 @@
|
|
|
364
364
|
};
|
|
365
365
|
|
|
366
366
|
var createUpdateStepwise = createUpdateStepwiseFactory(timingObject.translateTimingStateVector);
|
|
367
|
-
var updateMediaElement = createUpdateMediaElement(pause, play, createSetCurrentTime(new WeakMap()), createSetPlaybackRate(new WeakMap()));
|
|
367
|
+
var updateMediaElement = createUpdateMediaElement(pause, play, createSetCurrentTime(new WeakMap()), createSetPlaybackRate(881 / 882, new WeakMap(), 882 / 881));
|
|
368
368
|
var setTimingsrcWithCustomUpdateFunction = createSetTimingsrcWithCustomUpdateFunction(subscribableThings.animationFrame, document, subscribableThings.on, updateMediaElement);
|
|
369
369
|
var setTimingsrc = createDefaultSetTimingsrc(createComputeVelocity, createSetTimingsrc, createUpdateGradually, createUpdateStepwise, determineSupportedPlaybackRateValues, setTimingsrcWithCustomUpdateFunction, createWindow());
|
|
370
370
|
|
package/package.json
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@babel/runtime": "^7.20.13",
|
|
13
|
-
"subscribable-things": "^2.1.
|
|
14
|
-
"timing-object": "^3.1.
|
|
13
|
+
"subscribable-things": "^2.1.13",
|
|
14
|
+
"timing-object": "^3.1.54",
|
|
15
15
|
"tslib": "^2.5.0"
|
|
16
16
|
},
|
|
17
17
|
"description": "A library to synchronize a MediaElement with a TimingObject.",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"commitizen": "^4.3.0",
|
|
28
28
|
"cz-conventional-changelog": "^3.3.0",
|
|
29
29
|
"eslint": "^8.33.0",
|
|
30
|
-
"eslint-config-holy-grail": "^55.0.
|
|
31
|
-
"grunt": "^1.6.
|
|
30
|
+
"eslint-config-holy-grail": "^55.0.6",
|
|
31
|
+
"grunt": "^1.6.1",
|
|
32
32
|
"grunt-cli": "^1.4.3",
|
|
33
33
|
"grunt-sh": "^0.2.0",
|
|
34
34
|
"husky": "^8.0.3",
|
|
@@ -45,14 +45,14 @@
|
|
|
45
45
|
"prettier": "^2.8.3",
|
|
46
46
|
"pretty-quick": "^3.1.3",
|
|
47
47
|
"rimraf": "^4.1.2",
|
|
48
|
-
"rollup": "^3.12.
|
|
48
|
+
"rollup": "^3.12.1",
|
|
49
49
|
"sinon": "^15.0.1",
|
|
50
50
|
"sinon-chai": "^3.7.0",
|
|
51
51
|
"ts-loader": "^9.4.2",
|
|
52
52
|
"tsconfig-holy-grail": "^12.0.0",
|
|
53
53
|
"tslint": "^6.1.3",
|
|
54
|
-
"tslint-config-holy-grail": "^54.0.
|
|
55
|
-
"typescript": "^4.9.
|
|
54
|
+
"tslint-config-holy-grail": "^54.0.1",
|
|
55
|
+
"typescript": "^4.9.5",
|
|
56
56
|
"webpack": "^5.75.0"
|
|
57
57
|
},
|
|
58
58
|
"files": [
|
|
@@ -75,5 +75,5 @@
|
|
|
75
75
|
"test": "grunt lint && grunt test"
|
|
76
76
|
},
|
|
77
77
|
"types": "build/es2019/module.d.ts",
|
|
78
|
-
"version": "1.2.
|
|
78
|
+
"version": "1.2.16"
|
|
79
79
|
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
export const createSetPlaybackRate = (
|
|
1
|
+
export const createSetPlaybackRate = (
|
|
2
|
+
negativeMaximum: number,
|
|
3
|
+
playbackRateAssignments: WeakMap<HTMLMediaElement, [number, number]>,
|
|
4
|
+
positiveMinimum: number
|
|
5
|
+
) => {
|
|
2
6
|
return (mediaElement: HTMLMediaElement, previousValue: number, nextValue: number) => {
|
|
3
7
|
const playbackRateAssignment = playbackRateAssignments.get(mediaElement);
|
|
4
8
|
|
|
@@ -7,8 +11,8 @@ export const createSetPlaybackRate = (playbackRateAssignments: WeakMap<HTMLMedia
|
|
|
7
11
|
playbackRateAssignment[0] !== previousValue ||
|
|
8
12
|
playbackRateAssignment[1] !== nextValue
|
|
9
13
|
) {
|
|
10
|
-
//
|
|
11
|
-
mediaElement.playbackRate = nextValue
|
|
14
|
+
// Bug #6: Chrome does not adjust the tempo when the playbackRate is very close to 1.
|
|
15
|
+
mediaElement.playbackRate = nextValue > 1 ? Math.max(positiveMinimum, nextValue) : Math.min(negativeMaximum, nextValue);
|
|
12
16
|
|
|
13
17
|
playbackRateAssignments.set(mediaElement, [mediaElement.playbackRate, nextValue]);
|
|
14
18
|
}
|
package/src/module.ts
CHANGED
|
@@ -20,7 +20,12 @@ export { createUpdateGradually };
|
|
|
20
20
|
|
|
21
21
|
export const createUpdateStepwise = createUpdateStepwiseFactory(translateTimingStateVector);
|
|
22
22
|
|
|
23
|
-
const updateMediaElement = createUpdateMediaElement(
|
|
23
|
+
const updateMediaElement = createUpdateMediaElement(
|
|
24
|
+
pause,
|
|
25
|
+
play,
|
|
26
|
+
createSetCurrentTime(new WeakMap()),
|
|
27
|
+
createSetPlaybackRate(881 / 882, new WeakMap(), 882 / 881)
|
|
28
|
+
);
|
|
24
29
|
|
|
25
30
|
export const setTimingsrcWithCustomUpdateFunction = createSetTimingsrcWithCustomUpdateFunction(
|
|
26
31
|
animationFrame,
|