Go to the documentation of this file.
25 #ifndef AVCODEC_AVCODEC_INTERNAL_H
26 #define AVCODEC_AVCODEC_INTERNAL_H
106 #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.
enum AVPacketSideDataType packet
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)
int ff_thread_init(struct AVCodecContext *s)
const SideDataMap ff_sd_global_map[]
A map between packet and frame side data types.