summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rtp.c21
-rw-r--r--shairport.c6
2 files changed, 20 insertions, 7 deletions
diff --git a/rtp.c b/rtp.c
index 2164882..7496cc7 100644
--- a/rtp.c
+++ b/rtp.c
@@ -820,7 +820,12 @@ void *rtp_timing_receiver(void *arg) {
mbl = mbl + xid * xid;
}
conn->local_to_remote_time_gradient_sample_count = sample_count;
- conn->local_to_remote_time_gradient = (1.0 * mtl) / mbl;
+ if (mbl)
+ conn->local_to_remote_time_gradient = (1.0 * mtl) / mbl;
+ else {
+ conn->local_to_remote_time_gradient = 1.0;
+ debug(1,"rtp_timing_receiver: mbl is 0");
+ }
} else {
conn->local_to_remote_time_gradient = 1.0;
}
@@ -1096,8 +1101,12 @@ int sanitised_source_rate_information(uint32_t *frames, uint64_t *time, rtsp_con
if ((local_frames == 0) || (local_time == 0) || (use_nominal_rate)) {
result = 1;
} else {
- double calculated_frame_rate = ((1.0 * local_frames) / local_time) * one_fp;
- if (((calculated_frame_rate / conn->input_rate) > 1.002) ||
+ double calculated_frame_rate = conn->input_rate;
+ if (local_time)
+ calculated_frame_rate = ((1.0 * local_frames) / local_time) * one_fp;
+ else
+ debug(1,"sanitised_source_rate_information: local_time is zero");
+ if ((local_time == 0) || ((calculated_frame_rate / conn->input_rate) > 1.002) ||
((calculated_frame_rate / conn->input_rate) < 0.998)) {
debug(3, "input frame rate out of bounds at %.2f fps.", calculated_frame_rate);
result = 1;
@@ -1175,7 +1184,11 @@ int local_time_to_frame(uint64_t time, uint32_t *frame, rtsp_conn_info *conn) {
// now, convert the remote time interval into frames using the frame rate we have observed or
// which has been nominated
- uint32_t frame_interval = (time_interval * frame_difference) / time_difference;
+ uint32_t frame_interval = 0;
+ if (time_difference)
+ frame_interval = (time_interval * frame_difference) / time_difference;
+ else
+ debug(1,"local_time_to_frame: time_difference is zero");
if (reference_time_was_earlier) {
// debug(1,"Frame interval is %" PRId64 " frames.",frame_interval);
*frame = (conn->reference_timestamp + frame_interval);
diff --git a/shairport.c b/shairport.c
index bb790c6..9e9400b 100644
--- a/shairport.c
+++ b/shairport.c
@@ -1764,9 +1764,9 @@ int main(int argc, char **argv) {
debug(1, "mqtt is %sabled.", config.mqtt_enabled ? "en" : "dis");
debug(1, "mqtt hostname is %s, port is %d.", config.mqtt_hostname, config.mqtt_port);
debug(1, "mqtt topic is %s.", config.mqtt_topic);
- debug(1, "mqtt will%s publish raw metadata.", config.mqtt_publish_raw ? "" : " NOT");
- debug(1, "mqtt will%s publish parsed metadata.", config.mqtt_publish_parsed ? "" : " NOT");
- debug(1, "mqtt will%s publish cover Art.", config.mqtt_publish_cover ? "" : " NOT");
+ debug(1, "mqtt will%s publish raw metadata.", config.mqtt_publish_raw ? "" : " not");
+ debug(1, "mqtt will%s publish parsed metadata.", config.mqtt_publish_parsed ? "" : " not");
+ debug(1, "mqtt will%s publish cover Art.", config.mqtt_publish_cover ? "" : " not");
debug(1, "mqtt remote control is %sabled.", config.mqtt_enable_remote ? "en" : "dis");
#endif