• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

benrr101 / node-taglib-sharp / 48393127

29 Oct 2023 04:39AM UTC coverage: 92.535% (-1.4%) from 93.934%
48393127

push

appveyor

benrr101
Merge branch 'release/v5.2.0'

3244 of 4129 branches covered (0.0%)

Branch coverage included in aggregate %.

2177 of 2177 new or added lines in 61 files covered. (100.0%)

26728 of 28261 relevant lines covered (94.58%)

423.2 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

17.39
/src/mpeg4/boxes/isoChunkLargeOffsetBox.ts
1
import FullBox from "./fullBox";
1✔
2
import Mpeg4BoxHeader from "../mpeg4BoxHeader";
3
import {ByteVector} from "../../byteVector";
1✔
4
import {File} from "../../file";
5
import {Guards} from "../../utils";
1✔
6

7
/**
8
 * This class extends {@link FullBox} to provide an implementation of a ISO/IEC 14496-12 ChunkLargeOffsetBox.
9
 * @TODO: Is this pretty much the same as the non-large offset box?
10
 */
11
export default class IsoChunkLargeOffsetBox extends FullBox {
1✔
12
    private _offsetTable: number[];
13

14
    /**
15
     * Private constructor to force construction via static functions.
16
     */
17
    private constructor() {
18
        super();
×
19
    }
20

21
    /**
22
     * Constructs and initializes a new instance of {@link IsoChunkLargeOffsetBox} with a provided header
23
     * and handler by reading the contents from a specified file.
24
     * @param header A {@link Mpeg4BoxHeader} object containing the header to use for the new instance.
25
     * @param file A {@link File} object to read the contents of the box from.
26
     * @param handlerType Type of the handler box object containing the handler that applies to the
27
     *     new instance, or undefined if no handler applies.
28
     */
29
    public static fromFile(header: Mpeg4BoxHeader, file: File, handlerType: ByteVector): IsoChunkLargeOffsetBox {
30
        const instance = new IsoChunkLargeOffsetBox();
×
31
        instance.initializeFromHeaderFileAndHandler(header, file, handlerType);
×
32

33
        const boxData = file.readBlock(instance.dataSize);
×
34
        instance._offsetTable = new Array(boxData.subarray(0, 4).toUint());
×
35

36
        for (let i = 0; i < instance._offsetTable.length; i++) {
×
37
            instance._offsetTable[i] = Number(boxData.subarray(4 + i * 8, 8).toUlong());
×
38
        }
39

40
        return instance;
×
41
    }
42

43
    /**
44
     * Gets and sets the data contained in the current instance.
45
     */
46
    public get data(): ByteVector {
47
        const output = ByteVector.fromUint(this._offsetTable.length);
×
48
        for (let i = 0; i < this._offsetTable.length; i++) {
×
49
            output.addByteVector(ByteVector.fromUlong(this._offsetTable[i]));
×
50
        }
51

52
        return output;
×
53
    }
54

55
    /**
56
     * Updates the existing box position offsets.
57
     * @param sizeDifference A value containing the size change that occurred in the file.
58
     * @param after A value containing the position in the file after which offsets will be invalidated. If an
59
     *     offset is before this point, it won't be updated.
60
     * @internal
61
     */
62
    public updatePosition(sizeDifference: number, after: number): void {
63
        Guards.safeUint(sizeDifference, "sizeDifference");
×
64
        Guards.safeUint(after, "after");
×
65

66
        for (let i = 0; i < this._offsetTable.length; i++) {
×
67
            if (this._offsetTable[i] >= after) {
×
68
                this._offsetTable[i] = this._offsetTable[i] + sizeDifference;
×
69
            }
70
        }
71
    }
72
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc