Commit 2bf8fb58 authored by John Koleszar's avatar John Koleszar

remove deprecated pre-v0.9.0 API

Remove a bunch of compatibility code dating back to before the initial
libvpx release.

Change-Id: Ie50b81e7d665955bec3d692cd6521c9583e85ca3
parent f039a85f
......@@ -21,9 +21,6 @@ CODEC_DOX := mainpage.dox \
usage_dx.dox \
# Other doxy files sourced in Markdown
TXT_DOX-$(CONFIG_VP8) += vp8_api1_migration.dox
vp8_api1_migration.dox.DESC = VP8 API 1.x Migration
TXT_DOX = $(call enabled,TXT_DOX)
%.dox: %.txt
......
......@@ -35,9 +35,9 @@ ifeq ($(CONFIG_VP8_ENCODER),yes)
include $(SRC_PATH_BARE)/$(VP8_PREFIX)vp8cx.mk
CODEC_SRCS-yes += $(addprefix $(VP8_PREFIX),$(call enabled,VP8_CX_SRCS))
CODEC_EXPORTS-yes += $(addprefix $(VP8_PREFIX),$(VP8_CX_EXPORTS))
CODEC_SRCS-yes += $(VP8_PREFIX)vp8cx.mk vpx/vp8.h vpx/vp8cx.h vpx/vp8e.h
CODEC_SRCS-yes += $(VP8_PREFIX)vp8cx.mk vpx/vp8.h vpx/vp8cx.h
CODEC_SRCS-$(ARCH_ARM) += $(VP8_PREFIX)vp8cx_arm.mk
INSTALL-LIBS-yes += include/vpx/vp8.h include/vpx/vp8e.h include/vpx/vp8cx.h
INSTALL-LIBS-yes += include/vpx/vp8.h include/vpx/vp8cx.h
INSTALL_MAPS += include/vpx/% $(SRC_PATH_BARE)/$(VP8_PREFIX)/%
CODEC_DOC_SRCS += vpx/vp8.h vpx/vp8cx.h
CODEC_DOC_SECTIONS += vp8 vp8_encoder
......@@ -115,7 +115,6 @@ INSTALL-LIBS-yes += include/vpx/vpx_integer.h
INSTALL-LIBS-yes += include/vpx/vpx_codec_impl_top.h
INSTALL-LIBS-yes += include/vpx/vpx_codec_impl_bottom.h
INSTALL-LIBS-$(CONFIG_DECODERS) += include/vpx/vpx_decoder.h
INSTALL-LIBS-$(CONFIG_DECODERS) += include/vpx/vpx_decoder_compat.h
INSTALL-LIBS-$(CONFIG_ENCODERS) += include/vpx/vpx_encoder.h
ifeq ($(CONFIG_EXTERNAL_BUILD),yes)
ifeq ($(CONFIG_MSVS),yes)
......
......@@ -13,17 +13,12 @@
#include "vpx/internal/vpx_codec_internal.h"
#include "vpx_version.h"
#include "vp8/encoder/onyx_int.h"
#include "vpx/vp8e.h"
#include "vpx/vp8cx.h"
#include "vp8/encoder/firstpass.h"
#include "vp8/common/onyx.h"
#include <stdlib.h>
#include <string.h>
/* This value is a sentinel for determining whether the user has set a mode
* directly through the deprecated VP8E_SET_ENCODING_MODE control.
*/
#define NO_MODE_SET 255
struct vp8_extracfg
{
struct vpx_codec_pkt_list *pkt_list;
......@@ -94,7 +89,6 @@ struct vpx_codec_alg_priv
unsigned int next_frame_flag;
vp8_postproc_cfg_t preview_ppcfg;
vpx_codec_pkt_list_decl(64) pkt_list; // changed to accomendate the maximum number of lagged frames allowed
int deprecated_mode;
unsigned int fixed_kf_cntr;
};
......@@ -516,7 +510,6 @@ static vpx_codec_err_t set_param(vpx_codec_alg_priv_t *ctx,
switch (ctrl_id)
{
MAP(VP8E_SET_ENCODING_MODE, ctx->deprecated_mode);
MAP(VP8E_SET_CPUUSED, xcfg.cpu_used);
MAP(VP8E_SET_ENABLEAUTOALTREF, xcfg.enable_auto_alt_ref);
MAP(VP8E_SET_NOISE_SENSITIVITY, xcfg.noise_sensitivity);
......@@ -571,7 +564,7 @@ static vpx_codec_err_t vp8e_mr_alloc_mem(const vpx_codec_enc_cfg_t *cfg,
static vpx_codec_err_t vp8e_init(vpx_codec_ctx_t *ctx,
vpx_codec_priv_enc_mr_cfg_t *mr_cfg)
{
vpx_codec_err_t res = VPX_DEC_OK;
vpx_codec_err_t res = VPX_CODEC_OK;
struct vpx_codec_alg_priv *priv;
vpx_codec_enc_cfg_t *cfg;
unsigned int i;
......@@ -626,8 +619,6 @@ static vpx_codec_err_t vp8e_init(vpx_codec_ctx_t *ctx,
return VPX_CODEC_MEM_ERROR;
}
priv->deprecated_mode = NO_MODE_SET;
res = validate_config(priv, &priv->cfg, &priv->vp8_cfg, 0);
if (!res)
......@@ -718,19 +709,6 @@ static void pick_quickcompress_mode(vpx_codec_alg_priv_t *ctx,
new_qc = MODE_REALTIME;
#endif
switch (ctx->deprecated_mode)
{
case VP8_BEST_QUALITY_ENCODING:
new_qc = MODE_BESTQUALITY;
break;
case VP8_GOOD_QUALITY_ENCODING:
new_qc = MODE_GOODQUALITY;
break;
case VP8_REAL_TIME_ENCODING:
new_qc = MODE_REALTIME;
break;
}
if (ctx->cfg.g_pass == VPX_RC_FIRST_PASS)
new_qc = MODE_FIRSTPASS;
else if (ctx->cfg.g_pass == VPX_RC_LAST_PASS)
......@@ -1207,7 +1185,6 @@ static vpx_codec_ctrl_fn_map_t vp8e_ctf_maps[] =
{VP8E_SET_ROI_MAP, vp8e_set_roi_map},
{VP8E_SET_ACTIVEMAP, vp8e_set_activemap},
{VP8E_SET_SCALEMODE, vp8e_set_scalemode},
{VP8E_SET_ENCODING_MODE, set_param},
{VP8E_SET_CPUUSED, set_param},
{VP8E_SET_NOISE_SENSITIVITY, set_param},
{VP8E_SET_ENABLEAUTOALTREF, set_param},
......@@ -1318,88 +1295,3 @@ CODEC_INTERFACE(vpx_codec_vp8_cx) =
vp8e_mr_alloc_mem,
} /* encoder functions */
};
/*
* BEGIN BACKWARDS COMPATIBILITY SHIM.
*/
#define FORCE_KEY 2
static vpx_codec_err_t api1_control(vpx_codec_alg_priv_t *ctx,
int ctrl_id,
va_list args)
{
vpx_codec_ctrl_fn_map_t *entry;
switch (ctrl_id)
{
case VP8E_SET_FLUSHFLAG:
/* VP8 sample code did VP8E_SET_FLUSHFLAG followed by
* vpx_codec_get_cx_data() rather than vpx_codec_encode().
*/
return vp8e_encode(ctx, NULL, 0, 0, 0, 0);
case VP8E_SET_FRAMETYPE:
ctx->base.enc.tbd |= FORCE_KEY;
return VPX_CODEC_OK;
}
for (entry = vp8e_ctf_maps; entry && entry->fn; entry++)
{
if (!entry->ctrl_id || entry->ctrl_id == ctrl_id)
{
return entry->fn(ctx, ctrl_id, args);
}
}
return VPX_CODEC_ERROR;
}
static vpx_codec_ctrl_fn_map_t api1_ctrl_maps[] =
{
{0, api1_control},
{ -1, NULL}
};
static vpx_codec_err_t api1_encode(vpx_codec_alg_priv_t *ctx,
const vpx_image_t *img,
vpx_codec_pts_t pts,
unsigned long duration,
vpx_enc_frame_flags_t flags,
unsigned long deadline)
{
int force = ctx->base.enc.tbd;
ctx->base.enc.tbd = 0;
return vp8e_encode
(ctx,
img,
pts,
duration,
flags | ((force & FORCE_KEY) ? VPX_EFLAG_FORCE_KF : 0),
deadline);
}
vpx_codec_iface_t vpx_enc_vp8_algo =
{
"WebM Project VP8 Encoder (Deprecated API)" VERSION_STRING,
VPX_CODEC_INTERNAL_ABI_VERSION,
VPX_CODEC_CAP_ENCODER,
/* vpx_codec_caps_t caps; */
vp8e_init, /* vpx_codec_init_fn_t init; */
vp8e_destroy, /* vpx_codec_destroy_fn_t destroy; */
api1_ctrl_maps, /* vpx_codec_ctrl_fn_map_t *ctrl_maps; */
NOT_IMPLEMENTED, /* vpx_codec_get_mmap_fn_t get_mmap; */
NOT_IMPLEMENTED, /* vpx_codec_set_mmap_fn_t set_mmap; */
{NOT_IMPLEMENTED}, /* decoder functions */
{
vp8e_usage_cfg_map, /* vpx_codec_enc_cfg_map_t peek_si; */
api1_encode, /* vpx_codec_encode_fn_t encode; */
vp8e_get_cxdata, /* vpx_codec_get_cx_data_fn_t frame_get; */
vp8e_set_config,
NOT_IMPLEMENTED,
vp8e_get_preview,
vp8e_mr_alloc_mem,
} /* encoder functions */
};
......@@ -785,33 +785,3 @@ CODEC_INTERFACE(vpx_codec_vp8_dx) =
NOT_IMPLEMENTED
}
};
/*
* BEGIN BACKWARDS COMPATIBILITY SHIM.
*/
vpx_codec_iface_t vpx_codec_vp8_algo =
{
"WebM Project VP8 Decoder (Deprecated API)" VERSION_STRING,
VPX_CODEC_INTERNAL_ABI_VERSION,
VPX_CODEC_CAP_DECODER | VP8_CAP_POSTPROC | VP8_CAP_ERROR_CONCEALMENT,
/* vpx_codec_caps_t caps; */
vp8_init, /* vpx_codec_init_fn_t init; */
vp8_destroy, /* vpx_codec_destroy_fn_t destroy; */
vp8_ctf_maps, /* vpx_codec_ctrl_fn_map_t *ctrl_maps; */
vp8_xma_get_mmap, /* vpx_codec_get_mmap_fn_t get_mmap; */
vp8_xma_set_mmap, /* vpx_codec_set_mmap_fn_t set_mmap; */
{
vp8_peek_si, /* vpx_codec_peek_si_fn_t peek_si; */
vp8_get_si, /* vpx_codec_get_si_fn_t get_si; */
vp8_decode, /* vpx_codec_decode_fn_t decode; */
vp8_get_frame, /* vpx_codec_frame_get_fn_t frame_get; */
},
{ /* encoder functions */
NOT_IMPLEMENTED,
NOT_IMPLEMENTED,
NOT_IMPLEMENTED,
NOT_IMPLEMENTED,
NOT_IMPLEMENTED,
NOT_IMPLEMENTED
}
};
Version 2.x of this library has deprecated or removed a number of interfaces to
the VP8 codec. Where possible, the old interfaces have been left in place in a
deprecated state, and will generate compiler warnings when they are referenced.
All users are encouraged to update their code to the new interfaces as soon as
possible. To assist in this effort, the `VPX_CODEC_DISABLE_COMPAT` symbol can
be #defined to 1 prior to including vpx headers. This will disable the
backwards compatability workarounds and ensure that you are using only the
latest API.
The *TWO-PASS STATISTICS* sections detail the one section of code which is not
backwards compatable and will require code changes.
HEADER FILES
============
The following header files were renamed:
vp8.h -> vp8dx.h
vp8e.h -> vp8cx.h
INTERFACE SYMBOLS
=================
The following interface symbols were renamed:
vpx_codec_vp8_algo -> vpx_codec_vp8_dx_algo
vpx_enc_vp8_algo -> vpx_codec_vp8_cx_algo
TWO-PASS STATISTICS
===================
Two-pass statistics are handled significantly differently. The version 1 API
stored statistics in a file, and the application passed the name of that file
in the `vpx_codec_enc_cfg` structure. In this version, statistics are returned
though the application though the `vpx_codec_get_cx_data()` interface. The
application must concatenate these packets into a contiguous buffer and then
pass that buffer to the encoder through the `vpx_codec_enc_cfg` structure on
the second pass initialization. The application may choose to keep these packets
in memory or write them to disk. Statistics packets are approximately 112 bytes
per frame. See the example code for more detailed examples.
ENCODER CONTROLS
================
Renames
-------
The following controls are duplicated between the encoder and the decoder, but
the encoder unnecessarily introduced unique identifiers for them. These
identifiers were removed in favor of the ones used by the decoder:
VP8E_SET_REFERENCE -> VP8_SET_REFERENCE
VP8E_COPY_REFERENCE -> VP8_COPY_REFERENCE
VP8E_SET_PREVIEWPP -> VP8_SET_POSTPROC
VP8E_SET_FRAMETYPE
------------------
This control was removed in favor of the `flags` parameter to
`vpx_codec_encode()`. Existing code such as:
~~~
vpx_codec_control(&encoder, VP8E_SET_FRAMETYPE, KEY_FRAME);
...
vpx_codec_encode(&encoder, img, pts, 1, 0, 0);
~~~
becomes:
~~~
vpx_codec_encode(&encoder, img, pts, 1, VPX_EFLAG_FORCE_KF,
VPX_DL_REALTIME);
~~~
VP8E_SET_FLUSHFLAG
------------------
Flush is handled by passing `NULL` to the `img` parameter of
`vpx_codec_encode()`. You must do this at least once, regardless of your encoder
configuration. i.e. it's not specific to g_lag_in_frames. This control was
removed.
~~~
while(...) {
...
vpx_codec_encode(&encoder, img, pts, 1, 0, 0);
while( (pkt = vpx_codec_get_cx_data(&encoder, &iter)) ) {
...
}
}
vpx_codec_control(&encoder, VP8E_SET_FLUSHFLAG, 1);
while( (pkt = vpx_codec_get_cx_data(&encoder, &iter)) ) {
...
}
vpx_codec_encode(&encoder, img, pts, 1, 0, 0);
~~~
becomes
~~~
while(new_image && ...) {
...
vpx_codec_encode(&encoder, new_image?img:NULL, pts, 1, 0, 0);
while( (pkt = vpx_codec_get_cx_data(&encoder, &iter)) ) {
...
}
}
~~~
VP8E_SET_ENCODING_MODE
----------------------
This control was removed in favor of the `deadline` parameter to
`vpx_codec_encode()`. There are three macros that can be used to get the
equivalent behavior: VPX_DL_REALTIME, VPX_DL_GOOD_QUALITY,
VPX_DL_BEST_QUALITY. Existing code such as:
~~~
vpx_codec_control(&encoder, VP8E_SET_ENCODING_MODE, VP8_REAL_TIME_ENCODING);
...
vpx_codec_encode(&encoder, img, pts, 1, 0, 0);
~~~
becomes:
~~~
vpx_codec_encode(&encoder, img, pts, 1, 0, VPX_DL_REALTIME);
~~~
VP8E_UPD_ENTROPY
------------------
This control was deprecated in favor of the `flags` parameter to
`vpx_codec_encode()`. Existing code such as:
~~~
vpx_codec_control(&encoder, VP8E_UPD_ENTROPY, 0);
~~~
becomes:
~~~
vpx_codec_encode(&encoder, img, pts, 1, VP8_EFLAG_NO_UPD_ENTROPY,
VPX_DL_REALTIME);
~~~
VP8E_UPD_REFERENCE
------------------
This control was deprecated in favor of the `flags` parameter to
`vpx_codec_encode()`. A set bit on the VP8E_UPD_REFERENCE bitfield is
analogous to setting the VP8_EFLAG_FORCE_* flag. A cleared bit is analogous
to setting the VP8_EFLAG_NO_UPD_* flag. If neither the FORCE or NO_UPD bit
is set, the encoder will make its decision automatically, as usual. Setting
both bits will result in an error being returned. Existing code such as:
~~~
vpx_codec_control(&encoder, VP8E_UPD_REFERENCE,
VP8_LAST_FRAME | VP8_GOLD_FRAME);
vpx_codec_control(&encoder, VP8E_UPD_REFERENCE, 0);
...
vpx_codec_encode(&encoder, img, pts, 1, 0, VPX_DL_REALTIME);
~~~
becomes:
~~~
vpx_codec_encode(&encoder, img, pts, 1, VP8_EFLAG_FORCE_GF,
VPX_DL_REALTIME);
vpx_codec_encode(&encoder, img, pts, 1, VP8_EFLAG_NO_UPD_LAST
| VP8_EFLAG_NO_UPD_GF | VP8_EFLAG_NO_UPD_ARF,
VPX_DL_REALTIME);
~~~
VP8E_USE_REFERENCE
------------------
This control was deprecated in favor of the `flags` parameter to
`vpx_codec_encode()`. A cleared bit on the VP8E_USE_REFERENCE bitfield is
analogous to setting the VP8_EFLAG_NO_REF* flag. A set bit indicates that
the encoder will make its decision automatically, as usual.
Existing code such as:
~~~
vpx_codec_control(&encoder, VP8E_USE_REFERENCE,
VP8_ALTR_FRAME | VP8_GOLD_FRAME);
...
vpx_codec_encode(&encoder, img, pts, 1, 0, VPX_DL_REALTIME);
~~~
becomes
~~~
vpx_codec_encode(&encoder, img, pts, 1, VP8_EFLAG_NO_REF_LAST,
VPX_DL_REALTIME);
~~~
/*
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
/*!\file
* \brief Provides the high level interface to wrap decoder algorithms.
*
*/
#include <stdlib.h>
#include <string.h>
#include "vpx/vpx_decoder.h"
#include "vpx/internal/vpx_codec_internal.h"
#define SAVE_STATUS(ctx,var) (ctx?(ctx->err = var):var)
const char *vpx_dec_iface_name(vpx_dec_iface_t *iface)
{
return vpx_codec_iface_name((vpx_codec_iface_t *)iface);
}
const char *vpx_dec_err_to_string(vpx_dec_err_t err)
{
return vpx_codec_err_to_string(err);
}
const char *vpx_dec_error(vpx_dec_ctx_t *ctx)
{
return vpx_codec_error((vpx_codec_ctx_t *)ctx);
}
const char *vpx_dec_error_detail(vpx_dec_ctx_t *ctx)
{
return vpx_codec_error_detail((vpx_codec_ctx_t *)ctx);
}
vpx_dec_err_t vpx_dec_init_ver(vpx_dec_ctx_t *ctx,
vpx_dec_iface_t *iface,
int ver)
{
return vpx_codec_dec_init_ver((vpx_codec_ctx_t *)ctx,
(vpx_codec_iface_t *)iface,
NULL,
0,
ver);
}
vpx_dec_err_t vpx_dec_destroy(vpx_dec_ctx_t *ctx)
{
return vpx_codec_destroy((vpx_codec_ctx_t *)ctx);
}
vpx_dec_caps_t vpx_dec_get_caps(vpx_dec_iface_t *iface)
{
return vpx_codec_get_caps((vpx_codec_iface_t *)iface);
}
vpx_dec_err_t vpx_dec_peek_stream_info(vpx_dec_iface_t *iface,
const uint8_t *data,
unsigned int data_sz,
vpx_dec_stream_info_t *si)
{
return vpx_codec_peek_stream_info((vpx_codec_iface_t *)iface, data, data_sz,
(vpx_codec_stream_info_t *)si);
}
vpx_dec_err_t vpx_dec_get_stream_info(vpx_dec_ctx_t *ctx,
vpx_dec_stream_info_t *si)
{
return vpx_codec_get_stream_info((vpx_codec_ctx_t *)ctx,
(vpx_codec_stream_info_t *)si);
}
vpx_dec_err_t vpx_dec_control(vpx_dec_ctx_t *ctx,
int ctrl_id,
void *data)
{
return vpx_codec_control_((vpx_codec_ctx_t *)ctx, ctrl_id, data);
}
vpx_dec_err_t vpx_dec_decode(vpx_dec_ctx_t *ctx,
uint8_t *data,
unsigned int data_sz,
void *user_priv,
int rel_pts)
{
(void)rel_pts;
return vpx_codec_decode((vpx_codec_ctx_t *)ctx, data, data_sz, user_priv,
0);
}
vpx_image_t *vpx_dec_get_frame(vpx_dec_ctx_t *ctx,
vpx_dec_iter_t *iter)
{
return vpx_codec_get_frame((vpx_codec_ctx_t *)ctx, iter);
}
vpx_dec_err_t vpx_dec_register_put_frame_cb(vpx_dec_ctx_t *ctx,
vpx_dec_put_frame_cb_fn_t cb,
void *user_priv)
{
return vpx_codec_register_put_frame_cb((vpx_codec_ctx_t *)ctx, cb,
user_priv);
}
vpx_dec_err_t vpx_dec_register_put_slice_cb(vpx_dec_ctx_t *ctx,
vpx_dec_put_slice_cb_fn_t cb,
void *user_priv)
{
return vpx_codec_register_put_slice_cb((vpx_codec_ctx_t *)ctx, cb,
user_priv);
}
vpx_dec_err_t vpx_dec_xma_init_ver(vpx_dec_ctx_t *ctx,
vpx_dec_iface_t *iface,
int ver)
{
return vpx_codec_dec_init_ver((vpx_codec_ctx_t *)ctx,
(vpx_codec_iface_t *)iface,
NULL,
VPX_CODEC_USE_XMA,
ver);
}
vpx_dec_err_t vpx_dec_get_mem_map(vpx_dec_ctx_t *ctx_,
vpx_dec_mmap_t *mmap,
const vpx_dec_stream_info_t *si,
vpx_dec_iter_t *iter)
{
vpx_codec_ctx_t *ctx = (vpx_codec_ctx_t *)ctx_;
vpx_dec_err_t res = VPX_DEC_OK;
if (!ctx || !mmap || !si || !iter || !ctx->iface)
res = VPX_DEC_INVALID_PARAM;
else if (!(ctx->iface->caps & VPX_DEC_CAP_XMA))
res = VPX_DEC_ERROR;
else
{
if (!ctx->config.dec)
{
ctx->config.dec = malloc(sizeof(vpx_codec_dec_cfg_t));
ctx->config.dec->w = si->w;
ctx->config.dec->h = si->h;
}
res = ctx->iface->get_mmap(ctx, mmap, iter);
}
return SAVE_STATUS(ctx, res);
}
vpx_dec_err_t vpx_dec_set_mem_map(vpx_dec_ctx_t *ctx_,
vpx_dec_mmap_t *mmap,
unsigned int num_maps)
{
vpx_codec_ctx_t *ctx = (vpx_codec_ctx_t *)ctx_;
vpx_dec_err_t res = VPX_DEC_MEM_ERROR;
if (!ctx || !mmap || !ctx->iface)
res = VPX_DEC_INVALID_PARAM;
else if (!(ctx->iface->caps & VPX_DEC_CAP_XMA))
res = VPX_DEC_ERROR;
else
{
void *save = (ctx->priv) ? NULL : ctx->config.dec;
unsigned int i;
for (i = 0; i < num_maps; i++, mmap++)
{
if (!mmap->base)
break;
/* Everything look ok, set the mmap in the decoder */
res = ctx->iface->set_mmap(ctx, mmap);
if (res)
break;
}
if (save) free(save);
}
return SAVE_STATUS(ctx, res);
}
......@@ -119,13 +119,5 @@ VPX_CTRL_USE_TYPE(VP8_SET_DBG_DISPLAY_MV, int)
/*! @} - end defgroup vp8 */
#if !defined(VPX_CODEC_DISABLE_COMPAT) || !VPX_CODEC_DISABLE_COMPAT
/* The following definitions are provided for backward compatibility with
* the VP8 1.0.x SDK. USE IN PRODUCTION CODE IS NOT RECOMMENDED.
*/
DECLSPEC_DEPRECATED extern vpx_codec_iface_t vpx_codec_vp8_algo DEPRECATED;
#endif
#include "vpx_codec_impl_bottom.h"
#endif
/*
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
/* This file contains backwards compatibility stubs for applications using
* the VP8 version 1.0 API.
*/
#ifndef VP8E_H
#define VP8E_H
#include "vpx_codec_impl_top.h"
#if defined(VPX_CODEC_DISABLE_COMPAT) && VPX_CODEC_DISABLE_COMPAT
#error "Backwards compatibility disabled: don't include vp8e.h"
#endif
#include "vp8cx.h"
DECLSPEC_DEPRECATED extern vpx_codec_iface_t vpx_enc_vp8_algo DEPRECATED;
enum
{
VP8E_SET_REFERENCE = VP8_SET_REFERENCE,
VP8E_COPY_REFERENCE = VP8_COPY_REFERENCE,
VP8E_SET_PREVIEWPP = VP8_SET_POSTPROC,
VP8E_SET_FLUSHFLAG = 4,
VP8E_SET_FRAMETYPE = 10,
VP8E_SET_ENCODING_MODE = 12
};
#define NORMAL_FRAME (0)
#define KEY_FRAME (1)
/* Change VP8E to VP8 to get the undeprecated version of these (defined in
* vp8.h)
*/
VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_SET_REFERENCE, vpx_ref_frame_t *)
VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_COPY_REFERENCE, vpx_ref_frame_t *)
VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_SET_PREVIEWPP, vp8_postproc_cfg_t *)
/* Flush is done by calling vpx_codec_encode with a NULL input image. */
VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_SET_FLUSHFLAG, int)
/* Frame type is set with a flag to vpx_codec_control. See VPX_EFLAG_FORCE_KF
*/
VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_SET_FRAMETYPE, int)
/* This control has been deprecated in favor of the duration parameter to
* vpx_codec_encode(). Use the #VPX_DL_REALTIME, #VPX_DL_GOOD_QUALITY,
* #VPX_DL_BEST_QUALITY constants to that parameter instead.
*/
VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_SET_ENCODING_MODE, vp8e_encoding_mode)
#include "vpx_codec_impl_bottom.h"
#endif
......@@ -12,9 +12,7 @@
API_EXPORTS += exports
API_SRCS-yes += src/vpx_decoder.c
API_SRCS-yes += src/vpx_decoder_compat.c
API_SRCS-yes += vpx_decoder.h
API_SRCS-yes += vpx_decoder_compat.h
API_SRCS-yes += src/vpx_encoder.c
API_SRCS-yes += vpx_encoder.h
API_SRCS-yes += internal/vpx_codec_internal.h
......
......@@ -327,7 +327,3 @@ extern "C" {
#ifdef __cplusplus
}
#endif
#if !defined(VPX_CODEC_DISABLE_COMPAT) || !VPX_CODEC_DISABLE_COMPAT
#include "vpx_decoder_compat.h"
#endif
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment