FFmpeg
|
Go to the source code of this file.
Data Structures | |
struct | FFCodecDefault |
struct | FFCodec |
Macros | |
#define | FF_CODEC_CAP_NOT_INIT_THREADSAFE (1 << 0) |
The codec is not known to be init-threadsafe (i.e. More... | |
#define | FF_CODEC_CAP_INIT_CLEANUP (1 << 1) |
The codec allows calling the close function for deallocation even if the init function returned a failure. More... | |
#define | FF_CODEC_CAP_SETS_PKT_DTS (1 << 2) |
Decoders marked with FF_CODEC_CAP_SETS_PKT_DTS want to set AVFrame.pkt_dts manually. More... | |
#define | FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM (1 << 3) |
The decoder extracts and fills its parameters even if the frame is skipped due to the skip_frame setting. More... | |
#define | FF_CODEC_CAP_EXPORTS_CROPPING (1 << 4) |
The decoder sets the cropping fields in the output frames manually. More... | |
#define | FF_CODEC_CAP_SLICE_THREAD_HAS_MF (1 << 5) |
Codec initializes slice-based threading with a main function. More... | |
#define | FF_CODEC_CAP_USES_PROGRESSFRAMES (1 << 6) |
The decoder might make use of the ProgressFrame API. More... | |
#define | FF_CODEC_CAP_AUTO_THREADS (1 << 7) |
Codec handles avctx->thread_count == 0 (auto) internally. More... | |
#define | FF_CODEC_CAP_SETS_FRAME_PROPS (1 << 8) |
Codec handles output frame properties internally instead of letting the internal logic derive them from AVCodecInternal.last_pkt_props. More... | |
#define | FF_CODEC_CAP_ICC_PROFILES (1 << 9) |
Codec supports embedded ICC profiles (AV_FRAME_DATA_ICC_PROFILE). More... | |
#define | FF_CODEC_CAP_EOF_FLUSH (1 << 10) |
The encoder has AV_CODEC_CAP_DELAY set, but does not actually have delay - it only wants to be flushed at the end to update some context variables (e.g. More... | |
#define | FF_CODEC_TAGS_END -1 |
FFCodec.codec_tags termination value. More... | |
#define | CODEC_LONG_NAME(str) .p.long_name = str |
#define | UPDATE_THREAD_CONTEXT(func) .update_thread_context = NULL |
#define | UPDATE_THREAD_CONTEXT_FOR_USER(func) .update_thread_context_for_user = NULL |
#define | FF_CODEC_DECODE_CB(func) |
#define | FF_CODEC_DECODE_SUB_CB(func) |
#define | FF_CODEC_RECEIVE_FRAME_CB(func) |
#define | FF_CODEC_ENCODE_CB(func) |
#define | FF_CODEC_ENCODE_SUB_CB(func) |
#define | FF_CODEC_RECEIVE_PACKET_CB(func) |
#define | DISABLE_DEPRECATION_WARNINGS |
#define | ENABLE_DEPRECATION_WARNINGS |
#define | CODEC_CH_LAYOUTS(...) CODEC_CH_LAYOUTS_ARRAY(((const AVChannelLayout[]) { __VA_ARGS__, { 0 } })) |
#define | CODEC_CH_LAYOUTS_ARRAY(array) CODEC_ARRAY(ch_layouts, (array)) |
#define | CODEC_SAMPLERATES(...) CODEC_SAMPLERATES_ARRAY(((const int[]) { __VA_ARGS__, 0 })) |
#define | CODEC_SAMPLERATES_ARRAY(array) CODEC_ARRAY(supported_samplerates, (array)) |
#define | CODEC_SAMPLEFMTS(...) CODEC_SAMPLEFMTS_ARRAY(((const enum AVSampleFormat[]) { __VA_ARGS__, AV_SAMPLE_FMT_NONE })) |
#define | CODEC_SAMPLEFMTS_ARRAY(array) CODEC_ARRAY(sample_fmts, (array)) |
#define | CODEC_FRAMERATES(...) CODEC_FRAMERATES_ARRAY(((const AVRational[]) { __VA_ARGS__, { 0, 0 } })) |
#define | CODEC_FRAMERATES_ARRAY(array) CODEC_ARRAY(supported_framerates, (array)) |
#define | CODEC_PIXFMTS(...) CODEC_PIXFMTS_ARRAY(((const enum AVPixelFormat[]) { __VA_ARGS__, AV_PIX_FMT_NONE })) |
#define | CODEC_PIXFMTS_ARRAY(array) CODEC_ARRAY(pix_fmts, (array)) |
#define | CODEC_ARRAY(field, array) |
Functions | |
static const av_always_inline FFCodec * | ffcodec (const AVCodec *codec) |
static int | ff_codec_is_encoder (const AVCodec *avcodec) |
Internal version of av_codec_is_encoder(). More... | |
static int | ff_codec_is_decoder (const AVCodec *avcodec) |
Internal version of av_codec_is_decoder(). More... | |
int | ff_default_get_supported_config (const struct AVCodecContext *avctx, const AVCodec *codec, enum AVCodecConfig config, unsigned flags, const void **out_configs, int *out_num_configs) |
Default implementation for avcodec_get_supported_config(). More... | |
#define FF_CODEC_CAP_NOT_INIT_THREADSAFE (1 << 0) |
The codec is not known to be init-threadsafe (i.e.
it might be unsafe to initialize this codec and another codec concurrently, typically because the codec calls external APIs that are not known to be thread-safe). Therefore calling the codec's init function needs to be guarded with a lock.
Definition at line 34 of file codec_internal.h.
#define FF_CODEC_CAP_INIT_CLEANUP (1 << 1) |
The codec allows calling the close function for deallocation even if the init function returned a failure.
Without this capability flag, a codec does such cleanup internally when returning failures from the init function and does not expect the close function to be called at all.
Definition at line 42 of file codec_internal.h.
#define FF_CODEC_CAP_SETS_PKT_DTS (1 << 2) |
Decoders marked with FF_CODEC_CAP_SETS_PKT_DTS want to set AVFrame.pkt_dts manually.
If the flag is set, decode.c won't overwrite this field. If it's unset, decode.c tries to guess the pkt_dts field from the input AVPacket.
Definition at line 49 of file codec_internal.h.
#define FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM (1 << 3) |
The decoder extracts and fills its parameters even if the frame is skipped due to the skip_frame setting.
Definition at line 54 of file codec_internal.h.
#define FF_CODEC_CAP_EXPORTS_CROPPING (1 << 4) |
The decoder sets the cropping fields in the output frames manually.
If this cap is set, the generic code will initialize output frame dimensions to coded rather than display values.
Definition at line 60 of file codec_internal.h.
#define FF_CODEC_CAP_SLICE_THREAD_HAS_MF (1 << 5) |
Codec initializes slice-based threading with a main function.
Definition at line 64 of file codec_internal.h.
#define FF_CODEC_CAP_USES_PROGRESSFRAMES (1 << 6) |
The decoder might make use of the ProgressFrame API.
Definition at line 68 of file codec_internal.h.
#define FF_CODEC_CAP_AUTO_THREADS (1 << 7) |
Codec handles avctx->thread_count == 0 (auto) internally.
Definition at line 72 of file codec_internal.h.
#define FF_CODEC_CAP_SETS_FRAME_PROPS (1 << 8) |
Codec handles output frame properties internally instead of letting the internal logic derive them from AVCodecInternal.last_pkt_props.
Definition at line 77 of file codec_internal.h.
#define FF_CODEC_CAP_ICC_PROFILES (1 << 9) |
Codec supports embedded ICC profiles (AV_FRAME_DATA_ICC_PROFILE).
Definition at line 81 of file codec_internal.h.
#define FF_CODEC_CAP_EOF_FLUSH (1 << 10) |
The encoder has AV_CODEC_CAP_DELAY set, but does not actually have delay - it only wants to be flushed at the end to update some context variables (e.g.
2pass stats) or produce a trailing packet. Besides that it immediately produces exactly one output packet per each input frame, just as no-delay encoders do.
Definition at line 89 of file codec_internal.h.
#define FF_CODEC_TAGS_END -1 |
FFCodec.codec_tags termination value.
Definition at line 94 of file codec_internal.h.
#define CODEC_LONG_NAME | ( | str | ) | .p.long_name = str |
Definition at line 326 of file codec_internal.h.
#define UPDATE_THREAD_CONTEXT | ( | func | ) | .update_thread_context = NULL |
Definition at line 335 of file codec_internal.h.
Definition at line 337 of file codec_internal.h.
#define FF_CODEC_DECODE_CB | ( | func | ) |
Definition at line 341 of file codec_internal.h.
#define FF_CODEC_DECODE_SUB_CB | ( | func | ) |
Definition at line 345 of file codec_internal.h.
#define FF_CODEC_RECEIVE_FRAME_CB | ( | func | ) |
Definition at line 349 of file codec_internal.h.
#define FF_CODEC_ENCODE_CB | ( | func | ) |
Definition at line 353 of file codec_internal.h.
#define FF_CODEC_ENCODE_SUB_CB | ( | func | ) |
Definition at line 357 of file codec_internal.h.
#define FF_CODEC_RECEIVE_PACKET_CB | ( | func | ) |
Definition at line 361 of file codec_internal.h.
#define DISABLE_DEPRECATION_WARNINGS |
Definition at line 370 of file codec_internal.h.
#define ENABLE_DEPRECATION_WARNINGS |
Definition at line 371 of file codec_internal.h.
#define CODEC_CH_LAYOUTS | ( | ... | ) | CODEC_CH_LAYOUTS_ARRAY(((const AVChannelLayout[]) { __VA_ARGS__, { 0 } })) |
Definition at line 374 of file codec_internal.h.
#define CODEC_CH_LAYOUTS_ARRAY | ( | array | ) | CODEC_ARRAY(ch_layouts, (array)) |
Definition at line 375 of file codec_internal.h.
#define CODEC_SAMPLERATES | ( | ... | ) | CODEC_SAMPLERATES_ARRAY(((const int[]) { __VA_ARGS__, 0 })) |
Definition at line 377 of file codec_internal.h.
#define CODEC_SAMPLERATES_ARRAY | ( | array | ) | CODEC_ARRAY(supported_samplerates, (array)) |
Definition at line 378 of file codec_internal.h.
#define CODEC_SAMPLEFMTS | ( | ... | ) | CODEC_SAMPLEFMTS_ARRAY(((const enum AVSampleFormat[]) { __VA_ARGS__, AV_SAMPLE_FMT_NONE })) |
Definition at line 380 of file codec_internal.h.
#define CODEC_SAMPLEFMTS_ARRAY | ( | array | ) | CODEC_ARRAY(sample_fmts, (array)) |
Definition at line 381 of file codec_internal.h.
#define CODEC_FRAMERATES | ( | ... | ) | CODEC_FRAMERATES_ARRAY(((const AVRational[]) { __VA_ARGS__, { 0, 0 } })) |
Definition at line 383 of file codec_internal.h.
#define CODEC_FRAMERATES_ARRAY | ( | array | ) | CODEC_ARRAY(supported_framerates, (array)) |
Definition at line 384 of file codec_internal.h.
#define CODEC_PIXFMTS | ( | ... | ) | CODEC_PIXFMTS_ARRAY(((const enum AVPixelFormat[]) { __VA_ARGS__, AV_PIX_FMT_NONE })) |
Definition at line 386 of file codec_internal.h.
#define CODEC_PIXFMTS_ARRAY | ( | array | ) | CODEC_ARRAY(pix_fmts, (array)) |
Definition at line 387 of file codec_internal.h.
Definition at line 389 of file codec_internal.h.
enum FFCodecType |
Enumerator | |
---|---|
FF_CODEC_CB_TYPE_DECODE | |
FF_CODEC_CB_TYPE_DECODE_SUB | |
FF_CODEC_CB_TYPE_RECEIVE_FRAME | |
FF_CODEC_CB_TYPE_ENCODE | |
FF_CODEC_CB_TYPE_ENCODE_SUB | |
FF_CODEC_CB_TYPE_RECEIVE_PACKET |
Definition at line 106 of file codec_internal.h.
|
static |
Definition at line 284 of file codec_internal.h.
Referenced by av_codec_is_decoder(), av_codec_is_encoder(), avcodec_decode_subtitle2(), avcodec_default_get_format(), avcodec_encode_subtitle(), avcodec_flush_buffers(), avcodec_get_hw_config(), avcodec_get_hw_frames_parameters(), avcodec_get_supported_config(), avcodec_open2(), AVCodecInitialize(), avpriv_codec_get_cap_skip_frame_fill_param(), cuvid_decode_init(), decode_bsfs_init(), decode_get_packet(), decode_simple_internal(), encode_receive_packet_internal(), encode_simple_internal(), ff_codec_close(), ff_codec_is_decoder(), ff_codec_is_encoder(), ff_decode_frame_props(), ff_decode_preinit(), ff_decode_receive_frame_internal(), ff_default_get_supported_config(), ff_encode_encode_cb(), ff_encode_preinit(), ff_frame_thread_free(), ff_frame_thread_init(), ff_get_buffer(), ff_get_format(), ff_slice_thread_init(), ff_thread_can_start_frame(), frame_worker_thread(), init_context_defaults(), main(), thread_get_buffer_internal(), update_context_from_thread(), and validate_thread_parameters().
|
inlinestatic |
Internal version of av_codec_is_encoder().
Must not be called with a NULL AVCodec*.
Definition at line 293 of file codec_internal.h.
Referenced by avcodec_find_encoder(), avcodec_find_encoder_by_name(), and avcodec_open2().
|
inlinestatic |
Internal version of av_codec_is_decoder().
Must not be called with a NULL AVCodec*.
Definition at line 303 of file codec_internal.h.
Referenced by avcodec_find_decoder(), avcodec_find_decoder_by_name(), avcodec_open2(), avcodec_receive_frame(), ff_get_buffer(), and get_category().
int ff_default_get_supported_config | ( | const struct AVCodecContext * | avctx, |
const AVCodec * | codec, | ||
enum AVCodecConfig | config, | ||
unsigned | flags, | ||
const void ** | out_configs, | ||
int * | out_num_configs | ||
) |
Default implementation for avcodec_get_supported_config().
Will return the relevant fields from AVCodec if present, or NULL otherwise.
For AVCODEC_CONFIG_COLOR_RANGE, the output will depend on the bitmask in FFCodec.color_ranges, with a value of 0 returning NULL.