[FFmpeg-devel] [PATCH v3 0/3] estimate output bitrate for some video codecs

Tobias Rapp t.rapp at noa-archive.com
Tue Mar 7 16:39:16 EET 2017


This patch-set tries to implement observations/suggestions from the discussions in

https://ffmpeg.org/pipermail/ffmpeg-devel/2017-January/205902.html
https://ffmpeg.org/pipermail/ffmpeg-devel/2017-January/206428.html

Changes since version 2:
 - replaced own patch with Libav commit for setting encoding framerate
 - avoid touching bit_rate_tolerance field
 - reorder patches and integrated helper function into (hopefully) less
   controversial uncompressed bitrate estimation patch

Anton Khirnov (1):
  ffmpeg: set the encoding framerate when the output is CFR

Tobias Rapp (2):
  avcodec: estimate output bitrate for uncompressed video codecs
  avcodec: estimate output bitrate for ffv1/huffyuv codecs

 ffmpeg.c                                       |  2 ++
 libavcodec/ffv1enc.c                           |  3 +++
 libavcodec/huffyuvenc.c                        |  3 +++
 libavcodec/internal.h                          |  6 ++++++
 libavcodec/r210enc.c                           | 15 +++++++++++++++
 libavcodec/rawenc.c                            |  2 ++
 libavcodec/utils.c                             | 21 +++++++++++++++++++++
 libavcodec/v210enc.c                           |  3 +++
 libavcodec/v308enc.c                           |  3 +++
 libavcodec/v408enc.c                           |  2 ++
 libavcodec/v410enc.c                           |  3 +++
 libavcodec/y41penc.c                           |  1 +
 tests/ref/fate/v410enc                         |  2 +-
 tests/ref/vsynth/vsynth1-bpp1                  |  2 +-
 tests/ref/vsynth/vsynth1-bpp15                 |  2 +-
 tests/ref/vsynth/vsynth1-ffv1                  |  2 +-
 tests/ref/vsynth/vsynth1-ffv1-v0               |  2 +-
 tests/ref/vsynth/vsynth1-ffv1-v3-bgr0          |  2 +-
 tests/ref/vsynth/vsynth1-ffv1-v3-rgb48         |  2 +-
 tests/ref/vsynth/vsynth1-ffv1-v3-yuv420p       |  2 +-
 tests/ref/vsynth/vsynth1-ffv1-v3-yuv422p10     |  2 +-
 tests/ref/vsynth/vsynth1-ffv1-v3-yuv444p16     |  2 +-
 tests/ref/vsynth/vsynth1-ffvhuff               |  2 +-
 tests/ref/vsynth/vsynth1-ffvhuff420p12         |  2 +-
 tests/ref/vsynth/vsynth1-ffvhuff422p10left     |  2 +-
 tests/ref/vsynth/vsynth1-ffvhuff444            |  2 +-
 tests/ref/vsynth/vsynth1-ffvhuff444p16         |  2 +-
 tests/ref/vsynth/vsynth1-huffyuv               |  2 +-
 tests/ref/vsynth/vsynth1-huffyuvbgr24          |  2 +-
 tests/ref/vsynth/vsynth1-huffyuvbgra           |  2 +-
 tests/ref/vsynth/vsynth1-r210                  |  2 +-
 tests/ref/vsynth/vsynth1-rgb                   |  2 +-
 tests/ref/vsynth/vsynth1-v210                  |  2 +-
 tests/ref/vsynth/vsynth1-v210-10               |  2 +-
 tests/ref/vsynth/vsynth1-v308                  |  2 +-
 tests/ref/vsynth/vsynth1-v408                  |  2 +-
 tests/ref/vsynth/vsynth1-y41p                  |  2 +-
 tests/ref/vsynth/vsynth1-yuv                   |  2 +-
 tests/ref/vsynth/vsynth2-bpp1                  |  2 +-
 tests/ref/vsynth/vsynth2-bpp15                 |  2 +-
 tests/ref/vsynth/vsynth2-ffv1                  |  2 +-
 tests/ref/vsynth/vsynth2-ffv1-v0               |  2 +-
 tests/ref/vsynth/vsynth2-ffv1-v3-bgr0          |  2 +-
 tests/ref/vsynth/vsynth2-ffv1-v3-rgb48         |  2 +-
 tests/ref/vsynth/vsynth2-ffv1-v3-yuv420p       |  2 +-
 tests/ref/vsynth/vsynth2-ffv1-v3-yuv422p10     |  2 +-
 tests/ref/vsynth/vsynth2-ffv1-v3-yuv444p16     |  2 +-
 tests/ref/vsynth/vsynth2-ffvhuff               |  2 +-
 tests/ref/vsynth/vsynth2-ffvhuff420p12         |  2 +-
 tests/ref/vsynth/vsynth2-ffvhuff422p10left     |  2 +-
 tests/ref/vsynth/vsynth2-ffvhuff444            |  2 +-
 tests/ref/vsynth/vsynth2-ffvhuff444p16         |  2 +-
 tests/ref/vsynth/vsynth2-huffyuv               |  2 +-
 tests/ref/vsynth/vsynth2-huffyuvbgr24          |  2 +-
 tests/ref/vsynth/vsynth2-huffyuvbgra           |  2 +-
 tests/ref/vsynth/vsynth2-r210                  |  2 +-
 tests/ref/vsynth/vsynth2-rgb                   |  2 +-
 tests/ref/vsynth/vsynth2-v210                  |  2 +-
 tests/ref/vsynth/vsynth2-v210-10               |  2 +-
 tests/ref/vsynth/vsynth2-v308                  |  2 +-
 tests/ref/vsynth/vsynth2-v408                  |  2 +-
 tests/ref/vsynth/vsynth2-y41p                  |  2 +-
 tests/ref/vsynth/vsynth2-yuv                   |  2 +-
 tests/ref/vsynth/vsynth3-bpp1                  |  2 +-
 tests/ref/vsynth/vsynth3-bpp15                 |  2 +-
 tests/ref/vsynth/vsynth3-ffv1                  |  2 +-
 tests/ref/vsynth/vsynth3-ffv1-v0               |  2 +-
 tests/ref/vsynth/vsynth3-ffv1-v3-bgr0          |  2 +-
 tests/ref/vsynth/vsynth3-ffv1-v3-rgb48         |  2 +-
 tests/ref/vsynth/vsynth3-ffv1-v3-yuv420p       |  2 +-
 tests/ref/vsynth/vsynth3-ffv1-v3-yuv422p10     |  2 +-
 tests/ref/vsynth/vsynth3-ffv1-v3-yuv444p16     |  2 +-
 tests/ref/vsynth/vsynth3-ffvhuff               |  2 +-
 tests/ref/vsynth/vsynth3-ffvhuff420p12         |  2 +-
 tests/ref/vsynth/vsynth3-ffvhuff422p10left     |  2 +-
 tests/ref/vsynth/vsynth3-ffvhuff444            |  2 +-
 tests/ref/vsynth/vsynth3-ffvhuff444p16         |  2 +-
 tests/ref/vsynth/vsynth3-huffyuv               |  2 +-
 tests/ref/vsynth/vsynth3-huffyuvbgr24          |  2 +-
 tests/ref/vsynth/vsynth3-huffyuvbgra           |  2 +-
 tests/ref/vsynth/vsynth3-r210                  |  2 +-
 tests/ref/vsynth/vsynth3-rgb                   |  2 +-
 tests/ref/vsynth/vsynth3-v210                  |  2 +-
 tests/ref/vsynth/vsynth3-v210-10               |  2 +-
 tests/ref/vsynth/vsynth3-v308                  |  2 +-
 tests/ref/vsynth/vsynth3-v408                  |  2 +-
 tests/ref/vsynth/vsynth3-yuv                   |  2 +-
 tests/ref/vsynth/vsynth_lena-bpp1              |  2 +-
 tests/ref/vsynth/vsynth_lena-bpp15             |  2 +-
 tests/ref/vsynth/vsynth_lena-ffv1              |  2 +-
 tests/ref/vsynth/vsynth_lena-ffv1-v0           |  2 +-
 tests/ref/vsynth/vsynth_lena-ffv1-v3-bgr0      |  2 +-
 tests/ref/vsynth/vsynth_lena-ffv1-v3-rgb48     |  2 +-
 tests/ref/vsynth/vsynth_lena-ffv1-v3-yuv420p   |  2 +-
 tests/ref/vsynth/vsynth_lena-ffv1-v3-yuv422p10 |  2 +-
 tests/ref/vsynth/vsynth_lena-ffv1-v3-yuv444p16 |  2 +-
 tests/ref/vsynth/vsynth_lena-ffvhuff           |  2 +-
 tests/ref/vsynth/vsynth_lena-ffvhuff420p12     |  2 +-
 tests/ref/vsynth/vsynth_lena-ffvhuff422p10left |  2 +-
 tests/ref/vsynth/vsynth_lena-ffvhuff444        |  2 +-
 tests/ref/vsynth/vsynth_lena-ffvhuff444p16     |  2 +-
 tests/ref/vsynth/vsynth_lena-huffyuv           |  2 +-
 tests/ref/vsynth/vsynth_lena-huffyuvbgr24      |  2 +-
 tests/ref/vsynth/vsynth_lena-huffyuvbgra       |  2 +-
 tests/ref/vsynth/vsynth_lena-r210              |  2 +-
 tests/ref/vsynth/vsynth_lena-rgb               |  2 +-
 tests/ref/vsynth/vsynth_lena-v210              |  2 +-
 tests/ref/vsynth/vsynth_lena-v210-10           |  2 +-
 tests/ref/vsynth/vsynth_lena-v308              |  2 +-
 tests/ref/vsynth/vsynth_lena-v408              |  2 +-
 tests/ref/vsynth/vsynth_lena-y41p              |  2 +-
 tests/ref/vsynth/vsynth_lena-yuv               |  2 +-
 112 files changed, 164 insertions(+), 100 deletions(-)

-- 
2.7.4




More information about the ffmpeg-devel mailing list