libquicktime
Modules | Enumerations | Functions
Video

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.
 

Detailed Description

Video related definitions and functions.

Enumeration Type Documentation

interlace modes

This is the interlace mode of a video track. Read it with lqt_get_interlace_mode .

Enumerator:
LQT_INTERLACE_NONE 

No interlacing (= progressive)

LQT_INTERLACE_TOP_FIRST 

Top field first

LQT_INTERLACE_BOTTOM_FIRST 

Bottom field first

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.

Enumerator:
LQT_CHROMA_PLACEMENT_DEFAULT 

MPEG-1, JPEG or non 4:2:0

LQT_CHROMA_PLACEMENT_MPEG2 

MPEG-2

LQT_CHROMA_PLACEMENT_DVPAL 

DV PAL

Function Documentation

void quicktime_set_cmodel ( quicktime_t file,
int  colormodel 
)

Set the colormodel for en-/decoding.

Parameters
fileA quicktime handle
colormodelThe 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.

Parameters
fileA quicktime handle
row_spanThe 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.

Parameters
fileA quicktime handle
trackTrack index (starting with 0)
keyShort name of the parameter
valueParameter 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.

Parameters
modeAn interlace mode
Returns
A description of the interlace mode
const char* lqt_chroma_placement_to_string ( lqt_chroma_placement_t  chroma_placement)

Convert a chroma placement to a human readable string.

Parameters
chroma_placementA chroma placement
Returns
A description of the 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.

Parameters
fileA quicktime handle
trackTrack index (starting with 0)
supportedAn array with supported colormodels.
Returns
The best colormodel

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.

Parameters
fileA quicktime handle
trackTrack index (starting with 0)
Returns
The colormodel used for en-/decode functions.

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.

Parameters
widthThe width of the frame
heightThe height of the frame
colormodelThe colormodel of the frame (see Color handling).
rowspanSpecifies 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_uvSpecifies 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.
Returns
An array of pointers to be passed to any of the en-/decoding functions.

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.

Parameters
out_rowsDestination frame
in_rowsSource frame
widthWidth of the frame
heightHeight of the frame
in_rowspanRowspan for the luma plane of the input frame
in_rowspan_uvRowspan for the chroma planes of the input frame
out_rowspanRowspan for the luma plane of the output frame
out_rowspan_uvRowspan for the chroma planes of the output frame
colormodelThe 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.

Parameters
out_rowsDestination frame
in_rowsSource frame
widthWidth of the frame
heightHeight of the frame
in_rowspanRowspan for the luma plane of the input frame
in_rowspan_uvRowspan for the chroma planes of the input frame
out_rowspanRowspan for the luma plane of the output frame
out_rowspan_uvRowspan for the chroma planes of the output frame
colormodelThe colormodel of the frames
src_xX offset in the source frame
src_yY offset in the source frame
dst_xX offset in the destination frame
dst_yY 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.

Parameters
rowsFrame
widthWidth of the frame
heightHeight of the frame
rowspanRowspan for the luma plane of theframe
rowspan_uvRowspan for the chroma planes of the frame
colormodelThe 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.

Parameters
rowsThe frame to be freed
void lqt_set_cmodel ( quicktime_t file,
int  track,
int  colormodel 
)

Set the colormodel for en-/decoding.

Parameters
fileA quicktime handle
trackTrack index (starting with 0)
colormodelThe 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.

Parameters
fileA quicktime handle
trackTrack index (starting with 0)
row_spanThe 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.

Parameters
fileA quicktime handle
trackTrack index (starting with 0)
row_span_uvThe 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 ).