Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Misc bugfixes + dependency upgrades #59

Merged
merged 14 commits into from
Feb 20, 2022
Merged

Misc bugfixes + dependency upgrades #59

merged 14 commits into from
Feb 20, 2022

Conversation

sz3
Copy link
Owner

@sz3 sz3 commented Feb 19, 2022

  1. can now build against opencv4 without messing with include paths. Also, tests will pass.
  2. fixed (maybe) a CFC bug where old transfers would not get cleaned up, preventing an unrelated future transfer from being attempted
    • you can just close and re-open the app though
  3. upgrades:
    • catch2 (2022-1)
    • concurrentqueue (1.0.3)
    • fmt (8.1.1)
    • intx (0.7.1)
    • picosha2 (2021-8)
    • stb_image (2021-9)
    • wirehair (2021-7)

I left zstd as is -- the upgrade will need some further investigation.

sz3 added 14 commits February 3, 2022 21:59
This requires some more thoughts -- the shape of the problem is that the
encoder and decoder are running out of band with each other (very
intentionally -- it's the whole point). We want to "keep up" with what
the encoder throws at us, but we also need to clean up our list of
in-progress (and finished!) decodes at some point -- we don't want it to
be unbounded.

The bug this fixes should manifest as files refusing to
progress/download -- the decoder (app) has already reserved the "stream
slot", finished a download, but failed to clean up the mess to let it be
reclaimed. The workaround for CFC is to close and re-open the app, which
will throw out all in progress downloads and start from a clean slate.
since the include path is different...
It's only needed for undistort. It be worth making optional...
unsigned being 32bit was doing some heavy lifting here... but let's be
explicit.
Including my custom CMakeLists.
So I'm ok with cv3 and cv4 returning slightly different answers.
endif()

if(NOT DEFINED OPENCV_LIBS)
set(OPENCV_LIBS "opencv_core" "opencv_imgcodecs" "opencv_imgproc" "opencv_photo")
set(OPENCV_LIBS "opencv_calib3d" "opencv_imgcodecs" "opencv_imgproc" "opencv_photo" "opencv_core")
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ordering is helpful for static builds. calib3d is needed for opencv4 and the undistort functionality. undistort isn't currently used anywhere, but I didn't see a good reason to axe it yet.

@@ -1,8 +1,9 @@
/* This code is subject to the terms of the Mozilla Public License, v.2.0. http://mozilla.org/MPL/2.0/. */
#pragma once

#include <vector>
#include <cstddef>
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make modern g++ happy(er)

@@ -33,7 +33,7 @@ class FountainMetadata
to_uint8_arr(encode_id, size, d);
}

unsigned id() const
uint32_t id() const
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This unsigned was doing a lot of work -- the type here should've been 32bit all along.

@@ -137,7 +137,10 @@ class fountain_decoder_sink
std::string _dataDir;
unsigned _chunkSize;

// maybe instead of unordered_map+set, something where we can "age out" old streams?
// e.g. most recent 16/8, or something?
// question is what happens to _done/_streams when we wrap for continuous data streaming...
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's more work to be done here.

_done.insert(id);
auto it = _streams.find(id);
_done.insert(md.id());
auto it = _streams.find(stream_slot(md));
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because we were searching by id and (not by stream_slot), we'd never remove the old stream. Not great!

Luckily: this code is currently only used by the android app, and the whole sink gets thrown away whenever the app is stopped or paused.

@sz3 sz3 merged commit 729eb7e into master Feb 20, 2022
@sz3 sz3 deleted the bugfix-misc branch February 20, 2022 01:48
@sz3 sz3 mentioned this pull request Feb 25, 2022
sz3 added a commit that referenced this pull request Mar 13, 2024
5fbface Merge pull request #60 from sz3/ci-package
9d52131 Draft a github release (with bits!) when a new tag is pushed
2010df7 It's still gcc9
1686eca Build on new ubuntu?
4ab275a a script to build cimbar.js
bd87003 Ubuntu 16.04 build for glibc >= 2.23. Or 2.14(!?)
7bb1bc8 -DBUILD_PORTABLE_LINUX for static linking against opencv and libc++
729eb7e Merge pull request #59 from sz3/bugfix-misc
9e0dae0 Compile time check is fine, I guess
c05e3b5 hash difference aside, the binary differences are minor
e698786 Update concurrentqueue (1.0.3)
fec665f Update fmt (8.1.1)
0f2665a Upgrade intx
cc6abee Update picosha2 and stb_image
39b37d9 Update wirehair
82ed9e9 oof
28559cb I think we need calib3d now?
178e02a Make CMakeLists smart enough to find opencv4
b0091d1 new catch2 to make compiler happy
52547ae Include to make g++11 happy
7c545bb cerr
c5f7676 Bugfix (maybe): properly clean up old decodes
f752be4 Merge pull request #58 from sz3/service-worker
19c7904 No PWA for now
ef6df87 Merge pull request #57 from sz3/css-fix
8103bf0 Possibly functional?
74ceae3 add favicon...
8fa1509 Cache more stuff? clear old caches?
e20a3cd WIP? cache please?
99eb349 Merge branch 'css-fix' into sw
8d4cbc9 Try using a button element?
a7f663a Set zoom on the canvas element, not the whole page?
d0dffa2 Slightly more responsive to window size changes
9e8e552 Fix the background css
989796b service worker attempt (doesn't work)

git-subtree-dir: app/src/cpp/libcimbar
git-subtree-split: 5fbface
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant