Skip to content

Commit

Permalink
feat(v0.2): add support for floating point fps in javascript
Browse files Browse the repository at this point in the history
  • Loading branch information
AmitMY committed Aug 18, 2024
1 parent 814a713 commit 43a303e
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 35 deletions.
22 changes: 11 additions & 11 deletions src/js/pose_format/package-lock.json

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

4 changes: 2 additions & 2 deletions src/js/pose_format/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "pose-format",
"version": "1.4.1",
"version": "1.5.1",
"description": "Library for handling .pose files",
"scripts": {
"build": "tsc",
Expand All @@ -19,6 +19,6 @@
},
"devDependencies": {
"@types/node": "20.8.6",
"typescript": "5.2.2"
"typescript": "5.5.4"
}
}
26 changes: 17 additions & 9 deletions src/js/pose_format/src/parser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -97,15 +97,22 @@ function parseBodyV0_0(header: PoseHeaderModel, buffer: Buffer): PoseBodyModel {
return getBodyParserV0_0(header).parse(buffer) as unknown as PoseBodyModel
}

function parseBodyV0_1(header: PoseHeaderModel, buffer: Buffer): PoseBodyModel {
function parseBodyV0_1(header: PoseHeaderModel, buffer: Buffer, version: number): PoseBodyModel {
const _points = header.components.map(c => c.points.length).reduce((a, b) => a + b, 0);
const _dims = Math.max(...header.components.map(c => c.format.length)) - 1;

const infoParser = newParser()
.seek(header.headerLength)
.uint16("fps")
.uint16("_frames")
.uint16("_people");
let infoParser = newParser().seek(header.headerLength);
let infoSize = 0;
if (version === 0.1) {
infoParser = infoParser.uint16("fps").uint16("_frames");
infoSize = 6;
} else if (version === 0.2) {
infoParser = infoParser.floatle("fps").uint32("_frames");
infoSize = 10;
} else {
throw new Error(`Invalid version ${version}`);
}
infoParser = infoParser.uint16("_people");

const info = infoParser.parse(buffer);

Expand All @@ -128,8 +135,8 @@ function parseBodyV0_1(header: PoseHeaderModel, buffer: Buffer): PoseBodyModel {
return vars;
};

const data = parseFloat32Array(info._frames * info._people * _points * _dims, header.headerLength + 6)
const confidence = parseFloat32Array(info._frames * info._people * _points, data.offset)
const data = parseFloat32Array(info._frames * info._people * _points * _dims, header.headerLength + infoSize);
const confidence = parseFloat32Array(info._frames * info._people * _points, data.offset);

function frameRepresentation(i: number) {
const people: any[] = new Array(info._people);
Expand Down Expand Up @@ -187,7 +194,8 @@ export function parsePose(buffer: Buffer): PoseModel {
break;

case 0.1:
body = parseBodyV0_1(header, buffer);
case 0.2:
body = parseBodyV0_1(header, buffer, version);
break;

default:
Expand Down
22 changes: 11 additions & 11 deletions src/js/pose_viewer/package-lock.json

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

4 changes: 2 additions & 2 deletions src/js/pose_viewer/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "pose-viewer",
"version": "0.9.0",
"version": "0.10.0",
"description": "Stencil Component Starter",
"main": "dist/index.cjs.js",
"module": "dist/index.js",
Expand All @@ -23,7 +23,7 @@
},
"dependencies": {
"@stencil/core": "4.5.0",
"pose-format": "1.4.0"
"pose-format": "1.5.1"
},
"license": "MIT",
"devDependencies": {
Expand Down

0 comments on commit 43a303e

Please sign in to comment.