2 Commits
Author SHA1 Message Date
David Ventura c80b6b0a67 Add content-length & newline before boundary 2024-10-02 22:43:53 +02:00
Tin LaiandTin Lai 9f6f0ca8fa fix crashes when pkt_id 1 is dropped (#33)
Signed-off-by: Tin Lai <tin@tinyiu.com>
Co-authored-by: Tin Lai <tin@tinyiu.com>
2024-07-04 11:27:06 +02:00
2 changed files with 2 additions and 3 deletions
+1 -1
View File
@@ -269,7 +269,7 @@ const deal_with_data = (session: Session, dv: DataView) => {
return;
}
if (session.curImage.length == 1) return; // header does not have markers
if (session.curImage.length <= 1) return; // header does not have markers
let lastFrameSlice = session.curImage[session.curImage.length - 1];
const lastResetMarker = findAllResetMarkers(lastFrameSlice).pop();
+1 -2
View File
@@ -155,8 +155,6 @@ export const serveHttp = (port: number) => {
sessions[dev.devId] = s;
config.cameras[dev.devId] = { rotate: 0, mirror: false, audio: true, ...(config.cameras[dev.devId] || {}) };
const header = Buffer.from(`--${BOUNDARY}\r\nContent-Type: image/jpeg\r\n\r\n`);
s.eventEmitter.on("frame", () => {
// Add an EXIF header to indicate if the image should be rotated or mirrored
let orientation = config.cameras[dev.devId].rotate;
@@ -164,6 +162,7 @@ export const serveHttp = (port: number) => {
const exifSegment = orientations[orientation];
const jpegHeader = addExifToJpeg(s.curImage[0], exifSegment);
const assembled = Buffer.concat([jpegHeader, ...s.curImage.slice(1)]);
const header = Buffer.from(`\r\n--${BOUNDARY}\r\nContent-Length: ${assembled.length}\r\nContent-Type: image/jpeg\r\n\r\n`);
responses[dev.devId].forEach((res) => {
res.write(header);
res.write(assembled);