Skip to content

@mega-yfue/eufy-sdk / LiveVideoConfig

Interface: LiveVideoConfig

The coded video configuration a live source is producing — the codec, and the picture size a decoder will produce from the parameter sets in force.

The geometry is the CODED one, read out of the sequence parameter set and cropped by the offsets it declares, not the geometry a frame header reports. Those agreed on all but 28 of some 6000 measured frames, but only one of them is the size a decoder produces: 1080 is not a multiple of the 16-sample macroblock, so a 1080p H.264 stream codes 1088 rows and crops 8 away, and the frame header is a report about that rather than the definition of it.

Where the parameter sets state no readable geometry — before a stream's first keyframe has carried any, or from a set that cannot be parsed — the frame header's report is carried instead, so a configuration is always present. The two are not distinguished in the payload: a configuration is acted on by comparing it with the one already in use, and that comparison answers the same whichever half stated it.

The header's report is carried as it reads, so where the header declares no geometry either the width and height are 0. A caller sizing a decoder from these treats a zero as "not yet stated" and waits for the next announcement, which the first keyframe's parameter sets produce.

A consequence worth knowing: the first announcements of a session can move from a header-derived configuration to a parameter-set-derived one without the camera having reconfigured, because the sets arrive with the first keyframe and the frames before it have only their headers.

Properties

codec

ts
codec: VideoCodec;

height

ts
height: number;

width

ts
width: number;

Independent and unofficial. Not affiliated with, endorsed by, or sponsored by Anker Innovations, Anker eufy, or eufy. "Anker eufy", "eufy" and "Anker" are trademarks of their respective owners. Use responsibly — rapid or failed logins can trigger captcha or temporary cooldowns.