How is SMPTE LTC structured per libltc documentation and code, and where do 23.976, 29.97 and 59.94 behave differently?
libltc encodes LTC as 80-bit frames (2400 bit/s at 30 fps) with drop-frame at bit 10 and colour-frame at bit 11, and sets the drop-frame bit only when the frame rate rounds to 29.97 (rint(fps*100)==2997, in src/ltc.c); so 23.976 material is labelled as non-drop 24-frame counts (code reading).
libltc encodes LTC as 80-bit frames (2400 bit/s at 30 fps) with drop-frame at bit 10 and colour-frame at bit 11, and sets the drop-frame bit only when the frame rate rounds to 29.97 (rint(fps*100)==2997, in src/ltc.c); so 23.976 material is labelled as non-drop 24-frame counts (code reading).
Curator qualifications: Specifications and code read 2026-10-22; no files written or decoded.
Limitations: Specifications and code read 2026-10-22; no files written or decoded.
Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
"citations": [
{
"url": "https://github.com/Ardour/manual/blob/9628c8bad094537fddd967ef137e8a692e2b1503/include/timecode-generators-and-slaves.html",
"note": "libltc bf84b010 src/ltc.h L100-L127 (documentation comments); libltc bf84b010 src/ltc.c L200-L206; libltc bf84b010 src/encoder.c (126 lines)"
},
{
"url": "https://github.com/x42/libltc/blob/bf84b01097a1789c0296cc5fcfc3bf4608407930/src/ltc.h",
"note": "libltc bf84b010 src/ltc.h L100-L127 (documentation comments); libltc bf84b010 src/ltc.c L200-L206; libltc bf84b010 src/encoder.c (126 lines)"
},
{
"url": "https://github.com/x42/libltc/blob/bf84b01097a1789c0296cc5fcfc3bf4608407930/src/timecode.c",
"note": "libltc bf84b010 src/ltc.h L100-L127 (documentation comments); libltc bf84b010 src/ltc.c L200-L206; libltc bf84b010 src/encoder.c (126 lines)"
},
{
"url": "https://github.com/x42/libltc/blob/bf84b01097a1789c0296cc5fcfc3bf4608407930/src/encoder.c",
"note": "libltc bf84b010 src/ltc.h L100-L127 (documentation comments); libltc bf84b010 src/ltc.c L200-L206; libltc bf84b010 src/encoder.c (126 lines)"
},
{
"url": "https://github.com/FFmpeg/FFmpeg/blob/4bef4614fe8e7429600cc445f0e5aad5ec89ba6e/libavutil/timecode.c",
"note": "libltc bf84b010 src/ltc.h L100-L127 (documentation comments); libltc bf84b010 src/ltc.c L200-L206; libltc bf84b010 src/encoder.c (126 lines)"
}
]
}Evidence claims
- [sourced_fact] libltc encodes LTC as 80-bit frames (2400 bit/s at 30 fps) with drop-frame at bit 10 and colour-frame at bit 11, and sets the drop-frame bit only when the frame rate rounds to 29.97 (rint(fps*100)==2997, in src/ltc.c); so 23.976 material is labelled as non-drop 24-frame counts (code reading). · locator: libltc bf84b010 src/ltc.h L100-L127 (documentation comments); libltc bf84b010 src/ltc.c L200-L206; libltc bf84b010 src/encoder.c (126 lines) source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |
Linked records
- cites → https://github.com/Ardour/manual/blob/9628c8bad094537fddd967ef137e8a692e2b1503/include/timecode-generators-and-slaves.html
- cites → https://github.com/FFmpeg/FFmpeg/blob/4bef4614fe8e7429600cc445f0e5aad5ec89ba6e/libavutil/timecode.c
- cites → https://github.com/x42/libltc/blob/bf84b01097a1789c0296cc5fcfc3bf4608407930/src/encoder.c
- cites → https://github.com/x42/libltc/blob/bf84b01097a1789c0296cc5fcfc3bf4608407930/src/ltc.h
- cites → https://github.com/x42/libltc/blob/bf84b01097a1789c0296cc5fcfc3bf4608407930/src/timecode.c