That's great news! Makes my life even easier if I don't have to check in the first place. Could you add a line to the BHV2 format spec page about that? I think people like me who are writing support for the format into other software would find that helpful. About the second point, then: would you like some source code for the BHV2 reader I'm implementing?by bpjackson - Questions and Answers
Hello again! I was thinking about writing a MEX'ed BHV2 read function (and also one that could be used to support the files from other tools), but when I looked at the documentation, there was no explicit mention endianness of the format. Judging from the parts of the library I've read through to try to find it, it seems like it might just be set to the machine's native endianneby bpjackson - Questions and Answers
I can rerun the test next time I'm on-site, for sure! Let you know what I find out. That explanation makes a lot of sense, though; I'd figured it was something like that - after all, each display has its own VSync to worry about. For now, the workaround we came up with last week seems to be functioning, so I don't have a pressing need for a solution, which is nice, but I'llby bpjackson - Questions and Answers
Hello, Thanks again for all the work you've put in on the package - you may want to know about an oddity we ran across recently (and found a good workaround for). Our protocol ends in a wait period, and we discovered that idle(...) still allowed the last scene's objects to reappear on screen, so I added a blank scene with only a time counter in it, and noticed that under certain cby bpjackson - Questions and Answers
Thanks again! Took me a little longer than I expected to get back to where I could test it, but this works like a charm. Very much appreciate your careful work on it, and now the same test is down around 400ms total. I suspect I can probably squeeze a little more out of some optimizations here and there that having pixels in one contiguous location in memory will enable, too! I think we canby bpjackson - Questions and Answers
Hey, thanks! This is great, and I'll try it ASAP and let you know this afternoon - I'm on Pacific Time, but I've set aside some time to work on it today. To your previous questions: * I confirmed with my collaborators that ITI needs to be around 1000ms, and preferably 800ms for this experiment * I can absolutely generate a BGRA stream - that's the ideal thing, in fact!by bpjackson - Questions and Answers
> What do you mean by rendering? Are you referring > to your mex file generating the video? Yes, exactly. The video is created programmatically, and because it's generated within a mex component, it never has to hit the filesystem, and can stay in memory during an entire session. > Why is the video creation time so critical? It > does not seem that you need a short ITI. Iby bpjackson - Questions and Answers
I see, thank you. A sketch of the experiment is: 1. For each trial, a custom stimulus video is generated (for which I've written a C++ library and call into it via mex, keeping the video buffer persistent from trial to trial). This video is unique per trial, and lasts somewhere in the neighborhood of ten seconds (with exact length subject to variation per trial). 2. The subject viewsby bpjackson - Questions and Answers
By profiling the userloop script, I've determined that the main cause of the latency relates to a lot of permuting and reshaping of the input movie matrix. It's a shame, actually - while I know it's not a common use case, I'm already rendering the raw bytes of video of my stimulus, and I could give it in whatever shape or ordering is needed directly to avoid the copying and shby bpjackson - Questions and Answers
I may have answered my own question: I've mlocked the generator function being called by the gen TaskObject and set the buffer to be persistent there. There's still a rather high amount of latency, though. I've measured the rendering time within the userloop to be below 200ms for an ARGB video with 1000 frames at 376x376 px size; the inter-trial interval is still taking longer tby bpjackson - Questions and Answers
Hello all, I'm generating a relatively large video data array as a stimulus using the 'gen' TaskObject. I'm using TrialRecord.User to store the Y*X*4*N matrix and avoid reallocating the matrix each trial, and according to the TrialRecord structure documentation, the User portion isn't written to the file structure, but my testing uncovered that it is (presumably, itby bpjackson - Questions and Answers