FS-7500: add SFF_USE_VIDEO_TIMESTAMP to tell video write frame if it needs to use a timer or not for timestamps
This commit is contained in:
parent
0cd5658caa
commit
22020c86cb
|
@ -1498,7 +1498,8 @@ typedef enum {
|
||||||
SFF_WAIT_KEY_FRAME = (1 << 12),
|
SFF_WAIT_KEY_FRAME = (1 << 12),
|
||||||
SFF_RAW_RTP_PARSE_FRAME = (1 << 13),
|
SFF_RAW_RTP_PARSE_FRAME = (1 << 13),
|
||||||
SFF_PICTURE_RESET = (1 << 14),
|
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;
|
} switch_frame_flag_enum_t;
|
||||||
typedef uint32_t switch_frame_flag_t;
|
typedef uint32_t switch_frame_flag_t;
|
||||||
|
|
||||||
|
|
|
@ -553,7 +553,9 @@ end:
|
||||||
switch_set_flag(frame, SFF_WAIT_KEY_FRAME);
|
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;
|
status = SWITCH_STATUS_MORE_DATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -553,7 +553,9 @@ end:
|
||||||
switch_buffer_zero(context->vpx_packet_buffer);
|
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;
|
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
|
#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)
|
SWITCH_DECLARE(switch_status_t) switch_core_media_proxy_remote_addr(switch_core_session_t *session, const char *sdp_str)
|
||||||
|
@ -9589,6 +9587,8 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(switch_cor
|
||||||
return raw_write_video(session, frame, flags, stream_id);
|
return raw_write_video(session, frame, flags, stream_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!switch_test_flag(frame, SFF_USE_VIDEO_TIMESTAMP)) {
|
||||||
|
|
||||||
if (!(timer = switch_core_media_get_timer(session, SWITCH_MEDIA_TYPE_VIDEO))) {
|
if (!(timer = switch_core_media_get_timer(session, SWITCH_MEDIA_TYPE_VIDEO))) {
|
||||||
|
|
||||||
if (!smh->video_timer.timer_interface) {
|
if (!smh->video_timer.timer_interface) {
|
||||||
|
@ -9599,7 +9599,9 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(switch_cor
|
||||||
}
|
}
|
||||||
|
|
||||||
frame->timestamp = timer->samplecount;
|
frame->timestamp = timer->samplecount;
|
||||||
frame->flags &= ~SFF_SAME_IMAGE;
|
}
|
||||||
|
|
||||||
|
switch_clear_flag(frame, SFF_SAME_IMAGE);
|
||||||
|
|
||||||
do {
|
do {
|
||||||
frame->datalen = SWITCH_DEFAULT_VIDEO_SIZE;
|
frame->datalen = SWITCH_DEFAULT_VIDEO_SIZE;
|
||||||
|
|
Loading…
Reference in New Issue