On this line it is called new frame is pushed to Streamer github.com/indilib/indi-3rdparty/blob/da...hy/qhy_ccd.cpp#L2596
I think it would be quite straightforward put decodeGPSHeader() before call to Streamer->newFrame(buffer, w * h * bpp / 8 * channels, GPSHeader.start_sec + GPSHeader.start_us / 1000000.0);
Ok it was quite easy. I pushed changes that will now pass GPS start timestamp to SER recoder so if I didn't do any mistake it should work. So if you know how to compile INDI you can test it.
However, I now have an issue with the timestamp. Where I used to have the timestamp of the Raspberry Pi, the timestamp of the SER file now dates back to October 10th 1995. Any idea how to fix this? Could the problem come from my CCD's GPS that I would need to reconfigure somehow?
That sounds like camera return 0 as timestamp. Because October 10 1995 is 2450000.5JD which is what QHY is using as epoch. Did you enabled GPS header in INDI panel and it is locked? Also try capture preview FITS and check what date is there.
I had indeed forgotten to check that the GPS was locked. I tried it again today making sure the GPS was locked, and the timestamps, both on FITS files and SER files, are the GPS's!
I am facing another issue with the SER format, in that I can't seem to record streams with a higher resolutions than 8 bits per pixel. Even when I try "forcing" an 16 bit resolution in my python script, the SER file is 8 bit. The FITS file, however, is 16 bits so I'm sure the setting is correct. Can SER files created with INDI not support 16 bit resolution?
I can only confirm that INDI/EKOS at least were able to record 16-bit SER-streams, as I have some of those, taken end 2021. Unfortunately, I don't remember if I had to do something special for that, and I don't have the equipment at hand at the moment....