Ah, after re-reading the Header/Payload Demux docs, I noticed the
trigger port is optional. The block will trigger on tags connected to
the input stream.
What seems like the best strategy to me now is this:
1) Detect the header with a correlator and add a tag at the start
2) Feed the output of the correlator into the input port of the
Header/Payload Demux block
3) Process the out header port and generate a message that feeds into
the message port of the Header/Payload Demux block
4) The Header/Payload Demux block then releases the corresponding number
of payload samples through the payload port.
I haven't touched messages before so this should be interesting. I
welcome any feedback or common pitfalls to avoid.