Reading text
Text

Decode text. More...

## Functions

int | lqt_text_tracks (quicktime_t *file)
| Get the number of text tracks. More...
int | lqt_get_text_language (quicktime_t *file, int track, char *language)
| Get the text language. More...
int | lqt_text_time_scale (quicktime_t *file, int track)
| Get the timescale for a text track. More...
void | lqt_get_text_box (quicktime_t *file, int track, uint16_t *top, uint16_t *left, uint16_t *bottom, uint16_t *right)
| Set the text box of a text track. More...
int | lqt_read_text (quicktime_t *file, int track, char **text, int *text_alloc, int64_t *timestamp, int64_t *duration)
| Read a text sample. More...
int | lqt_is_chapter_track (quicktime_t *file, int track)
| Check if a track is a chapter track. More...
int64_t | lqt_text_samples (quicktime_t *file, int track)
| Get the total number of text samples. More...
void | lqt_set_text_position (quicktime_t *file, int track, int64_t position)
| Go to a specific sample. More...
void | lqt_set_text_time (quicktime_t *file, int track, int64_t time)
| Go to a specific time. More...
void | lqt_get_text_fg_color (quicktime_t *file, int track, uint16_t *r, uint16_t *g, uint16_t *b, uint16_t *a)
| Get the foreground color of a text track. More...
void | lqt_get_text_bg_color (quicktime_t *file, int track, uint16_t *r, uint16_t *g, uint16_t *b, uint16_t *a)
| Get the background color of a text track. More...
int64_t | lqt_get_text_pts_offset (quicktime_t *file, int track)
| Get an video pts offset. More...

## Detailed Description

Decode text.

## Function Documentation

int lqt_text_tracks | ( | quicktime_t * | file | ) |

Get the number of text tracks.

Parameters

  file | A quicktime handle

Returns
  The number of text tracks found in the file

int lqt_get_text_language | ( | quicktime_t * | file,
|  | int | track,
|  | char * | language
| ) |  |

Get the text language.

Parameters

  file | A quicktime handle
  track | Track index (starting with 0)
  language | Returns ISO-639 Language code

Returns
  1 on success, 0 on error.

The language code is a 3-character code, English is "eng", Japanese is "jpn".

int lqt_text_time_scale | ( | quicktime_t * | file,
|  | int | track
| ) |  |

Get the timescale for a text track.

Parameters

  file | A quicktime handle
  track | Track index (starting with 0)

Returns
  The timescale of the track.

void lqt_get_text_box | ( | quicktime_t * | file,
|  | int | track,
|  | uint16_t * | top,
|  | uint16_t * | left,
|  | uint16_t * | bottom,
|  | uint16_t * | right
| ) |  |

Set the text box of a text track.

Parameters

  file | A quicktime handle
  track | Track index (starting with 0)
  top | Returns the top border
  left | Returns the left border
  bottom | Returns the bottom border
  right | Returns the right border

int lqt_read_text | ( | quicktime_t * | file,
|  | int | track,
|  | char ** | text,
|  | int * | text_alloc,
|  | int64_t * | timestamp,
|  | int64_t * | duration
| ) |  |

Read a text sample.

Parameters

  file | A quicktime handle
  track | Track index (starting with 0)
  text | Address of a buffer
  text_alloc | Allocated bytes for this buffer (will be changed)
  timestamp | Returns the timestamp of the sample
  duration | Returns the duration of the sample

Returns
  1 if a sample was decoded, 0 if the track is finished

This funtion calls realloc() to make sure there is enough space for for the text. It's a good idea to always pass the same buffer to this function (set to NULL initially) and free it after the file is closed.

int lqt_is_chapter_track | ( | quicktime_t * | file,
|  | int | track
| ) |  |

Check if a track is a chapter track.

Parameters

  file | A quicktime handle
  track | Track index (starting with 0)

Returns
  1 if the text track is a chapter track, 0 else

int64_t lqt_text_samples | ( | quicktime_t * | file,
|  | int | track
| ) |  |

Get the total number of text samples.

Parameters

  file | A quicktime handle
  track | Track index (starting with 0)

Returns
  The number of samples

void lqt_set_text_position | ( | quicktime_t * | file,
|  | int | track,
|  | int64_t | position
| ) |  |

Go to a specific sample.

Parameters

  file | A quicktime handle
  track | Track index (starting with 0)
  position | The sample position (starting with 0)

void lqt_set_text_time | ( | quicktime_t * | file,
|  | int | track,
|  | int64_t | time
| ) |  |

Go to a specific time.

Parameters

  file | A quicktime handle
  track | Track index (starting with 0)
  time | Time

This wil reposition the text track such, that the next call to lqt_read_text will return a sample with at least the timestamp you specified.

void lqt_get_text_fg_color | ( | quicktime_t * | file,
|  | int | track,
|  | uint16_t * | r,
|  | uint16_t * | g,
|  | uint16_t * | b,
|  | uint16_t * | a
| ) |  |

Get the foreground color of a text track.

Parameters

  file | A quicktime handle
  track | Track index (starting with 0)
  r | Returns red
  g | Returns green
  b | Returns blue
  a | Returns alpha

Color values are between 0x0000 and 0xffff.

void lqt_get_text_bg_color | ( | quicktime_t * | file,
|  | int | track,
|  | uint16_t * | r,
|  | uint16_t * | g,
|  | uint16_t * | b,
|  | uint16_t * | a
| ) |  |

Get the background color of a text track.

Parameters

  file | A quicktime handle
  track | Track index (starting with 0)
  r | Returns red
  g | Returns green
  b | Returns blue
  a | Returns alpha

Color values are between 0x0000 and 0xffff.

int64_t lqt_get_text_pts_offset | ( | quicktime_t * | file,
|  | int | track
| ) |  |

Get an video pts offset.

Parameters

  file | A quicktime handle
  track | Track index (starting with 0)

Returns
  PTS offset of the subtitles (in timescale units)