Commit 4e89a0c2 authored by Grant's avatar Grant
Browse files

fix issue with blank frames if section has no pixels

parent 0f37fa67
Loading
Loading
Loading
Loading
+0 −0

File moved.

+2 −1
Original line number Diff line number Diff line
@@ -2,3 +2,4 @@ data
frames
node_modules
out.mp4
.env
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ client.connect().then(async () => {

  const start = startDate.getTime();
  const end = endDate.getTime();
  const framesPerWorker = Math.floor((end - start) / WORKER_COUNT);
  const framesPerWorker = Math.floor((end - start) / (WORKER_COUNT - 1));
  const frameStartIncrement = Math.floor(framesPerWorker / MS_PER_FRAME);
  const framesToGenerate = Math.floor((end - start) / MS_PER_FRAME);
  console.log(framesToGenerate + " frames need to be generated");
+19 −6
Original line number Diff line number Diff line
@@ -33,6 +33,8 @@ type Pixel = {
};

let workerId: number;
let assigned = false;
let workerStart: Date; // date the worker should start at

const database = client.connect();

@@ -42,6 +44,14 @@ parentPort?.on("message", (msg: Message) => {
      workerId = msg.workerId;
      break;
    case "assignment": {
      if (assigned) {
        log("I RECEIVED ANOTHER ASSIGNMENT, THIS SHOULDN'T HAPPEN");
        return;
      }
      assigned = true;

      workerStart = new Date(msg.start);

      database.then(async () => {
        const start = Date.now();
        const framesToGenerate = (msg.end - msg.start) / msg.step;
@@ -98,15 +108,18 @@ const generateFrame = async (frameId: number, pixels: Pixel[]) => {
      prevFrame.height
    );
  } else {
    // check if pixels are needing to be drawn, if not we can skip
    let startTime: Date;

    if (pixels.length > 0) {
      startTime = new Date(pixels[0].date);
    } else {
      startTime = workerStart;
    }

    // no previous frame exists, guess we will have to load from the database
      const previousPixels = await query.existingPixelsBeforeTime(
        new Date(pixels[0].date)
      );
    const previousPixels = await query.existingPixelsBeforeTime(startTime);
    pixels = [...dbPixelsToLog(previousPixels.rows), ...pixels];
  }
  }

  const pixelScale = [
    OUTPUT_SIZE[0] / CANVAS_SIZE[0],