Skip to content

Commit

Permalink
v0.0.8
Browse files Browse the repository at this point in the history
  • Loading branch information
NikolayMakhonin committed Jul 1, 2022
1 parent de1b81d commit b0d4de9
Show file tree
Hide file tree
Showing 7 changed files with 23 additions and 12 deletions.
1 change: 1 addition & 0 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@flemist/ffmpeg-encode-decode",
"version": "0.0.7",
"version": "0.0.8",
"description": "WASM (WebAssembly) encode/decode mp3/ogg/opus/vorbis from/to Float32Array. Well tested @ffmpeg/ffmpeg wrapper.",
"main": "dist/index.cjs",
"module": "dist/index.mjs",
Expand Down
9 changes: 5 additions & 4 deletions src/ffmpeg/FFmpegTransformClient.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import {Worker} from 'worker_threads'
import {
FFmpegClientOptions,
FFmpegInitEvent,
FFmpegInitOptions,
FFmpegOptions,
FFmpegTransformArgs,
IFFmpegTransformClient,
} from './contracts'
Expand All @@ -16,6 +16,7 @@ import {
} from '@flemist/worker-server'
import {CreateFFmpegOptions} from '@flemist/ffmpeg.wasm-st'
import path from 'path'
import {ffmpegTransformWorkerPath} from './paths.cjs'

function getWorkerFFmpegInit(
workerEventBus: WorkerFunctionClientEventBus<Omit<CreateFFmpegOptions, 'logger'>, void, FFmpegInitEvent>,
Expand All @@ -37,14 +38,14 @@ function getWorkerFFmpegTransform(

export class FFmpegTransformClient implements IFFmpegTransformClient {
private readonly _workerFilePath: string
options?: FFmpegOptions
options?: FFmpegClientOptions
private _worker: Worker = null
private _workerEventBus: IWorkerEventBus = null
private _ffmpegInit: WorkerFunctionClient<FFmpegInitOptions, void, FFmpegInitEvent>
private _ffmpegTransform: WorkerFunctionClient<FFmpegTransformArgs, Uint8Array, void>

constructor(workerFilePath: string, options?: FFmpegOptions) {
this._workerFilePath = workerFilePath
constructor(options?: FFmpegClientOptions) {
this._workerFilePath = ffmpegTransformWorkerPath
this.options = options || {}
if (this.options.preload) {
void this.init()
Expand Down
10 changes: 4 additions & 6 deletions src/ffmpeg/FFmpegTransformClientMT.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {FFmpegOptions, FFmpegTransformArgs, IFFmpegTransformClient} from './contracts'
import {FFmpegClientOptions, FFmpegTransformArgs, IFFmpegTransformClient} from './contracts'
import {FFmpegTransformClient} from './FFmpegTransformClient'
import {WorkerData} from '@flemist/worker-server'
import {
Expand All @@ -7,11 +7,9 @@ import {
} from '@flemist/async-utils'

export class FFmpegTransformClientMT implements IFFmpegTransformClient {
private readonly _workerFilePath: string
options?: FFmpegOptions
options?: FFmpegClientOptions
private readonly _clientPool: IObjectPool<IFFmpegTransformClient>
constructor(workerFilePath: string, options?: FFmpegOptions & { threads: number }) {
this._workerFilePath = workerFilePath
constructor(options?: FFmpegClientOptions & { threads: number }) {
this.options = options || {}
this._clientPool = new ObjectPool<IFFmpegTransformClient>({
maxSize : options.threads || 1,
Expand All @@ -29,7 +27,7 @@ export class FFmpegTransformClientMT implements IFFmpegTransformClient {
}

private _createClient(): FFmpegTransformClient {
return new FFmpegTransformClient(this._workerFilePath, this.options)
return new FFmpegTransformClient(this.options)
}

ffmpegTransform(...args: FFmpegTransformArgs): Promise<WorkerData<Uint8Array>> {
Expand Down
4 changes: 4 additions & 0 deletions src/ffmpeg/contracts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ export type FFmpegOptions = Omit<CreateFFmpegOptionsExt, 'logger'> & {
logger?: (event: WorkerData<FFmpegInitEvent>) => void
}

export type FFmpegClientOptions = FFmpegOptions & {

}

export type FFmpegInitOptions = Omit<FFmpegOptions, 'logger'> & { logger?: boolean }

export type FFmpegTransformArgs = [
Expand Down
8 changes: 8 additions & 0 deletions src/ffmpeg/paths.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
'use strict'

const path = require('path')
const ffmpegTransformWorkerPath = path.resolve(__dirname, '../../dist/ffmpeg/ffmpegTransformWorker.cjs')

module.exports = {
ffmpegTransformWorkerPath,
}
1 change: 0 additions & 1 deletion src/ffmpeg/test/ffmpegTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import {FFmpegTransformClientMT} from '../FFmpegTransformClientMT'

let logSize = 0
export const ffmpegTransformClient = new FFmpegTransformClientMT(
'./dist/ffmpeg/ffmpegTransformWorker.cjs',
{
threads : 3,
preload : true,
Expand Down

0 comments on commit b0d4de9

Please sign in to comment.