Profile cover photo
Profile photo
Mike Versteeg
192 followers
192 followers
About
Posts

I have a fixed size ring buffer of around 40 GB on a 500 GB SSD, write to it sequentially at around 125 MBps, and read from it randomly at the same speed. This works fine for a few minutes but gradually I can see the drive's "active time" in task manager increase to 100%, at which time the speed begins to drop below requirements. The drive remains half empty. Tried both TFileStream and TBufferedFileStream. Chunks are always 2.5 MB. Drive is rated for 400 MBps, confirmed with test utility. Anyone an idea why the drive becomes slower over time?

Does anyone know what the correct way is to create a bitmap and detect if it succeeded (let's say there could be insufficient memory)?

Graphics::TBitmap *bm = new Graphics::TBitmap(1000, 1000)

would be great as I could check bm for being non-zero, but this constructor does not exist. And doing

Graphics::TBitmap *bm = new Graphics::TBitmap;
if (bm)
bm->SetSize(1000, 1000);

doesn't work as I've seen bm being created successfully with the "out of resources" error being generated when I set the size (which of course allocates memory). SetSize() returns void btw.

Currently the only solution I could come up with is to catch the exception, but it's a little ugly and they are so annoying when debugging. Isn't there a more elegant way?

Post has attachment
Join me in the development and testing of the new #slomo/#replay for #VidBlasterX and get a free Studio or Broadcast licence as a bonus to this fun project! Join the team in the VidBlasterX Community.
https://www.facebook.com/groups/VidBlasterX/permalink/1951801491707271/
Photo

Post has attachment
Is there anything like Visual Studio Profiler’s Concurrency Visualizer for C++ Builder? Especially attached would be an interesting tool for me (even though unknowingly I already wrote part of this tool myself).
Photo

Post has attachment
Wrote an article for +LinkedIn why and how I got involved with +NewTek Inc #NDI and what makes it so special: https://www.linkedin.com/pulse/thing-called-ndi-mike-versteeg/
Add a comment...

Post has attachment
Despite all its faults I do appreciate C++ Builder and its developers. It enables me to create effective and stable software. This video was posted today. It shows a non-stop 24 hour live broadcast with 20 HD cameras. The software taking care of all of this ran on just 1 (16 core) PC, without flaws for 24 hours straight. It is entirely developed with C++ Builder.
Now back to complaining as there is always room for improvement :).

Post has attachment
Need to build an xy matrix with collapsible groups on both axis. Does anyone know what this is called, or if it already exists for VCL?
Photo

Post has attachment
Currently working on +VidBlasterX 's Multiview module, adding audio peak meters. Any wishes?
Photo

I have an unknown number of functions wanting to get (text) data from a class that's decoding MIDI input signals. I could keep a list of callbacks, but have a feeling there might be a more elegant way. Some pipe-like structure, where each function automatically gets its own pipe? Anyone any ideas?

Post has attachment
I see it's been a while since I posted here, here's a link to an interesting project: https://www.linkedin.com/pulse/vidblasterx-chosen-100-ndi-multicam-hd-production-mike-versteeg/

BTW: Is there anyone still part of this community who's not part of the community on facebook?
Wait while more posts are being loaded