Commit ec7e8502 authored by NzSN's avatar NzSN

Update Channel

parent 01e1ab88
......@@ -66,7 +66,7 @@ export class Channel {
// size's unit is byte
// bufferType parameter is mainly for testability.
constructor(WW, size, bufferType = SharedArrayBuffer) {
constructor(size, bufferType = SharedArrayBuffer) {
assert(size >= 2, `Channel require its data area has at least 2 Bytes.`)
......@@ -86,8 +86,6 @@ export class Channel {
this.#view.setUint32(0, this.#metaSize);
this.#view.setUint32(4, this.#metaSize);
// FIXME: Need to transfer channel itself to worker.
}
#readPos() {
......
import { firstValueFrom } from 'rxjs';
import { WW } from '../src/WW.js';
......
import { WW } from '../src/WW.js';
import { H264EncWWGroup, Channel } from '../src/encGroup.js';
import { H264EncWWGroup, Channel, CpySchedule } from '../src/encGroup.js';
const areEqual = (first, second) =>
first.length === second.length &&
......@@ -11,8 +11,9 @@ function getRandomInt(max) {
}
describe("Channel Spec", () => {
it("Write datas bigger than channel", () => {
let channel = new Channel(WW, 10, ArrayBuffer);
let channel = new Channel(10, ArrayBuffer);
// A buffer with length 11
let buffer = new Uint8Array([1,2,3,4,5,6,7,8,9,0,1]);
......@@ -22,17 +23,17 @@ describe("Channel Spec", () => {
});
it("Read Empty channel", () => {
let channel = new Channel(WW, 10, ArrayBuffer);
let channel = new Channel(10, ArrayBuffer);
let buffer = channel.readData(5);
expect(buffer.byteLength == 0).toBe(true);
});
it("Write Until Full", () => {
let channel = new Channel(WW, 16, ArrayBuffer);
let channel = new Channel(16, ArrayBuffer);
});
it("Write datas", () => {
let channel = new Channel(WW, 10, ArrayBuffer);
let channel = new Channel(10, ArrayBuffer);
let buffer = new Uint8Array([1,2,3,4,5]);
let ret = channel.push(buffer);
......@@ -44,7 +45,7 @@ describe("Channel Spec", () => {
});
it("Write More Datas", () => {
let channel = new Channel(WW, 10, ArrayBuffer), ret = true,
let channel = new Channel(10, ArrayBuffer), ret = true,
data = undefined;
// Let read pointer move forward 5 bytes
......@@ -63,7 +64,7 @@ describe("Channel Spec", () => {
});
it("Write Until Full", () => {
let channel = new Channel(WW, 1024, ArrayBuffer);
let channel = new Channel(1024, ArrayBuffer);
let buffer = new Uint8Array([...Array(1023).keys()]);
let ret = channel.push(buffer);
......@@ -85,7 +86,7 @@ describe("Channel Spec", () => {
let ret = false;
let remainToWrite = Math.pow(2, 15), readData = null;
let channel = new Channel(WW, Math.pow(2, 10), ArrayBuffer);
let channel = new Channel(Math.pow(2, 10), ArrayBuffer);
while (remainToWrite > 0) {
let dataToWrite = new Uint8Array([...Array(getRandomInt(Math.pow(2,10)))]);
......@@ -104,7 +105,7 @@ describe("Channel Spec", () => {
})
it("2 Bytes Channel", () => {
let channel = new Channel(WW, 2, ArrayBuffer);
let channel = new Channel(2, ArrayBuffer);
let buffer = new Uint8Array([3]);
let ret = channel.push(buffer);
......@@ -119,11 +120,9 @@ describe("Channel Spec", () => {
expect(areEqual(buffer, data)).toBe(true);
expect(channel.isEmpty()).toBe(true);
});
});
describe("H264EncWWGroup Spec", () => {
it("Instantiation", async () => {
let wg = new H264EncWWGroup("h264enc", { numOfWW: 3 });
await wg.start();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment