FFmpeg
Data Structures | Functions
encode.c File Reference
#include "libavutil/avassert.h"
#include "libavutil/channel_layout.h"
#include "libavutil/emms.h"
#include "libavutil/frame.h"
#include "libavutil/internal.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mem.h"
#include "libavutil/pixdesc.h"
#include "libavutil/samplefmt.h"
#include "avcodec.h"
#include "avcodec_internal.h"
#include "codec_desc.h"
#include "codec_internal.h"
#include "encode.h"
#include "frame_thread_encoder.h"
#include "internal.h"

Go to the source code of this file.

Data Structures

struct   EncodeContext
 

Functions

 
  Check AVPacket size and allocate data. More...
 
  The default callback for AVCodecContext.get_encode_buffer(). More...
 
  Get a buffer for a packet. More...
 
static int  encode_make_refcounted (AVCodecContext *avctx, AVPacket *avpkt)
 
static int  pad_last_frame (AVCodecContext *s, AVFrame *frame, const AVFrame *src, int out_samples)
  Pad last frame with silence. More...
 
int  avcodec_encode_subtitle (AVCodecContext *avctx, uint8_t *buf, int buf_size, const AVSubtitle *sub)
 
  Called by encoders to get the next frame for encoding. More...
 
  Propagate user opaque values from the frame to avctx/pkt as needed. More...
 
int  ff_encode_encode_cb (AVCodecContext *avctx, AVPacket *avpkt, AVFrame *frame, int *got_packet)
 
static int  encode_simple_internal (AVCodecContext *avctx, AVPacket *avpkt)
 
 
 
 
static int  encode_send_frame_internal (AVCodecContext *avctx, const AVFrame *src)
 
  Supply a raw video or audio frame to the encoder. More...
 
  Read encoded data from the encoder. More...
 
static int  encode_preinit_video (AVCodecContext *avctx)
 
static int  encode_preinit_audio (AVCodecContext *avctx)
 
 
  Allocate buffers for a frame. More...
 
  avcodec_receive_frame() implementation for encoders. More...
 
 
 
  Add a CPB properties side data to an encoding context. More...
 
int  ff_encode_add_stats_side_data (AVPacket *pkt, int quality, const int64_t error[], int error_count, enum AVPictureType pict_type)
 
int  ff_check_codec_matrices (AVCodecContext *avctx, unsigned types, uint16_t min, uint16_t max)
 

Function Documentation

encode_ctx()

static EncodeContext* encode_ctx ( AVCodecInternalavci )
static

Definition at line 56 of file encode.c.

Referenced by encode_receive_packet_internal(), encode_send_frame_internal(), ff_encode_preinit(), and pad_last_frame().

ff_alloc_packet()

int ff_alloc_packet ( AVCodecContextavctx,
AVPacketavpkt,
int64_t  size 
)

Check AVPacket size and allocate data.

Encoders of type FF_CODEC_CB_TYPE_ENCODE can use this as a convenience to obtain a big enough buffer for the encoded bitstream.

Parameters
avctx the AVCodecContext of the encoder
avpkt The AVPacket: on success, avpkt->data will point to a buffer of size at least size; the packet will not be refcounted. This packet must be initially blank.
size an upper bound of the size of the packet to encode
Returns
non negative on success, negative error code on failure

Definition at line 61 of file encode.c.

Referenced by aac_encode_frame(), alac_encode_frame(), amr_wb_encode_frame(), cfhd_encode_frame(), cinepak_encode_frame(), dxv_encode(), encode_frame(), encode_png(), encode_superframe(), ff_mpv_encode_picture(), ffat_encode(), flashsv2_encode_frame(), flashsv_encode_frame(), gif_encode_frame(), hap_encode(), ilbc_encode_frame(), libopenjpeg_encode_frame(), libopus_encode(), ljpeg_encode_frame(), mlp_encode_frame(), msrle_encode_frame(), opus_encode_frame(), pcx_encode_frame(), prores_encode_frame(), qoi_encode_frame(), qtrle_encode_frame(), roq_encode_frame(), rpza_encode_frame(), smc_encode_frame(), sunrast_encode_frame(), svq1_encode_frame(), targa_encode_frame(), tta_encode_frame(), twolame_encode_frame(), utvideo_encode_frame(), vorbis_encode_frame(), wavpack_encode_frame(), xbm_encode_frame(), and xvid_encode_frame().

