Timecode definitions.  
More...
|  | 
| GAVL_PUBLIC void | gavl_timecode_format_copy (gavl_timecode_format_t *dst, const gavl_timecode_format_t *src) | 
|  | Copy one timecode format to another. 
 | 
|  | 
| GAVL_PUBLIC void | gavl_timecode_to_hmsf (gavl_timecode_t tc, int *hours, int *minutes, int *seconds, int *frames) | 
|  | Extract the time part of the timecode. 
 | 
|  | 
| GAVL_PUBLIC void | gavl_timecode_to_ymd (gavl_timecode_t tc, int *year, int *month, int *day) | 
|  | Extract the date part of the timecode. 
 | 
|  | 
| GAVL_PUBLIC void | gavl_timecode_from_hmsf (gavl_timecode_t *tc, int hours, int minutes, int seconds, int frames) | 
|  | Set the time part of the timecode. 
 | 
|  | 
| GAVL_PUBLIC void | gavl_timecode_from_ymd (gavl_timecode_t *tc, int year, int month, int day) | 
|  | Set the date part of the timecode. 
 | 
|  | 
| GAVL_PUBLIC int64_t | gavl_timecode_to_framecount (const gavl_timecode_format_t *tf, gavl_timecode_t tc) | 
|  | Get the frame count from the timecode. 
 | 
|  | 
| GAVL_PUBLIC gavl_timecode_t | gavl_timecode_from_framecount (const gavl_timecode_format_t *tf, int64_t fc) | 
|  | Get a timecode from the frame count. 
 | 
|  | 
| GAVL_PUBLIC void | gavl_timecode_dump (const gavl_timecode_format_t *tf, gavl_timecode_t tc) | 
|  | Dump a timecode to stderr. 
 | 
|  | 
| GAVL_PUBLIC void | gavl_timecode_prettyprint (const gavl_timecode_format_t *tf, gavl_timecode_t tc, char str[GAVL_TIMECODE_STRING_LEN]) | 
|  | Print a full timecode into a string. 
 | 
|  | 
| GAVL_PUBLIC void | gavl_timecode_prettyprint_short (gavl_timecode_t tc, char str[GAVL_TIMECODE_STRING_LEN_SHORT]) | 
|  | Print a short timecode into a string. 
 | 
|  | 
Timecode definitions. 
Timecodes are usually associated with video frames and represent a unique time (e.g. Wall clock time) within the whole footage.
Since 1.1.0 
◆ GAVL_TIMECODE_SIGN_MASK
      
        
          | #define GAVL_TIMECODE_SIGN_MASK   (0x1LL<<62) | 
      
 
If 1, timecode is negative. 
 
 
◆ GAVL_TIMECODE_INVALID_MASK
      
        
          | #define GAVL_TIMECODE_INVALID_MASK   (0x1LL<<63) | 
      
 
If 1, timecode is invalid. 
 
 
◆ GAVL_TIMECODE_DROP_FRAME
      
        
          | #define GAVL_TIMECODE_DROP_FRAME   (1<<0) | 
      
 
 
◆ GAVL_TIMECODE_UNDEFINED
◆ GAVL_TIMECODE_STRING_LEN
      
        
          | #define GAVL_TIMECODE_STRING_LEN   26 | 
      
 
Length for a string into which a timecode will be printed 
 
 
◆ GAVL_TIMECODE_STRING_LEN_SHORT
      
        
          | #define GAVL_TIMECODE_STRING_LEN_SHORT   13 | 
      
 
Length for a string into which a short timecode will be printed 
 
 
◆ gavl_timecode_t
◆ gavl_timecode_format_copy()
Copy one timecode format to another. 
- Parameters
- 
  
    | dst | Destination format |  | src | Source format |  
 
 
 
◆ gavl_timecode_to_hmsf()
      
        
          | GAVL_PUBLIC void gavl_timecode_to_hmsf | ( | gavl_timecode_t | tc, | 
        
          |  |  | int * | hours, | 
        
          |  |  | int * | minutes, | 
        
          |  |  | int * | seconds, | 
        
          |  |  | int * | frames ) | 
      
 
Extract the time part of the timecode. 
- Parameters
- 
  
    | tc | A timecode |  | hours | If non NULL, returns the hours |  | minutes | If non NULL, returns the minutes |  | seconds | If non NULL, returns the seconds |  | frames | If non NULL, returns the frames |  
 
 
 
◆ gavl_timecode_to_ymd()
      
        
          | GAVL_PUBLIC void gavl_timecode_to_ymd | ( | gavl_timecode_t | tc, | 
        
          |  |  | int * | year, | 
        
          |  |  | int * | month, | 
        
          |  |  | int * | day ) | 
      
 
Extract the date part of the timecode. 
- Parameters
- 
  
    | tc | A timecode |  | year | If non NULL, returns the year |  | month | If non NULL, returns the month |  | day | If non NULL, returns the day |  
 
 
 
◆ gavl_timecode_from_hmsf()
      
        
          | GAVL_PUBLIC void gavl_timecode_from_hmsf | ( | gavl_timecode_t * | tc, | 
        
          |  |  | int | hours, | 
        
          |  |  | int | minutes, | 
        
          |  |  | int | seconds, | 
        
          |  |  | int | frames ) | 
      
 
Set the time part of the timecode. 
- Parameters
- 
  
    | tc | A timecode |  | hours | The hours |  | minutes | The minutes |  | seconds | The seconds |  | frames | The frames |  
 
 
 
◆ gavl_timecode_from_ymd()
      
        
          | GAVL_PUBLIC void gavl_timecode_from_ymd | ( | gavl_timecode_t * | tc, | 
        
          |  |  | int | year, | 
        
          |  |  | int | month, | 
        
          |  |  | int | day ) | 
      
 
Set the date part of the timecode. 
- Parameters
- 
  
    | tc | A timecode |  | year | The year |  | month | The month |  | day | The day |  
 
 
 
◆ gavl_timecode_to_framecount()
Get the frame count from the timecode. 
- Parameters
- 
  
    | tf | The timecode format |  | tc | A timecode |  
 
- Returns
- The frame count
If the time is larger than 24 hours, the framecount is calculated from 00:00:00, January 1, 1970 
 
 
◆ gavl_timecode_from_framecount()
Get a timecode from the frame count. 
- Parameters
- 
  
    | tf | The timecode format |  | fc | The frame count |  
 
- Returns
- The timecode corresponding to the framecount
If the date fields are non-zero, the framecount is calculated from 00:00:00, January 1, 1970 
 
 
◆ gavl_timecode_dump()
Dump a timecode to stderr. 
- Parameters
- 
  
    | tf | The timecode format |  | tc | A timecode |  
 
This is used mainly for debugging 
 
 
◆ gavl_timecode_prettyprint()
Print a full timecode into a string. 
- Parameters
- 
  
    | tf | The timecode format |  | tc | A timecode |  | str | String where the timecode will be printed |  
 
This prints the full timecode (including calendar date if available). For real-life applications, you might want to try gavl_timecode_prettyprint_short instead. 
 
 
◆ gavl_timecode_prettyprint_short()
      
        
          | GAVL_PUBLIC void gavl_timecode_prettyprint_short | ( | gavl_timecode_t | tc, | 
        
          |  |  | char | str[GAVL_TIMECODE_STRING_LEN_SHORT] ) | 
      
 
Print a short timecode into a string. 
- Parameters
- 
  
    | tc | A timecode |  | str | String where the timecode will be printed |  
 
Since 1.1.1