Index: source/libvpx/vpx/src/vpx_decoder.c |
=================================================================== |
--- source/libvpx/vpx/src/vpx_decoder.c (revision 240950) |
+++ source/libvpx/vpx/src/vpx_decoder.c (working copy) |
@@ -172,7 +172,7 @@ |
if (!ctx || !cb) |
res = VPX_CODEC_INVALID_PARAM; |
else if (!ctx->iface || !ctx->priv |
- || !(ctx->iface->caps & VPX_CODEC_CAP_PUT_FRAME)) |
+ || !(ctx->iface->caps & VPX_CODEC_CAP_PUT_SLICE)) |
res = VPX_CODEC_ERROR; |
else { |
ctx->priv->dec.put_slice_cb.u.put_slice = cb; |
@@ -226,3 +226,22 @@ |
return SAVE_STATUS(ctx, res); |
} |
+ |
+vpx_codec_err_t vpx_codec_set_frame_buffers( |
+ vpx_codec_ctx_t *ctx, |
+ vpx_codec_frame_buffer_t *fb_list, int fb_count, |
+ vpx_realloc_frame_buffer_cb_fn_t cb, void *user_priv) { |
+ vpx_codec_err_t res; |
+ |
+ if (!ctx || !fb_list || fb_count <= 0 || !cb) { |
+ res = VPX_CODEC_INVALID_PARAM; |
+ } else if (!ctx->iface || !ctx->priv || |
+ !(ctx->iface->caps & VPX_CODEC_CAP_EXTERNAL_FRAME_BUFFER)) { |
+ res = VPX_CODEC_ERROR; |
+ } else { |
+ res = ctx->iface->dec.set_fb(ctx->priv->alg_priv, fb_list, fb_count, |
+ cb, user_priv); |
+ } |
+ |
+ return SAVE_STATUS(ctx, res); |
+} |