44 WebPAnimEncoderOptions enc_options = { { 0 } };
45 WebPAnimEncoderOptionsInit(&enc_options);
48 s->
enc = WebPAnimEncoderNew(avctx->
width, avctx->
height, &enc_options);
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,
AVCodec ff_libwebp_anim_encoder
This structure describes decoded (raw) audio or video data.
static int libwebp_anim_encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *frame, int *got_packet)
#define LIBAVUTIL_VERSION_INT
static av_cold int init(AVCodecContext *avctx)
AVRational time_base
This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented...
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples)
static av_cold int end(AVCodecContext *avctx)
int64_t pts
Presentation timestamp in time_base units (time when frame should be shown to user).
#define AV_LOG_VERBOSE
Detailed information.
const OptionDef options[]
#define AV_PKT_FLAG_KEY
The packet contains a keyframe.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
WebP encoder using libwebp: common structs and methods.
void av_frame_free(AVFrame **frame)
Free the frame and any dynamically allocated objects in it, e.g.
static av_cold int libwebp_anim_encode_init(AVCodecContext *avctx)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
int av_log_get_level(void)
Get the current log level.
const char * name
Name of the codec implementation.
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 flags
A combination of AV_PKT_FLAG values.
int width
picture width / height.
static const AVCodecDefault libwebp_defaults[]
int ff_libwebp_error_to_averror(int err)
main external API structure.
Describe the class of an AVClass context structure.
int ff_alloc_packet2(AVCodecContext *avctx, AVPacket *avpkt, int64_t size, int64_t min_size)
Check AVPacket size and/or allocate data.
static enum AVPixelFormat pix_fmts[]
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
static int libwebp_anim_encode_close(AVCodecContext *avctx)
int64_t dts
Decompression timestamp in AVStream->time_base units; the time at which the packet is decompressed...
AVPixelFormat
Pixel format.
This structure stores compressed data.
int64_t pts
Presentation timestamp in AVStream->time_base units; the time at which the decompressed packet will b...