mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-08-30 17:58:37 +08:00
libobs: Update video encoder group struct member names
Updates the struct member names of the video encoder group to be more like what is commonly seen in OBS elsewhere.
This commit is contained in:
+20
-19
@@ -325,11 +325,10 @@ static void add_connection(struct obs_encoder *encoder)
|
||||
}
|
||||
|
||||
if (encoder->encoder_group) {
|
||||
bool ready = false;
|
||||
pthread_mutex_lock(&encoder->encoder_group->mutex);
|
||||
encoder->encoder_group->encoders_started += 1;
|
||||
ready = encoder->encoder_group->encoders_started ==
|
||||
encoder->encoder_group->encoders_added;
|
||||
encoder->encoder_group->num_encoders_started += 1;
|
||||
bool ready = encoder->encoder_group->num_encoders_started ==
|
||||
encoder->encoder_group->num_encoders;
|
||||
pthread_mutex_unlock(&encoder->encoder_group->mutex);
|
||||
if (ready)
|
||||
add_ready_encoder_group(encoder);
|
||||
@@ -353,8 +352,8 @@ static void remove_connection(struct obs_encoder *encoder, bool shutdown)
|
||||
|
||||
if (encoder->encoder_group) {
|
||||
pthread_mutex_lock(&encoder->encoder_group->mutex);
|
||||
encoder->encoder_group->encoders_started -= 1;
|
||||
if (encoder->encoder_group->encoders_started == 0)
|
||||
encoder->encoder_group->num_encoders_started -= 1;
|
||||
if (encoder->encoder_group->num_encoders_started == 0)
|
||||
encoder->encoder_group->start_timestamp = 0;
|
||||
|
||||
pthread_mutex_unlock(&encoder->encoder_group->mutex);
|
||||
@@ -396,14 +395,15 @@ static void obs_encoder_actually_destroy(obs_encoder_t *encoder)
|
||||
encoder->context.name);
|
||||
|
||||
if (encoder->encoder_group) {
|
||||
struct encoder_group *group = encoder->encoder_group;
|
||||
struct obs_encoder_group *group =
|
||||
encoder->encoder_group;
|
||||
bool release = false;
|
||||
|
||||
encoder->encoder_group = NULL;
|
||||
|
||||
pthread_mutex_lock(&group->mutex);
|
||||
group->encoders_added -= 1;
|
||||
release = group->encoders_added == 0;
|
||||
group->num_encoders -= 1;
|
||||
release = group->num_encoders == 0;
|
||||
pthread_mutex_unlock(&group->mutex);
|
||||
|
||||
if (release) {
|
||||
@@ -1461,7 +1461,7 @@ static void receive_video(void *param, struct video_data *frame)
|
||||
struct encoder_frame enc_frame;
|
||||
|
||||
if (encoder->encoder_group && !encoder->start_ts) {
|
||||
struct encoder_group *group = encoder->encoder_group;
|
||||
struct obs_encoder_group *group = encoder->encoder_group;
|
||||
bool ready = false;
|
||||
pthread_mutex_lock(&group->mutex);
|
||||
ready = group->start_timestamp == frame->timestamp;
|
||||
@@ -2093,7 +2093,8 @@ bool obs_encoder_group_keyframe_aligned_encoders(
|
||||
|
||||
bool unlock = false;
|
||||
if (!encoder->encoder_group) {
|
||||
encoder->encoder_group = bzalloc(sizeof(struct encoder_group));
|
||||
encoder->encoder_group =
|
||||
bzalloc(sizeof(struct obs_encoder_group));
|
||||
if (pthread_mutex_init(&encoder->encoder_group->mutex, NULL) <
|
||||
0) {
|
||||
bfree(encoder->encoder_group);
|
||||
@@ -2101,11 +2102,11 @@ bool obs_encoder_group_keyframe_aligned_encoders(
|
||||
return false;
|
||||
}
|
||||
|
||||
encoder->encoder_group->encoders_added = 1;
|
||||
encoder->encoder_group->num_encoders = 1;
|
||||
} else {
|
||||
pthread_mutex_lock(&encoder->encoder_group->mutex);
|
||||
unlock = true;
|
||||
if (encoder->encoder_group->encoders_started != 0) {
|
||||
if (encoder->encoder_group->num_encoders_started != 0) {
|
||||
blog(LOG_ERROR,
|
||||
"obs_encoder_group_keyframe_aligned_encoders: "
|
||||
"Can't add encoder '%s' to active group "
|
||||
@@ -2117,7 +2118,7 @@ bool obs_encoder_group_keyframe_aligned_encoders(
|
||||
}
|
||||
}
|
||||
|
||||
encoder->encoder_group->encoders_added += 1;
|
||||
encoder->encoder_group->num_encoders += 1;
|
||||
encoder_to_be_grouped->encoder_group = encoder->encoder_group;
|
||||
|
||||
if (unlock)
|
||||
@@ -2156,12 +2157,12 @@ bool obs_encoder_group_remove_keyframe_aligned_encoder(
|
||||
return false;
|
||||
}
|
||||
|
||||
struct encoder_group *current_group = encoder->encoder_group;
|
||||
struct encoder_group *free_group = NULL;
|
||||
struct obs_encoder_group *current_group = encoder->encoder_group;
|
||||
struct obs_encoder_group *free_group = NULL;
|
||||
|
||||
pthread_mutex_lock(¤t_group->mutex);
|
||||
|
||||
if (current_group->encoders_started != 0) {
|
||||
if (current_group->num_encoders_started != 0) {
|
||||
blog(LOG_ERROR,
|
||||
"obs_encoder_group_remove_keyframe_aligned_encoder: "
|
||||
"could not ungroup encoder '%s' from '%s' while "
|
||||
@@ -2172,9 +2173,9 @@ bool obs_encoder_group_remove_keyframe_aligned_encoder(
|
||||
return false;
|
||||
}
|
||||
|
||||
current_group->encoders_added -= 1;
|
||||
current_group->num_encoders -= 1;
|
||||
encoder_to_be_ungrouped->encoder_group = NULL;
|
||||
if (current_group->encoders_added == 1) {
|
||||
if (current_group->num_encoders == 1) {
|
||||
free_group = current_group;
|
||||
encoder->encoder_group = NULL;
|
||||
}
|
||||
|
||||
@@ -1242,10 +1242,10 @@ struct encoder_callback {
|
||||
void *param;
|
||||
};
|
||||
|
||||
struct encoder_group {
|
||||
struct obs_encoder_group {
|
||||
pthread_mutex_t mutex;
|
||||
uint32_t encoders_added;
|
||||
uint32_t encoders_started;
|
||||
uint32_t num_encoders;
|
||||
uint32_t num_encoders_started;
|
||||
uint64_t start_timestamp;
|
||||
};
|
||||
|
||||
@@ -1314,7 +1314,7 @@ struct obs_encoder {
|
||||
uint64_t start_ts;
|
||||
|
||||
/* track encoders that are part of a gop-aligned multi track group */
|
||||
struct encoder_group *encoder_group;
|
||||
struct obs_encoder_group *encoder_group;
|
||||
|
||||
pthread_mutex_t outputs_mutex;
|
||||
DARRAY(obs_output_t *) outputs;
|
||||
|
||||
+1
-1
@@ -2226,7 +2226,7 @@ check_encoder_group_keyframe_alignment(obs_output_t *output,
|
||||
|
||||
pthread_mutex_lock(&packet->encoder->encoder_group->mutex);
|
||||
insert_data.required_tracks =
|
||||
packet->encoder->encoder_group->encoders_started;
|
||||
packet->encoder->encoder_group->num_encoders_started;
|
||||
pthread_mutex_unlock(&packet->encoder->encoder_group->mutex);
|
||||
|
||||
da_insert(output->keyframe_group_tracking, idx, &insert_data);
|
||||
|
||||
@@ -92,7 +92,7 @@ static void *gpu_encode_thread(void *data)
|
||||
pkt.encoder = encoder;
|
||||
|
||||
if (encoder->encoder_group && !encoder->start_ts) {
|
||||
struct encoder_group *group =
|
||||
struct obs_encoder_group *group =
|
||||
encoder->encoder_group;
|
||||
bool ready = false;
|
||||
pthread_mutex_lock(&group->mutex);
|
||||
|
||||
+4
-2
@@ -932,9 +932,11 @@ static inline void video_sleep(struct obs_core_video *video, uint64_t *p_time,
|
||||
continue;
|
||||
|
||||
if (encoder->encoder_group) {
|
||||
struct encoder_group *group = encoder->encoder_group;
|
||||
struct obs_encoder_group *group =
|
||||
encoder->encoder_group;
|
||||
pthread_mutex_lock(&group->mutex);
|
||||
if (group->encoders_added == group->encoders_started &&
|
||||
if (group->num_encoders ==
|
||||
group->num_encoders_started &&
|
||||
!group->start_timestamp) {
|
||||
group->start_timestamp = *p_time;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user