Go to the documentation of this file.
25 #ifndef AVCODEC_AVCODEC_INTERNAL_H
26 #define AVCODEC_AVCODEC_INTERNAL_H
110 #endif // AVCODEC_AVCODEC_INTERNAL_H
int ff_thread_receive_frame(struct AVCodecContext *avctx, AVFrame *frame)
Submit available packets for decoding to worker threads, return a decoded frame if available.
void ff_thread_free(struct AVCodecContext *s)
int ff_decode_receive_frame(struct AVCodecContext *avctx, struct AVFrame *frame)
avcodec_receive_frame() implementation for decoders.
void ff_thread_flush(struct AVCodecContext *avctx)
Wait for decoding threads to finish and reset internal state.
This structure describes decoded (raw) audio or video data.
int ff_encode_preinit(struct AVCodecContext *avctx)
struct AVCodecInternal * ff_encode_internal_alloc(void)
void ff_encode_flush_buffers(struct AVCodecContext *avctx)
int ff_decode_preinit(struct AVCodecContext *avctx)
Perform decoder initialization and validation.
void ff_decode_internal_sync(struct AVCodecContext *dst, const struct AVCodecContext *src)
enum AVPacketSideDataType packet
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
enum AVFrameSideDataType frame
int ff_decode_receive_frame_internal(struct AVCodecContext *avctx, AVFrame *frame)
Do the actual decoding and obtain a decoded frame from the decoder, if available.
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a frame
struct AVCodecInternal * ff_decode_internal_alloc(void)
void ff_decode_flush_buffers(struct AVCodecContext *avctx)
main external API structure.
int ff_thread_get_packet(struct AVCodecContext *avctx, AVPacket *pkt)
Get a packet for decoding.
This structure stores compressed data.
int ff_encode_receive_frame(struct AVCodecContext *avctx, struct AVFrame *frame)
avcodec_receive_frame() implementation for encoders.
void ff_codec_close(struct AVCodecContext *avctx)
void ff_decode_internal_uninit(struct AVCodecContext *avctx)
int ff_thread_init(struct AVCodecContext *s)
const SideDataMap ff_sd_global_map[]
A map between packet and frame side data types.