It would be nice if the source block could support archived SigMF recordings directly, without requiring them to be unarchived. The way to approach this is probably to integrate libarchive to interface with the tar file containing a given recording. Ideally, we could get the offset and size of the individual files in a SigMF archive and then simply use the same C-style file I/O that we do for the normal source block, but as far as I've been able to tell, libarchive doesn't expose the offsets of member files directly. That said, it does have an API to allow for the reading of member files directly from an archive, so it shouldn't be too hard to adapt to the way we do things now in the source block. Some open questions:
Should there be separate blocks for reading from a normal SigMF recording and an archived recording or should this get built into the main block?
Is libarchive the way to go on supporting this or is there another library with better support? Or do we write our own tar parser?
If we use libarchive, how do we integrate reading from it into the type conversion framework already extant in gr-sigmf?
It would be nice if the source block could support archived SigMF recordings directly, without requiring them to be unarchived. The way to approach this is probably to integrate libarchive to interface with the tar file containing a given recording. Ideally, we could get the offset and size of the individual files in a SigMF archive and then simply use the same C-style file I/O that we do for the normal source block, but as far as I've been able to tell, libarchive doesn't expose the offsets of member files directly. That said, it does have an API to allow for the reading of member files directly from an archive, so it shouldn't be too hard to adapt to the way we do things now in the source block. Some open questions: