@ -227,10 +227,10 @@ static av_cold int vp8_free(AVCodecContext *avctx)
return 0 ;
}
static av_cold int vp8_init ( AVCodecContext * avctx )
static av_cold int vpx_init ( AVCodecContext * avctx ,
const struct vpx_codec_iface * iface )
{
VP8Context * ctx = avctx - > priv_data ;
const struct vpx_codec_iface * iface = & vpx_codec_vp8_cx_algo ;
struct vpx_codec_enc_cfg enccfg ;
int res ;
@ -608,13 +608,6 @@ static const AVOption options[] = {
{ NULL }
} ;
static const AVClass class = {
. class_name = " libvpx encoder " ,
. item_name = av_default_item_name ,
. option = options ,
. version = LIBAVUTIL_VERSION_INT ,
} ;
static const AVCodecDefault defaults [ ] = {
{ " qmin " , " -1 " } ,
{ " qmax " , " -1 " } ,
@ -623,7 +616,20 @@ static const AVCodecDefault defaults[] = {
{ NULL } ,
} ;
AVCodec ff_libvpx_encoder = {
# if CONFIG_LIBVPX_VP8_ENCODER
static av_cold int vp8_init ( AVCodecContext * avctx )
{
return vpx_init ( avctx , & vpx_codec_vp8_cx_algo ) ;
}
static const AVClass class_vp8 = {
. class_name = " libvpx encoder " ,
. item_name = av_default_item_name ,
. option = options ,
. version = LIBAVUTIL_VERSION_INT ,
} ;
AVCodec ff_libvpx_vp8_encoder = {
. name = " libvpx " ,
. type = AVMEDIA_TYPE_VIDEO ,
. id = AV_CODEC_ID_VP8 ,
@ -634,6 +640,36 @@ AVCodec ff_libvpx_encoder = {
. capabilities = CODEC_CAP_DELAY | CODEC_CAP_AUTO_THREADS ,
. pix_fmts = ( const enum AVPixelFormat [ ] ) { AV_PIX_FMT_YUV420P , AV_PIX_FMT_NONE } ,
. long_name = NULL_IF_CONFIG_SMALL ( " libvpx VP8 " ) ,
. priv_class = & class ,
. priv_class = & class_vp8 ,
. defaults = defaults ,
} ;
# endif /* CONFIG_LIBVPX_VP8_ENCODER */
# if CONFIG_LIBVPX_VP9_ENCODER
static av_cold int vp9_init ( AVCodecContext * avctx )
{
return vpx_init ( avctx , & vpx_codec_vp9_cx_algo ) ;
}
static const AVClass class_vp9 = {
. class_name = " libvpx encoder " ,
. item_name = av_default_item_name ,
. option = options ,
. version = LIBAVUTIL_VERSION_INT ,
} ;
AVCodec ff_libvpx_vp9_encoder = {
. name = " libvpx-vp9 " ,
. type = AVMEDIA_TYPE_VIDEO ,
. id = AV_CODEC_ID_VP9 ,
. priv_data_size = sizeof ( VP8Context ) ,
. init = vp9_init ,
. encode2 = vp8_encode ,
. close = vp8_free ,
. capabilities = CODEC_CAP_DELAY | CODEC_CAP_AUTO_THREADS | CODEC_CAP_EXPERIMENTAL ,
. pix_fmts = ( const enum AVPixelFormat [ ] ) { AV_PIX_FMT_YUV420P , AV_PIX_FMT_NONE } ,
. long_name = NULL_IF_CONFIG_SMALL ( " libvpx VP9 " ) ,
. priv_class = & class_vp9 ,
. defaults = defaults ,
} ;
# endif /* CONFIG_LIBVPX_VP9_ENCODER */