ff_get_encode_buffer()

int ff_get_encode_buffer ( AVCodecContextavctx,
AVPacketavpkt,
int64_t  size,
int  flags 
)

Get a buffer for a packet.

This is a wrapper around AVCodecContext.get_encode_buffer() and should be used instead calling get_encode_buffer() directly.

Definition at line 105 of file encode.c.

Referenced by a64multi_encode_frame(), adx_encode_frame(), amf_copy_buffer(), aptx_encode_frame(), avui_encode_frame(), bmp_encode_frame(), cng_encode_frame(), d3d12va_encode_get_coded_data(), dfpwm_enc_frame(), dnxhd_encode_picture(), dvvideo_encode_frame(), encode_apng(), encode_frame(), encode_make_refcounted(), encode_nals(), encode_picture_ls(), encode_yuv422p10(), ff_ac3_encode_frame(), fits_encode_frame(), flac_encode_frame(), g723_1_encode_frame(), get_packet(), hdr_encode_frame(), libcodec2_encode(), libgsm_encode_frame(), libjxl_anim_encode_frame(), libjxl_encode_frame(), libkvazaar_encode(), liblc3_encode(), liboapve_encode(), librav1e_receive_packet(), libshine_encode_frame(), libvorbis_encode_frame(), libwebp_anim_encode_frame(), libwebp_encode_frame(), libx265_encode_frame(), libxeve_encode(), magy_encode_frame(), mediacodec_receive(), mf_sample_to_avpacket(), mp3lame_encode_frame(), mpa_encode_frame(), oh_encode_output_packet(), pam_encode_frame(), pcm_bluray_encode_frame(), pcm_dvd_encode_frame(), pcm_encode_frame(), pnm_encode_frame(), process_output_surface(), ra144_encode_frame(), raw_encode(), roq_dpcm_encode_frame(), s302m_encode2_frame(), sbc_encode_frame(), storeframe(), svc_encode_frame(), v308_encode_frame(), v408_encode_frame(), v410_encode_frame(), vaapi_encode_get_coded_data(), vaapi_encode_output(), vbn_encode(), vtenc_cm_to_avpacket(), vulkan_encode_output(), vvenc_frame(), wbmp_encode_frame(), xavs2_encode_frame(), XAVS_frame(), xface_encode_frame(), xwd_encode_frame(), y41p_encode_frame(), and yuv4_encode_frame().

encode_make_refcounted()

static int encode_make_refcounted ( AVCodecContextavctx,
AVPacketavpkt 
)
static

Definition at line 136 of file encode.c.

Referenced by ff_encode_encode_cb().

pad_last_frame()

static int pad_last_frame ( AVCodecContexts,
AVFrameframe,
const AVFramesrc,
int  out_samples 
)
static

Pad last frame with silence.

Definition at line 156 of file encode.c.

Referenced by encode_send_frame_internal().

ff_encode_get_frame()

int ff_encode_get_frame ( AVCodecContextavctx,
AVFrameframe 
)

Called by encoders to get the next frame for encoding.

Parameters
frame An empty frame to be filled with data.
Returns
0 if a new reference has been successfully written to frame AVERROR(EAGAIN) if no data is currently available AVERROR_EOF if end of stream has been reached, so no more data will be available

Definition at line 204 of file encode.c.

Referenced by eb_receive_packet(), encode_simple_internal(), ff_amf_receive_packet(), ff_hw_base_encode_receive_packet(), ff_nvenc_receive_packet(), libjxl_anim_encode_frame(), librav1e_receive_packet(), mediacodec_encode(), mf_receive_packet(), oh_encode_receive(), v4l2_receive_packet(), and vulkan_encode_ffv1_receive_packet().

ff_encode_reordered_opaque()

int ff_encode_reordered_opaque ( AVCodecContextavctx,
AVPacketpkt,
const AVFrameframe 
)

Propagate user opaque values from the frame to avctx/pkt as needed.

Definition at line 219 of file encode.c.

Referenced by encode_apng(), encode_frame(), ff_encode_encode_cb(), and ff_mpv_encode_picture().

ff_encode_encode_cb()

int ff_encode_encode_cb ( AVCodecContextavctx,
AVPacketavpkt,
AVFrameframe,
int *  got_packet 
)

