Skip to content
This repository was archived by the owner on Mar 3, 2020. It is now read-only.
This repository was archived by the owner on Mar 3, 2020. It is now read-only.

Misleading info in README.md #22

Description

@sergedundich

NTSC IS NOT EXPLICITLY SUPPORTED IN ALL OF ITS SUBTLE NUANCES, BUT: The NTSC variations (~23.976, ~29.97, etc) are approximately defined as 24 * 1000/1001 and 30 * 1000/1001, etc. These can be represented exactly in flicks, but 1/1000 divisions are not available.

It is not clear what does this paragraph mean or refers to. NTSC frame rates are exactly defined as 24000/1001 Hz, 30000/1001 Hz and multiples of those - not approximately (but 23.976 and 29.97 are decimal approximations of those obviously).

Many folks online have pointed out that NTSC technically has a variable frame rate, and that this is handled correctly in other media playback libraries such as QuickTime. The goal of flicks is to provide a simple, convenient std::chrono::duration to work with when writing code that works with simulation and time in media, but not explicitly to handle complex variable-rate playback scenarios. So we'll stick with the 1000/1001 approximations, and leave it at that!

It would be best to ask those folks for a reference to the standard where it is defined as variable frame rate.
NOTE that variable frame rate is not the same thing as non-integer (in Hz) frame rate - like e.g. NTSC. Variable frame rate means by definition that distance between consecutive frames may vary.
To the best of my knowledge NTSC frame rates has always been defined in each standard as constant frame rates (exactly 30000/1001 Hz, 24000/1001 Hz and multiples of those) - so it would be great to stop propagating this misleading idea that there is something variable or approximate about them. It is not more variable or approximate than 30 Hz or 25 Hz. For example distance between consecutive frames in NTSC 29.97 FPS stream are exactly 1001/30000 seconds - according to the standard (in ideal model obviously - in physical world it is always approximate and with small random deviations - just like anything else).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions