tree ff4b591d4bb12826c2b2cbba92e7bbee4f6b1e1c
parent 01a51124c8783f3ea58c3fc2cc79731d5660c87a
author Wan-Teh Chang <wtc@google.com> 1588116292 -0700
committer Jerome Jiang <jianj@google.com> 1588624606 -0700

Remove post processing related code

Remove all code related to the codec control id AOM_SET_POSTPROC, the
decoder capability AOM_CODEC_CAP_POSTPROC, and decoder initialization
flag AOM_CODEC_USE_POSTPROC.

Post processing is not implemented in libaom. In libvpx, post processing
is implemented by VP8 but not by VP9. On the decoder side, it is used to
post-process decoded frames. On the encoder side, it is used to
post-process preview frames.

Notes on _ABI_VERSION changes in this CL:

1. AOM_SET_POSTPROC was defined in aom/aom.h. Although aom/aom.h does
not have its own _ABI_VERSION macro, I assume that aom/aom.h is covered
by AOM_CODEC_ABI_VERSION. Therefore I bumped AOM_CODEC_ABI_VERSION for
the removal of AOM_SET_POSTPROC.

2. A bump to AOM_CODEC_ABI_VERSION automatically bumps the numeric value
of AOM_DECODER_ABI_VERSION (and AOM_ENCODER_ABI_VERSION), so one can
argue that it is not necessary to bump AOM_DECODER_ABI_VERSION for the
removal of AOM_CODEC_CAP_POSTPROC and AOM_CODEC_USE_POSTPROC. I bumped
the symbolic expression of AOM_DECODER_ABI_VERSION anyway because I saw
this kind of libaom ABI version test in WebRTC code:

  #if AOM_DECODER_ABI_VERSION < (4 + AOM_CODEC_ABI_VERSION)
    ...
  #else
    ...
  #endif

BUG=aomedia:2631

Change-Id: I6eefd7026475bfbf5157bdc7854d79b01c538be4
(cherry picked from commit 6522a0a3064319252a714f66a2a0107cf1e9c75d)