Definition at line 232 of file encode.c.

Referenced by encode_simple_internal(), and worker().

encode_simple_internal()

static int encode_simple_internal ( AVCodecContextavctx,
AVPacketavpkt 
)
static

Definition at line 289 of file encode.c.

Referenced by encode_simple_receive_packet().

encode_simple_receive_packet()

static int encode_simple_receive_packet ( AVCodecContextavctx,
AVPacketavpkt 
)
static

Definition at line 333 of file encode.c.

Referenced by encode_receive_packet_internal().

encode_receive_packet_internal()

static int encode_receive_packet_internal ( AVCodecContextavctx,
AVPacketavpkt 
)
static

Definition at line 346 of file encode.c.

Referenced by avcodec_receive_packet(), and avcodec_send_frame().

encode_generate_icc_profile()

static int encode_generate_icc_profile ( av_unused AVCodecContextc,
av_unused AVFramef 
)
static

Definition at line 421 of file encode.c.

Referenced by encode_send_frame_internal().

encode_send_frame_internal()

static int encode_send_frame_internal ( AVCodecContextavctx,
const AVFramesrc 
)
static

Definition at line 427 of file encode.c.

Referenced by avcodec_send_frame().

encode_preinit_video()

static int encode_preinit_video ( AVCodecContextavctx )
static

Definition at line 544 of file encode.c.

Referenced by ff_encode_preinit().

encode_preinit_audio()

static int encode_preinit_audio ( AVCodecContextavctx )
static

Definition at line 647 of file encode.c.

Referenced by ff_encode_preinit().

ff_encode_preinit()

int ff_encode_preinit ( AVCodecContextavctx )

Definition at line 746 of file encode.c.

Referenced by avcodec_open2().

ff_encode_alloc_frame()

int ff_encode_alloc_frame ( AVCodecContextavctx,
AVFrameframe 
)

Allocate buffers for a frame.

Encoder equivalent to ff_get_buffer().

Definition at line 837 of file encode.c.

Referenced by get_encode_buffer(), librav1e_receive_packet(), prepare_picture(), roq_encode_frame(), and svq1_encode_init().

ff_encode_receive_frame()

int ff_encode_receive_frame ( AVCodecContextavctx,
AVFrameframe 
)

avcodec_receive_frame() implementation for encoders.

Definition at line 859 of file encode.c.

Referenced by avcodec_receive_frame().

ff_encode_flush_buffers()

void ff_encode_flush_buffers ( AVCodecContextavctx )

Definition at line 872 of file encode.c.

Referenced by avcodec_flush_buffers().

ff_encode_internal_alloc()

AVCodecInternal* ff_encode_internal_alloc ( void  )

Definition at line 882 of file encode.c.

Referenced by avcodec_open2().

ff_encode_add_cpb_side_data()

AVCPBProperties* ff_encode_add_cpb_side_data ( AVCodecContextavctx )

Add a CPB properties side data to an encoding context.

Definition at line 887 of file encode.c.

Referenced by aac_encode_init(), aom_init(), config_enc_params(), ff_mpv_encode_init(), libx265_encode_init(), nvenc_setup_encoder(), qsv_retrieve_enc_params(), svc_encode_init(), vpx_init(), and X264_init().

ff_encode_add_stats_side_data()

int ff_encode_add_stats_side_data ( AVPacketpkt,
int  quality,
const int64_t  error[],
int  error_count,
enum AVPictureType  pict_type 
)

Definition at line 918 of file encode.c.

Referenced by dnxhd_encode_picture(), eb_receive_packet(), encode_frame(), ff_mpv_encode_picture(), ff_qsv_encode(), libkvazaar_encode(), liboapve_encode(), libx265_encode_frame(), libxeve_encode(), process_output_surface(), storeframe(), svq1_encode_frame(), X264_frame(), XAVS_frame(), and xvid_encode_frame().

ff_check_codec_matrices()

int ff_check_codec_matrices ( AVCodecContextavctx,
unsigned  types,
uint16_t  min,
uint16_t  max 
)

Definition at line 943 of file encode.c.

Referenced by encode_picture(), init_matrices(), and xvid_encode_init().


Generated on Tue Nov 18 2025 19:23:53 for FFmpeg by   doxygen 1.8.17

AltStyle によって変換されたページ (->オリジナル) /