[FFmpeg-devel] [PATCH 0/6 v2] avformat/movenc: normalize on AC-3 parser usage

Jan Ekström jeebjp at gmail.com
Fri Jun 17 16:04:37 EEST 2022


The simplified parsing currently in `mov_write_ac3_tag` trusts the content
of the packets a bit too much (the AC-3 parser returns all data fed to it,
including any possible data before the start code), while the existing E-AC-3
logic does proper header validation by utilizing the (E-)AC-3 parser.

Thus, normalize on AC-3 parser usage for both AC-3 and E-AC-3.

Difference to v1:
* Instead of expanding the avpriv parser interface, make the bit rate table
  available to libavformat as well as libavcodec. This also theoretically
  allows the calculation based on data rate, thus allowing the correct
  bit rate to be signaled with bsids 9 and 10, which have their effective
  bit rate and sample rate values divided by 2 and 4 respectively.

Jan

Jan Ekström (6):
  avcodec: make AC-3 bit rate table available in a separate header
  {configure,avformat/movenc}: enable AC-3 parser for movenc
  avformat/movenc: enable handle_eac3 to handle AC-3 tracks
  avformat/movenc: move eac3_info definition so that it can be used for
    AC-3
  avformat/movenc: utilize existing AC-3 parsing workflow for AC-3
  avformat/movenc: handle OOM situations when parsing AC-3 headers

 configure                     |   2 +-
 libavcodec/Makefile           |   8 ++-
 libavcodec/ac3_bitrate_tab.c  |  22 +++++++
 libavcodec/ac3_bitrate_tab.h  |  33 ++++++++++
 libavcodec/ac3tab.c           |   6 --
 libavformat/Makefile          |   1 +
 libavformat/ac3_bitrate_tab.c |  22 +++++++
 libavformat/movenc.c          | 121 ++++++++++++++++++----------------
 8 files changed, 148 insertions(+), 67 deletions(-)
 create mode 100644 libavcodec/ac3_bitrate_tab.c
 create mode 100644 libavcodec/ac3_bitrate_tab.h
 create mode 100644 libavformat/ac3_bitrate_tab.c

-- 
2.36.1



More information about the ffmpeg-devel mailing list