pause/resume gstreamer stream when video stream stops/starts

This commit is contained in:
thiccaxe
2023-09-04 15:12:55 -07:00
parent dc52c04ed0
commit 660a2dc378
5 changed files with 41 additions and 1 deletions

View File

@@ -53,6 +53,8 @@ struct raop_callbacks_s {
void (*audio_process)(void *cls, raop_ntp_t *ntp, audio_decode_struct *data);
void (*video_process)(void *cls, raop_ntp_t *ntp, h264_decode_struct *data);
void (*video_pause)(void *cls);
void (*video_resume)(void *cls);
/* Optional but recommended callback functions */
void (*conn_init)(void *cls);

View File

@@ -510,6 +510,7 @@ raop_rtp_mirror_thread(void *arg)
h264_data.nal_count += 2;
prepend_sps_pps = false;
}
raop_rtp_mirror->callbacks.video_resume(raop_rtp_mirror->callbacks.cls);
raop_rtp_mirror->callbacks.video_process(raop_rtp_mirror->callbacks.cls, raop_rtp_mirror->ntp, &h264_data);
free(payload_out);
break;
@@ -600,7 +601,7 @@ raop_rtp_mirror_thread(void *arg)
// h264.pps_size = pps_size;
// h264.picture_parameter_set = malloc(h264.pps_size);
// memcpy(h264.picture_parameter_set, picture_parameter_set, pps_size);
raop_rtp_mirror->callbacks.video_pause(raop_rtp_mirror->callbacks.cls);
break;
case 0x02:
logger_log(raop_rtp_mirror->logger, LOGGER_DEBUG, "\nReceived old-protocol once-per-second packet from client:"