44 WebPAnimEncoderOptions enc_options = { { 0 } };
45 WebPAnimEncoderOptionsInit(&enc_options);
48 s->enc = WebPAnimEncoderNew(avctx->
width, avctx->
height, &enc_options);
51 s->prev_frame_pts = -1;
67 WebPData assembled_data = { 0 };
68 ret = WebPAnimEncoderAssemble(
s->enc, &assembled_data);
73 memcpy(
pkt->
data, assembled_data.bytes, assembled_data.size);
81 "WebPAnimEncoderAssemble() failed with error: %d\n",
82 VP8_ENC_ERROR_OUT_OF_MEMORY);
88 WebPPicture *pic =
NULL;
96 ret = WebPAnimEncoderAdd(
s->enc, pic, timestamp_ms, &
s->cc.config);
99 "Encoding WebP frame failed with error: %d\n",
111 WebPPictureFree(pic);
122 WebPAnimEncoderDelete(
s->enc);
135 .
name =
"libwebp_anim",
149 .priv_class = &
class,
151 .wrapper_name =
"libwebp",
static av_cold int init(AVCodecContext *avctx)
int ff_alloc_packet2(AVCodecContext *avctx, AVPacket *avpkt, int64_t size, int64_t min_size)
Check AVPacket size and/or allocate data.
const OptionDef options[]
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
#define AV_PKT_FLAG_KEY
The packet contains a keyframe.
void av_frame_free(AVFrame **frame)
Free the frame and any dynamically allocated objects in it, e.g.
#define AV_LOG_VERBOSE
Detailed information.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
const char * av_default_item_name(void *ptr)
Return the context name.
int av_log_get_level(void)
Get the current log level.
#define LIBAVUTIL_VERSION_INT
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
static enum AVPixelFormat pix_fmts[]
AVCodec ff_libwebp_anim_encoder
static int libwebp_anim_encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *frame, int *got_packet)
static int libwebp_anim_encode_close(AVCodecContext *avctx)
static av_cold int libwebp_anim_encode_init(AVCodecContext *avctx)
int ff_libwebp_get_frame(AVCodecContext *avctx, LibWebPContextCommon *s, const AVFrame *frame, AVFrame **alt_frame_ptr, WebPPicture **pic_ptr)
av_cold int ff_libwebp_encode_init_common(AVCodecContext *avctx)
int ff_libwebp_error_to_averror(int err)
WebP encoder using libwebp: common structs and methods.
static const AVCodecDefault libwebp_defaults[]
AVPixelFormat
Pixel format.
@ AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
@ AV_PIX_FMT_YUVA420P
planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples)
Describe the class of an AVClass context structure.
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
main external API structure.
int width
picture width / height.
AVRational time_base
This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented.
const char * name
Name of the codec implementation.
This structure describes decoded (raw) audio or video data.
int64_t pts
Presentation timestamp in time_base units (time when frame should be shown to user).
This structure stores compressed data.
int flags
A combination of AV_PKT_FLAG values.
int64_t pts
Presentation timestamp in AVStream->time_base units; the time at which the decompressed packet will b...
int64_t dts
Decompression timestamp in AVStream->time_base units; the time at which the packet is decompressed.