X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fvideo_image_frame.cc;h=2473da0b4e1f603ada21e2bd96a4941295b4affa;hb=bf874562ef14368a5648215b6dc71936f1c3b33e;hp=ebcb9e6f96c8b9aabc52806b18b20075b404cdfe;hpb=2e27e21d3a09889311e18a8efe11abcaa6d9c8b3;p=ardour.git diff --git a/gtk2_ardour/video_image_frame.cc b/gtk2_ardour/video_image_frame.cc index ebcb9e6f96..2473da0b4e 100644 --- a/gtk2_ardour/video_image_frame.cc +++ b/gtk2_ardour/video_image_frame.cc @@ -20,17 +20,17 @@ #include #include "ardour/tempo.h" -#include "ardour_ui.h" -#include "video_image_frame.h" -#include "public_editor.h" -#include "utils.h" -#include "canvas/group.h" -#include "utils_videotl.h" - #include #include -#include "i18n.h" +#include "canvas/container.h" + +#include "ardour_http.h" +#include "public_editor.h" +#include "utils_videotl.h" +#include "video_image_frame.h" + +#include "pbd/i18n.h" using namespace std; using namespace ARDOUR; @@ -43,7 +43,7 @@ static void freedata_cb (uint8_t *d, void* /*arg*/) { free (d); } -VideoImageFrame::VideoImageFrame (PublicEditor& ed, ArdourCanvas::Group& parent, int w, int h, std::string vsurl, std::string vfn) +VideoImageFrame::VideoImageFrame (PublicEditor& ed, ArdourCanvas::Container& parent, int w, int h, std::string vsurl, std::string vfn) : editor (ed) , _parent(&parent) , clip_width(w) @@ -63,7 +63,7 @@ VideoImageFrame::VideoImageFrame (PublicEditor& ed, ArdourCanvas::Group& parent, image = new ArdourCanvas::Image (_parent, Cairo::FORMAT_ARGB32, clip_width, clip_height); img = image->get_image(); - fill_frame(0, 0, 0); + fill_frame (0, 0, 0); draw_line(); draw_x(); image->put_image(img); @@ -80,7 +80,7 @@ VideoImageFrame::~VideoImageFrame () } void -VideoImageFrame::set_position (framepos_t sample) +VideoImageFrame::set_position (samplepos_t sample) { double new_unit_position = editor.sample_to_pixel (sample); image->move (ArdourCanvas::Duple (new_unit_position - unit_position, 0.0)); @@ -100,7 +100,7 @@ VideoImageFrame::exposeimg () { } void -VideoImageFrame::set_videoframe (framepos_t videoframenumber, int re) +VideoImageFrame::set_videoframe (samplepos_t videoframenumber, int re) { if (video_frame_number == videoframenumber && rightend == re) return; @@ -108,7 +108,7 @@ VideoImageFrame::set_videoframe (framepos_t videoframenumber, int re) rightend = re; img = image->get_image(); - fill_frame(0, 0, 0); + fill_frame (0, 0, 0); draw_x(); draw_line(); cut_rightend(); @@ -116,7 +116,7 @@ VideoImageFrame::set_videoframe (framepos_t videoframenumber, int re) exposeimg(); /* request video-frame from decoder in background thread */ - http_get(video_frame_number); + http_get (video_frame_number); } void @@ -195,13 +195,13 @@ VideoImageFrame::cut_rightend () } } -void * +static void * http_get_thread (void *arg) { VideoImageFrame *vif = static_cast(arg); char url[2048]; pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); - snprintf(url, sizeof(url), "%s?frame=%li&w=%d&h=%di&file=%s&format=bgra", + snprintf(url, sizeof(url), "%s?frame=%li&w=%d&h=%d&file=%s&format=bgra", vif->get_video_server_url().c_str(), (long int) vif->get_req_frame(), vif->get_width(), vif->get_height(), vif->get_video_filename().c_str() @@ -210,7 +210,7 @@ http_get_thread (void *arg) { int timeout = 1000; // * 5ms -> 5sec char *res = NULL; do { - res=a3_curl_http_get(url, &status); + res = ArdourCurl::http_get (url, &status, false); if (status == 503) Glib::usleep(5000); // try-again } while (status == 503 && --timeout > 0); @@ -234,7 +234,7 @@ VideoImageFrame::http_download_done (char *data){ if (!data) { /* Image request failed (HTTP error or timeout) */ img = image->get_image(); - fill_frame(128, 0, 0); + fill_frame (128, 0, 0); draw_x(); cut_rightend(); draw_line(); @@ -261,7 +261,7 @@ VideoImageFrame::http_download_done (char *data){ void -VideoImageFrame::http_get(framepos_t fn) { +VideoImageFrame::http_get (samplepos_t fn) { if (pthread_mutex_trylock(&request_lock)) { pthread_mutex_lock(&queue_lock); queued_request=true; @@ -284,7 +284,7 @@ VideoImageFrame::http_get(framepos_t fn) { } void -VideoImageFrame::http_get_again(framepos_t /*fn*/) { +VideoImageFrame::http_get_again(samplepos_t /*fn*/) { pthread_mutex_lock(&queue_lock); queued_request=false; req_video_frame_number=want_video_frame_number;