summaryrefslogtreecommitdiff
path: root/gtk2_ardour/video_image_frame.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-03-19 00:48:37 +0100
committerRobin Gareus <robin@gareus.org>2013-03-19 00:48:37 +0100
commite1f3dcee2a7a8233b6f3306763a7e7bce787bb4c (patch)
tree7a7d6774ebd799a4557081fbf711f6fad9f19d16 /gtk2_ardour/video_image_frame.cc
parent88bf5eceea0e0aeb4eb0e99dace8fdffeea64184 (diff)
vtl: re-request frame on 503/try-again
Diffstat (limited to 'gtk2_ardour/video_image_frame.cc')
-rw-r--r--gtk2_ardour/video_image_frame.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/gtk2_ardour/video_image_frame.cc b/gtk2_ardour/video_image_frame.cc
index 420f2a2e12..30fe487f51 100644
--- a/gtk2_ardour/video_image_frame.cc
+++ b/gtk2_ardour/video_image_frame.cc
@@ -194,7 +194,14 @@ http_get_thread (void *arg) {
(long int) vif->get_req_frame(), vif->get_width(), vif->get_height(),
vif->get_video_filename().c_str()
);
- char *res=curl_http_get(url, NULL);
+ int status = 0;
+ int timeout = 400; // * 5ms -> 2sec
+ char *res = NULL;
+ do {
+ res=curl_http_get(url, &status);
+ if (status == 503) usleep(5000); // try-again
+ } while (status == 503 && --timeout > 0);
+
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
vif->http_download_done(res);
pthread_exit(0);