SIGN IN SIGN UP
obsproject / obs-studio UNCLAIMED

OBS Studio - Free and open source software for live streaming and screen recording

0 0 119 C

libobs: Add encoder packet timing support

Introduce support for the `encoder_packet_time` struct
to capture timing information for each frame, starting
from the composition of each frame, through the encoder,
to the queueing of the frame data to each output_t.

Timestamps for each of the following events are based on
`os_gettime_ns()`:

CTS: Composition time stamp (in the encoder render threads)
FER: Frame encode request
FERC: Frame encoder request completely
PIR: Packet interleave request (`send_interleaved()`)

Frame times are forwarded through encoder callbacks in the
context that runs on the relevant encoder thread, ensuring
no race conditions with accessing per encoder array happen.
All per-output processing happens on data that is owned by
the output.

Co-authored-by: Ruwen Hahn <haruwenz@twitch.tv>
A
Alex Luccisano committed
6a53b8928f2c9942d8f7fdae1ceedfe7d133bd00
Parent: 26b7b45
Committed by Ryan Foster <ryan@obsproject.com> on 9/5/2024, 8:38:58 PM