X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=futatabi%2Fjpeg_frame_view.cpp;h=9dc2ec25125ce3880a3db8eabb95bafd7cd1824c;hb=147a2d38463d983ec7c66ef5c4c9c6cce7d52787;hp=283ff672f73d987473446e32c9fe59f5f06d9e8a;hpb=b563b8903fa84bb7fd62d7d0b84b70cb26843dbf;p=nageru diff --git a/futatabi/jpeg_frame_view.cpp b/futatabi/jpeg_frame_view.cpp index 283ff67..9dc2ec2 100644 --- a/futatabi/jpeg_frame_view.cpp +++ b/futatabi/jpeg_frame_view.cpp @@ -82,11 +82,11 @@ atomic event_counter{0}; extern QGLWidget *global_share_widget; extern atomic should_quit; -shared_ptr decode_jpeg(const string &filename) +shared_ptr decode_jpeg(const string &jpeg) { shared_ptr frame; if (vaapi_jpeg_decoding_usable) { - frame = decode_jpeg_vaapi(filename); + frame = decode_jpeg_vaapi(jpeg); if (frame != nullptr) { return frame; } @@ -101,13 +101,7 @@ shared_ptr decode_jpeg(const string &filename) jpeg_create_decompress(&dinfo); JPEGDestroyer destroy_dinfo(&dinfo); - FILE *fp = fopen(filename.c_str(), "rb"); - if (fp == nullptr) { - perror(filename.c_str()); - exit(1); - } - jpeg_stdio_src(&dinfo, fp); - + jpeg_mem_src(&dinfo, reinterpret_cast(jpeg.data()), jpeg.size()); jpeg_read_header(&dinfo, true); if (dinfo.num_components != 3) { @@ -170,7 +164,6 @@ shared_ptr decode_jpeg(const string &filename) } (void)jpeg_finish_decompress(&dinfo); - fclose(fp); return frame; }