diff options
author | Robin Gareus <robin@gareus.org> | 2013-03-19 00:48:37 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2013-03-19 00:48:37 +0100 |
commit | e1f3dcee2a7a8233b6f3306763a7e7bce787bb4c (patch) | |
tree | 7a7d6774ebd799a4557081fbf711f6fad9f19d16 /gtk2_ardour/video_image_frame.cc | |
parent | 88bf5eceea0e0aeb4eb0e99dace8fdffeea64184 (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.cc | 9 |
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); |