提交 db81c59b 编写于 作者: J jp9000

Revert "Add flag to obs_source_frame for unbuffered video"

This reverts commit c3f4b0f0.

The obs_source_frame should not need to take flags to do this.  This
shouldn't be a setting associated with the frame, but rather a setting
associated with the source itself.  This was the wrong approach to
solving this particular problem.
上级 ae0f6b5e
......@@ -1606,17 +1606,6 @@ static bool ready_async_frame(obs_source_t *source, uint64_t sys_time)
uint64_t frame_time = next_frame->timestamp;
uint64_t frame_offset = 0;
while ((next_frame->flags & OBS_VIDEO_UNBUFFERED) != 0 &&
source->video_frames.num > 1) {
da_erase(source->video_frames, 0);
obs_source_frame_destroy(next_frame);
next_frame = source->video_frames.array[0];
}
if ((next_frame->flags & OBS_VIDEO_UNBUFFERED) != 0)
return true;
#if DEBUG_ASYNC_FRAMES
blog(LOG_DEBUG, "source->last_frame_ts: %llu, frame_time: %llu, "
"sys_offset: %llu, frame_offset: %llu, "
......
......@@ -174,9 +174,6 @@ struct obs_source_audio {
uint64_t timestamp;
};
/** Specifies that the video frame should be played as soon as possible */
#define OBS_VIDEO_UNBUFFERED (1<<0)
/**
* Source asynchronous video output structure. Used with
* obs_source_output_video to output asynchronous video. Video is buffered as
......@@ -192,7 +189,6 @@ struct obs_source_frame {
uint32_t width;
uint32_t height;
uint64_t timestamp;
uint32_t flags;
enum video_format format;
float color_matrix[16];
......
......@@ -178,7 +178,6 @@ static void *v4l2_thread(void *vptr)
}
out.timestamp = timeval2ns(buf.timestamp);
out.flags = 0;
start = (uint8_t *) data->buffers.info[buf.index].start;
for (uint_fast32_t i = 0; i < MAX_AV_PLANES; ++i)
out.data[i] = start + plane_offsets[i];
......
......@@ -232,7 +232,6 @@ static inline bool update_frame(struct av_capture *capture,
CMTime target_pts_nano = CMTimeConvertScale(target_pts, NANO_TIMESCALE,
kCMTimeRoundingMethod_Default);
frame->timestamp = target_pts_nano.value;
frame->flags = 0;
if (!update_frame(capture, frame, sampleBuffer))
return;
......
......@@ -75,7 +75,7 @@ static inline void capture_frame(struct window_capture *wc)
.height = height,
.data[0] = data,
.linesize[0] = width * 4,
.timestamp = ts
.timestamp = ts,
};
obs_source_output_video(wc->source, &frame);
......
......@@ -377,7 +377,6 @@ void DShowInput::OnEncodedVideoData(enum AVCodecID id,
if (got_output) {
frame.timestamp = (uint64_t)ts * 100;
frame.flags = 0;
#if LOG_ENCODED_VIDEO_TS
blog(LOG_DEBUG, "video ts: %llu", frame.timestamp);
#endif
......@@ -398,7 +397,6 @@ void DShowInput::OnVideoData(const VideoConfig &config,
const int cy = config.cy;
frame.timestamp = (uint64_t)startTime * 100;
frame.flags = 0;
frame.width = config.cx;
frame.height = config.cy;
frame.format = ConvertVideoFormat(config.format);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册