ENUM CIP_FLAGS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ enum cip_flags ✨

okay so bestie, this is a page out of the Kernel API Manual and it's literally just a big old enum β€” but don't let that fool you, it's the main character of the streaming protocol world πŸ’…. It describes details of the streaming protocol, no cap. Let's get into it.


🌸 SYNOPSIS 🌸

enum cip_flags {
    CIP_NONBLOCKING ,
    CIP_BLOCKING ,
    CIP_EMPTY_WITH_TAG0 ,
    CIP_DBC_IS_END_EVENT ,
    CIP_WRONG_DBS ,
    CIP_SKIP_DBC_ZERO_CHECK ,
    CIP_EMPTY_HAS_WRONG_DBC ,
    CIP_JUMBO_PAYLOAD ,
    CIP_HEADER_WITHOUT_EOH ,
    CIP_NO_HEADER ,
    CIP_UNALIGHED_DBC ,
    CIP_UNAWARE_SYT ,
    CIP_DBC_IS_PAYLOAD_QUADLETS

};

πŸŽ€ Constants πŸŽ€

  • CIP_NONBLOCKING β€” non-blocking mode, babes. every single packet carries sample_rate/8000 samples, and it rounds up or down to adjust for clock skew plus any left-over fractional samples. use this one if your device supports it 🫢
  • CIP_BLOCKING β€” blocking mode. each packet has either zero or SYT_INTERVAL samples, and those two types alternate so the overall sample rate comes out right. alternating, slay πŸ¦‹
  • CIP_EMPTY_WITH_TAG0 β€” in-stream only, bestie. empty in-packets have TAG0.
  • CIP_DBC_IS_END_EVENT β€” the value of dbc in a packet corresponds to the end of event in the packet. straight out of IEC 61883 πŸ’«
  • CIP_WRONG_DBS β€” in-stream only. the value of dbs is wrong in in-packets, so the value of data_block_quadlets gets used instead of the reported value. we improvise πŸ”₯
  • CIP_SKIP_DBC_ZERO_CHECK β€” in-stream only. packets with zero in dbc get skipped when detecting discontinuity. not me ignoring the zeroes πŸ™ˆ
  • CIP_EMPTY_HAS_WRONG_DBC β€” in-stream only. the value of dbc in empty packets is wrong, but the others are correct. it's giving "one bad apple" πŸ“
  • CIP_JUMBO_PAYLOAD β€” in-stream only. the number of data blocks in a packet is larger than IEC 61883-6 defines. the current implementation allows 5 times as large as IEC 61883-6 defines. jumbo literally. πŸ‘‘
  • CIP_HEADER_WITHOUT_EOH β€” in-stream only. the CIP Header doesn't include a valid EOH.
  • CIP_NO_HEADER β€” a lack of headers in packets. that's it, that's the vibe πŸ’€
  • CIP_UNALIGHED_DBC β€” in-stream only. the value of dbc is not alighed to the value of current SYT_INTERVAL; e.g. the initial value is not zero. (yes the original spelling is alighed, we respect the source πŸ’œ)
  • CIP_UNAWARE_SYT β€” for an outgoing packet, the value in the SYT field of CIP is 0xffff. for an incoming packet, the value in the SYT field of CIP is not handled. unaware, iconically 🌈
  • CIP_DBC_IS_PAYLOAD_QUADLETS β€” available for incoming packets, and only effective with the CIP_DBC_IS_END_EVENT flag. the value of the dbc field is the number of accumulated quadlets in the CIP payload, instead of the number of accumulated data blocks. plot twist ⭐

πŸ‘€ SEE ALSO πŸ‘€


ngl bestie, if you're touching these flags you're deep in FireWire audio land β€” read carefully, this is real kernel business πŸ˜­πŸ’–

mwah, that's the whole page! it came from ./sound/firewire, dated October 2026, and it's filed under enum cip_flags(9) πŸ§šβ€β™€οΈβœ¨

πŸ“¦ where this page comes from