extendable-media-recorder
Advanced tools
Comparing version 8.0.1 to 8.1.0
@@ -18,5 +18,4 @@ export const createIsSupportedPromise = (window) => { | ||
const canvasElement = window.document.createElement('canvas'); | ||
// @todo https://bugzilla.mozilla.org/show_bug.cgi?id=1388974 | ||
canvasElement.getContext('2d'); | ||
if (typeof canvasElement.captureStream !== 'function') { | ||
const context = canvasElement.getContext('2d'); | ||
if (context === null || typeof canvasElement.captureStream !== 'function') { | ||
return Promise.resolve(false); | ||
@@ -44,2 +43,4 @@ } | ||
* Bug #1 & #2: Up until v83 Firefox fired an error event with an UnknownError when adding or removing a track. | ||
* | ||
* Bug #3 & #4: Up until v112 Chrome dispatched an error event without any error. | ||
*/ | ||
@@ -54,5 +55,5 @@ new Promise((resolve) => { | ||
event.error.name !== 'UnknownError'); | ||
mediaRecorder.stop(); | ||
}); | ||
mediaRecorder.start(); | ||
context.fillRect(0, 0, 1, 1); | ||
mediaStream.removeTrack(mediaStream.getVideoTracks()[0]); | ||
@@ -59,0 +60,0 @@ }) |
@@ -1,2 +0,2 @@ | ||
export const createNativeMediaRecorderFactory = (createInvalidModificationError, createNotSupportedError) => { | ||
export const createNativeMediaRecorderFactory = (createNotSupportedError) => { | ||
return (nativeMediaRecorderConstructor, stream, mediaRecorderOptions) => { | ||
@@ -37,7 +37,3 @@ const bufferedBlobs = []; | ||
patchedEventListener = (event) => { | ||
// Bug #3 & #4: Chrome throws an error event without any error. | ||
if (event.error === undefined) { | ||
listener.call(nativeMediaRecorder, new ErrorEvent('error', { error: createInvalidModificationError() })); | ||
} | ||
else if (event instanceof ErrorEvent) { | ||
if (event instanceof ErrorEvent) { | ||
listener.call(nativeMediaRecorder, event); | ||
@@ -44,0 +40,0 @@ } |
import { encode, instantiate } from 'media-encoder-host'; | ||
import { MultiBufferDataView } from 'multi-buffer-data-view'; | ||
import { on } from 'subscribable-things'; | ||
export const createWebmPcmMediaRecorderFactory = (createBlobEvent, createInvalidModificationError, createNotSupportedError, decodeWebMChunk, readVariableSizeInteger) => { | ||
export const createWebmPcmMediaRecorderFactory = (createBlobEvent, createNotSupportedError, decodeWebMChunk, readVariableSizeInteger) => { | ||
return (eventTarget, nativeMediaRecorderConstructor, mediaStream, mimeType) => { | ||
@@ -40,5 +40,4 @@ const audioTracks = mediaStream.getAudioTracks(); | ||
stop(); | ||
// Bug #3 & #4: Chrome throws an error event without any error. | ||
eventTarget.dispatchEvent(new ErrorEvent('error', { | ||
error: event.error === undefined ? createInvalidModificationError() : event.error | ||
error: event.error | ||
})); | ||
@@ -45,0 +44,0 @@ }); |
@@ -37,6 +37,6 @@ import { register as rgstr } from 'media-encoder-host'; | ||
const decodeWebMChunk = createDecodeWebMChunk(readElementContent, readElementType); | ||
const createWebmPcmMediaRecorder = createWebmPcmMediaRecorderFactory(createBlobEvent, createInvalidModificationError, createNotSupportedError, decodeWebMChunk, readVariableSizeInteger); | ||
const createWebmPcmMediaRecorder = createWebmPcmMediaRecorderFactory(createBlobEvent, createNotSupportedError, decodeWebMChunk, readVariableSizeInteger); | ||
const createEventTarget = createEventTargetFactory(window); | ||
const nativeMediaRecorderConstructor = createNativeMediaRecorderConstructor(window); | ||
const createNativeMediaRecorder = createNativeMediaRecorderFactory(createInvalidModificationError, createNotSupportedError); | ||
const createNativeMediaRecorder = createNativeMediaRecorderFactory(createNotSupportedError); | ||
const mediaRecorderConstructor = createMediaRecorderConstructor(createNativeMediaRecorder, createNotSupportedError, createWebAudioMediaRecorder, createWebmPcmMediaRecorder, encoderRegexes, createEventTargetConstructor(createEventTarget, wrapEventListener), nativeMediaRecorderConstructor); | ||
@@ -43,0 +43,0 @@ export { mediaRecorderConstructor as MediaRecorder }; |
@@ -1,5 +0,4 @@ | ||
import { TInvalidModificationErrorFactory } from './invalid-modification-error-factory'; | ||
import { TNativeMediaRecorderFactory } from './native-media-recorder-factory'; | ||
import { TNotSupportedErrorFactory } from './not-supported-error-factory'; | ||
export type TNativeMediaRecorderFactoryFactory = (createInvalidModificationError: TInvalidModificationErrorFactory, createNotSupportedError: TNotSupportedErrorFactory) => TNativeMediaRecorderFactory; | ||
export type TNativeMediaRecorderFactoryFactory = (createNotSupportedError: TNotSupportedErrorFactory) => TNativeMediaRecorderFactory; | ||
//# sourceMappingURL=native-media-recorder-factory-factory.d.ts.map |
import { TBlobEventFactory } from './blob-event-factory'; | ||
import { TDecodeWebMChunkFunction } from './decode-web-m-chunk-function'; | ||
import { TInvalidModificationErrorFactory } from './invalid-modification-error-factory'; | ||
import { TNotSupportedErrorFactory } from './not-supported-error-factory'; | ||
import { TReadVariableSizeIntegerFunction } from './read-variable-size-integer-function'; | ||
import { TWebmPcmMediaRecorderFactory } from './webm-pcm-media-recorder-factory'; | ||
export type TWebmPcmMediaRecorderFactoryFactory = (createBlobEvent: TBlobEventFactory, createInvalidModificationError: TInvalidModificationErrorFactory, createNotSupportedError: TNotSupportedErrorFactory, decodeWebMChunk: TDecodeWebMChunkFunction, readVariableSizeInteger: TReadVariableSizeIntegerFunction) => TWebmPcmMediaRecorderFactory; | ||
export type TWebmPcmMediaRecorderFactoryFactory = (createBlobEvent: TBlobEventFactory, createNotSupportedError: TNotSupportedErrorFactory, decodeWebMChunk: TDecodeWebMChunkFunction, readVariableSizeInteger: TReadVariableSizeIntegerFunction) => TWebmPcmMediaRecorderFactory; | ||
//# sourceMappingURL=webm-pcm-media-recorder-factory-factory.d.ts.map |
@@ -140,5 +140,4 @@ (function (global, factory) { | ||
var canvasElement = window.document.createElement('canvas'); | ||
// @todo https://bugzilla.mozilla.org/show_bug.cgi?id=1388974 | ||
canvasElement.getContext('2d'); | ||
if (typeof canvasElement.captureStream !== 'function') { | ||
var context = canvasElement.getContext('2d'); | ||
if (context === null || typeof canvasElement.captureStream !== 'function') { | ||
return Promise.resolve(false); | ||
@@ -172,2 +171,4 @@ } | ||
* Bug #1 & #2: Up until v83 Firefox fired an error event with an UnknownError when adding or removing a track. | ||
* | ||
* Bug #3 & #4: Up until v112 Chrome dispatched an error event without any error. | ||
*/ | ||
@@ -178,5 +179,5 @@ new Promise(function (resolve) { | ||
resolve('error' in event && event.error !== null && _typeof(event.error) === 'object' && 'name' in event.error && event.error.name !== 'UnknownError'); | ||
mediaRecorder.stop(); | ||
}); | ||
mediaRecorder.start(); | ||
context.fillRect(0, 0, 1, 1); | ||
mediaStream.removeTrack(mediaStream.getVideoTracks()[0]); | ||
@@ -387,3 +388,3 @@ })]).then(function (results) { | ||
var createNativeMediaRecorderFactory = function createNativeMediaRecorderFactory(createInvalidModificationError, createNotSupportedError) { | ||
var createNativeMediaRecorderFactory = function createNativeMediaRecorderFactory(createNotSupportedError) { | ||
return function (nativeMediaRecorderConstructor, stream, mediaRecorderOptions) { | ||
@@ -424,8 +425,3 @@ var bufferedBlobs = []; | ||
patchedEventListener = function patchedEventListener(event) { | ||
// Bug #3 & #4: Chrome throws an error event without any error. | ||
if (event.error === undefined) { | ||
listener.call(nativeMediaRecorder, new ErrorEvent('error', { | ||
error: createInvalidModificationError() | ||
})); | ||
} else if (event instanceof ErrorEvent) { | ||
if (event instanceof ErrorEvent) { | ||
listener.call(nativeMediaRecorder, event); | ||
@@ -886,3 +882,3 @@ } else { | ||
var createWebmPcmMediaRecorderFactory = function createWebmPcmMediaRecorderFactory(createBlobEvent, createInvalidModificationError, createNotSupportedError, decodeWebMChunk, readVariableSizeInteger) { | ||
var createWebmPcmMediaRecorderFactory = function createWebmPcmMediaRecorderFactory(createBlobEvent, createNotSupportedError, decodeWebMChunk, readVariableSizeInteger) { | ||
return function (eventTarget, nativeMediaRecorderConstructor, mediaStream, mimeType) { | ||
@@ -945,5 +941,4 @@ var audioTracks = mediaStream.getAudioTracks(); | ||
stop(); | ||
// Bug #3 & #4: Chrome throws an error event without any error. | ||
eventTarget.dispatchEvent(new ErrorEvent('error', { | ||
error: event.error === undefined ? createInvalidModificationError() : event.error | ||
error: event.error | ||
})); | ||
@@ -1158,6 +1153,6 @@ }); | ||
var decodeWebMChunk = createDecodeWebMChunk(readElementContent, readElementType); | ||
var createWebmPcmMediaRecorder = createWebmPcmMediaRecorderFactory(createBlobEvent, createInvalidModificationError, createNotSupportedError, decodeWebMChunk, readVariableSizeInteger); | ||
var createWebmPcmMediaRecorder = createWebmPcmMediaRecorderFactory(createBlobEvent, createNotSupportedError, decodeWebMChunk, readVariableSizeInteger); | ||
var createEventTarget = createEventTargetFactory(window$1); | ||
var nativeMediaRecorderConstructor = createNativeMediaRecorderConstructor(window$1); | ||
var createNativeMediaRecorder = createNativeMediaRecorderFactory(createInvalidModificationError, createNotSupportedError); | ||
var createNativeMediaRecorder = createNativeMediaRecorderFactory(createNotSupportedError); | ||
var mediaRecorderConstructor = createMediaRecorderConstructor(createNativeMediaRecorder, createNotSupportedError, createWebAudioMediaRecorder, createWebmPcmMediaRecorder, encoderRegexes, createEventTargetConstructor(createEventTarget, wrapEventListener), nativeMediaRecorderConstructor); | ||
@@ -1164,0 +1159,0 @@ var isSupported = function isSupported() { |
@@ -38,4 +38,4 @@ { | ||
"cz-conventional-changelog": "^3.3.0", | ||
"eslint": "^8.45.0", | ||
"eslint-config-holy-grail": "^57.2.18", | ||
"eslint": "^8.46.0", | ||
"eslint-config-holy-grail": "^57.2.19", | ||
"extendable-media-recorder-wav-encoder": "^7.0.96", | ||
@@ -59,3 +59,3 @@ "grunt": "^1.6.1", | ||
"rimraf": "^5.0.1", | ||
"rollup": "^3.26.3", | ||
"rollup": "^3.27.0", | ||
"sinon": "^15.2.0", | ||
@@ -100,3 +100,3 @@ "sinon-chai": "^3.7.0", | ||
"types": "build/es2019/module.d.ts", | ||
"version": "8.0.1" | ||
"version": "8.1.0" | ||
} |
@@ -23,7 +23,5 @@ import { TIsSupportedPromiseFactory } from '../types'; | ||
const canvasElement = window.document.createElement('canvas'); | ||
const context = canvasElement.getContext('2d'); | ||
// @todo https://bugzilla.mozilla.org/show_bug.cgi?id=1388974 | ||
canvasElement.getContext('2d'); | ||
if (typeof canvasElement.captureStream !== 'function') { | ||
if (context === null || typeof canvasElement.captureStream !== 'function') { | ||
return Promise.resolve(false); | ||
@@ -55,2 +53,4 @@ } | ||
* Bug #1 & #2: Up until v83 Firefox fired an error event with an UnknownError when adding or removing a track. | ||
* | ||
* Bug #3 & #4: Up until v112 Chrome dispatched an error event without any error. | ||
*/ | ||
@@ -68,5 +68,5 @@ new Promise((resolve) => { | ||
); | ||
mediaRecorder.stop(); | ||
}); | ||
mediaRecorder.start(); | ||
context.fillRect(0, 0, 1, 1); | ||
mediaStream.removeTrack(mediaStream.getVideoTracks()[0]); | ||
@@ -73,0 +73,0 @@ }) |
import { IBlobEvent, IMediaRecorder } from '../interfaces'; | ||
import { TEventHandler, TNativeMediaRecorderFactoryFactory } from '../types'; | ||
export const createNativeMediaRecorderFactory: TNativeMediaRecorderFactoryFactory = ( | ||
createInvalidModificationError, | ||
createNotSupportedError | ||
) => { | ||
export const createNativeMediaRecorderFactory: TNativeMediaRecorderFactoryFactory = (createNotSupportedError) => { | ||
return (nativeMediaRecorderConstructor, stream, mediaRecorderOptions) => { | ||
@@ -52,6 +49,3 @@ const bufferedBlobs: Blob[] = []; | ||
patchedEventListener = (event: ErrorEvent | (Event & { error?: Error })) => { | ||
// Bug #3 & #4: Chrome throws an error event without any error. | ||
if (event.error === undefined) { | ||
listener.call(nativeMediaRecorder, new ErrorEvent('error', { error: createInvalidModificationError() })); | ||
} else if (event instanceof ErrorEvent) { | ||
if (event instanceof ErrorEvent) { | ||
listener.call(nativeMediaRecorder, event); | ||
@@ -58,0 +52,0 @@ } else { |
@@ -8,3 +8,2 @@ import { encode, instantiate } from 'media-encoder-host'; | ||
createBlobEvent, | ||
createInvalidModificationError, | ||
createNotSupportedError, | ||
@@ -58,6 +57,5 @@ decodeWebMChunk, | ||
stop(); | ||
// Bug #3 & #4: Chrome throws an error event without any error. | ||
eventTarget.dispatchEvent( | ||
new ErrorEvent('error', { | ||
error: (<ErrorEvent>event).error === undefined ? createInvalidModificationError() : (<ErrorEvent>event).error | ||
error: (<ErrorEvent>event).error | ||
}) | ||
@@ -64,0 +62,0 @@ ); |
@@ -48,3 +48,2 @@ import { register as rgstr } from 'media-encoder-host'; | ||
createBlobEvent, | ||
createInvalidModificationError, | ||
createNotSupportedError, | ||
@@ -57,3 +56,3 @@ decodeWebMChunk, | ||
const createNativeMediaRecorder = createNativeMediaRecorderFactory(createInvalidModificationError, createNotSupportedError); | ||
const createNativeMediaRecorder = createNativeMediaRecorderFactory(createNotSupportedError); | ||
const mediaRecorderConstructor: IMediaRecorderConstructor = createMediaRecorderConstructor( | ||
@@ -60,0 +59,0 @@ createNativeMediaRecorder, |
@@ -1,8 +0,4 @@ | ||
import { TInvalidModificationErrorFactory } from './invalid-modification-error-factory'; | ||
import { TNativeMediaRecorderFactory } from './native-media-recorder-factory'; | ||
import { TNotSupportedErrorFactory } from './not-supported-error-factory'; | ||
export type TNativeMediaRecorderFactoryFactory = ( | ||
createInvalidModificationError: TInvalidModificationErrorFactory, | ||
createNotSupportedError: TNotSupportedErrorFactory | ||
) => TNativeMediaRecorderFactory; | ||
export type TNativeMediaRecorderFactoryFactory = (createNotSupportedError: TNotSupportedErrorFactory) => TNativeMediaRecorderFactory; |
import { TBlobEventFactory } from './blob-event-factory'; | ||
import { TDecodeWebMChunkFunction } from './decode-web-m-chunk-function'; | ||
import { TInvalidModificationErrorFactory } from './invalid-modification-error-factory'; | ||
import { TNotSupportedErrorFactory } from './not-supported-error-factory'; | ||
@@ -10,3 +9,2 @@ import { TReadVariableSizeIntegerFunction } from './read-variable-size-integer-function'; | ||
createBlobEvent: TBlobEventFactory, | ||
createInvalidModificationError: TInvalidModificationErrorFactory, | ||
createNotSupportedError: TNotSupportedErrorFactory, | ||
@@ -13,0 +11,0 @@ decodeWebMChunk: TDecodeWebMChunkFunction, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
272820
3806