[FFmpeg-devel,0/2,v3] Restructuring the encode API

Message ID 20200326195857.5838-1-jamrial@gmail.com
Headers show


James Almer March 26, 2020, 7:58 p.m. UTC
This set follows the same logic as 061a0c14bb, but for the encode API: The
new public API will no longer be a wrapper around the old deprecated one, and
the internal API used by the encoders now consists of a single receive_packet()
callback that pulls frames as required.

Because of the above, PATCH 1/2 can't be applied until all the relevant encoders
have been adapted, and said changes squashed into it. This means librav1e, nvenc,
amfenc, v4l2_m2m, and vaapi_enc. I have ported librav1e in
http://lists.ffmpeg.org/pipermail/ffmpeg-devel/2020-March/258567.html both to
test this set and for it to work as an example for the maintainers of the other
three encoders in order to get an idea of what they should do. Similarly, Andriy
Gelman ported v4l2_m2m_enc in

James Almer (2):
  avcodec/encode: restructure the core encoding code
  avcodec/encode: restructure the old encode API

 libavcodec/avcodec.h  |  12 +-
 libavcodec/decode.c   |   1 -
 libavcodec/encode.c   | 560 +++++++++++++++++++++---------------------
 libavcodec/encode.h   |  39 +++
 libavcodec/internal.h |   8 +-
 libavcodec/utils.c    |  18 +-
 6 files changed, 346 insertions(+), 292 deletions(-)
 create mode 100644 libavcodec/encode.h