提交 22020c86 authored 作者: Anthony Minessale's avatar Anthony Minessale 提交者: Michael Jerris

FS-7500: add SFF_USE_VIDEO_TIMESTAMP to tell video write frame if it needs to…

FS-7500: add SFF_USE_VIDEO_TIMESTAMP to tell video write frame if it needs to use a timer or not for timestamps
上级 0cd5658c
......@@ -1498,7 +1498,8 @@ typedef enum {
SFF_WAIT_KEY_FRAME = (1 << 12),
SFF_RAW_RTP_PARSE_FRAME = (1 << 13),
SFF_PICTURE_RESET = (1 << 14),
SFF_SAME_IMAGE = (1 << 15)
SFF_SAME_IMAGE = (1 << 15),
SFF_USE_VIDEO_TIMESTAMP = (1 << 16)
} switch_frame_flag_enum_t;
typedef uint32_t switch_frame_flag_t;
......
......@@ -553,7 +553,9 @@ end:
switch_set_flag(frame, SFF_WAIT_KEY_FRAME);
}
if (!frame->img) {
if (frame->img) {
switch_set_flag(frame, SFF_USE_VIDEO_TIMESTAMP);
} else {
status = SWITCH_STATUS_MORE_DATA;
}
......
......@@ -553,7 +553,9 @@ end:
switch_buffer_zero(context->vpx_packet_buffer);
}
if (!frame->img) {
if (frame->img) {
switch_set_flag(frame, SFF_USE_VIDEO_TIMESTAMP);
} else {
status = SWITCH_STATUS_MORE_DATA;
}
......
......@@ -4597,8 +4597,6 @@ SWITCH_DECLARE(void) switch_core_media_end_video_function(switch_core_session_t
}
}
>>>>>>> another refactoring pass, temp code still in place, WORK IN PROGRESS
//?
#define RA_PTR_LEN 512
SWITCH_DECLARE(switch_status_t) switch_core_media_proxy_remote_addr(switch_core_session_t *session, const char *sdp_str)
......@@ -9589,17 +9587,21 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(switch_cor
return raw_write_video(session, frame, flags, stream_id);
}
if (!(timer = switch_core_media_get_timer(session, SWITCH_MEDIA_TYPE_VIDEO))) {
if (!switch_test_flag(frame, SFF_USE_VIDEO_TIMESTAMP)) {
if (!smh->video_timer.timer_interface) {
switch_core_timer_init(&smh->video_timer, "soft", 1, 90, switch_core_session_get_pool(session));
if (!(timer = switch_core_media_get_timer(session, SWITCH_MEDIA_TYPE_VIDEO))) {
if (!smh->video_timer.timer_interface) {
switch_core_timer_init(&smh->video_timer, "soft", 1, 90, switch_core_session_get_pool(session));
}
timer = &smh->video_timer;
}
timer = &smh->video_timer;
frame->timestamp = timer->samplecount;
}
frame->timestamp = timer->samplecount;
frame->flags &= ~SFF_SAME_IMAGE;
switch_clear_flag(frame, SFF_SAME_IMAGE);
do {
frame->datalen = SWITCH_DEFAULT_VIDEO_SIZE;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论