提交 1884fea3 编写于 作者: J jp9000

win-dshow: Use obs_avc_keyframe instead of own

上级 3412a0e1
......@@ -154,34 +154,6 @@ int ffmpeg_decode_audio(struct ffmpeg_decode *decode,
return len;
}
#define NAL_SLICE 1
#define NAL_SLICE_IDR 5
static bool avc_keyframe(const uint8_t *data, size_t size)
{
const uint8_t *nal_start, *nal_end;
const uint8_t *end = data + size;
int type;
nal_start = obs_avc_find_startcode(data, end);
while (true) {
while (nal_start < end && !*(nal_start++));
if (nal_start == end)
break;
type = nal_start[0] & 0x1F;
if (type == NAL_SLICE_IDR || type == NAL_SLICE)
return (type == NAL_SLICE_IDR);
nal_end = obs_avc_find_startcode(nal_start, end);
nal_start = nal_end;
}
return false;
}
int ffmpeg_decode_video(struct ffmpeg_decode *decode,
uint8_t *data, size_t size, long long *ts,
struct obs_source_frame *frame,
......@@ -201,7 +173,8 @@ int ffmpeg_decode_video(struct ffmpeg_decode *decode,
packet.size = (int)size;
packet.pts = *ts;
if (decode->codec->id == AV_CODEC_ID_H264 && avc_keyframe(data, size))
if (decode->codec->id == AV_CODEC_ID_H264 &&
obs_avc_keyframe(data, size))
packet.flags |= AV_PKT_FLAG_KEY;
if (!decode->frame) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册