diff --git a/deps/media-playback/media-playback/media.c b/deps/media-playback/media-playback/media.c index 311d9bed4..a0d05b023 100644 --- a/deps/media-playback/media-playback/media.c +++ b/deps/media-playback/media-playback/media.c @@ -419,7 +419,7 @@ static void mp_media_next_video(mp_media_t *m, bool preload) frame->width = f->width; frame->height = f->height; - frame->flags = flip ? OBS_SOURCE_FRAME_FLIP : 0; + frame->flip = flip; frame->flags |= m->is_linear_alpha ? OBS_SOURCE_FRAME_LINEAR_ALPHA : 0; if (!m->is_local_file && !d->got_first_keyframe) { diff --git a/libobs/obs-source.c b/libobs/obs-source.c index b6b2ab9dd..50c7deed1 100644 --- a/libobs/obs-source.c +++ b/libobs/obs-source.c @@ -2019,7 +2019,7 @@ bool update_async_textures(struct obs_source *source, { enum convert_type type; - source->async_flip = (frame->flags & OBS_SOURCE_FRAME_FLIP) != 0; + source->async_flip = frame->flip; source->async_linear_alpha = (frame->flags & OBS_SOURCE_FRAME_LINEAR_ALPHA) != 0; @@ -2724,6 +2724,7 @@ static inline void copy_frame_data_plane(struct obs_source_frame *dst, static void copy_frame_data(struct obs_source_frame *dst, const struct obs_source_frame *src) { + dst->flip = src->flip; dst->flags = src->flags; dst->full_range = src->full_range; dst->timestamp = src->timestamp; @@ -2955,6 +2956,7 @@ void obs_source_output_video2(obs_source_t *source, new_frame.timestamp = frame->timestamp; new_frame.format = frame->format; new_frame.full_range = range == VIDEO_RANGE_FULL; + new_frame.flip = frame->flip; new_frame.flags = frame->flags; memcpy(&new_frame.color_matrix, &frame->color_matrix, @@ -3086,6 +3088,7 @@ void obs_source_preload_video2(obs_source_t *source, new_frame.timestamp = frame->timestamp; new_frame.format = frame->format; new_frame.full_range = range == VIDEO_RANGE_FULL; + new_frame.flip = frame->flip; new_frame.flags = frame->flags; memcpy(&new_frame.color_matrix, &frame->color_matrix, @@ -3190,6 +3193,7 @@ void obs_source_set_video_frame2(obs_source_t *source, new_frame.timestamp = frame->timestamp; new_frame.format = frame->format; new_frame.full_range = range == VIDEO_RANGE_FULL; + new_frame.flip = frame->flip; new_frame.flags = frame->flags; memcpy(&new_frame.color_matrix, &frame->color_matrix, diff --git a/libobs/obs.h b/libobs/obs.h index 28be4d93a..a2a7251d7 100644 --- a/libobs/obs.h +++ b/libobs/obs.h @@ -219,8 +219,7 @@ struct obs_source_cea_708 { uint64_t timestamp; }; -#define OBS_SOURCE_FRAME_FLIP (1 << 0) -#define OBS_SOURCE_FRAME_LINEAR_ALPHA (1 << 1) +#define OBS_SOURCE_FRAME_LINEAR_ALPHA (1 << 0) /** * Source asynchronous video output structure. Used with @@ -247,10 +246,8 @@ struct obs_source_frame { bool full_range; float color_range_min[3]; float color_range_max[3]; - union { - uint8_t flip : 1; /* deprecated */ - uint8_t flags; - }; + bool flip; + uint8_t flags; /* used internally by libobs */ volatile long refs; @@ -269,10 +266,8 @@ struct obs_source_frame2 { float color_matrix[16]; float color_range_min[3]; float color_range_max[3]; - union { - uint8_t flip : 1; /* deprecated */ - uint8_t flags; - }; + bool flip; + uint8_t flags; }; /** Access to the argc/argv used to start OBS. What you see is what you get. */