Video related definitions and functions. More...
Modules | |
Video decoding | |
Video related definitions and functions (reading). | |
Video encoding | |
Video related definitions and functions (writing). | |
Enumerations | |
enum | lqt_interlace_mode_t { LQT_INTERLACE_NONE = 0, LQT_INTERLACE_TOP_FIRST, LQT_INTERLACE_BOTTOM_FIRST } |
interlace modes More... | |
enum | lqt_chroma_placement_t { LQT_CHROMA_PLACEMENT_DEFAULT = 0, LQT_CHROMA_PLACEMENT_MPEG2, LQT_CHROMA_PLACEMENT_DVPAL } |
Chroma placement. More... | |
Functions | |
void | quicktime_set_cmodel (quicktime_t *file, int colormodel) |
Set the colormodel for en-/decoding. | |
void | quicktime_set_row_span (quicktime_t *file, int row_span) |
Set the row_span for en-/decoding. | |
void | lqt_set_video_parameter (quicktime_t *file, int track, const char *key, const void *value) |
Set a codec parameter for a video track. | |
const char * | lqt_interlace_mode_to_string (lqt_interlace_mode_t mode) |
Convert an interlace mode to a human readable string. | |
const char * | lqt_chroma_placement_to_string (lqt_chroma_placement_t chroma_placement) |
Convert a chroma placement to a human readable string. | |
int | lqt_get_best_colormodel (quicktime_t *file, int track, int *supported) |
Get the best colormodel out of a list of supported colormodels. | |
int | lqt_get_cmodel (quicktime_t *file, int track) |
Get the colormodel, which will be valid for the next en-/decode call. | |
uint8_t ** | lqt_rows_alloc (int width, int height, int colormodel, int *rowspan, int *rowspan_uv) |
Allocate a frame buffer for use with libquicktime. | |
void | lqt_rows_copy (uint8_t **out_rows, uint8_t **in_rows, int width, int height, int in_rowspan, int in_rowspan_uv, int out_rowspan, int out_rowspan_uv, int colormodel) |
Copy a video frame. | |
void | lqt_rows_copy_sub (uint8_t **out_rows, uint8_t **in_rows, int width, int height, int in_rowspan, int in_rowspan_uv, int out_rowspan, int out_rowspan_uv, int colormodel, int src_x, int src_y, int dst_x, int dst_y) |
Copy a subrectangle video frame. | |
void | lqt_rows_clear (uint8_t **rows, int width, int height, int rowspan, int rowspan_uv, int colormodel) |
Clear a video frame. | |
void | lqt_rows_free (uint8_t **rows) |
Free a frame allocated by lqt_rows_alloc. | |
void | lqt_set_cmodel (quicktime_t *file, int track, int colormodel) |
Set the colormodel for en-/decoding. | |
void | lqt_set_row_span (quicktime_t *file, int track, int row_span) |
Set the row span for the luma plane. | |
void | lqt_set_row_span_uv (quicktime_t *file, int track, int row_span_uv) |
Set the row span for the chroma planes. |
Video related definitions and functions.
enum lqt_interlace_mode_t |
interlace modes
This is the interlace mode of a video track. Read it with lqt_get_interlace_mode .
Chroma placement.
This describes the chroma placement of a video track. Read it with lqt_get_chroma_placement . Chroma placement makes only sense for YUV420 formats. For other pixelformats, it is set implicitely to LQT_CHROMA_PLACEMENT_DEFAULT.
void quicktime_set_cmodel | ( | quicktime_t * | file, | |
int | colormodel | |||
) |
Set the colormodel for en-/decoding.
file | A quicktime handle | |
colormodel | The colormodel to use. |
This sets the colormodels for all video tracks at once. It's a better idea to use lqt_set_cmodel instead.
void quicktime_set_row_span | ( | quicktime_t * | file, | |
int | row_span | |||
) |
Set the row_span for en-/decoding.
file | A quicktime handle | |
row_span | The rowspan to use. |
This sets the rowspans for all video tracks at once. It's a better idea to use lqt_set_row_span and lqt_set_row_span_uv instead.
void lqt_set_video_parameter | ( | quicktime_t * | file, | |
int | track, | |||
const char * | key, | |||
const void * | value | |||
) |
Set a codec parameter for a video track.
file | A quicktime handle | |
track | Track index (starting with 0) | |
key | Short name of the parameter | |
value | Parameter value. |
For integer parameters, value must be of the type int*. For string parameters, use char*. For floating-point parameters, use float*.
const char* lqt_interlace_mode_to_string | ( | lqt_interlace_mode_t | mode | ) |
Convert an interlace mode to a human readable string.
mode | An interlace mode |
const char* lqt_chroma_placement_to_string | ( | lqt_chroma_placement_t | chroma_placement | ) |
Convert a chroma placement to a human readable string.
chroma_placement | A chroma placement |
int lqt_get_best_colormodel | ( | quicktime_t * | file, | |
int | track, | |||
int * | supported | |||
) |
Get the best colormodel out of a list of supported colormodels.
file | A quicktime handle | |
track | Track index (starting with 0) | |
supported | An array with supported colormodels. |
This is a convenience function for application developers: It takes an array with supported colormodels (Terminated with LQT_COLORMODEL_NONE) and returns the best colormodel. The decision is done according to the conversion overhead. i.e. you'll get the colormodel of your list, which is "closest" to the colormodel, the codec delivers. To make sure, that this function never fails, you should at least support BC_RGB888 . This function works for en- and decoding.
int lqt_get_cmodel | ( | quicktime_t * | file, | |
int | track | |||
) |
Get the colormodel, which will be valid for the next en-/decode call.
file | A quicktime handle | |
track | Track index (starting with 0) |
By default, it will return the colormodel, which is used natively by the codec. It can be changed with lqt_set_cmodel .
uint8_t** lqt_rows_alloc | ( | int | width, | |
int | height, | |||
int | colormodel, | |||
int * | rowspan, | |||
int * | rowspan_uv | |||
) |
Allocate a frame buffer for use with libquicktime.
width | The width of the frame | |
height | The height of the frame | |
colormodel | The colormodel of the frame (see Color handling). | |
rowspan | Specifies the row span to use for the luma plane. Can be 0 to use default values. After the function call, it will contain the rowspan actually used. | |
rowspan_uv | Specifies the row span to use for the chroma planes. Can be 0 to use default values. After the function call, it will contain the rowspan actually used. |
What is called "row_pointers" here is a bit misleading: For packed formats, the pointers point to the beginnings of scanlines. For planar formats, the pointers point to the beginning of planes. In either case, the byte offsets between scanlines are be specified by rowspan and rowspan_uv. To free the returned frame, call lqt_rows_free
void lqt_rows_copy | ( | uint8_t ** | out_rows, | |
uint8_t ** | in_rows, | |||
int | width, | |||
int | height, | |||
int | in_rowspan, | |||
int | in_rowspan_uv, | |||
int | out_rowspan, | |||
int | out_rowspan_uv, | |||
int | colormodel | |||
) |
Copy a video frame.
out_rows | Destination frame | |
in_rows | Source frame | |
width | Width of the frame | |
height | Height of the frame | |
in_rowspan | Rowspan for the luma plane of the input frame | |
in_rowspan_uv | Rowspan for the chroma planes of the input frame | |
out_rowspan | Rowspan for the luma plane of the output frame | |
out_rowspan_uv | Rowspan for the chroma planes of the output frame | |
colormodel | The colormodel of the frames |
void lqt_rows_copy_sub | ( | uint8_t ** | out_rows, | |
uint8_t ** | in_rows, | |||
int | width, | |||
int | height, | |||
int | in_rowspan, | |||
int | in_rowspan_uv, | |||
int | out_rowspan, | |||
int | out_rowspan_uv, | |||
int | colormodel, | |||
int | src_x, | |||
int | src_y, | |||
int | dst_x, | |||
int | dst_y | |||
) |
Copy a subrectangle video frame.
out_rows | Destination frame | |
in_rows | Source frame | |
width | Width of the frame | |
height | Height of the frame | |
in_rowspan | Rowspan for the luma plane of the input frame | |
in_rowspan_uv | Rowspan for the chroma planes of the input frame | |
out_rowspan | Rowspan for the luma plane of the output frame | |
out_rowspan_uv | Rowspan for the chroma planes of the output frame | |
colormodel | The colormodel of the frames | |
src_x | X offset in the source frame | |
src_y | Y offset in the source frame | |
dst_x | X offset in the destination frame | |
dst_y | Y offset in the destination frame |
Since 1.2.0
void lqt_rows_clear | ( | uint8_t ** | rows, | |
int | width, | |||
int | height, | |||
int | rowspan, | |||
int | rowspan_uv, | |||
int | colormodel | |||
) |
Clear a video frame.
rows | Frame | |
width | Width of the frame | |
height | Height of the frame | |
rowspan | Rowspan for the luma plane of theframe | |
rowspan_uv | Rowspan for the chroma planes of the frame | |
colormodel | The colormodel of the frame |
This will set the colors to black and alpha (if available) to completely transparent.
Since 1.2.0
void lqt_rows_free | ( | uint8_t ** | rows | ) |
Free a frame allocated by lqt_rows_alloc.
rows | The frame to be freed |
void lqt_set_cmodel | ( | quicktime_t * | file, | |
int | track, | |||
int | colormodel | |||
) |
Set the colormodel for en-/decoding.
file | A quicktime handle | |
track | Track index (starting with 0) | |
colormodel | The colormodel to use. |
Set colormodel of a video track. It's the colormodel, libquicktime will expect for the next call to lqt_encode_video or lqt_decode_video respectively. Before you should call this, you should verify, that this colormodel can be used with quicktime_reads_cmodel (for reading), quicktime_writes_cmodel (for writing) or lqt_get_best_colormodel (for reading and writing).
void lqt_set_row_span | ( | quicktime_t * | file, | |
int | track, | |||
int | row_span | |||
) |
Set the row span for the luma plane.
file | A quicktime handle | |
track | Track index (starting with 0) | |
row_span | The row span for the luma plane |
This sets the row_span, which will be used for the next en-/decode calls (see lqt_rows_alloc ).
void lqt_set_row_span_uv | ( | quicktime_t * | file, | |
int | track, | |||
int | row_span_uv | |||
) |
Set the row span for the chroma planes.
file | A quicktime handle | |
track | Track index (starting with 0) | |
row_span_uv | The row span for the chroma planes |
This sets the row_span, which will be used for the next en-/decode calls (see lqt_rows_alloc ).