Bug 1508909 revert reformat of third-party ffmpeg headers r=jya
authorKarl Tomlinson <karlt+@karlt.net>
Wed, 21 Nov 2018 08:25:05 +0000
changeset 504059 2ec7bd511b7f5ab1b6f11beca250dd094a79943b
parent 504058 52f4568a2ccdd01efc60d4a70655282b826d2e09
child 504060 6893246437a24a624ba3876c518ec82ba09e995d
push id10290
push userffxbld-merge
push dateMon, 03 Dec 2018 16:23:23 +0000
treeherdermozilla-beta@700bed2445e6 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjya
bugs1508909
milestone65.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1508909 revert reformat of third-party ffmpeg headers r=jya Changes to these files from 0ceae9db9ec0 are reverted. # skip-blame Differential Revision: https://phabricator.services.mozilla.com/D12510
dom/media/platforms/ffmpeg/ffmpeg57/include/libavcodec/avcodec.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavcodec/avfft.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavcodec/vaapi.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavcodec/vdpau.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavcodec/version.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/attributes.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/avutil.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/buffer.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/channel_layout.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/common.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/cpu.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/dict.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/error.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/frame.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/intfloat.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/log.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/macros.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/mathematics.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/mem.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/pixfmt.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/rational.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/samplefmt.h
dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/version.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavcodec/avcodec.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavcodec/avfft.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavcodec/vaapi.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavcodec/vdpau.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavcodec/version.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/attributes.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/avutil.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/buffer.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/channel_layout.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/common.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/cpu.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/dict.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/error.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/frame.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/hwcontext.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/intfloat.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/log.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/macros.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/mathematics.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/mem.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/pixfmt.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/rational.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/samplefmt.h
dom/media/platforms/ffmpeg/ffmpeg58/include/libavutil/version.h
--- a/dom/media/platforms/ffmpeg/ffmpeg57/include/libavcodec/avcodec.h
+++ b/dom/media/platforms/ffmpeg/ffmpeg57/include/libavcodec/avcodec.h
@@ -77,568 +77,562 @@
  * @defgroup lavc_core Core functions/structures.
  * @ingroup libavc
  *
  * Basic definitions, functions for querying libavcodec capabilities,
  * allocating core structures, etc.
  * @{
  */
 
+
 /**
  * Identify the syntax and semantics of the bitstream.
  * The principle is roughly:
  * Two decoders with the same ID can decode the same streams.
  * Two encoders with the same ID can encode compatible streams.
  * There may be slight deviations from the principle due to implementation
  * details.
  *
  * If you add a codec ID to this list, add it so that
  * 1. no value of a existing codec ID changes (that would break ABI),
  * 2. it is as close as possible to similar codecs
  *
  * After adding new codec IDs, do not forget to add an entry to the codec
  * descriptor list and bump libavcodec minor version.
  */
 enum AVCodecID {
-  AV_CODEC_ID_NONE,
-
-  /* video codecs */
-  AV_CODEC_ID_MPEG1VIDEO,
-  AV_CODEC_ID_MPEG2VIDEO,  ///< preferred ID for MPEG-1/2 video decoding
+    AV_CODEC_ID_NONE,
+
+    /* video codecs */
+    AV_CODEC_ID_MPEG1VIDEO,
+    AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding
 #if FF_API_XVMC
-  AV_CODEC_ID_MPEG2VIDEO_XVMC,
+    AV_CODEC_ID_MPEG2VIDEO_XVMC,
 #endif /* FF_API_XVMC */
-  AV_CODEC_ID_H261,
-  AV_CODEC_ID_H263,
-  AV_CODEC_ID_RV10,
-  AV_CODEC_ID_RV20,
-  AV_CODEC_ID_MJPEG,
-  AV_CODEC_ID_MJPEGB,
-  AV_CODEC_ID_LJPEG,
-  AV_CODEC_ID_SP5X,
-  AV_CODEC_ID_JPEGLS,
-  AV_CODEC_ID_MPEG4,
-  AV_CODEC_ID_RAWVIDEO,
-  AV_CODEC_ID_MSMPEG4V1,
-  AV_CODEC_ID_MSMPEG4V2,
-  AV_CODEC_ID_MSMPEG4V3,
-  AV_CODEC_ID_WMV1,
-  AV_CODEC_ID_WMV2,
-  AV_CODEC_ID_H263P,
-  AV_CODEC_ID_H263I,
-  AV_CODEC_ID_FLV1,
-  AV_CODEC_ID_SVQ1,
-  AV_CODEC_ID_SVQ3,
-  AV_CODEC_ID_DVVIDEO,
-  AV_CODEC_ID_HUFFYUV,
-  AV_CODEC_ID_CYUV,
-  AV_CODEC_ID_H264,
-  AV_CODEC_ID_INDEO3,
-  AV_CODEC_ID_VP3,
-  AV_CODEC_ID_THEORA,
-  AV_CODEC_ID_ASV1,
-  AV_CODEC_ID_ASV2,
-  AV_CODEC_ID_FFV1,
-  AV_CODEC_ID_4XM,
-  AV_CODEC_ID_VCR1,
-  AV_CODEC_ID_CLJR,
-  AV_CODEC_ID_MDEC,
-  AV_CODEC_ID_ROQ,
-  AV_CODEC_ID_INTERPLAY_VIDEO,
-  AV_CODEC_ID_XAN_WC3,
-  AV_CODEC_ID_XAN_WC4,
-  AV_CODEC_ID_RPZA,
-  AV_CODEC_ID_CINEPAK,
-  AV_CODEC_ID_WS_VQA,
-  AV_CODEC_ID_MSRLE,
-  AV_CODEC_ID_MSVIDEO1,
-  AV_CODEC_ID_IDCIN,
-  AV_CODEC_ID_8BPS,
-  AV_CODEC_ID_SMC,
-  AV_CODEC_ID_FLIC,
-  AV_CODEC_ID_TRUEMOTION1,
-  AV_CODEC_ID_VMDVIDEO,
-  AV_CODEC_ID_MSZH,
-  AV_CODEC_ID_ZLIB,
-  AV_CODEC_ID_QTRLE,
-  AV_CODEC_ID_TSCC,
-  AV_CODEC_ID_ULTI,
-  AV_CODEC_ID_QDRAW,
-  AV_CODEC_ID_VIXL,
-  AV_CODEC_ID_QPEG,
-  AV_CODEC_ID_PNG,
-  AV_CODEC_ID_PPM,
-  AV_CODEC_ID_PBM,
-  AV_CODEC_ID_PGM,
-  AV_CODEC_ID_PGMYUV,
-  AV_CODEC_ID_PAM,
-  AV_CODEC_ID_FFVHUFF,
-  AV_CODEC_ID_RV30,
-  AV_CODEC_ID_RV40,
-  AV_CODEC_ID_VC1,
-  AV_CODEC_ID_WMV3,
-  AV_CODEC_ID_LOCO,
-  AV_CODEC_ID_WNV1,
-  AV_CODEC_ID_AASC,
-  AV_CODEC_ID_INDEO2,
-  AV_CODEC_ID_FRAPS,
-  AV_CODEC_ID_TRUEMOTION2,
-  AV_CODEC_ID_BMP,
-  AV_CODEC_ID_CSCD,
-  AV_CODEC_ID_MMVIDEO,
-  AV_CODEC_ID_ZMBV,
-  AV_CODEC_ID_AVS,
-  AV_CODEC_ID_SMACKVIDEO,
-  AV_CODEC_ID_NUV,
-  AV_CODEC_ID_KMVC,
-  AV_CODEC_ID_FLASHSV,
-  AV_CODEC_ID_CAVS,
-  AV_CODEC_ID_JPEG2000,
-  AV_CODEC_ID_VMNC,
-  AV_CODEC_ID_VP5,
-  AV_CODEC_ID_VP6,
-  AV_CODEC_ID_VP6F,
-  AV_CODEC_ID_TARGA,
-  AV_CODEC_ID_DSICINVIDEO,
-  AV_CODEC_ID_TIERTEXSEQVIDEO,
-  AV_CODEC_ID_TIFF,
-  AV_CODEC_ID_GIF,
-  AV_CODEC_ID_DXA,
-  AV_CODEC_ID_DNXHD,
-  AV_CODEC_ID_THP,
-  AV_CODEC_ID_SGI,
-  AV_CODEC_ID_C93,
-  AV_CODEC_ID_BETHSOFTVID,
-  AV_CODEC_ID_PTX,
-  AV_CODEC_ID_TXD,
-  AV_CODEC_ID_VP6A,
-  AV_CODEC_ID_AMV,
-  AV_CODEC_ID_VB,
-  AV_CODEC_ID_PCX,
-  AV_CODEC_ID_SUNRAST,
-  AV_CODEC_ID_INDEO4,
-  AV_CODEC_ID_INDEO5,
-  AV_CODEC_ID_MIMIC,
-  AV_CODEC_ID_RL2,
-  AV_CODEC_ID_ESCAPE124,
-  AV_CODEC_ID_DIRAC,
-  AV_CODEC_ID_BFI,
-  AV_CODEC_ID_CMV,
-  AV_CODEC_ID_MOTIONPIXELS,
-  AV_CODEC_ID_TGV,
-  AV_CODEC_ID_TGQ,
-  AV_CODEC_ID_TQI,
-  AV_CODEC_ID_AURA,
-  AV_CODEC_ID_AURA2,
-  AV_CODEC_ID_V210X,
-  AV_CODEC_ID_TMV,
-  AV_CODEC_ID_V210,
-  AV_CODEC_ID_DPX,
-  AV_CODEC_ID_MAD,
-  AV_CODEC_ID_FRWU,
-  AV_CODEC_ID_FLASHSV2,
-  AV_CODEC_ID_CDGRAPHICS,
-  AV_CODEC_ID_R210,
-  AV_CODEC_ID_ANM,
-  AV_CODEC_ID_BINKVIDEO,
-  AV_CODEC_ID_IFF_ILBM,
+    AV_CODEC_ID_H261,
+    AV_CODEC_ID_H263,
+    AV_CODEC_ID_RV10,
+    AV_CODEC_ID_RV20,
+    AV_CODEC_ID_MJPEG,
+    AV_CODEC_ID_MJPEGB,
+    AV_CODEC_ID_LJPEG,
+    AV_CODEC_ID_SP5X,
+    AV_CODEC_ID_JPEGLS,
+    AV_CODEC_ID_MPEG4,
+    AV_CODEC_ID_RAWVIDEO,
+    AV_CODEC_ID_MSMPEG4V1,
+    AV_CODEC_ID_MSMPEG4V2,
+    AV_CODEC_ID_MSMPEG4V3,
+    AV_CODEC_ID_WMV1,
+    AV_CODEC_ID_WMV2,
+    AV_CODEC_ID_H263P,
+    AV_CODEC_ID_H263I,
+    AV_CODEC_ID_FLV1,
+    AV_CODEC_ID_SVQ1,
+    AV_CODEC_ID_SVQ3,
+    AV_CODEC_ID_DVVIDEO,
+    AV_CODEC_ID_HUFFYUV,
+    AV_CODEC_ID_CYUV,
+    AV_CODEC_ID_H264,
+    AV_CODEC_ID_INDEO3,
+    AV_CODEC_ID_VP3,
+    AV_CODEC_ID_THEORA,
+    AV_CODEC_ID_ASV1,
+    AV_CODEC_ID_ASV2,
+    AV_CODEC_ID_FFV1,
+    AV_CODEC_ID_4XM,
+    AV_CODEC_ID_VCR1,
+    AV_CODEC_ID_CLJR,
+    AV_CODEC_ID_MDEC,
+    AV_CODEC_ID_ROQ,
+    AV_CODEC_ID_INTERPLAY_VIDEO,
+    AV_CODEC_ID_XAN_WC3,
+    AV_CODEC_ID_XAN_WC4,
+    AV_CODEC_ID_RPZA,
+    AV_CODEC_ID_CINEPAK,
+    AV_CODEC_ID_WS_VQA,
+    AV_CODEC_ID_MSRLE,
+    AV_CODEC_ID_MSVIDEO1,
+    AV_CODEC_ID_IDCIN,
+    AV_CODEC_ID_8BPS,
+    AV_CODEC_ID_SMC,
+    AV_CODEC_ID_FLIC,
+    AV_CODEC_ID_TRUEMOTION1,
+    AV_CODEC_ID_VMDVIDEO,
+    AV_CODEC_ID_MSZH,
+    AV_CODEC_ID_ZLIB,
+    AV_CODEC_ID_QTRLE,
+    AV_CODEC_ID_TSCC,
+    AV_CODEC_ID_ULTI,
+    AV_CODEC_ID_QDRAW,
+    AV_CODEC_ID_VIXL,
+    AV_CODEC_ID_QPEG,
+    AV_CODEC_ID_PNG,
+    AV_CODEC_ID_PPM,
+    AV_CODEC_ID_PBM,
+    AV_CODEC_ID_PGM,
+    AV_CODEC_ID_PGMYUV,
+    AV_CODEC_ID_PAM,
+    AV_CODEC_ID_FFVHUFF,
+    AV_CODEC_ID_RV30,
+    AV_CODEC_ID_RV40,
+    AV_CODEC_ID_VC1,
+    AV_CODEC_ID_WMV3,
+    AV_CODEC_ID_LOCO,
+    AV_CODEC_ID_WNV1,
+    AV_CODEC_ID_AASC,
+    AV_CODEC_ID_INDEO2,
+    AV_CODEC_ID_FRAPS,
+    AV_CODEC_ID_TRUEMOTION2,
+    AV_CODEC_ID_BMP,
+    AV_CODEC_ID_CSCD,
+    AV_CODEC_ID_MMVIDEO,
+    AV_CODEC_ID_ZMBV,
+    AV_CODEC_ID_AVS,
+    AV_CODEC_ID_SMACKVIDEO,
+    AV_CODEC_ID_NUV,
+    AV_CODEC_ID_KMVC,
+    AV_CODEC_ID_FLASHSV,
+    AV_CODEC_ID_CAVS,
+    AV_CODEC_ID_JPEG2000,
+    AV_CODEC_ID_VMNC,
+    AV_CODEC_ID_VP5,
+    AV_CODEC_ID_VP6,
+    AV_CODEC_ID_VP6F,
+    AV_CODEC_ID_TARGA,
+    AV_CODEC_ID_DSICINVIDEO,
+    AV_CODEC_ID_TIERTEXSEQVIDEO,
+    AV_CODEC_ID_TIFF,
+    AV_CODEC_ID_GIF,
+    AV_CODEC_ID_DXA,
+    AV_CODEC_ID_DNXHD,
+    AV_CODEC_ID_THP,
+    AV_CODEC_ID_SGI,
+    AV_CODEC_ID_C93,
+    AV_CODEC_ID_BETHSOFTVID,
+    AV_CODEC_ID_PTX,
+    AV_CODEC_ID_TXD,
+    AV_CODEC_ID_VP6A,
+    AV_CODEC_ID_AMV,
+    AV_CODEC_ID_VB,
+    AV_CODEC_ID_PCX,
+    AV_CODEC_ID_SUNRAST,
+    AV_CODEC_ID_INDEO4,
+    AV_CODEC_ID_INDEO5,
+    AV_CODEC_ID_MIMIC,
+    AV_CODEC_ID_RL2,
+    AV_CODEC_ID_ESCAPE124,
+    AV_CODEC_ID_DIRAC,
+    AV_CODEC_ID_BFI,
+    AV_CODEC_ID_CMV,
+    AV_CODEC_ID_MOTIONPIXELS,
+    AV_CODEC_ID_TGV,
+    AV_CODEC_ID_TGQ,
+    AV_CODEC_ID_TQI,
+    AV_CODEC_ID_AURA,
+    AV_CODEC_ID_AURA2,
+    AV_CODEC_ID_V210X,
+    AV_CODEC_ID_TMV,
+    AV_CODEC_ID_V210,
+    AV_CODEC_ID_DPX,
+    AV_CODEC_ID_MAD,
+    AV_CODEC_ID_FRWU,
+    AV_CODEC_ID_FLASHSV2,
+    AV_CODEC_ID_CDGRAPHICS,
+    AV_CODEC_ID_R210,
+    AV_CODEC_ID_ANM,
+    AV_CODEC_ID_BINKVIDEO,
+    AV_CODEC_ID_IFF_ILBM,
 #define AV_CODEC_ID_IFF_BYTERUN1 AV_CODEC_ID_IFF_ILBM
-  AV_CODEC_ID_KGV1,
-  AV_CODEC_ID_YOP,
-  AV_CODEC_ID_VP8,
-  AV_CODEC_ID_PICTOR,
-  AV_CODEC_ID_ANSI,
-  AV_CODEC_ID_A64_MULTI,
-  AV_CODEC_ID_A64_MULTI5,
-  AV_CODEC_ID_R10K,
-  AV_CODEC_ID_MXPEG,
-  AV_CODEC_ID_LAGARITH,
-  AV_CODEC_ID_PRORES,
-  AV_CODEC_ID_JV,
-  AV_CODEC_ID_DFA,
-  AV_CODEC_ID_WMV3IMAGE,
-  AV_CODEC_ID_VC1IMAGE,
-  AV_CODEC_ID_UTVIDEO,
-  AV_CODEC_ID_BMV_VIDEO,
-  AV_CODEC_ID_VBLE,
-  AV_CODEC_ID_DXTORY,
-  AV_CODEC_ID_V410,
-  AV_CODEC_ID_XWD,
-  AV_CODEC_ID_CDXL,
-  AV_CODEC_ID_XBM,
-  AV_CODEC_ID_ZEROCODEC,
-  AV_CODEC_ID_MSS1,
-  AV_CODEC_ID_MSA1,
-  AV_CODEC_ID_TSCC2,
-  AV_CODEC_ID_MTS2,
-  AV_CODEC_ID_CLLC,
-  AV_CODEC_ID_MSS2,
-  AV_CODEC_ID_VP9,
-  AV_CODEC_ID_AIC,
-  AV_CODEC_ID_ESCAPE130,
-  AV_CODEC_ID_G2M,
-  AV_CODEC_ID_WEBP,
-  AV_CODEC_ID_HNM4_VIDEO,
-  AV_CODEC_ID_HEVC,
+    AV_CODEC_ID_KGV1,
+    AV_CODEC_ID_YOP,
+    AV_CODEC_ID_VP8,
+    AV_CODEC_ID_PICTOR,
+    AV_CODEC_ID_ANSI,
+    AV_CODEC_ID_A64_MULTI,
+    AV_CODEC_ID_A64_MULTI5,
+    AV_CODEC_ID_R10K,
+    AV_CODEC_ID_MXPEG,
+    AV_CODEC_ID_LAGARITH,
+    AV_CODEC_ID_PRORES,
+    AV_CODEC_ID_JV,
+    AV_CODEC_ID_DFA,
+    AV_CODEC_ID_WMV3IMAGE,
+    AV_CODEC_ID_VC1IMAGE,
+    AV_CODEC_ID_UTVIDEO,
+    AV_CODEC_ID_BMV_VIDEO,
+    AV_CODEC_ID_VBLE,
+    AV_CODEC_ID_DXTORY,
+    AV_CODEC_ID_V410,
+    AV_CODEC_ID_XWD,
+    AV_CODEC_ID_CDXL,
+    AV_CODEC_ID_XBM,
+    AV_CODEC_ID_ZEROCODEC,
+    AV_CODEC_ID_MSS1,
+    AV_CODEC_ID_MSA1,
+    AV_CODEC_ID_TSCC2,
+    AV_CODEC_ID_MTS2,
+    AV_CODEC_ID_CLLC,
+    AV_CODEC_ID_MSS2,
+    AV_CODEC_ID_VP9,
+    AV_CODEC_ID_AIC,
+    AV_CODEC_ID_ESCAPE130,
+    AV_CODEC_ID_G2M,
+    AV_CODEC_ID_WEBP,
+    AV_CODEC_ID_HNM4_VIDEO,
+    AV_CODEC_ID_HEVC,
 #define AV_CODEC_ID_H265 AV_CODEC_ID_HEVC
-  AV_CODEC_ID_FIC,
-  AV_CODEC_ID_ALIAS_PIX,
-  AV_CODEC_ID_BRENDER_PIX,
-  AV_CODEC_ID_PAF_VIDEO,
-  AV_CODEC_ID_EXR,
-  AV_CODEC_ID_VP7,
-  AV_CODEC_ID_SANM,
-  AV_CODEC_ID_SGIRLE,
-  AV_CODEC_ID_MVC1,
-  AV_CODEC_ID_MVC2,
-  AV_CODEC_ID_HQX,
-  AV_CODEC_ID_TDSC,
-  AV_CODEC_ID_HQ_HQA,
-  AV_CODEC_ID_HAP,
-  AV_CODEC_ID_DDS,
-  AV_CODEC_ID_DXV,
-  AV_CODEC_ID_SCREENPRESSO,
-  AV_CODEC_ID_RSCC,
-
-  AV_CODEC_ID_Y41P = 0x8000,
-  AV_CODEC_ID_AVRP,
-  AV_CODEC_ID_012V,
-  AV_CODEC_ID_AVUI,
-  AV_CODEC_ID_AYUV,
-  AV_CODEC_ID_TARGA_Y216,
-  AV_CODEC_ID_V308,
-  AV_CODEC_ID_V408,
-  AV_CODEC_ID_YUV4,
-  AV_CODEC_ID_AVRN,
-  AV_CODEC_ID_CPIA,
-  AV_CODEC_ID_XFACE,
-  AV_CODEC_ID_SNOW,
-  AV_CODEC_ID_SMVJPEG,
-  AV_CODEC_ID_APNG,
-  AV_CODEC_ID_DAALA,
-
-  /* various PCM "codecs" */
-  AV_CODEC_ID_FIRST_AUDIO =
-      0x10000,  ///< A dummy id pointing at the start of audio codecs
-  AV_CODEC_ID_PCM_S16LE = 0x10000,
-  AV_CODEC_ID_PCM_S16BE,
-  AV_CODEC_ID_PCM_U16LE,
-  AV_CODEC_ID_PCM_U16BE,
-  AV_CODEC_ID_PCM_S8,
-  AV_CODEC_ID_PCM_U8,
-  AV_CODEC_ID_PCM_MULAW,
-  AV_CODEC_ID_PCM_ALAW,
-  AV_CODEC_ID_PCM_S32LE,
-  AV_CODEC_ID_PCM_S32BE,
-  AV_CODEC_ID_PCM_U32LE,
-  AV_CODEC_ID_PCM_U32BE,
-  AV_CODEC_ID_PCM_S24LE,
-  AV_CODEC_ID_PCM_S24BE,
-  AV_CODEC_ID_PCM_U24LE,
-  AV_CODEC_ID_PCM_U24BE,
-  AV_CODEC_ID_PCM_S24DAUD,
-  AV_CODEC_ID_PCM_ZORK,
-  AV_CODEC_ID_PCM_S16LE_PLANAR,
-  AV_CODEC_ID_PCM_DVD,
-  AV_CODEC_ID_PCM_F32BE,
-  AV_CODEC_ID_PCM_F32LE,
-  AV_CODEC_ID_PCM_F64BE,
-  AV_CODEC_ID_PCM_F64LE,
-  AV_CODEC_ID_PCM_BLURAY,
-  AV_CODEC_ID_PCM_LXF,
-  AV_CODEC_ID_S302M,
-  AV_CODEC_ID_PCM_S8_PLANAR,
-  AV_CODEC_ID_PCM_S24LE_PLANAR,
-  AV_CODEC_ID_PCM_S32LE_PLANAR,
-  AV_CODEC_ID_PCM_S16BE_PLANAR,
-  /* new PCM "codecs" should be added right below this line starting with
-   * an explicit value of for example 0x10800
-   */
-
-  /* various ADPCM codecs */
-  AV_CODEC_ID_ADPCM_IMA_QT = 0x11000,
-  AV_CODEC_ID_ADPCM_IMA_WAV,
-  AV_CODEC_ID_ADPCM_IMA_DK3,
-  AV_CODEC_ID_ADPCM_IMA_DK4,
-  AV_CODEC_ID_ADPCM_IMA_WS,
-  AV_CODEC_ID_ADPCM_IMA_SMJPEG,
-  AV_CODEC_ID_ADPCM_MS,
-  AV_CODEC_ID_ADPCM_4XM,
-  AV_CODEC_ID_ADPCM_XA,
-  AV_CODEC_ID_ADPCM_ADX,
-  AV_CODEC_ID_ADPCM_EA,
-  AV_CODEC_ID_ADPCM_G726,
-  AV_CODEC_ID_ADPCM_CT,
-  AV_CODEC_ID_ADPCM_SWF,
-  AV_CODEC_ID_ADPCM_YAMAHA,
-  AV_CODEC_ID_ADPCM_SBPRO_4,
-  AV_CODEC_ID_ADPCM_SBPRO_3,
-  AV_CODEC_ID_ADPCM_SBPRO_2,
-  AV_CODEC_ID_ADPCM_THP,
-  AV_CODEC_ID_ADPCM_IMA_AMV,
-  AV_CODEC_ID_ADPCM_EA_R1,
-  AV_CODEC_ID_ADPCM_EA_R3,
-  AV_CODEC_ID_ADPCM_EA_R2,
-  AV_CODEC_ID_ADPCM_IMA_EA_SEAD,
-  AV_CODEC_ID_ADPCM_IMA_EA_EACS,
-  AV_CODEC_ID_ADPCM_EA_XAS,
-  AV_CODEC_ID_ADPCM_EA_MAXIS_XA,
-  AV_CODEC_ID_ADPCM_IMA_ISS,
-  AV_CODEC_ID_ADPCM_G722,
-  AV_CODEC_ID_ADPCM_IMA_APC,
-  AV_CODEC_ID_ADPCM_VIMA,
+    AV_CODEC_ID_FIC,
+    AV_CODEC_ID_ALIAS_PIX,
+    AV_CODEC_ID_BRENDER_PIX,
+    AV_CODEC_ID_PAF_VIDEO,
+    AV_CODEC_ID_EXR,
+    AV_CODEC_ID_VP7,
+    AV_CODEC_ID_SANM,
+    AV_CODEC_ID_SGIRLE,
+    AV_CODEC_ID_MVC1,
+    AV_CODEC_ID_MVC2,
+    AV_CODEC_ID_HQX,
+    AV_CODEC_ID_TDSC,
+    AV_CODEC_ID_HQ_HQA,
+    AV_CODEC_ID_HAP,
+    AV_CODEC_ID_DDS,
+    AV_CODEC_ID_DXV,
+    AV_CODEC_ID_SCREENPRESSO,
+    AV_CODEC_ID_RSCC,
+
+    AV_CODEC_ID_Y41P = 0x8000,
+    AV_CODEC_ID_AVRP,
+    AV_CODEC_ID_012V,
+    AV_CODEC_ID_AVUI,
+    AV_CODEC_ID_AYUV,
+    AV_CODEC_ID_TARGA_Y216,
+    AV_CODEC_ID_V308,
+    AV_CODEC_ID_V408,
+    AV_CODEC_ID_YUV4,
+    AV_CODEC_ID_AVRN,
+    AV_CODEC_ID_CPIA,
+    AV_CODEC_ID_XFACE,
+    AV_CODEC_ID_SNOW,
+    AV_CODEC_ID_SMVJPEG,
+    AV_CODEC_ID_APNG,
+    AV_CODEC_ID_DAALA,
+
+    /* various PCM "codecs" */
+    AV_CODEC_ID_FIRST_AUDIO = 0x10000,     ///< A dummy id pointing at the start of audio codecs
+    AV_CODEC_ID_PCM_S16LE = 0x10000,
+    AV_CODEC_ID_PCM_S16BE,
+    AV_CODEC_ID_PCM_U16LE,
+    AV_CODEC_ID_PCM_U16BE,
+    AV_CODEC_ID_PCM_S8,
+    AV_CODEC_ID_PCM_U8,
+    AV_CODEC_ID_PCM_MULAW,
+    AV_CODEC_ID_PCM_ALAW,
+    AV_CODEC_ID_PCM_S32LE,
+    AV_CODEC_ID_PCM_S32BE,
+    AV_CODEC_ID_PCM_U32LE,
+    AV_CODEC_ID_PCM_U32BE,
+    AV_CODEC_ID_PCM_S24LE,
+    AV_CODEC_ID_PCM_S24BE,
+    AV_CODEC_ID_PCM_U24LE,
+    AV_CODEC_ID_PCM_U24BE,
+    AV_CODEC_ID_PCM_S24DAUD,
+    AV_CODEC_ID_PCM_ZORK,
+    AV_CODEC_ID_PCM_S16LE_PLANAR,
+    AV_CODEC_ID_PCM_DVD,
+    AV_CODEC_ID_PCM_F32BE,
+    AV_CODEC_ID_PCM_F32LE,
+    AV_CODEC_ID_PCM_F64BE,
+    AV_CODEC_ID_PCM_F64LE,
+    AV_CODEC_ID_PCM_BLURAY,
+    AV_CODEC_ID_PCM_LXF,
+    AV_CODEC_ID_S302M,
+    AV_CODEC_ID_PCM_S8_PLANAR,
+    AV_CODEC_ID_PCM_S24LE_PLANAR,
+    AV_CODEC_ID_PCM_S32LE_PLANAR,
+    AV_CODEC_ID_PCM_S16BE_PLANAR,
+    /* new PCM "codecs" should be added right below this line starting with
+     * an explicit value of for example 0x10800
+     */
+
+    /* various ADPCM codecs */
+    AV_CODEC_ID_ADPCM_IMA_QT = 0x11000,
+    AV_CODEC_ID_ADPCM_IMA_WAV,
+    AV_CODEC_ID_ADPCM_IMA_DK3,
+    AV_CODEC_ID_ADPCM_IMA_DK4,
+    AV_CODEC_ID_ADPCM_IMA_WS,
+    AV_CODEC_ID_ADPCM_IMA_SMJPEG,
+    AV_CODEC_ID_ADPCM_MS,
+    AV_CODEC_ID_ADPCM_4XM,
+    AV_CODEC_ID_ADPCM_XA,
+    AV_CODEC_ID_ADPCM_ADX,
+    AV_CODEC_ID_ADPCM_EA,
+    AV_CODEC_ID_ADPCM_G726,
+    AV_CODEC_ID_ADPCM_CT,
+    AV_CODEC_ID_ADPCM_SWF,
+    AV_CODEC_ID_ADPCM_YAMAHA,
+    AV_CODEC_ID_ADPCM_SBPRO_4,
+    AV_CODEC_ID_ADPCM_SBPRO_3,
+    AV_CODEC_ID_ADPCM_SBPRO_2,
+    AV_CODEC_ID_ADPCM_THP,
+    AV_CODEC_ID_ADPCM_IMA_AMV,
+    AV_CODEC_ID_ADPCM_EA_R1,
+    AV_CODEC_ID_ADPCM_EA_R3,
+    AV_CODEC_ID_ADPCM_EA_R2,
+    AV_CODEC_ID_ADPCM_IMA_EA_SEAD,
+    AV_CODEC_ID_ADPCM_IMA_EA_EACS,
+    AV_CODEC_ID_ADPCM_EA_XAS,
+    AV_CODEC_ID_ADPCM_EA_MAXIS_XA,
+    AV_CODEC_ID_ADPCM_IMA_ISS,
+    AV_CODEC_ID_ADPCM_G722,
+    AV_CODEC_ID_ADPCM_IMA_APC,
+    AV_CODEC_ID_ADPCM_VIMA,
 #if FF_API_VIMA_DECODER
-  AV_CODEC_ID_VIMA = AV_CODEC_ID_ADPCM_VIMA,
+    AV_CODEC_ID_VIMA = AV_CODEC_ID_ADPCM_VIMA,
 #endif
 
-  AV_CODEC_ID_ADPCM_AFC = 0x11800,
-  AV_CODEC_ID_ADPCM_IMA_OKI,
-  AV_CODEC_ID_ADPCM_DTK,
-  AV_CODEC_ID_ADPCM_IMA_RAD,
-  AV_CODEC_ID_ADPCM_G726LE,
-  AV_CODEC_ID_ADPCM_THP_LE,
-  AV_CODEC_ID_ADPCM_PSX,
-  AV_CODEC_ID_ADPCM_AICA,
-
-  /* AMR */
-  AV_CODEC_ID_AMR_NB = 0x12000,
-  AV_CODEC_ID_AMR_WB,
-
-  /* RealAudio codecs*/
-  AV_CODEC_ID_RA_144 = 0x13000,
-  AV_CODEC_ID_RA_288,
-
-  /* various DPCM codecs */
-  AV_CODEC_ID_ROQ_DPCM = 0x14000,
-  AV_CODEC_ID_INTERPLAY_DPCM,
-  AV_CODEC_ID_XAN_DPCM,
-  AV_CODEC_ID_SOL_DPCM,
-
-  AV_CODEC_ID_SDX2_DPCM = 0x14800,
-
-  /* audio codecs */
-  AV_CODEC_ID_MP2 = 0x15000,
-  AV_CODEC_ID_MP3,  ///< preferred ID for decoding MPEG audio layer 1, 2 or 3
-  AV_CODEC_ID_AAC,
-  AV_CODEC_ID_AC3,
-  AV_CODEC_ID_DTS,
-  AV_CODEC_ID_VORBIS,
-  AV_CODEC_ID_DVAUDIO,
-  AV_CODEC_ID_WMAV1,
-  AV_CODEC_ID_WMAV2,
-  AV_CODEC_ID_MACE3,
-  AV_CODEC_ID_MACE6,
-  AV_CODEC_ID_VMDAUDIO,
-  AV_CODEC_ID_FLAC,
-  AV_CODEC_ID_MP3ADU,
-  AV_CODEC_ID_MP3ON4,
-  AV_CODEC_ID_SHORTEN,
-  AV_CODEC_ID_ALAC,
-  AV_CODEC_ID_WESTWOOD_SND1,
-  AV_CODEC_ID_GSM,  ///< as in Berlin toast format
-  AV_CODEC_ID_QDM2,
-  AV_CODEC_ID_COOK,
-  AV_CODEC_ID_TRUESPEECH,
-  AV_CODEC_ID_TTA,
-  AV_CODEC_ID_SMACKAUDIO,
-  AV_CODEC_ID_QCELP,
-  AV_CODEC_ID_WAVPACK,
-  AV_CODEC_ID_DSICINAUDIO,
-  AV_CODEC_ID_IMC,
-  AV_CODEC_ID_MUSEPACK7,
-  AV_CODEC_ID_MLP,
-  AV_CODEC_ID_GSM_MS, /* as found in WAV */
-  AV_CODEC_ID_ATRAC3,
+    AV_CODEC_ID_ADPCM_AFC = 0x11800,
+    AV_CODEC_ID_ADPCM_IMA_OKI,
+    AV_CODEC_ID_ADPCM_DTK,
+    AV_CODEC_ID_ADPCM_IMA_RAD,
+    AV_CODEC_ID_ADPCM_G726LE,
+    AV_CODEC_ID_ADPCM_THP_LE,
+    AV_CODEC_ID_ADPCM_PSX,
+    AV_CODEC_ID_ADPCM_AICA,
+
+    /* AMR */
+    AV_CODEC_ID_AMR_NB = 0x12000,
+    AV_CODEC_ID_AMR_WB,
+
+    /* RealAudio codecs*/
+    AV_CODEC_ID_RA_144 = 0x13000,
+    AV_CODEC_ID_RA_288,
+
+    /* various DPCM codecs */
+    AV_CODEC_ID_ROQ_DPCM = 0x14000,
+    AV_CODEC_ID_INTERPLAY_DPCM,
+    AV_CODEC_ID_XAN_DPCM,
+    AV_CODEC_ID_SOL_DPCM,
+
+    AV_CODEC_ID_SDX2_DPCM = 0x14800,
+
+    /* audio codecs */
+    AV_CODEC_ID_MP2 = 0x15000,
+    AV_CODEC_ID_MP3, ///< preferred ID for decoding MPEG audio layer 1, 2 or 3
+    AV_CODEC_ID_AAC,
+    AV_CODEC_ID_AC3,
+    AV_CODEC_ID_DTS,
+    AV_CODEC_ID_VORBIS,
+    AV_CODEC_ID_DVAUDIO,
+    AV_CODEC_ID_WMAV1,
+    AV_CODEC_ID_WMAV2,
+    AV_CODEC_ID_MACE3,
+    AV_CODEC_ID_MACE6,
+    AV_CODEC_ID_VMDAUDIO,
+    AV_CODEC_ID_FLAC,
+    AV_CODEC_ID_MP3ADU,
+    AV_CODEC_ID_MP3ON4,
+    AV_CODEC_ID_SHORTEN,
+    AV_CODEC_ID_ALAC,
+    AV_CODEC_ID_WESTWOOD_SND1,
+    AV_CODEC_ID_GSM, ///< as in Berlin toast format
+    AV_CODEC_ID_QDM2,
+    AV_CODEC_ID_COOK,
+    AV_CODEC_ID_TRUESPEECH,
+    AV_CODEC_ID_TTA,
+    AV_CODEC_ID_SMACKAUDIO,
+    AV_CODEC_ID_QCELP,
+    AV_CODEC_ID_WAVPACK,
+    AV_CODEC_ID_DSICINAUDIO,
+    AV_CODEC_ID_IMC,
+    AV_CODEC_ID_MUSEPACK7,
+    AV_CODEC_ID_MLP,
+    AV_CODEC_ID_GSM_MS, /* as found in WAV */
+    AV_CODEC_ID_ATRAC3,
 #if FF_API_VOXWARE
-  AV_CODEC_ID_VOXWARE,
+    AV_CODEC_ID_VOXWARE,
 #endif
-  AV_CODEC_ID_APE,
-  AV_CODEC_ID_NELLYMOSER,
-  AV_CODEC_ID_MUSEPACK8,
-  AV_CODEC_ID_SPEEX,
-  AV_CODEC_ID_WMAVOICE,
-  AV_CODEC_ID_WMAPRO,
-  AV_CODEC_ID_WMALOSSLESS,
-  AV_CODEC_ID_ATRAC3P,
-  AV_CODEC_ID_EAC3,
-  AV_CODEC_ID_SIPR,
-  AV_CODEC_ID_MP1,
-  AV_CODEC_ID_TWINVQ,
-  AV_CODEC_ID_TRUEHD,
-  AV_CODEC_ID_MP4ALS,
-  AV_CODEC_ID_ATRAC1,
-  AV_CODEC_ID_BINKAUDIO_RDFT,
-  AV_CODEC_ID_BINKAUDIO_DCT,
-  AV_CODEC_ID_AAC_LATM,
-  AV_CODEC_ID_QDMC,
-  AV_CODEC_ID_CELT,
-  AV_CODEC_ID_G723_1,
-  AV_CODEC_ID_G729,
-  AV_CODEC_ID_8SVX_EXP,
-  AV_CODEC_ID_8SVX_FIB,
-  AV_CODEC_ID_BMV_AUDIO,
-  AV_CODEC_ID_RALF,
-  AV_CODEC_ID_IAC,
-  AV_CODEC_ID_ILBC,
-  AV_CODEC_ID_OPUS,
-  AV_CODEC_ID_COMFORT_NOISE,
-  AV_CODEC_ID_TAK,
-  AV_CODEC_ID_METASOUND,
-  AV_CODEC_ID_PAF_AUDIO,
-  AV_CODEC_ID_ON2AVC,
-  AV_CODEC_ID_DSS_SP,
-
-  AV_CODEC_ID_FFWAVESYNTH = 0x15800,
-  AV_CODEC_ID_SONIC,
-  AV_CODEC_ID_SONIC_LS,
-  AV_CODEC_ID_EVRC,
-  AV_CODEC_ID_SMV,
-  AV_CODEC_ID_DSD_LSBF,
-  AV_CODEC_ID_DSD_MSBF,
-  AV_CODEC_ID_DSD_LSBF_PLANAR,
-  AV_CODEC_ID_DSD_MSBF_PLANAR,
-  AV_CODEC_ID_4GV,
-  AV_CODEC_ID_INTERPLAY_ACM,
-  AV_CODEC_ID_XMA1,
-  AV_CODEC_ID_XMA2,
-
-  /* subtitle codecs */
-  AV_CODEC_ID_FIRST_SUBTITLE =
-      0x17000,  ///< A dummy ID pointing at the start of subtitle codecs.
-  AV_CODEC_ID_DVD_SUBTITLE = 0x17000,
-  AV_CODEC_ID_DVB_SUBTITLE,
-  AV_CODEC_ID_TEXT,  ///< raw UTF-8 text
-  AV_CODEC_ID_XSUB,
-  AV_CODEC_ID_SSA,
-  AV_CODEC_ID_MOV_TEXT,
-  AV_CODEC_ID_HDMV_PGS_SUBTITLE,
-  AV_CODEC_ID_DVB_TELETEXT,
-  AV_CODEC_ID_SRT,
-
-  AV_CODEC_ID_MICRODVD = 0x17800,
-  AV_CODEC_ID_EIA_608,
-  AV_CODEC_ID_JACOSUB,
-  AV_CODEC_ID_SAMI,
-  AV_CODEC_ID_REALTEXT,
-  AV_CODEC_ID_STL,
-  AV_CODEC_ID_SUBVIEWER1,
-  AV_CODEC_ID_SUBVIEWER,
-  AV_CODEC_ID_SUBRIP,
-  AV_CODEC_ID_WEBVTT,
-  AV_CODEC_ID_MPL2,
-  AV_CODEC_ID_VPLAYER,
-  AV_CODEC_ID_PJS,
-  AV_CODEC_ID_ASS,
-  AV_CODEC_ID_HDMV_TEXT_SUBTITLE,
-
-  /* other specific kind of codecs (generally used for attachments) */
-  AV_CODEC_ID_FIRST_UNKNOWN =
-      0x18000,  ///< A dummy ID pointing at the start of various fake codecs.
-  AV_CODEC_ID_TTF = 0x18000,
-
-  AV_CODEC_ID_BINTEXT = 0x18800,
-  AV_CODEC_ID_XBIN,
-  AV_CODEC_ID_IDF,
-  AV_CODEC_ID_OTF,
-  AV_CODEC_ID_SMPTE_KLV,
-  AV_CODEC_ID_DVD_NAV,
-  AV_CODEC_ID_TIMED_ID3,
-  AV_CODEC_ID_BIN_DATA,
-
-  AV_CODEC_ID_PROBE =
-      0x19000,  ///< codec_id is not known (like AV_CODEC_ID_NONE) but lavf
-                ///< should attempt to identify it
-
-  AV_CODEC_ID_MPEG2TS = 0x20000, /**< _FAKE_ codec to indicate a raw MPEG-2 TS
-                                  * stream (only used by libavformat) */
-  AV_CODEC_ID_MPEG4SYSTEMS =
-      0x20001, /**< _FAKE_ codec to indicate a MPEG-4 Systems
-                * stream (only used by libavformat) */
-  AV_CODEC_ID_FFMETADATA = 0x21000,  ///< Dummy codec for streams containing
-                                     ///< only metadata information.
-  AV_CODEC_ID_WRAPPED_AVFRAME =
-      0x21001,  ///< Passthrough codec, AVFrames wrapped in AVPacket
+    AV_CODEC_ID_APE,
+    AV_CODEC_ID_NELLYMOSER,
+    AV_CODEC_ID_MUSEPACK8,
+    AV_CODEC_ID_SPEEX,
+    AV_CODEC_ID_WMAVOICE,
+    AV_CODEC_ID_WMAPRO,
+    AV_CODEC_ID_WMALOSSLESS,
+    AV_CODEC_ID_ATRAC3P,
+    AV_CODEC_ID_EAC3,
+    AV_CODEC_ID_SIPR,
+    AV_CODEC_ID_MP1,
+    AV_CODEC_ID_TWINVQ,
+    AV_CODEC_ID_TRUEHD,
+    AV_CODEC_ID_MP4ALS,
+    AV_CODEC_ID_ATRAC1,
+    AV_CODEC_ID_BINKAUDIO_RDFT,
+    AV_CODEC_ID_BINKAUDIO_DCT,
+    AV_CODEC_ID_AAC_LATM,
+    AV_CODEC_ID_QDMC,
+    AV_CODEC_ID_CELT,
+    AV_CODEC_ID_G723_1,
+    AV_CODEC_ID_G729,
+    AV_CODEC_ID_8SVX_EXP,
+    AV_CODEC_ID_8SVX_FIB,
+    AV_CODEC_ID_BMV_AUDIO,
+    AV_CODEC_ID_RALF,
+    AV_CODEC_ID_IAC,
+    AV_CODEC_ID_ILBC,
+    AV_CODEC_ID_OPUS,
+    AV_CODEC_ID_COMFORT_NOISE,
+    AV_CODEC_ID_TAK,
+    AV_CODEC_ID_METASOUND,
+    AV_CODEC_ID_PAF_AUDIO,
+    AV_CODEC_ID_ON2AVC,
+    AV_CODEC_ID_DSS_SP,
+
+    AV_CODEC_ID_FFWAVESYNTH = 0x15800,
+    AV_CODEC_ID_SONIC,
+    AV_CODEC_ID_SONIC_LS,
+    AV_CODEC_ID_EVRC,
+    AV_CODEC_ID_SMV,
+    AV_CODEC_ID_DSD_LSBF,
+    AV_CODEC_ID_DSD_MSBF,
+    AV_CODEC_ID_DSD_LSBF_PLANAR,
+    AV_CODEC_ID_DSD_MSBF_PLANAR,
+    AV_CODEC_ID_4GV,
+    AV_CODEC_ID_INTERPLAY_ACM,
+    AV_CODEC_ID_XMA1,
+    AV_CODEC_ID_XMA2,
+
+    /* subtitle codecs */
+    AV_CODEC_ID_FIRST_SUBTITLE = 0x17000,          ///< A dummy ID pointing at the start of subtitle codecs.
+    AV_CODEC_ID_DVD_SUBTITLE = 0x17000,
+    AV_CODEC_ID_DVB_SUBTITLE,
+    AV_CODEC_ID_TEXT,  ///< raw UTF-8 text
+    AV_CODEC_ID_XSUB,
+    AV_CODEC_ID_SSA,
+    AV_CODEC_ID_MOV_TEXT,
+    AV_CODEC_ID_HDMV_PGS_SUBTITLE,
+    AV_CODEC_ID_DVB_TELETEXT,
+    AV_CODEC_ID_SRT,
+
+    AV_CODEC_ID_MICRODVD   = 0x17800,
+    AV_CODEC_ID_EIA_608,
+    AV_CODEC_ID_JACOSUB,
+    AV_CODEC_ID_SAMI,
+    AV_CODEC_ID_REALTEXT,
+    AV_CODEC_ID_STL,
+    AV_CODEC_ID_SUBVIEWER1,
+    AV_CODEC_ID_SUBVIEWER,
+    AV_CODEC_ID_SUBRIP,
+    AV_CODEC_ID_WEBVTT,
+    AV_CODEC_ID_MPL2,
+    AV_CODEC_ID_VPLAYER,
+    AV_CODEC_ID_PJS,
+    AV_CODEC_ID_ASS,
+    AV_CODEC_ID_HDMV_TEXT_SUBTITLE,
+
+    /* other specific kind of codecs (generally used for attachments) */
+    AV_CODEC_ID_FIRST_UNKNOWN = 0x18000,           ///< A dummy ID pointing at the start of various fake codecs.
+    AV_CODEC_ID_TTF = 0x18000,
+
+    AV_CODEC_ID_BINTEXT    = 0x18800,
+    AV_CODEC_ID_XBIN,
+    AV_CODEC_ID_IDF,
+    AV_CODEC_ID_OTF,
+    AV_CODEC_ID_SMPTE_KLV,
+    AV_CODEC_ID_DVD_NAV,
+    AV_CODEC_ID_TIMED_ID3,
+    AV_CODEC_ID_BIN_DATA,
+
+
+    AV_CODEC_ID_PROBE = 0x19000, ///< codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it
+
+    AV_CODEC_ID_MPEG2TS = 0x20000, /**< _FAKE_ codec to indicate a raw MPEG-2 TS
+                                * stream (only used by libavformat) */
+    AV_CODEC_ID_MPEG4SYSTEMS = 0x20001, /**< _FAKE_ codec to indicate a MPEG-4 Systems
+                                * stream (only used by libavformat) */
+    AV_CODEC_ID_FFMETADATA = 0x21000,   ///< Dummy codec for streams containing only metadata information.
+    AV_CODEC_ID_WRAPPED_AVFRAME = 0x21001, ///< Passthrough codec, AVFrames wrapped in AVPacket
 };
 
 /**
  * This struct describes the properties of a single codec described by an
  * AVCodecID.
  * @see avcodec_descriptor_get()
  */
 typedef struct AVCodecDescriptor {
-  enum AVCodecID id;
-  enum AVMediaType type;
-  /**
-   * Name of the codec described by this descriptor. It is non-empty and
-   * unique for each codec descriptor. It should contain alphanumeric
-   * characters and '_' only.
-   */
-  const char *name;
-  /**
-   * A more descriptive name for this codec. May be NULL.
-   */
-  const char *long_name;
-  /**
-   * Codec properties, a combination of AV_CODEC_PROP_* flags.
-   */
-  int props;
-  /**
-   * MIME type(s) associated with the codec.
-   * May be NULL; if not, a NULL-terminated array of MIME types.
-   * The first item is always non-NULL and is the preferred MIME type.
-   */
-  const char *const *mime_types;
-  /**
-   * If non-NULL, an array of profiles recognized for this codec.
-   * Terminated with FF_PROFILE_UNKNOWN.
-   */
-  const struct AVProfile *profiles;
+    enum AVCodecID     id;
+    enum AVMediaType type;
+    /**
+     * Name of the codec described by this descriptor. It is non-empty and
+     * unique for each codec descriptor. It should contain alphanumeric
+     * characters and '_' only.
+     */
+    const char      *name;
+    /**
+     * A more descriptive name for this codec. May be NULL.
+     */
+    const char *long_name;
+    /**
+     * Codec properties, a combination of AV_CODEC_PROP_* flags.
+     */
+    int             props;
+    /**
+     * MIME type(s) associated with the codec.
+     * May be NULL; if not, a NULL-terminated array of MIME types.
+     * The first item is always non-NULL and is the preferred MIME type.
+     */
+    const char *const *mime_types;
+    /**
+     * If non-NULL, an array of profiles recognized for this codec.
+     * Terminated with FF_PROFILE_UNKNOWN.
+     */
+    const struct AVProfile *profiles;
 } AVCodecDescriptor;
 
 /**
  * Codec uses only intra compression.
  * Video codecs only.
  */
-#define AV_CODEC_PROP_INTRA_ONLY (1 << 0)
+#define AV_CODEC_PROP_INTRA_ONLY    (1 << 0)
 /**
  * Codec supports lossy compression. Audio and video codecs only.
  * @note a codec may support both lossy and lossless
  * compression modes
  */
-#define AV_CODEC_PROP_LOSSY (1 << 1)
+#define AV_CODEC_PROP_LOSSY         (1 << 1)
 /**
  * Codec supports lossless compression. Audio and video codecs only.
  */
-#define AV_CODEC_PROP_LOSSLESS (1 << 2)
+#define AV_CODEC_PROP_LOSSLESS      (1 << 2)
 /**
  * Codec supports frame reordering. That is, the coded order (the order in which
  * the encoded packets are output by the encoders / stored / input to the
  * decoders) may be different from the presentation order of the corresponding
  * frames.
  *
  * For codecs that do not have this property set, PTS and DTS should always be
  * equal.
  */
-#define AV_CODEC_PROP_REORDER (1 << 3)
+#define AV_CODEC_PROP_REORDER       (1 << 3)
 /**
  * Subtitle codec is bitmap based
  * Decoded AVSubtitle data can be read from the AVSubtitleRect->pict field.
  */
-#define AV_CODEC_PROP_BITMAP_SUB (1 << 16)
+#define AV_CODEC_PROP_BITMAP_SUB    (1 << 16)
 /**
  * Subtitle codec is text based.
  * Decoded AVSubtitle data can be read from the AVSubtitleRect->ass field.
  */
-#define AV_CODEC_PROP_TEXT_SUB (1 << 17)
+#define AV_CODEC_PROP_TEXT_SUB      (1 << 17)
 
 /**
  * @ingroup lavc_decoding
- * Required number of additionally allocated bytes at the end of the input
- * bitstream for decoding. This is mainly needed because some optimized
- * bitstream readers read 32 or 64 bit at once and could read over the end.<br>
+ * Required number of additionally allocated bytes at the end of the input bitstream for decoding.
+ * This is mainly needed because some optimized bitstream readers read
+ * 32 or 64 bit at once and could read over the end.<br>
  * Note: If the first 23 bits of the additional bytes are not 0, then damaged
  * MPEG bitstreams could cause overread and segfault.
  */
 #define AV_INPUT_BUFFER_PADDING_SIZE 32
 
 /**
  * @ingroup lavc_encoding
  * minimum encoding buffer size
@@ -660,66 +654,65 @@ typedef struct AVCodecDescriptor {
 
 /**
  * @ingroup lavc_encoding
  * motion estimation type.
  * @deprecated use codec private option instead
  */
 #if FF_API_MOTION_EST
 enum Motion_Est_ID {
-  ME_ZERO = 1,  ///< no search, that is use 0,0 vector whenever one is needed
-  ME_FULL,
-  ME_LOG,
-  ME_PHODS,
-  ME_EPZS,       ///< enhanced predictive zonal search
-  ME_X1,         ///< reserved for experiments
-  ME_HEX,        ///< hexagon based search
-  ME_UMH,        ///< uneven multi-hexagon search
-  ME_TESA,       ///< transformed exhaustive search algorithm
-  ME_ITER = 50,  ///< iterative search
+    ME_ZERO = 1,    ///< no search, that is use 0,0 vector whenever one is needed
+    ME_FULL,
+    ME_LOG,
+    ME_PHODS,
+    ME_EPZS,        ///< enhanced predictive zonal search
+    ME_X1,          ///< reserved for experiments
+    ME_HEX,         ///< hexagon based search
+    ME_UMH,         ///< uneven multi-hexagon search
+    ME_TESA,        ///< transformed exhaustive search algorithm
+    ME_ITER=50,     ///< iterative search
 };
 #endif
 
 /**
  * @ingroup lavc_decoding
  */
-enum AVDiscard {
-  /* We leave some space between them for extensions (drop some
-   * keyframes for intra-only or drop just some bidir frames). */
-  AVDISCARD_NONE = -16,  ///< discard nothing
-  AVDISCARD_DEFAULT =
-      0,                 ///< discard useless packets like 0 size packets in avi
-  AVDISCARD_NONREF = 8,  ///< discard all non reference
-  AVDISCARD_BIDIR = 16,  ///< discard all bidirectional frames
-  AVDISCARD_NONINTRA = 24,  ///< discard all non intra frames
-  AVDISCARD_NONKEY = 32,    ///< discard all frames except keyframes
-  AVDISCARD_ALL = 48,       ///< discard all
+enum AVDiscard{
+    /* We leave some space between them for extensions (drop some
+     * keyframes for intra-only or drop just some bidir frames). */
+    AVDISCARD_NONE    =-16, ///< discard nothing
+    AVDISCARD_DEFAULT =  0, ///< discard useless packets like 0 size packets in avi
+    AVDISCARD_NONREF  =  8, ///< discard all non reference
+    AVDISCARD_BIDIR   = 16, ///< discard all bidirectional frames
+    AVDISCARD_NONINTRA= 24, ///< discard all non intra frames
+    AVDISCARD_NONKEY  = 32, ///< discard all frames except keyframes
+    AVDISCARD_ALL     = 48, ///< discard all
 };
 
 enum AVAudioServiceType {
-  AV_AUDIO_SERVICE_TYPE_MAIN = 0,
-  AV_AUDIO_SERVICE_TYPE_EFFECTS = 1,
-  AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED = 2,
-  AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED = 3,
-  AV_AUDIO_SERVICE_TYPE_DIALOGUE = 4,
-  AV_AUDIO_SERVICE_TYPE_COMMENTARY = 5,
-  AV_AUDIO_SERVICE_TYPE_EMERGENCY = 6,
-  AV_AUDIO_SERVICE_TYPE_VOICE_OVER = 7,
-  AV_AUDIO_SERVICE_TYPE_KARAOKE = 8,
-  AV_AUDIO_SERVICE_TYPE_NB,  ///< Not part of ABI
+    AV_AUDIO_SERVICE_TYPE_MAIN              = 0,
+    AV_AUDIO_SERVICE_TYPE_EFFECTS           = 1,
+    AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED = 2,
+    AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED  = 3,
+    AV_AUDIO_SERVICE_TYPE_DIALOGUE          = 4,
+    AV_AUDIO_SERVICE_TYPE_COMMENTARY        = 5,
+    AV_AUDIO_SERVICE_TYPE_EMERGENCY         = 6,
+    AV_AUDIO_SERVICE_TYPE_VOICE_OVER        = 7,
+    AV_AUDIO_SERVICE_TYPE_KARAOKE           = 8,
+    AV_AUDIO_SERVICE_TYPE_NB                   , ///< Not part of ABI
 };
 
 /**
  * @ingroup lavc_encoding
  */
-typedef struct RcOverride {
-  int start_frame;
-  int end_frame;
-  int qscale;  // If this is 0 then quality_factor will be used instead.
-  float quality_factor;
+typedef struct RcOverride{
+    int start_frame;
+    int end_frame;
+    int qscale; // If this is 0 then quality_factor will be used instead.
+    float quality_factor;
 } RcOverride;
 
 #if FF_API_MAX_BFRAMES
 /**
  * @deprecated there is no libavcodec-wide limit on the number of B-frames
  */
 #define FF_MAX_B_FRAMES 16
 #endif
@@ -728,145 +721,144 @@ typedef struct RcOverride {
    These flags can be passed in AVCodecContext.flags before initialization.
    Note: Not everything is supported yet.
 */
 
 /**
  * Allow decoders to produce frames with data planes that are not aligned
  * to CPU requirements (e.g. due to cropping).
  */
-#define AV_CODEC_FLAG_UNALIGNED (1 << 0)
+#define AV_CODEC_FLAG_UNALIGNED       (1 <<  0)
 /**
  * Use fixed qscale.
  */
-#define AV_CODEC_FLAG_QSCALE (1 << 1)
+#define AV_CODEC_FLAG_QSCALE          (1 <<  1)
 /**
  * 4 MV per MB allowed / advanced prediction for H.263.
  */
-#define AV_CODEC_FLAG_4MV (1 << 2)
+#define AV_CODEC_FLAG_4MV             (1 <<  2)
 /**
  * Output even those frames that might be corrupted.
  */
-#define AV_CODEC_FLAG_OUTPUT_CORRUPT (1 << 3)
+#define AV_CODEC_FLAG_OUTPUT_CORRUPT  (1 <<  3)
 /**
  * Use qpel MC.
  */
-#define AV_CODEC_FLAG_QPEL (1 << 4)
+#define AV_CODEC_FLAG_QPEL            (1 <<  4)
 /**
  * Use internal 2pass ratecontrol in first pass mode.
  */
-#define AV_CODEC_FLAG_PASS1 (1 << 9)
+#define AV_CODEC_FLAG_PASS1           (1 <<  9)
 /**
  * Use internal 2pass ratecontrol in second pass mode.
  */
-#define AV_CODEC_FLAG_PASS2 (1 << 10)
+#define AV_CODEC_FLAG_PASS2           (1 << 10)
 /**
  * loop filter.
  */
-#define AV_CODEC_FLAG_LOOP_FILTER (1 << 11)
+#define AV_CODEC_FLAG_LOOP_FILTER     (1 << 11)
 /**
  * Only decode/encode grayscale.
  */
-#define AV_CODEC_FLAG_GRAY (1 << 13)
+#define AV_CODEC_FLAG_GRAY            (1 << 13)
 /**
  * error[?] variables will be set during encoding.
  */
-#define AV_CODEC_FLAG_PSNR (1 << 15)
+#define AV_CODEC_FLAG_PSNR            (1 << 15)
 /**
  * Input bitstream might be truncated at a random location
  * instead of only at frame boundaries.
  */
-#define AV_CODEC_FLAG_TRUNCATED (1 << 16)
+#define AV_CODEC_FLAG_TRUNCATED       (1 << 16)
 /**
  * Use interlaced DCT.
  */
-#define AV_CODEC_FLAG_INTERLACED_DCT (1 << 18)
+#define AV_CODEC_FLAG_INTERLACED_DCT  (1 << 18)
 /**
  * Force low delay.
  */
-#define AV_CODEC_FLAG_LOW_DELAY (1 << 19)
+#define AV_CODEC_FLAG_LOW_DELAY       (1 << 19)
 /**
  * Place global headers in extradata instead of every keyframe.
  */
-#define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22)
+#define AV_CODEC_FLAG_GLOBAL_HEADER   (1 << 22)
 /**
  * Use only bitexact stuff (except (I)DCT).
  */
-#define AV_CODEC_FLAG_BITEXACT (1 << 23)
+#define AV_CODEC_FLAG_BITEXACT        (1 << 23)
 /* Fx : Flag for h263+ extra options */
 /**
  * H.263 advanced intra coding / MPEG-4 AC prediction
  */
-#define AV_CODEC_FLAG_AC_PRED (1 << 24)
+#define AV_CODEC_FLAG_AC_PRED         (1 << 24)
 /**
  * interlaced motion estimation
  */
-#define AV_CODEC_FLAG_INTERLACED_ME (1 << 29)
-#define AV_CODEC_FLAG_CLOSED_GOP (1U << 31)
+#define AV_CODEC_FLAG_INTERLACED_ME   (1 << 29)
+#define AV_CODEC_FLAG_CLOSED_GOP      (1U << 31)
 
 /**
  * Allow non spec compliant speedup tricks.
  */
-#define AV_CODEC_FLAG2_FAST (1 << 0)
+#define AV_CODEC_FLAG2_FAST           (1 <<  0)
 /**
  * Skip bitstream encoding.
  */
-#define AV_CODEC_FLAG2_NO_OUTPUT (1 << 2)
+#define AV_CODEC_FLAG2_NO_OUTPUT      (1 <<  2)
 /**
  * Place global headers at every keyframe instead of in extradata.
  */
-#define AV_CODEC_FLAG2_LOCAL_HEADER (1 << 3)
+#define AV_CODEC_FLAG2_LOCAL_HEADER   (1 <<  3)
 
 /**
  * timecode is in drop frame format. DEPRECATED!!!!
  */
 #define AV_CODEC_FLAG2_DROP_FRAME_TIMECODE (1 << 13)
 
 /**
  * Input bitstream might be truncated at a packet boundaries
  * instead of only at frame boundaries.
  */
-#define AV_CODEC_FLAG2_CHUNKS (1 << 15)
+#define AV_CODEC_FLAG2_CHUNKS         (1 << 15)
 /**
  * Discard cropping information from SPS.
  */
-#define AV_CODEC_FLAG2_IGNORE_CROP (1 << 16)
+#define AV_CODEC_FLAG2_IGNORE_CROP    (1 << 16)
 
 /**
  * Show all frames before the first keyframe
  */
-#define AV_CODEC_FLAG2_SHOW_ALL (1 << 22)
+#define AV_CODEC_FLAG2_SHOW_ALL       (1 << 22)
 /**
  * Export motion vectors through frame side data
  */
-#define AV_CODEC_FLAG2_EXPORT_MVS (1 << 28)
+#define AV_CODEC_FLAG2_EXPORT_MVS     (1 << 28)
 /**
  * Do not skip samples and export skip information as frame side data
  */
-#define AV_CODEC_FLAG2_SKIP_MANUAL (1 << 29)
+#define AV_CODEC_FLAG2_SKIP_MANUAL    (1 << 29)
 
 /* Unsupported options :
  *              Syntax Arithmetic coding (SAC)
  *              Reference Picture Selection
  *              Independent Segment Decoding */
 /* /Fx */
 /* codec capabilities */
 
 /**
  * Decoder can use draw_horiz_band callback.
  */
-#define AV_CODEC_CAP_DRAW_HORIZ_BAND (1 << 0)
-/**
- * Codec uses get_buffer() for allocating buffers and supports custom
- * allocators. If not set, it might not use get_buffer() at all or use
- * operations that assume the buffer was allocated by
- * avcodec_default_get_buffer.
- */
-#define AV_CODEC_CAP_DR1 (1 << 1)
-#define AV_CODEC_CAP_TRUNCATED (1 << 3)
+#define AV_CODEC_CAP_DRAW_HORIZ_BAND     (1 <<  0)
+/**
+ * Codec uses get_buffer() for allocating buffers and supports custom allocators.
+ * If not set, it might not use get_buffer() at all or use operations that
+ * assume the buffer was allocated by avcodec_default_get_buffer.
+ */
+#define AV_CODEC_CAP_DR1                 (1 <<  1)
+#define AV_CODEC_CAP_TRUNCATED           (1 <<  3)
 /**
  * Encoder or decoder requires flushing with NULL input at the end in order to
  * give the complete and correct output.
  *
  * NOTE: If this flag is not set, the codec is guaranteed to never be fed with
  *       with NULL data. The user can still send NULL data to the public encode
  *       or decode function, but libavcodec will not pass it along to the codec
  *       unless this flag is set.
@@ -880,176 +872,174 @@ typedef struct RcOverride {
  * The encoder needs to be fed with NULL data at the end of encoding until the
  * encoder no longer returns data.
  *
  * NOTE: For encoders implementing the AVCodec.encode2() function, setting this
  *       flag also means that the encoder must set the pts and duration for
  *       each output packet. If this flag is not set, the pts and duration will
  *       be determined by libavcodec from the input frame.
  */
-#define AV_CODEC_CAP_DELAY (1 << 5)
+#define AV_CODEC_CAP_DELAY               (1 <<  5)
 /**
  * Codec can be fed a final frame with a smaller size.
  * This can be used to prevent truncation of the last audio samples.
  */
-#define AV_CODEC_CAP_SMALL_LAST_FRAME (1 << 6)
+#define AV_CODEC_CAP_SMALL_LAST_FRAME    (1 <<  6)
 
 #if FF_API_CAP_VDPAU
 /**
  * Codec can export data for HW decoding (VDPAU).
  */
-#define AV_CODEC_CAP_HWACCEL_VDPAU (1 << 7)
+#define AV_CODEC_CAP_HWACCEL_VDPAU       (1 <<  7)
 #endif
 
 /**
  * Codec can output multiple frames per AVPacket
  * Normally demuxers return one frame at a time, demuxers which do not do
  * are connected to a parser to split what they return into proper frames.
  * This flag is reserved to the very rare category of codecs which have a
  * bitstream that cannot be split into frames without timeconsuming
  * operations like full decoding. Demuxers carring such bitstreams thus
  * may return multiple frames in a packet. This has many disadvantages like
  * prohibiting stream copy in many cases thus it should only be considered
  * as a last resort.
  */
-#define AV_CODEC_CAP_SUBFRAMES (1 << 8)
+#define AV_CODEC_CAP_SUBFRAMES           (1 <<  8)
 /**
  * Codec is experimental and is thus avoided in favor of non experimental
  * encoders
  */
-#define AV_CODEC_CAP_EXPERIMENTAL (1 << 9)
-/**
- * Codec should fill in channel configuration and samplerate instead of
- * container
- */
-#define AV_CODEC_CAP_CHANNEL_CONF (1 << 10)
+#define AV_CODEC_CAP_EXPERIMENTAL        (1 <<  9)
+/**
+ * Codec should fill in channel configuration and samplerate instead of container
+ */
+#define AV_CODEC_CAP_CHANNEL_CONF        (1 << 10)
 /**
  * Codec supports frame-level multithreading.
  */
-#define AV_CODEC_CAP_FRAME_THREADS (1 << 12)
+#define AV_CODEC_CAP_FRAME_THREADS       (1 << 12)
 /**
  * Codec supports slice-based (or partition-based) multithreading.
  */
-#define AV_CODEC_CAP_SLICE_THREADS (1 << 13)
+#define AV_CODEC_CAP_SLICE_THREADS       (1 << 13)
 /**
  * Codec supports changed parameters at any point.
  */
-#define AV_CODEC_CAP_PARAM_CHANGE (1 << 14)
+#define AV_CODEC_CAP_PARAM_CHANGE        (1 << 14)
 /**
  * Codec supports avctx->thread_count == 0 (auto).
  */
-#define AV_CODEC_CAP_AUTO_THREADS (1 << 15)
+#define AV_CODEC_CAP_AUTO_THREADS        (1 << 15)
 /**
  * Audio encoder supports receiving a different number of samples in each call.
  */
 #define AV_CODEC_CAP_VARIABLE_FRAME_SIZE (1 << 16)
 /**
  * Codec is intra only.
  */
-#define AV_CODEC_CAP_INTRA_ONLY 0x40000000
+#define AV_CODEC_CAP_INTRA_ONLY       0x40000000
 /**
  * Codec is lossless.
  */
-#define AV_CODEC_CAP_LOSSLESS 0x80000000
+#define AV_CODEC_CAP_LOSSLESS         0x80000000
+
 
 #if FF_API_WITHOUT_PREFIX
 /**
  * Allow decoders to produce frames with data planes that are not aligned
  * to CPU requirements (e.g. due to cropping).
  */
 #define CODEC_FLAG_UNALIGNED AV_CODEC_FLAG_UNALIGNED
 #define CODEC_FLAG_QSCALE AV_CODEC_FLAG_QSCALE
-#define CODEC_FLAG_4MV AV_CODEC_FLAG_4MV
+#define CODEC_FLAG_4MV    AV_CODEC_FLAG_4MV
 #define CODEC_FLAG_OUTPUT_CORRUPT AV_CODEC_FLAG_OUTPUT_CORRUPT
-#define CODEC_FLAG_QPEL AV_CODEC_FLAG_QPEL
+#define CODEC_FLAG_QPEL   AV_CODEC_FLAG_QPEL
 #if FF_API_GMC
 /**
  * @deprecated use the "gmc" private option of the libxvid encoder
  */
-#define CODEC_FLAG_GMC 0x0020  ///< Use GMC.
+#define CODEC_FLAG_GMC    0x0020  ///< Use GMC.
 #endif
 #if FF_API_MV0
 /**
  * @deprecated use the flag "mv0" in the "mpv_flags" private option of the
  * mpegvideo encoders
  */
-#define CODEC_FLAG_MV0 0x0040
+#define CODEC_FLAG_MV0    0x0040
 #endif
 #if FF_API_INPUT_PRESERVED
 /**
  * @deprecated passing reference-counted frames to the encoders replaces this
  * flag
  */
 #define CODEC_FLAG_INPUT_PRESERVED 0x0100
 #endif
-#define CODEC_FLAG_PASS1 AV_CODEC_FLAG_PASS1
-#define CODEC_FLAG_PASS2 AV_CODEC_FLAG_PASS2
-#define CODEC_FLAG_GRAY AV_CODEC_FLAG_GRAY
+#define CODEC_FLAG_PASS1           AV_CODEC_FLAG_PASS1
+#define CODEC_FLAG_PASS2           AV_CODEC_FLAG_PASS2
+#define CODEC_FLAG_GRAY            AV_CODEC_FLAG_GRAY
 #if FF_API_EMU_EDGE
 /**
  * @deprecated edges are not used/required anymore. I.e. this flag is now always
  * set.
  */
-#define CODEC_FLAG_EMU_EDGE 0x4000
+#define CODEC_FLAG_EMU_EDGE        0x4000
 #endif
-#define CODEC_FLAG_PSNR AV_CODEC_FLAG_PSNR
-#define CODEC_FLAG_TRUNCATED AV_CODEC_FLAG_TRUNCATED
+#define CODEC_FLAG_PSNR            AV_CODEC_FLAG_PSNR
+#define CODEC_FLAG_TRUNCATED       AV_CODEC_FLAG_TRUNCATED
 
 #if FF_API_NORMALIZE_AQP
 /**
  * @deprecated use the flag "naq" in the "mpv_flags" private option of the
  * mpegvideo encoders
  */
-#define CODEC_FLAG_NORMALIZE_AQP 0x00020000
+#define CODEC_FLAG_NORMALIZE_AQP  0x00020000
 #endif
 #define CODEC_FLAG_INTERLACED_DCT AV_CODEC_FLAG_INTERLACED_DCT
-#define CODEC_FLAG_LOW_DELAY AV_CODEC_FLAG_LOW_DELAY
-#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER
-#define CODEC_FLAG_BITEXACT AV_CODEC_FLAG_BITEXACT
-#define CODEC_FLAG_AC_PRED AV_CODEC_FLAG_AC_PRED
-#define CODEC_FLAG_LOOP_FILTER AV_CODEC_FLAG_LOOP_FILTER
-#define CODEC_FLAG_INTERLACED_ME AV_CODEC_FLAG_INTERLACED_ME
-#define CODEC_FLAG_CLOSED_GOP AV_CODEC_FLAG_CLOSED_GOP
-#define CODEC_FLAG2_FAST AV_CODEC_FLAG2_FAST
-#define CODEC_FLAG2_NO_OUTPUT AV_CODEC_FLAG2_NO_OUTPUT
-#define CODEC_FLAG2_LOCAL_HEADER AV_CODEC_FLAG2_LOCAL_HEADER
+#define CODEC_FLAG_LOW_DELAY      AV_CODEC_FLAG_LOW_DELAY
+#define CODEC_FLAG_GLOBAL_HEADER  AV_CODEC_FLAG_GLOBAL_HEADER
+#define CODEC_FLAG_BITEXACT       AV_CODEC_FLAG_BITEXACT
+#define CODEC_FLAG_AC_PRED        AV_CODEC_FLAG_AC_PRED
+#define CODEC_FLAG_LOOP_FILTER    AV_CODEC_FLAG_LOOP_FILTER
+#define CODEC_FLAG_INTERLACED_ME  AV_CODEC_FLAG_INTERLACED_ME
+#define CODEC_FLAG_CLOSED_GOP     AV_CODEC_FLAG_CLOSED_GOP
+#define CODEC_FLAG2_FAST          AV_CODEC_FLAG2_FAST
+#define CODEC_FLAG2_NO_OUTPUT     AV_CODEC_FLAG2_NO_OUTPUT
+#define CODEC_FLAG2_LOCAL_HEADER  AV_CODEC_FLAG2_LOCAL_HEADER
 #define CODEC_FLAG2_DROP_FRAME_TIMECODE AV_CODEC_FLAG2_DROP_FRAME_TIMECODE
-#define CODEC_FLAG2_IGNORE_CROP AV_CODEC_FLAG2_IGNORE_CROP
-
-#define CODEC_FLAG2_CHUNKS AV_CODEC_FLAG2_CHUNKS
-#define CODEC_FLAG2_SHOW_ALL AV_CODEC_FLAG2_SHOW_ALL
-#define CODEC_FLAG2_EXPORT_MVS AV_CODEC_FLAG2_EXPORT_MVS
-#define CODEC_FLAG2_SKIP_MANUAL AV_CODEC_FLAG2_SKIP_MANUAL
+#define CODEC_FLAG2_IGNORE_CROP   AV_CODEC_FLAG2_IGNORE_CROP
+
+#define CODEC_FLAG2_CHUNKS        AV_CODEC_FLAG2_CHUNKS
+#define CODEC_FLAG2_SHOW_ALL      AV_CODEC_FLAG2_SHOW_ALL
+#define CODEC_FLAG2_EXPORT_MVS    AV_CODEC_FLAG2_EXPORT_MVS
+#define CODEC_FLAG2_SKIP_MANUAL   AV_CODEC_FLAG2_SKIP_MANUAL
 
 /* Unsupported options :
  *              Syntax Arithmetic coding (SAC)
  *              Reference Picture Selection
  *              Independent Segment Decoding */
 /* /Fx */
 /* codec capabilities */
 
-#define CODEC_CAP_DRAW_HORIZ_BAND \
-  AV_CODEC_CAP_DRAW_HORIZ_BAND  ///< Decoder can use draw_horiz_band callback.
-/**
- * Codec uses get_buffer() for allocating buffers and supports custom
- * allocators. If not set, it might not use get_buffer() at all or use
- * operations that assume the buffer was allocated by
- * avcodec_default_get_buffer.
- */
-#define CODEC_CAP_DR1 AV_CODEC_CAP_DR1
-#define CODEC_CAP_TRUNCATED AV_CODEC_CAP_TRUNCATED
+#define CODEC_CAP_DRAW_HORIZ_BAND AV_CODEC_CAP_DRAW_HORIZ_BAND ///< Decoder can use draw_horiz_band callback.
+/**
+ * Codec uses get_buffer() for allocating buffers and supports custom allocators.
+ * If not set, it might not use get_buffer() at all or use operations that
+ * assume the buffer was allocated by avcodec_default_get_buffer.
+ */
+#define CODEC_CAP_DR1             AV_CODEC_CAP_DR1
+#define CODEC_CAP_TRUNCATED       AV_CODEC_CAP_TRUNCATED
 #if FF_API_XVMC
 /* Codec can export data for HW decoding. This flag indicates that
  * the codec would call get_format() with list that might contain HW accelerated
  * pixel formats (XvMC, VDPAU, VAAPI, etc). The application can pick any of them
  * including raw image format.
  * The application can use the passed context to determine bitstream version,
  * chroma format, resolution etc.
  */
-#define CODEC_CAP_HWACCEL 0x0010
+#define CODEC_CAP_HWACCEL         0x0010
 #endif /* FF_API_XVMC */
 /**
  * Encoder or decoder requires flushing with NULL input at the end in order to
  * give the complete and correct output.
  *
  * NOTE: If this flag is not set, the codec is guaranteed to never be fed with
  *       with NULL data. The user can still send NULL data to the public encode
  *       or decode function, but libavcodec will not pass it along to the codec
@@ -1064,368 +1054,367 @@ typedef struct RcOverride {
  * The encoder needs to be fed with NULL data at the end of encoding until the
  * encoder no longer returns data.
  *
  * NOTE: For encoders implementing the AVCodec.encode2() function, setting this
  *       flag also means that the encoder must set the pts and duration for
  *       each output packet. If this flag is not set, the pts and duration will
  *       be determined by libavcodec from the input frame.
  */
-#define CODEC_CAP_DELAY AV_CODEC_CAP_DELAY
+#define CODEC_CAP_DELAY           AV_CODEC_CAP_DELAY
 /**
  * Codec can be fed a final frame with a smaller size.
  * This can be used to prevent truncation of the last audio samples.
  */
 #define CODEC_CAP_SMALL_LAST_FRAME AV_CODEC_CAP_SMALL_LAST_FRAME
 #if FF_API_CAP_VDPAU
 /**
  * Codec can export data for HW decoding (VDPAU).
  */
-#define CODEC_CAP_HWACCEL_VDPAU AV_CODEC_CAP_HWACCEL_VDPAU
+#define CODEC_CAP_HWACCEL_VDPAU    AV_CODEC_CAP_HWACCEL_VDPAU
 #endif
 /**
  * Codec can output multiple frames per AVPacket
  * Normally demuxers return one frame at a time, demuxers which do not do
  * are connected to a parser to split what they return into proper frames.
  * This flag is reserved to the very rare category of codecs which have a
  * bitstream that cannot be split into frames without timeconsuming
  * operations like full decoding. Demuxers carring such bitstreams thus
  * may return multiple frames in a packet. This has many disadvantages like
  * prohibiting stream copy in many cases thus it should only be considered
  * as a last resort.
  */
-#define CODEC_CAP_SUBFRAMES AV_CODEC_CAP_SUBFRAMES
+#define CODEC_CAP_SUBFRAMES        AV_CODEC_CAP_SUBFRAMES
 /**
  * Codec is experimental and is thus avoided in favor of non experimental
  * encoders
  */
-#define CODEC_CAP_EXPERIMENTAL AV_CODEC_CAP_EXPERIMENTAL
-/**
- * Codec should fill in channel configuration and samplerate instead of
- * container
- */
-#define CODEC_CAP_CHANNEL_CONF AV_CODEC_CAP_CHANNEL_CONF
+#define CODEC_CAP_EXPERIMENTAL     AV_CODEC_CAP_EXPERIMENTAL
+/**
+ * Codec should fill in channel configuration and samplerate instead of container
+ */
+#define CODEC_CAP_CHANNEL_CONF     AV_CODEC_CAP_CHANNEL_CONF
 #if FF_API_NEG_LINESIZES
 /**
  * @deprecated no codecs use this capability
  */
-#define CODEC_CAP_NEG_LINESIZES 0x0800
+#define CODEC_CAP_NEG_LINESIZES    0x0800
 #endif
 /**
  * Codec supports frame-level multithreading.
  */
-#define CODEC_CAP_FRAME_THREADS AV_CODEC_CAP_FRAME_THREADS
+#define CODEC_CAP_FRAME_THREADS    AV_CODEC_CAP_FRAME_THREADS
 /**
  * Codec supports slice-based (or partition-based) multithreading.
  */
-#define CODEC_CAP_SLICE_THREADS AV_CODEC_CAP_SLICE_THREADS
+#define CODEC_CAP_SLICE_THREADS    AV_CODEC_CAP_SLICE_THREADS
 /**
  * Codec supports changed parameters at any point.
  */
-#define CODEC_CAP_PARAM_CHANGE AV_CODEC_CAP_PARAM_CHANGE
+#define CODEC_CAP_PARAM_CHANGE     AV_CODEC_CAP_PARAM_CHANGE
 /**
  * Codec supports avctx->thread_count == 0 (auto).
  */
-#define CODEC_CAP_AUTO_THREADS AV_CODEC_CAP_AUTO_THREADS
+#define CODEC_CAP_AUTO_THREADS     AV_CODEC_CAP_AUTO_THREADS
 /**
  * Audio encoder supports receiving a different number of samples in each call.
  */
 #define CODEC_CAP_VARIABLE_FRAME_SIZE AV_CODEC_CAP_VARIABLE_FRAME_SIZE
 /**
  * Codec is intra only.
  */
-#define CODEC_CAP_INTRA_ONLY AV_CODEC_CAP_INTRA_ONLY
+#define CODEC_CAP_INTRA_ONLY       AV_CODEC_CAP_INTRA_ONLY
 /**
  * Codec is lossless.
  */
-#define CODEC_CAP_LOSSLESS AV_CODEC_CAP_LOSSLESS
+#define CODEC_CAP_LOSSLESS         AV_CODEC_CAP_LOSSLESS
 
 /**
  * HWAccel is experimental and is thus avoided in favor of non experimental
  * codecs
  */
-#define HWACCEL_CODEC_CAP_EXPERIMENTAL 0x0200
+#define HWACCEL_CODEC_CAP_EXPERIMENTAL     0x0200
 #endif /* FF_API_WITHOUT_PREFIX */
 
 #if FF_API_MB_TYPE
-// The following defines may change, don't expect compatibility if you use them.
-#define MB_TYPE_INTRA4x4 0x0001
-#define MB_TYPE_INTRA16x16 0x0002  // FIXME H.264-specific
-#define MB_TYPE_INTRA_PCM 0x0004   // FIXME H.264-specific
-#define MB_TYPE_16x16 0x0008
-#define MB_TYPE_16x8 0x0010
-#define MB_TYPE_8x16 0x0020
-#define MB_TYPE_8x8 0x0040
+//The following defines may change, don't expect compatibility if you use them.
+#define MB_TYPE_INTRA4x4   0x0001
+#define MB_TYPE_INTRA16x16 0x0002 //FIXME H.264-specific
+#define MB_TYPE_INTRA_PCM  0x0004 //FIXME H.264-specific
+#define MB_TYPE_16x16      0x0008
+#define MB_TYPE_16x8       0x0010
+#define MB_TYPE_8x16       0x0020
+#define MB_TYPE_8x8        0x0040
 #define MB_TYPE_INTERLACED 0x0080
-#define MB_TYPE_DIRECT2 0x0100  // FIXME
-#define MB_TYPE_ACPRED 0x0200
-#define MB_TYPE_GMC 0x0400
-#define MB_TYPE_SKIP 0x0800
-#define MB_TYPE_P0L0 0x1000
-#define MB_TYPE_P1L0 0x2000
-#define MB_TYPE_P0L1 0x4000
-#define MB_TYPE_P1L1 0x8000
-#define MB_TYPE_L0 (MB_TYPE_P0L0 | MB_TYPE_P1L0)
-#define MB_TYPE_L1 (MB_TYPE_P0L1 | MB_TYPE_P1L1)
-#define MB_TYPE_L0L1 (MB_TYPE_L0 | MB_TYPE_L1)
-#define MB_TYPE_QUANT 0x00010000
-#define MB_TYPE_CBP 0x00020000
-// Note bits 24-31 are reserved for codec specific use (h264 ref0, mpeg1 0mv,
-// ...)
+#define MB_TYPE_DIRECT2    0x0100 //FIXME
+#define MB_TYPE_ACPRED     0x0200
+#define MB_TYPE_GMC        0x0400
+#define MB_TYPE_SKIP       0x0800
+#define MB_TYPE_P0L0       0x1000
+#define MB_TYPE_P1L0       0x2000
+#define MB_TYPE_P0L1       0x4000
+#define MB_TYPE_P1L1       0x8000
+#define MB_TYPE_L0         (MB_TYPE_P0L0 | MB_TYPE_P1L0)
+#define MB_TYPE_L1         (MB_TYPE_P0L1 | MB_TYPE_P1L1)
+#define MB_TYPE_L0L1       (MB_TYPE_L0   | MB_TYPE_L1)
+#define MB_TYPE_QUANT      0x00010000
+#define MB_TYPE_CBP        0x00020000
+//Note bits 24-31 are reserved for codec specific use (h264 ref0, mpeg1 0mv, ...)
 #endif
 
 /**
  * Pan Scan area.
  * This specifies the area which should be displayed.
  * Note there may be multiple such areas for one frame.
  */
-typedef struct AVPanScan {
-  /**
-   * id
-   * - encoding: Set by user.
-   * - decoding: Set by libavcodec.
-   */
-  int id;
-
-  /**
-   * width and height in 1/16 pel
-   * - encoding: Set by user.
-   * - decoding: Set by libavcodec.
-   */
-  int width;
-  int height;
-
-  /**
-   * position of the top left corner in 1/16 pel for up to 3 fields/frames
-   * - encoding: Set by user.
-   * - decoding: Set by libavcodec.
-   */
-  int16_t position[3][2];
-} AVPanScan;
+typedef struct AVPanScan{
+    /**
+     * id
+     * - encoding: Set by user.
+     * - decoding: Set by libavcodec.
+     */
+    int id;
+
+    /**
+     * width and height in 1/16 pel
+     * - encoding: Set by user.
+     * - decoding: Set by libavcodec.
+     */
+    int width;
+    int height;
+
+    /**
+     * position of the top left corner in 1/16 pel for up to 3 fields/frames
+     * - encoding: Set by user.
+     * - decoding: Set by libavcodec.
+     */
+    int16_t position[3][2];
+}AVPanScan;
 
 /**
  * This structure describes the bitrate properties of an encoded bitstream. It
  * roughly corresponds to a subset the VBV parameters for MPEG-2 or HRD
  * parameters for H.264/HEVC.
  */
 typedef struct AVCPBProperties {
-  /**
-   * Maximum bitrate of the stream, in bits per second.
-   * Zero if unknown or unspecified.
-   */
-  int max_bitrate;
-  /**
-   * Minimum bitrate of the stream, in bits per second.
-   * Zero if unknown or unspecified.
-   */
-  int min_bitrate;
-  /**
-   * Average bitrate of the stream, in bits per second.
-   * Zero if unknown or unspecified.
-   */
-  int avg_bitrate;
-
-  /**
-   * The size of the buffer to which the ratecontrol is applied, in bits.
-   * Zero if unknown or unspecified.
-   */
-  int buffer_size;
-
-  /**
-   * The delay between the time the packet this structure is associated with
-   * is received and the time when it should be decoded, in periods of a 27MHz
-   * clock.
-   *
-   * UINT64_MAX when unknown or unspecified.
-   */
-  uint64_t vbv_delay;
+    /**
+     * Maximum bitrate of the stream, in bits per second.
+     * Zero if unknown or unspecified.
+     */
+    int max_bitrate;
+    /**
+     * Minimum bitrate of the stream, in bits per second.
+     * Zero if unknown or unspecified.
+     */
+    int min_bitrate;
+    /**
+     * Average bitrate of the stream, in bits per second.
+     * Zero if unknown or unspecified.
+     */
+    int avg_bitrate;
+
+    /**
+     * The size of the buffer to which the ratecontrol is applied, in bits.
+     * Zero if unknown or unspecified.
+     */
+    int buffer_size;
+
+    /**
+     * The delay between the time the packet this structure is associated with
+     * is received and the time when it should be decoded, in periods of a 27MHz
+     * clock.
+     *
+     * UINT64_MAX when unknown or unspecified.
+     */
+    uint64_t vbv_delay;
 } AVCPBProperties;
 
 #if FF_API_QSCALE_TYPE
 #define FF_QSCALE_TYPE_MPEG1 0
 #define FF_QSCALE_TYPE_MPEG2 1
-#define FF_QSCALE_TYPE_H264 2
-#define FF_QSCALE_TYPE_VP56 3
+#define FF_QSCALE_TYPE_H264  2
+#define FF_QSCALE_TYPE_VP56  3
 #endif
 
 /**
  * The decoder will keep a reference to the frame and may reuse it later.
  */
 #define AV_GET_BUFFER_FLAG_REF (1 << 0)
 
 /**
  * @defgroup lavc_packet AVPacket
  *
  * Types and functions for working with AVPacket.
  * @{
  */
 enum AVPacketSideDataType {
-  AV_PKT_DATA_PALETTE,
-  AV_PKT_DATA_NEW_EXTRADATA,
-
-  /**
-   * An AV_PKT_DATA_PARAM_CHANGE side data packet is laid out as follows:
-   * @code
-   * u32le param_flags
-   * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT)
-   *     s32le channel_count
-   * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT)
-   *     u64le channel_layout
-   * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE)
-   *     s32le sample_rate
-   * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS)
-   *     s32le width
-   *     s32le height
-   * @endcode
-   */
-  AV_PKT_DATA_PARAM_CHANGE,
-
-  /**
-   * An AV_PKT_DATA_H263_MB_INFO side data packet contains a number of
-   * structures with info about macroblocks relevant to splitting the
-   * packet into smaller packets on macroblock edges (e.g. as for RFC 2190).
-   * That is, it does not necessarily contain info about all macroblocks,
-   * as long as the distance between macroblocks in the info is smaller
-   * than the target payload size.
-   * Each MB info structure is 12 bytes, and is laid out as follows:
-   * @code
-   * u32le bit offset from the start of the packet
-   * u8    current quantizer at the start of the macroblock
-   * u8    GOB number
-   * u16le macroblock address within the GOB
-   * u8    horizontal MV predictor
-   * u8    vertical MV predictor
-   * u8    horizontal MV predictor for block number 3
-   * u8    vertical MV predictor for block number 3
-   * @endcode
-   */
-  AV_PKT_DATA_H263_MB_INFO,
-
-  /**
-   * This side data should be associated with an audio stream and contains
-   * ReplayGain information in form of the AVReplayGain struct.
-   */
-  AV_PKT_DATA_REPLAYGAIN,
-
-  /**
-   * This side data contains a 3x3 transformation matrix describing an affine
-   * transformation that needs to be applied to the decoded video frames for
-   * correct presentation.
-   *
-   * See libavutil/display.h for a detailed description of the data.
-   */
-  AV_PKT_DATA_DISPLAYMATRIX,
-
-  /**
-   * This side data should be associated with a video stream and contains
-   * Stereoscopic 3D information in form of the AVStereo3D struct.
-   */
-  AV_PKT_DATA_STEREO3D,
-
-  /**
-   * This side data should be associated with an audio stream and corresponds
-   * to enum AVAudioServiceType.
-   */
-  AV_PKT_DATA_AUDIO_SERVICE_TYPE,
-
-  /**
-   * This side data contains quality related information from the encoder.
-   * @code
-   * u32le quality factor of the compressed frame. Allowed range is between 1
-   * (good) and FF_LAMBDA_MAX (bad). u8    picture type u8    error count u16
-   * reserved u64le[error count] sum of squared differences between encoder in
-   * and output
-   * @endcode
-   */
-  AV_PKT_DATA_QUALITY_STATS,
-
-  /**
-   * This side data contains an integer value representing the stream index
-   * of a "fallback" track.  A fallback track indicates an alternate
-   * track to use when the current track can not be decoded for some reason.
-   * e.g. no decoder available for codec.
-   */
-  AV_PKT_DATA_FALLBACK_TRACK,
-
-  /**
-   * This side data corresponds to the AVCPBProperties struct.
-   */
-  AV_PKT_DATA_CPB_PROPERTIES,
-
-  /**
-   * Recommmends skipping the specified number of samples
-   * @code
-   * u32le number of samples to skip from start of this packet
-   * u32le number of samples to skip from end of this packet
-   * u8    reason for start skip
-   * u8    reason for end   skip (0=padding silence, 1=convergence)
-   * @endcode
-   */
-  AV_PKT_DATA_SKIP_SAMPLES = 70,
-
-  /**
-   * An AV_PKT_DATA_JP_DUALMONO side data packet indicates that
-   * the packet may contain "dual mono" audio specific to Japanese DTV
-   * and if it is true, recommends only the selected channel to be used.
-   * @code
-   * u8    selected channels (0=mail/left, 1=sub/right, 2=both)
-   * @endcode
-   */
-  AV_PKT_DATA_JP_DUALMONO,
-
-  /**
-   * A list of zero terminated key/value strings. There is no end marker for
-   * the list, so it is required to rely on the side data size to stop.
-   */
-  AV_PKT_DATA_STRINGS_METADATA,
-
-  /**
-   * Subtitle event position
-   * @code
-   * u32le x1
-   * u32le y1
-   * u32le x2
-   * u32le y2
-   * @endcode
-   */
-  AV_PKT_DATA_SUBTITLE_POSITION,
-
-  /**
-   * Data found in BlockAdditional element of matroska container. There is
-   * no end marker for the data, so it is required to rely on the side data
-   * size to recognize the end. 8 byte id (as found in BlockAddId) followed
-   * by data.
-   */
-  AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL,
-
-  /**
-   * The optional first identifier line of a WebVTT cue.
-   */
-  AV_PKT_DATA_WEBVTT_IDENTIFIER,
-
-  /**
-   * The optional settings (rendering instructions) that immediately
-   * follow the timestamp specifier of a WebVTT cue.
-   */
-  AV_PKT_DATA_WEBVTT_SETTINGS,
-
-  /**
-   * A list of zero terminated key/value strings. There is no end marker for
-   * the list, so it is required to rely on the side data size to stop. This
-   * side data includes updated metadata which appeared in the stream.
-   */
-  AV_PKT_DATA_METADATA_UPDATE,
+    AV_PKT_DATA_PALETTE,
+    AV_PKT_DATA_NEW_EXTRADATA,
+
+    /**
+     * An AV_PKT_DATA_PARAM_CHANGE side data packet is laid out as follows:
+     * @code
+     * u32le param_flags
+     * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT)
+     *     s32le channel_count
+     * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT)
+     *     u64le channel_layout
+     * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE)
+     *     s32le sample_rate
+     * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS)
+     *     s32le width
+     *     s32le height
+     * @endcode
+     */
+    AV_PKT_DATA_PARAM_CHANGE,
+
+    /**
+     * An AV_PKT_DATA_H263_MB_INFO side data packet contains a number of
+     * structures with info about macroblocks relevant to splitting the
+     * packet into smaller packets on macroblock edges (e.g. as for RFC 2190).
+     * That is, it does not necessarily contain info about all macroblocks,
+     * as long as the distance between macroblocks in the info is smaller
+     * than the target payload size.
+     * Each MB info structure is 12 bytes, and is laid out as follows:
+     * @code
+     * u32le bit offset from the start of the packet
+     * u8    current quantizer at the start of the macroblock
+     * u8    GOB number
+     * u16le macroblock address within the GOB
+     * u8    horizontal MV predictor
+     * u8    vertical MV predictor
+     * u8    horizontal MV predictor for block number 3
+     * u8    vertical MV predictor for block number 3
+     * @endcode
+     */
+    AV_PKT_DATA_H263_MB_INFO,
+
+    /**
+     * This side data should be associated with an audio stream and contains
+     * ReplayGain information in form of the AVReplayGain struct.
+     */
+    AV_PKT_DATA_REPLAYGAIN,
+
+    /**
+     * This side data contains a 3x3 transformation matrix describing an affine
+     * transformation that needs to be applied to the decoded video frames for
+     * correct presentation.
+     *
+     * See libavutil/display.h for a detailed description of the data.
+     */
+    AV_PKT_DATA_DISPLAYMATRIX,
+
+    /**
+     * This side data should be associated with a video stream and contains
+     * Stereoscopic 3D information in form of the AVStereo3D struct.
+     */
+    AV_PKT_DATA_STEREO3D,
+
+    /**
+     * This side data should be associated with an audio stream and corresponds
+     * to enum AVAudioServiceType.
+     */
+    AV_PKT_DATA_AUDIO_SERVICE_TYPE,
+
+    /**
+     * This side data contains quality related information from the encoder.
+     * @code
+     * u32le quality factor of the compressed frame. Allowed range is between 1 (good) and FF_LAMBDA_MAX (bad).
+     * u8    picture type
+     * u8    error count
+     * u16   reserved
+     * u64le[error count] sum of squared differences between encoder in and output
+     * @endcode
+     */
+    AV_PKT_DATA_QUALITY_STATS,
+
+    /**
+     * This side data contains an integer value representing the stream index
+     * of a "fallback" track.  A fallback track indicates an alternate
+     * track to use when the current track can not be decoded for some reason.
+     * e.g. no decoder available for codec.
+     */
+    AV_PKT_DATA_FALLBACK_TRACK,
+
+    /**
+     * This side data corresponds to the AVCPBProperties struct.
+     */
+    AV_PKT_DATA_CPB_PROPERTIES,
+
+    /**
+     * Recommmends skipping the specified number of samples
+     * @code
+     * u32le number of samples to skip from start of this packet
+     * u32le number of samples to skip from end of this packet
+     * u8    reason for start skip
+     * u8    reason for end   skip (0=padding silence, 1=convergence)
+     * @endcode
+     */
+    AV_PKT_DATA_SKIP_SAMPLES=70,
+
+    /**
+     * An AV_PKT_DATA_JP_DUALMONO side data packet indicates that
+     * the packet may contain "dual mono" audio specific to Japanese DTV
+     * and if it is true, recommends only the selected channel to be used.
+     * @code
+     * u8    selected channels (0=mail/left, 1=sub/right, 2=both)
+     * @endcode
+     */
+    AV_PKT_DATA_JP_DUALMONO,
+
+    /**
+     * A list of zero terminated key/value strings. There is no end marker for
+     * the list, so it is required to rely on the side data size to stop.
+     */
+    AV_PKT_DATA_STRINGS_METADATA,
+
+    /**
+     * Subtitle event position
+     * @code
+     * u32le x1
+     * u32le y1
+     * u32le x2
+     * u32le y2
+     * @endcode
+     */
+    AV_PKT_DATA_SUBTITLE_POSITION,
+
+    /**
+     * Data found in BlockAdditional element of matroska container. There is
+     * no end marker for the data, so it is required to rely on the side data
+     * size to recognize the end. 8 byte id (as found in BlockAddId) followed
+     * by data.
+     */
+    AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL,
+
+    /**
+     * The optional first identifier line of a WebVTT cue.
+     */
+    AV_PKT_DATA_WEBVTT_IDENTIFIER,
+
+    /**
+     * The optional settings (rendering instructions) that immediately
+     * follow the timestamp specifier of a WebVTT cue.
+     */
+    AV_PKT_DATA_WEBVTT_SETTINGS,
+
+    /**
+     * A list of zero terminated key/value strings. There is no end marker for
+     * the list, so it is required to rely on the side data size to stop. This
+     * side data includes updated metadata which appeared in the stream.
+     */
+    AV_PKT_DATA_METADATA_UPDATE,
 };
 
-#define AV_PKT_DATA_QUALITY_FACTOR AV_PKT_DATA_QUALITY_STATS  // DEPRECATED
+#define AV_PKT_DATA_QUALITY_FACTOR AV_PKT_DATA_QUALITY_STATS //DEPRECATED
 
 typedef struct AVPacketSideData {
-  uint8_t *data;
-  int size;
-  enum AVPacketSideDataType type;
+    uint8_t *data;
+    int      size;
+    enum AVPacketSideDataType type;
 } AVPacketSideData;
 
 /**
  * This structure stores compressed data. It is typically exported by demuxers
  * and then passed as input to decoders, or received as output from encoders and
  * then passed to muxers.
  *
  * For video, it should typically contain one compressed frame. For audio it may
@@ -1447,2263 +1436,2217 @@ typedef struct AVPacketSideData {
  *
  * The side data is always allocated with av_malloc(), copied by
  * av_packet_ref() and freed by av_packet_unref().
  *
  * @see av_packet_ref
  * @see av_packet_unref
  */
 typedef struct AVPacket {
-  /**
-   * A reference to the reference-counted buffer where the packet data is
-   * stored.
-   * May be NULL, then the packet data is not reference-counted.
-   */
-  AVBufferRef *buf;
-  /**
-   * Presentation timestamp in AVStream->time_base units; the time at which
-   * the decompressed packet will be presented to the user.
-   * Can be AV_NOPTS_VALUE if it is not stored in the file.
-   * pts MUST be larger or equal to dts as presentation cannot happen before
-   * decompression, unless one wants to view hex dumps. Some formats misuse
-   * the terms dts and pts/cts to mean something different. Such timestamps
-   * must be converted to true pts/dts before they are stored in AVPacket.
-   */
-  int64_t pts;
-  /**
-   * Decompression timestamp in AVStream->time_base units; the time at which
-   * the packet is decompressed.
-   * Can be AV_NOPTS_VALUE if it is not stored in the file.
-   */
-  int64_t dts;
-  uint8_t *data;
-  int size;
-  int stream_index;
-  /**
-   * A combination of AV_PKT_FLAG values
-   */
-  int flags;
-  /**
-   * Additional packet data that can be provided by the container.
-   * Packet can contain several types of side information.
-   */
-  AVPacketSideData *side_data;
-  int side_data_elems;
-
-  /**
-   * Duration of this packet in AVStream->time_base units, 0 if unknown.
-   * Equals next_pts - this_pts in presentation order.
-   */
-  int64_t duration;
-
-  int64_t pos;  ///< byte position in stream, -1 if unknown
+    /**
+     * A reference to the reference-counted buffer where the packet data is
+     * stored.
+     * May be NULL, then the packet data is not reference-counted.
+     */
+    AVBufferRef *buf;
+    /**
+     * Presentation timestamp in AVStream->time_base units; the time at which
+     * the decompressed packet will be presented to the user.
+     * Can be AV_NOPTS_VALUE if it is not stored in the file.
+     * pts MUST be larger or equal to dts as presentation cannot happen before
+     * decompression, unless one wants to view hex dumps. Some formats misuse
+     * the terms dts and pts/cts to mean something different. Such timestamps
+     * must be converted to true pts/dts before they are stored in AVPacket.
+     */
+    int64_t pts;
+    /**
+     * Decompression timestamp in AVStream->time_base units; the time at which
+     * the packet is decompressed.
+     * Can be AV_NOPTS_VALUE if it is not stored in the file.
+     */
+    int64_t dts;
+    uint8_t *data;
+    int   size;
+    int   stream_index;
+    /**
+     * A combination of AV_PKT_FLAG values
+     */
+    int   flags;
+    /**
+     * Additional packet data that can be provided by the container.
+     * Packet can contain several types of side information.
+     */
+    AVPacketSideData *side_data;
+    int side_data_elems;
+
+    /**
+     * Duration of this packet in AVStream->time_base units, 0 if unknown.
+     * Equals next_pts - this_pts in presentation order.
+     */
+    int64_t duration;
+
+    int64_t pos;                            ///< byte position in stream, -1 if unknown
 
 #if FF_API_CONVERGENCE_DURATION
-  /**
-   * @deprecated Same as the duration field, but as int64_t. This was required
-   * for Matroska subtitles, whose duration values could overflow when the
-   * duration field was still an int.
-   */
-  attribute_deprecated int64_t convergence_duration;
+    /**
+     * @deprecated Same as the duration field, but as int64_t. This was required
+     * for Matroska subtitles, whose duration values could overflow when the
+     * duration field was still an int.
+     */
+    attribute_deprecated
+    int64_t convergence_duration;
 #endif
 } AVPacket;
-#define AV_PKT_FLAG_KEY 0x0001      ///< The packet contains a keyframe
-#define AV_PKT_FLAG_CORRUPT 0x0002  ///< The packet content is corrupted
+#define AV_PKT_FLAG_KEY     0x0001 ///< The packet contains a keyframe
+#define AV_PKT_FLAG_CORRUPT 0x0002 ///< The packet content is corrupted
 
 enum AVSideDataParamChangeFlags {
-  AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT = 0x0001,
-  AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT = 0x0002,
-  AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE = 0x0004,
-  AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS = 0x0008,
+    AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT  = 0x0001,
+    AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT = 0x0002,
+    AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE    = 0x0004,
+    AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS     = 0x0008,
 };
 /**
  * @}
  */
 
 struct AVCodecInternal;
 
 enum AVFieldOrder {
-  AV_FIELD_UNKNOWN,
-  AV_FIELD_PROGRESSIVE,
-  AV_FIELD_TT,  //< Top coded_first, top displayed first
-  AV_FIELD_BB,  //< Bottom coded first, bottom displayed first
-  AV_FIELD_TB,  //< Top coded first, bottom displayed first
-  AV_FIELD_BT,  //< Bottom coded first, top displayed first
+    AV_FIELD_UNKNOWN,
+    AV_FIELD_PROGRESSIVE,
+    AV_FIELD_TT,          //< Top coded_first, top displayed first
+    AV_FIELD_BB,          //< Bottom coded first, bottom displayed first
+    AV_FIELD_TB,          //< Top coded first, bottom displayed first
+    AV_FIELD_BT,          //< Bottom coded first, top displayed first
 };
 
 /**
  * main external API structure.
  * New fields can be added to the end with minor version bumps.
  * Removal, reordering and changes to existing fields require a major
  * version bump.
- * Please use AVOptions (av_opt* / av_set/get*()) to access these fields from
- * user applications. sizeof(AVCodecContext) must not be used outside libav*.
+ * Please use AVOptions (av_opt* / av_set/get*()) to access these fields from user
+ * applications.
+ * sizeof(AVCodecContext) must not be used outside libav*.
  */
 typedef struct AVCodecContext {
-  /**
-   * information on struct for av_log
-   * - set by avcodec_alloc_context3
-   */
-  const AVClass *av_class;
-  int log_level_offset;
-
-  enum AVMediaType codec_type; /* see AVMEDIA_TYPE_xxx */
-  const struct AVCodec *codec;
+    /**
+     * information on struct for av_log
+     * - set by avcodec_alloc_context3
+     */
+    const AVClass *av_class;
+    int log_level_offset;
+
+    enum AVMediaType codec_type; /* see AVMEDIA_TYPE_xxx */
+    const struct AVCodec  *codec;
 #if FF_API_CODEC_NAME
-  /**
-   * @deprecated this field is not used for anything in libavcodec
-   */
-  attribute_deprecated char codec_name[32];
+    /**
+     * @deprecated this field is not used for anything in libavcodec
+     */
+    attribute_deprecated
+    char             codec_name[32];
 #endif
-  enum AVCodecID codec_id; /* see AV_CODEC_ID_xxx */
-
-  /**
-   * fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').
-   * This is used to work around some encoder bugs.
-   * A demuxer should set this to what is stored in the field used to identify
-   * the codec. If there are multiple such fields in a container then the
-   * demuxer should choose the one which maximizes the information about the
-   * used codec. If the codec tag field in a container is larger than 32 bits
-   * then the demuxer should remap the longer ID to 32 bits with a table or
-   * other structure. Alternatively a new extra_codec_tag + size could be added
-   * but for this a clear advantage must be demonstrated first.
-   * - encoding: Set by user, if not then the default based on codec_id will be
-   * used.
-   * - decoding: Set by user, will be converted to uppercase by libavcodec
-   * during init.
-   */
-  unsigned int codec_tag;
+    enum AVCodecID     codec_id; /* see AV_CODEC_ID_xxx */
+
+    /**
+     * fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').
+     * This is used to work around some encoder bugs.
+     * A demuxer should set this to what is stored in the field used to identify the codec.
+     * If there are multiple such fields in a container then the demuxer should choose the one
+     * which maximizes the information about the used codec.
+     * If the codec tag field in a container is larger than 32 bits then the demuxer should
+     * remap the longer ID to 32 bits with a table or other structure. Alternatively a new
+     * extra_codec_tag + size could be added but for this a clear advantage must be demonstrated
+     * first.
+     * - encoding: Set by user, if not then the default based on codec_id will be used.
+     * - decoding: Set by user, will be converted to uppercase by libavcodec during init.
+     */
+    unsigned int codec_tag;
 
 #if FF_API_STREAM_CODEC_TAG
-  /**
-   * @deprecated this field is unused
-   */
-  attribute_deprecated unsigned int stream_codec_tag;
+    /**
+     * @deprecated this field is unused
+     */
+    attribute_deprecated
+    unsigned int stream_codec_tag;
 #endif
 
-  void *priv_data;
-
-  /**
-   * Private context used for internal data.
-   *
-   * Unlike priv_data, this is not codec-specific. It is used in general
-   * libavcodec functions.
-   */
-  struct AVCodecInternal *internal;
-
-  /**
-   * Private data of the user, can be used to carry app specific stuff.
-   * - encoding: Set by user.
-   * - decoding: Set by user.
-   */
-  void *opaque;
-
-  /**
-   * the average bitrate
-   * - encoding: Set by user; unused for constant quantizer encoding.
-   * - decoding: Set by user, may be overwritten by libavcodec
-   *             if this info is available in the stream
-   */
-  int64_t bit_rate;
-
-  /**
-   * number of bits the bitstream is allowed to diverge from the reference.
-   *           the reference can be CBR (for CBR pass1) or VBR (for pass2)
-   * - encoding: Set by user; unused for constant quantizer encoding.
-   * - decoding: unused
-   */
-  int bit_rate_tolerance;
-
-  /**
-   * Global quality for codecs which cannot change it per frame.
-   * This should be proportional to MPEG-1/2/4 qscale.
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int global_quality;
-
-  /**
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int compression_level;
+    void *priv_data;
+
+    /**
+     * Private context used for internal data.
+     *
+     * Unlike priv_data, this is not codec-specific. It is used in general
+     * libavcodec functions.
+     */
+    struct AVCodecInternal *internal;
+
+    /**
+     * Private data of the user, can be used to carry app specific stuff.
+     * - encoding: Set by user.
+     * - decoding: Set by user.
+     */
+    void *opaque;
+
+    /**
+     * the average bitrate
+     * - encoding: Set by user; unused for constant quantizer encoding.
+     * - decoding: Set by user, may be overwritten by libavcodec
+     *             if this info is available in the stream
+     */
+    int64_t bit_rate;
+
+    /**
+     * number of bits the bitstream is allowed to diverge from the reference.
+     *           the reference can be CBR (for CBR pass1) or VBR (for pass2)
+     * - encoding: Set by user; unused for constant quantizer encoding.
+     * - decoding: unused
+     */
+    int bit_rate_tolerance;
+
+    /**
+     * Global quality for codecs which cannot change it per frame.
+     * This should be proportional to MPEG-1/2/4 qscale.
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int global_quality;
+
+    /**
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int compression_level;
 #define FF_COMPRESSION_DEFAULT -1
 
-  /**
-   * AV_CODEC_FLAG_*.
-   * - encoding: Set by user.
-   * - decoding: Set by user.
-   */
-  int flags;
-
-  /**
-   * AV_CODEC_FLAG2_*
-   * - encoding: Set by user.
-   * - decoding: Set by user.
-   */
-  int flags2;
-
-  /**
-   * some codecs need / can use extradata like Huffman tables.
-   * mjpeg: Huffman tables
-   * rv10: additional flags
-   * mpeg4: global headers (they can be in the bitstream or here)
-   * The allocated memory should be AV_INPUT_BUFFER_PADDING_SIZE bytes larger
-   * than extradata_size to avoid problems if it is read with the bitstream
-   * reader. The bytewise contents of extradata must not depend on the
-   * architecture or CPU endianness.
-   * - encoding: Set/allocated/freed by libavcodec.
-   * - decoding: Set/allocated/freed by user.
-   */
-  uint8_t *extradata;
-  int extradata_size;
-
-  /**
-   * This is the fundamental unit of time (in seconds) in terms
-   * of which frame timestamps are represented. For fixed-fps content,
-   * timebase should be 1/framerate and timestamp increments should be
-   * identically 1.
-   * This often, but not always is the inverse of the frame rate or field rate
-   * for video.
-   * - encoding: MUST be set by user.
-   * - decoding: the use of this field for decoding is deprecated.
-   *             Use framerate instead.
-   */
-  AVRational time_base;
-
-  /**
-   * For some codecs, the time base is closer to the field rate than the frame
-   * rate. Most notably, H.264 and MPEG-2 specify time_base as half of frame
-   * duration if no telecine is used ...
-   *
-   * Set to time_base ticks per frame. Default 1, e.g., H.264/MPEG-2 set it
-   * to 2.
-   */
-  int ticks_per_frame;
-
-  /**
-   * Codec delay.
-   *
-   * Encoding: Number of frames delay there will be from the encoder input to
-   *           the decoder output. (we assume the decoder matches the spec)
-   * Decoding: Number of frames delay in addition to what a standard decoder
-   *           as specified in the spec would produce.
-   *
-   * Video:
-   *   Number of frames the decoded output will be delayed relative to the
-   *   encoded input.
-   *
-   * Audio:
-   *   For encoding, this field is unused (see initial_padding).
-   *
-   *   For decoding, this is the number of samples the decoder needs to
-   *   output before the decoder's output is valid. When seeking, you should
-   *   start decoding this many samples prior to your desired seek point.
-   *
-   * - encoding: Set by libavcodec.
-   * - decoding: Set by libavcodec.
-   */
-  int delay;
-
-  /* video only */
-  /**
-   * picture width / height.
-   *
-   * @note Those fields may not match the values of the last
-   * AVFrame outputted by avcodec_decode_video2 due frame
-   * reordering.
-   *
-   * - encoding: MUST be set by user.
-   * - decoding: May be set by the user before opening the decoder if known e.g.
-   *             from the container. Some decoders will require the dimensions
-   *             to be set by the caller. During decoding, the decoder may
-   *             overwrite those values as required while parsing the data.
-   */
-  int width, height;
-
-  /**
-   * Bitstream width / height, may be different from width/height e.g. when
-   * the decoded frame is cropped before being output or lowres is enabled.
-   *
-   * @note Those field may not match the value of the last
-   * AVFrame outputted by avcodec_decode_video2 due frame
-   * reordering.
-   *
-   * - encoding: unused
-   * - decoding: May be set by the user before opening the decoder if known
-   *             e.g. from the container. During decoding, the decoder may
-   *             overwrite those values as required while parsing the data.
-   */
-  int coded_width, coded_height;
+    /**
+     * AV_CODEC_FLAG_*.
+     * - encoding: Set by user.
+     * - decoding: Set by user.
+     */
+    int flags;
+
+    /**
+     * AV_CODEC_FLAG2_*
+     * - encoding: Set by user.
+     * - decoding: Set by user.
+     */
+    int flags2;
+
+    /**
+     * some codecs need / can use extradata like Huffman tables.
+     * mjpeg: Huffman tables
+     * rv10: additional flags
+     * mpeg4: global headers (they can be in the bitstream or here)
+     * The allocated memory should be AV_INPUT_BUFFER_PADDING_SIZE bytes larger
+     * than extradata_size to avoid problems if it is read with the bitstream reader.
+     * The bytewise contents of extradata must not depend on the architecture or CPU endianness.
+     * - encoding: Set/allocated/freed by libavcodec.
+     * - decoding: Set/allocated/freed by user.
+     */
+    uint8_t *extradata;
+    int extradata_size;
+
+    /**
+     * This is the fundamental unit of time (in seconds) in terms
+     * of which frame timestamps are represented. For fixed-fps content,
+     * timebase should be 1/framerate and timestamp increments should be
+     * identically 1.
+     * This often, but not always is the inverse of the frame rate or field rate
+     * for video.
+     * - encoding: MUST be set by user.
+     * - decoding: the use of this field for decoding is deprecated.
+     *             Use framerate instead.
+     */
+    AVRational time_base;
+
+    /**
+     * For some codecs, the time base is closer to the field rate than the frame rate.
+     * Most notably, H.264 and MPEG-2 specify time_base as half of frame duration
+     * if no telecine is used ...
+     *
+     * Set to time_base ticks per frame. Default 1, e.g., H.264/MPEG-2 set it to 2.
+     */
+    int ticks_per_frame;
+
+    /**
+     * Codec delay.
+     *
+     * Encoding: Number of frames delay there will be from the encoder input to
+     *           the decoder output. (we assume the decoder matches the spec)
+     * Decoding: Number of frames delay in addition to what a standard decoder
+     *           as specified in the spec would produce.
+     *
+     * Video:
+     *   Number of frames the decoded output will be delayed relative to the
+     *   encoded input.
+     *
+     * Audio:
+     *   For encoding, this field is unused (see initial_padding).
+     *
+     *   For decoding, this is the number of samples the decoder needs to
+     *   output before the decoder's output is valid. When seeking, you should
+     *   start decoding this many samples prior to your desired seek point.
+     *
+     * - encoding: Set by libavcodec.
+     * - decoding: Set by libavcodec.
+     */
+    int delay;
+
+
+    /* video only */
+    /**
+     * picture width / height.
+     *
+     * @note Those fields may not match the values of the last
+     * AVFrame outputted by avcodec_decode_video2 due frame
+     * reordering.
+     *
+     * - encoding: MUST be set by user.
+     * - decoding: May be set by the user before opening the decoder if known e.g.
+     *             from the container. Some decoders will require the dimensions
+     *             to be set by the caller. During decoding, the decoder may
+     *             overwrite those values as required while parsing the data.
+     */
+    int width, height;
+
+    /**
+     * Bitstream width / height, may be different from width/height e.g. when
+     * the decoded frame is cropped before being output or lowres is enabled.
+     *
+     * @note Those field may not match the value of the last
+     * AVFrame outputted by avcodec_decode_video2 due frame
+     * reordering.
+     *
+     * - encoding: unused
+     * - decoding: May be set by the user before opening the decoder if known
+     *             e.g. from the container. During decoding, the decoder may
+     *             overwrite those values as required while parsing the data.
+     */
+    int coded_width, coded_height;
 
 #if FF_API_ASPECT_EXTENDED
 #define FF_ASPECT_EXTENDED 15
 #endif
 
-  /**
-   * the number of pictures in a group of pictures, or 0 for intra_only
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int gop_size;
-
-  /**
-   * Pixel format, see AV_PIX_FMT_xxx.
-   * May be set by the demuxer if known from headers.
-   * May be overridden by the decoder if it knows better.
-   *
-   * @note This field may not match the value of the last
-   * AVFrame outputted by avcodec_decode_video2 due frame
-   * reordering.
-   *
-   * - encoding: Set by user.
-   * - decoding: Set by user if known, overridden by libavcodec while
-   *             parsing the data.
-   */
-  enum AVPixelFormat pix_fmt;
+    /**
+     * the number of pictures in a group of pictures, or 0 for intra_only
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int gop_size;
+
+    /**
+     * Pixel format, see AV_PIX_FMT_xxx.
+     * May be set by the demuxer if known from headers.
+     * May be overridden by the decoder if it knows better.
+     *
+     * @note This field may not match the value of the last
+     * AVFrame outputted by avcodec_decode_video2 due frame
+     * reordering.
+     *
+     * - encoding: Set by user.
+     * - decoding: Set by user if known, overridden by libavcodec while
+     *             parsing the data.
+     */
+    enum AVPixelFormat pix_fmt;
 
 #if FF_API_MOTION_EST
-  /**
-   * This option does nothing
-   * @deprecated use codec private options instead
-   */
-  attribute_deprecated int me_method;
+    /**
+     * This option does nothing
+     * @deprecated use codec private options instead
+     */
+    attribute_deprecated int me_method;
 #endif
 
-  /**
-   * If non NULL, 'draw_horiz_band' is called by the libavcodec
-   * decoder to draw a horizontal band. It improves cache usage. Not
-   * all codecs can do that. You must check the codec capabilities
-   * beforehand.
-   * When multithreading is used, it may be called from multiple threads
-   * at the same time; threads might draw different parts of the same AVFrame,
-   * or multiple AVFrames, and there is no guarantee that slices will be drawn
-   * in order.
-   * The function is also used by hardware acceleration APIs.
-   * It is called at least once during frame decoding to pass
-   * the data needed for hardware render.
-   * In that mode instead of pixel data, AVFrame points to
-   * a structure specific to the acceleration API. The application
-   * reads the structure and can change some fields to indicate progress
-   * or mark state.
-   * - encoding: unused
-   * - decoding: Set by user.
-   * @param height the height of the slice
-   * @param y the y position of the slice
-   * @param type 1->top field, 2->bottom field, 3->frame
-   * @param offset offset into the AVFrame.data from which the slice should be
-   * read
-   */
-  void (*draw_horiz_band)(struct AVCodecContext *s, const AVFrame *src,
-                          int offset[AV_NUM_DATA_POINTERS], int y, int type,
-                          int height);
-
-  /**
-   * callback to negotiate the pixelFormat
-   * @param fmt is the list of formats which are supported by the codec,
-   * it is terminated by -1 as 0 is a valid format, the formats are ordered by
-   * quality. The first is always the native one.
-   * @note The callback may be called again immediately if initialization for
-   * the selected (hardware-accelerated) pixel format failed.
-   * @warning Behavior is undefined if the callback returns a value not
-   * in the fmt list of formats.
-   * @return the chosen format
-   * - encoding: unused
-   * - decoding: Set by user, if not set the native format will be chosen.
-   */
-  enum AVPixelFormat (*get_format)(struct AVCodecContext *s,
-                                   const enum AVPixelFormat *fmt);
-
-  /**
-   * maximum number of B-frames between non-B-frames
-   * Note: The output will be delayed by max_b_frames+1 relative to the input.
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int max_b_frames;
-
-  /**
-   * qscale factor between IP and B-frames
-   * If > 0 then the last P-frame quantizer will be used (q=
-   * lastp_q*factor+offset). If < 0 then normal ratecontrol will be done (q=
-   * -normal_q*factor+offset).
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  float b_quant_factor;
+    /**
+     * If non NULL, 'draw_horiz_band' is called by the libavcodec
+     * decoder to draw a horizontal band. It improves cache usage. Not
+     * all codecs can do that. You must check the codec capabilities
+     * beforehand.
+     * When multithreading is used, it may be called from multiple threads
+     * at the same time; threads might draw different parts of the same AVFrame,
+     * or multiple AVFrames, and there is no guarantee that slices will be drawn
+     * in order.
+     * The function is also used by hardware acceleration APIs.
+     * It is called at least once during frame decoding to pass
+     * the data needed for hardware render.
+     * In that mode instead of pixel data, AVFrame points to
+     * a structure specific to the acceleration API. The application
+     * reads the structure and can change some fields to indicate progress
+     * or mark state.
+     * - encoding: unused
+     * - decoding: Set by user.
+     * @param height the height of the slice
+     * @param y the y position of the slice
+     * @param type 1->top field, 2->bottom field, 3->frame
+     * @param offset offset into the AVFrame.data from which the slice should be read
+     */
+    void (*draw_horiz_band)(struct AVCodecContext *s,
+                            const AVFrame *src, int offset[AV_NUM_DATA_POINTERS],
+                            int y, int type, int height);
+
+    /**
+     * callback to negotiate the pixelFormat
+     * @param fmt is the list of formats which are supported by the codec,
+     * it is terminated by -1 as 0 is a valid format, the formats are ordered by quality.
+     * The first is always the native one.
+     * @note The callback may be called again immediately if initialization for
+     * the selected (hardware-accelerated) pixel format failed.
+     * @warning Behavior is undefined if the callback returns a value not
+     * in the fmt list of formats.
+     * @return the chosen format
+     * - encoding: unused
+     * - decoding: Set by user, if not set the native format will be chosen.
+     */
+    enum AVPixelFormat (*get_format)(struct AVCodecContext *s, const enum AVPixelFormat * fmt);
+
+    /**
+     * maximum number of B-frames between non-B-frames
+     * Note: The output will be delayed by max_b_frames+1 relative to the input.
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int max_b_frames;
+
+    /**
+     * qscale factor between IP and B-frames
+     * If > 0 then the last P-frame quantizer will be used (q= lastp_q*factor+offset).
+     * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset).
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    float b_quant_factor;
 
 #if FF_API_RC_STRATEGY
-  /** @deprecated use codec private option instead */
-  attribute_deprecated int rc_strategy;
+    /** @deprecated use codec private option instead */
+    attribute_deprecated int rc_strategy;
 #define FF_RC_STRATEGY_XVID 1
 #endif
 
-  int b_frame_strategy;
-
-  /**
-   * qscale offset between IP and B-frames
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  float b_quant_offset;
-
-  /**
-   * Size of the frame reordering buffer in the decoder.
-   * For MPEG-2 it is 1 IPB or 0 low delay IP.
-   * - encoding: Set by libavcodec.
-   * - decoding: Set by libavcodec.
-   */
-  int has_b_frames;
-
-  /**
-   * 0-> h263 quant 1-> mpeg quant
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int mpeg_quant;
-
-  /**
-   * qscale factor between P and I-frames
-   * If > 0 then the last p frame quantizer will be used (q=
-   * lastp_q*factor+offset). If < 0 then normal ratecontrol will be done (q=
-   * -normal_q*factor+offset).
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  float i_quant_factor;
-
-  /**
-   * qscale offset between P and I-frames
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  float i_quant_offset;
-
-  /**
-   * luminance masking (0-> disabled)
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  float lumi_masking;
-
-  /**
-   * temporary complexity masking (0-> disabled)
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  float temporal_cplx_masking;
-
-  /**
-   * spatial complexity masking (0-> disabled)
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  float spatial_cplx_masking;
-
-  /**
-   * p block masking (0-> disabled)
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  float p_masking;
-
-  /**
-   * darkness masking (0-> disabled)
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  float dark_masking;
-
-  /**
-   * slice count
-   * - encoding: Set by libavcodec.
-   * - decoding: Set by user (or 0).
-   */
-  int slice_count;
-  /**
-   * prediction method (needed for huffyuv)
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int prediction_method;
-#define FF_PRED_LEFT 0
-#define FF_PRED_PLANE 1
+    int b_frame_strategy;
+
+    /**
+     * qscale offset between IP and B-frames
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    float b_quant_offset;
+
+    /**
+     * Size of the frame reordering buffer in the decoder.
+     * For MPEG-2 it is 1 IPB or 0 low delay IP.
+     * - encoding: Set by libavcodec.
+     * - decoding: Set by libavcodec.
+     */
+    int has_b_frames;
+
+    /**
+     * 0-> h263 quant 1-> mpeg quant
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int mpeg_quant;
+
+    /**
+     * qscale factor between P and I-frames
+     * If > 0 then the last p frame quantizer will be used (q= lastp_q*factor+offset).
+     * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset).
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    float i_quant_factor;
+
+    /**
+     * qscale offset between P and I-frames
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    float i_quant_offset;
+
+    /**
+     * luminance masking (0-> disabled)
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    float lumi_masking;
+
+    /**
+     * temporary complexity masking (0-> disabled)
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    float temporal_cplx_masking;
+
+    /**
+     * spatial complexity masking (0-> disabled)
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    float spatial_cplx_masking;
+
+    /**
+     * p block masking (0-> disabled)
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    float p_masking;
+
+    /**
+     * darkness masking (0-> disabled)
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    float dark_masking;
+
+    /**
+     * slice count
+     * - encoding: Set by libavcodec.
+     * - decoding: Set by user (or 0).
+     */
+    int slice_count;
+    /**
+     * prediction method (needed for huffyuv)
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+     int prediction_method;
+#define FF_PRED_LEFT   0
+#define FF_PRED_PLANE  1
 #define FF_PRED_MEDIAN 2
 
-  /**
-   * slice offsets in the frame in bytes
-   * - encoding: Set/allocated by libavcodec.
-   * - decoding: Set/allocated by user (or NULL).
-   */
-  int *slice_offset;
-
-  /**
-   * sample aspect ratio (0 if unknown)
-   * That is the width of a pixel divided by the height of the pixel.
-   * Numerator and denominator must be relatively prime and smaller than 256 for
-   * some video standards.
-   * - encoding: Set by user.
-   * - decoding: Set by libavcodec.
-   */
-  AVRational sample_aspect_ratio;
-
-  /**
-   * motion estimation comparison function
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int me_cmp;
-  /**
-   * subpixel motion estimation comparison function
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int me_sub_cmp;
-  /**
-   * macroblock comparison function (not supported yet)
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int mb_cmp;
-  /**
-   * interlaced DCT comparison function
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int ildct_cmp;
-#define FF_CMP_SAD 0
-#define FF_CMP_SSE 1
-#define FF_CMP_SATD 2
-#define FF_CMP_DCT 3
-#define FF_CMP_PSNR 4
-#define FF_CMP_BIT 5
-#define FF_CMP_RD 6
-#define FF_CMP_ZERO 7
-#define FF_CMP_VSAD 8
-#define FF_CMP_VSSE 9
-#define FF_CMP_NSSE 10
-#define FF_CMP_W53 11
-#define FF_CMP_W97 12
+    /**
+     * slice offsets in the frame in bytes
+     * - encoding: Set/allocated by libavcodec.
+     * - decoding: Set/allocated by user (or NULL).
+     */
+    int *slice_offset;
+
+    /**
+     * sample aspect ratio (0 if unknown)
+     * That is the width of a pixel divided by the height of the pixel.
+     * Numerator and denominator must be relatively prime and smaller than 256 for some video standards.
+     * - encoding: Set by user.
+     * - decoding: Set by libavcodec.
+     */
+    AVRational sample_aspect_ratio;
+
+    /**
+     * motion estimation comparison function
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int me_cmp;
+    /**
+     * subpixel motion estimation comparison function
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int me_sub_cmp;
+    /**
+     * macroblock comparison function (not supported yet)
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int mb_cmp;
+    /**
+     * interlaced DCT comparison function
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int ildct_cmp;
+#define FF_CMP_SAD    0
+#define FF_CMP_SSE    1
+#define FF_CMP_SATD   2
+#define FF_CMP_DCT    3
+#define FF_CMP_PSNR   4
+#define FF_CMP_BIT    5
+#define FF_CMP_RD     6
+#define FF_CMP_ZERO   7
+#define FF_CMP_VSAD   8
+#define FF_CMP_VSSE   9
+#define FF_CMP_NSSE   10
+#define FF_CMP_W53    11
+#define FF_CMP_W97    12
 #define FF_CMP_DCTMAX 13
 #define FF_CMP_DCT264 14
 #define FF_CMP_CHROMA 256
 
-  /**
-   * ME diamond size & shape
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int dia_size;
-
-  /**
-   * amount of previous MV predictors (2a+1 x 2a+1 square)
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int last_predictor_count;
-
-  /**
-   * prepass for motion estimation
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int pre_me;
-
-  /**
-   * motion estimation prepass comparison function
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int me_pre_cmp;
-
-  /**
-   * ME prepass diamond size & shape
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int pre_dia_size;
-
-  /**
-   * subpel ME quality
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int me_subpel_quality;
+    /**
+     * ME diamond size & shape
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int dia_size;
+
+    /**
+     * amount of previous MV predictors (2a+1 x 2a+1 square)
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int last_predictor_count;
+
+    /**
+     * prepass for motion estimation
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int pre_me;
+
+    /**
+     * motion estimation prepass comparison function
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int me_pre_cmp;
+
+    /**
+     * ME prepass diamond size & shape
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int pre_dia_size;
+
+    /**
+     * subpel ME quality
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int me_subpel_quality;
 
 #if FF_API_AFD
-  /**
-   * DTG active format information (additional aspect ratio
-   * information only used in DVB MPEG-2 transport streams)
-   * 0 if not set.
-   *
-   * - encoding: unused
-   * - decoding: Set by decoder.
-   * @deprecated Deprecated in favor of AVSideData
-   */
-  attribute_deprecated int dtg_active_format;
-#define FF_DTG_AFD_SAME 8
-#define FF_DTG_AFD_4_3 9
-#define FF_DTG_AFD_16_9 10
-#define FF_DTG_AFD_14_9 11
-#define FF_DTG_AFD_4_3_SP_14_9 13
+    /**
+     * DTG active format information (additional aspect ratio
+     * information only used in DVB MPEG-2 transport streams)
+     * 0 if not set.
+     *
+     * - encoding: unused
+     * - decoding: Set by decoder.
+     * @deprecated Deprecated in favor of AVSideData
+     */
+    attribute_deprecated int dtg_active_format;
+#define FF_DTG_AFD_SAME         8
+#define FF_DTG_AFD_4_3          9
+#define FF_DTG_AFD_16_9         10
+#define FF_DTG_AFD_14_9         11
+#define FF_DTG_AFD_4_3_SP_14_9  13
 #define FF_DTG_AFD_16_9_SP_14_9 14
-#define FF_DTG_AFD_SP_4_3 15
+#define FF_DTG_AFD_SP_4_3       15
 #endif /* FF_API_AFD */
 
-  /**
-   * maximum motion estimation search range in subpel units
-   * If 0 then no limit.
-   *
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int me_range;
+    /**
+     * maximum motion estimation search range in subpel units
+     * If 0 then no limit.
+     *
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int me_range;
 
 #if FF_API_QUANT_BIAS
-  /**
-   * @deprecated use encoder private option instead
-   */
-  attribute_deprecated int intra_quant_bias;
+    /**
+     * @deprecated use encoder private option instead
+     */
+    attribute_deprecated int intra_quant_bias;
 #define FF_DEFAULT_QUANT_BIAS 999999
 
-  /**
-   * @deprecated use encoder private option instead
-   */
-  attribute_deprecated int inter_quant_bias;
+    /**
+     * @deprecated use encoder private option instead
+     */
+    attribute_deprecated int inter_quant_bias;
 #endif
 
-  /**
-   * slice flags
-   * - encoding: unused
-   * - decoding: Set by user.
-   */
-  int slice_flags;
-#define SLICE_FLAG_CODED_ORDER \
-  0x0001  ///< draw_horiz_band() is called in coded order instead of display
-#define SLICE_FLAG_ALLOW_FIELD \
-  0x0002  ///< allow draw_horiz_band() with field slices (MPEG2 field pics)
-#define SLICE_FLAG_ALLOW_PLANE \
-  0x0004  ///< allow draw_horiz_band() with 1 component at a time (SVQ1)
+    /**
+     * slice flags
+     * - encoding: unused
+     * - decoding: Set by user.
+     */
+    int slice_flags;
+#define SLICE_FLAG_CODED_ORDER    0x0001 ///< draw_horiz_band() is called in coded order instead of display
+#define SLICE_FLAG_ALLOW_FIELD    0x0002 ///< allow draw_horiz_band() with field slices (MPEG2 field pics)
+#define SLICE_FLAG_ALLOW_PLANE    0x0004 ///< allow draw_horiz_band() with 1 component at a time (SVQ1)
 
 #if FF_API_XVMC
-  /**
-   * XVideo Motion Acceleration
-   * - encoding: forbidden
-   * - decoding: set by decoder
-   * @deprecated XvMC doesn't need it anymore.
-   */
-  attribute_deprecated int xvmc_acceleration;
+    /**
+     * XVideo Motion Acceleration
+     * - encoding: forbidden
+     * - decoding: set by decoder
+     * @deprecated XvMC doesn't need it anymore.
+     */
+    attribute_deprecated int xvmc_acceleration;
 #endif /* FF_API_XVMC */
 
-  /**
-   * macroblock decision mode
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int mb_decision;
-#define FF_MB_DECISION_SIMPLE 0  ///< uses mb_cmp
-#define FF_MB_DECISION_BITS 1  ///< chooses the one which needs the fewest bits
-#define FF_MB_DECISION_RD 2    ///< rate distortion
-
-  /**
-   * custom intra quantization matrix
-   * - encoding: Set by user, can be NULL.
-   * - decoding: Set by libavcodec.
-   */
-  uint16_t *intra_matrix;
-
-  /**
-   * custom inter quantization matrix
-   * - encoding: Set by user, can be NULL.
-   * - decoding: Set by libavcodec.
-   */
-  uint16_t *inter_matrix;
-
-  /**
-   * scene change detection threshold
-   * 0 is default, larger means fewer detected scene changes.
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int scenechange_threshold;
-
-  /**
-   * noise reduction strength
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int noise_reduction;
+    /**
+     * macroblock decision mode
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int mb_decision;
+#define FF_MB_DECISION_SIMPLE 0        ///< uses mb_cmp
+#define FF_MB_DECISION_BITS   1        ///< chooses the one which needs the fewest bits
+#define FF_MB_DECISION_RD     2        ///< rate distortion
+
+    /**
+     * custom intra quantization matrix
+     * - encoding: Set by user, can be NULL.
+     * - decoding: Set by libavcodec.
+     */
+    uint16_t *intra_matrix;
+
+    /**
+     * custom inter quantization matrix
+     * - encoding: Set by user, can be NULL.
+     * - decoding: Set by libavcodec.
+     */
+    uint16_t *inter_matrix;
+
+    /**
+     * scene change detection threshold
+     * 0 is default, larger means fewer detected scene changes.
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int scenechange_threshold;
+
+    /**
+     * noise reduction strength
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int noise_reduction;
 
 #if FF_API_MPV_OPT
-  /**
-   * @deprecated this field is unused
-   */
-  attribute_deprecated int me_threshold;
-
-  /**
-   * @deprecated this field is unused
-   */
-  attribute_deprecated int mb_threshold;
+    /**
+     * @deprecated this field is unused
+     */
+    attribute_deprecated
+    int me_threshold;
+
+    /**
+     * @deprecated this field is unused
+     */
+    attribute_deprecated
+    int mb_threshold;
 #endif
 
-  /**
-   * precision of the intra DC coefficient - 8
-   * - encoding: Set by user.
-   * - decoding: Set by libavcodec
-   */
-  int intra_dc_precision;
-
-  /**
-   * Number of macroblock rows at the top which are skipped.
-   * - encoding: unused
-   * - decoding: Set by user.
-   */
-  int skip_top;
-
-  /**
-   * Number of macroblock rows at the bottom which are skipped.
-   * - encoding: unused
-   * - decoding: Set by user.
-   */
-  int skip_bottom;
+    /**
+     * precision of the intra DC coefficient - 8
+     * - encoding: Set by user.
+     * - decoding: Set by libavcodec
+     */
+    int intra_dc_precision;
+
+    /**
+     * Number of macroblock rows at the top which are skipped.
+     * - encoding: unused
+     * - decoding: Set by user.
+     */
+    int skip_top;
+
+    /**
+     * Number of macroblock rows at the bottom which are skipped.
+     * - encoding: unused
+     * - decoding: Set by user.
+     */
+    int skip_bottom;
 
 #if FF_API_MPV_OPT
-  /**
-   * @deprecated use encoder private options instead
-   */
-  attribute_deprecated float border_masking;
+    /**
+     * @deprecated use encoder private options instead
+     */
+    attribute_deprecated
+    float border_masking;
 #endif
 
-  /**
-   * minimum MB lagrange multipler
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int mb_lmin;
-
-  /**
-   * maximum MB lagrange multipler
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int mb_lmax;
-
-  /**
-   *
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int me_penalty_compensation;
-
-  /**
-   *
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int bidir_refine;
-
-  /**
-   *
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int brd_scale;
-
-  /**
-   * minimum GOP size
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int keyint_min;
-
-  /**
-   * number of reference frames
-   * - encoding: Set by user.
-   * - decoding: Set by lavc.
-   */
-  int refs;
-
-  /**
-   * chroma qp offset from luma
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int chromaoffset;
+    /**
+     * minimum MB lagrange multipler
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int mb_lmin;
+
+    /**
+     * maximum MB lagrange multipler
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int mb_lmax;
+
+    /**
+     *
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int me_penalty_compensation;
+
+    /**
+     *
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int bidir_refine;
+
+    /**
+     *
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int brd_scale;
+
+    /**
+     * minimum GOP size
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int keyint_min;
+
+    /**
+     * number of reference frames
+     * - encoding: Set by user.
+     * - decoding: Set by lavc.
+     */
+    int refs;
+
+    /**
+     * chroma qp offset from luma
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int chromaoffset;
 
 #if FF_API_UNUSED_MEMBERS
-  /**
-   * Multiplied by qscale for each frame and added to scene_change_score.
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  attribute_deprecated int scenechange_factor;
+    /**
+     * Multiplied by qscale for each frame and added to scene_change_score.
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    attribute_deprecated int scenechange_factor;
 #endif
 
-  /**
-   *
-   * Note: Value depends upon the compare function used for fullpel ME.
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int mv0_threshold;
-
-  /**
-   * Adjust sensitivity of b_frame_strategy 1.
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int b_sensitivity;
-
-  /**
-   * Chromaticity coordinates of the source primaries.
-   * - encoding: Set by user
-   * - decoding: Set by libavcodec
-   */
-  enum AVColorPrimaries color_primaries;
-
-  /**
-   * Color Transfer Characteristic.
-   * - encoding: Set by user
-   * - decoding: Set by libavcodec
-   */
-  enum AVColorTransferCharacteristic color_trc;
-
-  /**
-   * YUV colorspace type.
-   * - encoding: Set by user
-   * - decoding: Set by libavcodec
-   */
-  enum AVColorSpace colorspace;
-
-  /**
-   * MPEG vs JPEG YUV range.
-   * - encoding: Set by user
-   * - decoding: Set by libavcodec
-   */
-  enum AVColorRange color_range;
-
-  /**
-   * This defines the location of chroma samples.
-   * - encoding: Set by user
-   * - decoding: Set by libavcodec
-   */
-  enum AVChromaLocation chroma_sample_location;
-
-  /**
-   * Number of slices.
-   * Indicates number of picture subdivisions. Used for parallelized
-   * decoding.
-   * - encoding: Set by user
-   * - decoding: unused
-   */
-  int slices;
-
-  /** Field order
-   * - encoding: set by libavcodec
-   * - decoding: Set by user.
-   */
-  enum AVFieldOrder field_order;
-
-  /* audio only */
-  int sample_rate;  ///< samples per second
-  int channels;     ///< number of audio channels
-
-  /**
-   * audio sample format
-   * - encoding: Set by user.
-   * - decoding: Set by libavcodec.
-   */
-  enum AVSampleFormat sample_fmt;  ///< sample format
-
-  /* The following data should not be initialized. */
-  /**
-   * Number of samples per channel in an audio frame.
-   *
-   * - encoding: set by libavcodec in avcodec_open2(). Each submitted frame
-   *   except the last must contain exactly frame_size samples per channel.
-   *   May be 0 when the codec has AV_CODEC_CAP_VARIABLE_FRAME_SIZE set, then
-   * the frame size is not restricted.
-   * - decoding: may be set by some decoders to indicate constant frame size
-   */
-  int frame_size;
-
-  /**
-   * Frame counter, set by libavcodec.
-   *
-   * - decoding: total number of frames returned from the decoder so far.
-   * - encoding: total number of frames passed to the encoder so far.
-   *
-   *   @note the counter is not incremented if encoding/decoding resulted in
-   *   an error.
-   */
-  int frame_number;
-
-  /**
-   * number of bytes per packet if constant and known or 0
-   * Used by some WAV based audio codecs.
-   */
-  int block_align;
-
-  /**
-   * Audio cutoff bandwidth (0 means "automatic")
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int cutoff;
-
-  /**
-   * Audio channel layout.
-   * - encoding: set by user.
-   * - decoding: set by user, may be overwritten by libavcodec.
-   */
-  uint64_t channel_layout;
-
-  /**
-   * Request decoder to use this channel layout if it can (0 for default)
-   * - encoding: unused
-   * - decoding: Set by user.
-   */
-  uint64_t request_channel_layout;
-
-  /**
-   * Type of service that the audio stream conveys.
-   * - encoding: Set by user.
-   * - decoding: Set by libavcodec.
-   */
-  enum AVAudioServiceType audio_service_type;
-
-  /**
-   * desired sample format
-   * - encoding: Not used.
-   * - decoding: Set by user.
-   * Decoder will decode to this format if it can.
-   */
-  enum AVSampleFormat request_sample_fmt;
-
-  /**
-   * This callback is called at the beginning of each frame to get data
-   * buffer(s) for it. There may be one contiguous buffer for all the data or
-   * there may be a buffer per each data plane or anything in between. What
-   * this means is, you may set however many entries in buf[] you feel
-   * necessary. Each buffer must be reference-counted using the AVBuffer API
-   * (see description of buf[] below).
-   *
-   * The following fields will be set in the frame before this callback is
-   * called:
-   * - format
-   * - width, height (video only)
-   * - sample_rate, channel_layout, nb_samples (audio only)
-   * Their values may differ from the corresponding values in
-   * AVCodecContext. This callback must use the frame values, not the codec
-   * context values, to calculate the required buffer size.
-   *
-   * This callback must fill the following fields in the frame:
-   * - data[]
-   * - linesize[]
-   * - extended_data:
-   *   * if the data is planar audio with more than 8 channels, then this
-   *     callback must allocate and fill extended_data to contain all pointers
-   *     to all data planes. data[] must hold as many pointers as it can.
-   *     extended_data must be allocated with av_malloc() and will be freed in
-   *     av_frame_unref().
-   *   * otherwise exended_data must point to data
-   * - buf[] must contain one or more pointers to AVBufferRef structures. Each
-   * of the frame's data and extended_data pointers must be contained in these.
-   * That is, one AVBufferRef for each allocated chunk of memory, not
-   * necessarily one AVBufferRef per data[] entry. See: av_buffer_create(),
-   * av_buffer_alloc(), and av_buffer_ref().
-   * - extended_buf and nb_extended_buf must be allocated with av_malloc() by
-   *   this callback and filled with the extra buffers if there are more
-   *   buffers than buf[] can hold. extended_buf will be freed in
-   *   av_frame_unref().
-   *
-   * If AV_CODEC_CAP_DR1 is not set then get_buffer2() must call
-   * avcodec_default_get_buffer2() instead of providing buffers allocated by
-   * some other means.
-   *
-   * Each data plane must be aligned to the maximum required by the target
-   * CPU.
-   *
-   * @see avcodec_default_get_buffer2()
-   *
-   * Video:
-   *
-   * If AV_GET_BUFFER_FLAG_REF is set in flags then the frame may be reused
-   * (read and/or written to if it is writable) later by libavcodec.
-   *
-   * avcodec_align_dimensions2() should be used to find the required width and
-   * height, as they normally need to be rounded up to the next multiple of 16.
-   *
-   * Some decoders do not support linesizes changing between frames.
-   *
-   * If frame multithreading is used and thread_safe_callbacks is set,
-   * this callback may be called from a different thread, but not from more
-   * than one at once. Does not need to be reentrant.
-   *
-   * @see avcodec_align_dimensions2()
-   *
-   * Audio:
-   *
-   * Decoders request a buffer of a particular size by setting
-   * AVFrame.nb_samples prior to calling get_buffer2(). The decoder may,
-   * however, utilize only part of the buffer by setting AVFrame.nb_samples
-   * to a smaller value in the output frame.
-   *
-   * As a convenience, av_samples_get_buffer_size() and
-   * av_samples_fill_arrays() in libavutil may be used by custom get_buffer2()
-   * functions to find the required data size and to fill data pointers and
-   * linesize. In AVFrame.linesize, only linesize[0] may be set for audio
-   * since all planes must be the same size.
-   *
-   * @see av_samples_get_buffer_size(), av_samples_fill_arrays()
-   *
-   * - encoding: unused
-   * - decoding: Set by libavcodec, user can override.
-   */
-  int (*get_buffer2)(struct AVCodecContext *s, AVFrame *frame, int flags);
-
-  /**
-   * If non-zero, the decoded audio and video frames returned from
-   * avcodec_decode_video2() and avcodec_decode_audio4() are reference-counted
-   * and are valid indefinitely. The caller must free them with
-   * av_frame_unref() when they are not needed anymore.
-   * Otherwise, the decoded frames must not be freed by the caller and are
-   * only valid until the next decode call.
-   *
-   * - encoding: unused
-   * - decoding: set by the caller before avcodec_open2().
-   */
-  int refcounted_frames;
-
-  /* - encoding parameters */
-  float qcompress;  ///< amount of qscale change between easy & hard scenes
-                    ///< (0.0-1.0)
-  float qblur;      ///< amount of qscale smoothing over time (0.0-1.0)
-
-  /**
-   * minimum quantizer
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int qmin;
-
-  /**
-   * maximum quantizer
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int qmax;
-
-  /**
-   * maximum quantizer difference between frames
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int max_qdiff;
+    /**
+     *
+     * Note: Value depends upon the compare function used for fullpel ME.
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int mv0_threshold;
+
+    /**
+     * Adjust sensitivity of b_frame_strategy 1.
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int b_sensitivity;
+
+    /**
+     * Chromaticity coordinates of the source primaries.
+     * - encoding: Set by user
+     * - decoding: Set by libavcodec
+     */
+    enum AVColorPrimaries color_primaries;
+
+    /**
+     * Color Transfer Characteristic.
+     * - encoding: Set by user
+     * - decoding: Set by libavcodec
+     */
+    enum AVColorTransferCharacteristic color_trc;
+
+    /**
+     * YUV colorspace type.
+     * - encoding: Set by user
+     * - decoding: Set by libavcodec
+     */
+    enum AVColorSpace colorspace;
+
+    /**
+     * MPEG vs JPEG YUV range.
+     * - encoding: Set by user
+     * - decoding: Set by libavcodec
+     */
+    enum AVColorRange color_range;
+
+    /**
+     * This defines the location of chroma samples.
+     * - encoding: Set by user
+     * - decoding: Set by libavcodec
+     */
+    enum AVChromaLocation chroma_sample_location;
+
+    /**
+     * Number of slices.
+     * Indicates number of picture subdivisions. Used for parallelized
+     * decoding.
+     * - encoding: Set by user
+     * - decoding: unused
+     */
+    int slices;
+
+    /** Field order
+     * - encoding: set by libavcodec
+     * - decoding: Set by user.
+     */
+    enum AVFieldOrder field_order;
+
+    /* audio only */
+    int sample_rate; ///< samples per second
+    int channels;    ///< number of audio channels
+
+    /**
+     * audio sample format
+     * - encoding: Set by user.
+     * - decoding: Set by libavcodec.
+     */
+    enum AVSampleFormat sample_fmt;  ///< sample format
+
+    /* The following data should not be initialized. */
+    /**
+     * Number of samples per channel in an audio frame.
+     *
+     * - encoding: set by libavcodec in avcodec_open2(). Each submitted frame
+     *   except the last must contain exactly frame_size samples per channel.
+     *   May be 0 when the codec has AV_CODEC_CAP_VARIABLE_FRAME_SIZE set, then the
+     *   frame size is not restricted.
+     * - decoding: may be set by some decoders to indicate constant frame size
+     */
+    int frame_size;
+
+    /**
+     * Frame counter, set by libavcodec.
+     *
+     * - decoding: total number of frames returned from the decoder so far.
+     * - encoding: total number of frames passed to the encoder so far.
+     *
+     *   @note the counter is not incremented if encoding/decoding resulted in
+     *   an error.
+     */
+    int frame_number;
+
+    /**
+     * number of bytes per packet if constant and known or 0
+     * Used by some WAV based audio codecs.
+     */
+    int block_align;
+
+    /**
+     * Audio cutoff bandwidth (0 means "automatic")
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int cutoff;
+
+    /**
+     * Audio channel layout.
+     * - encoding: set by user.
+     * - decoding: set by user, may be overwritten by libavcodec.
+     */
+    uint64_t channel_layout;
+
+    /**
+     * Request decoder to use this channel layout if it can (0 for default)
+     * - encoding: unused
+     * - decoding: Set by user.
+     */
+    uint64_t request_channel_layout;
+
+    /**
+     * Type of service that the audio stream conveys.
+     * - encoding: Set by user.
+     * - decoding: Set by libavcodec.
+     */
+    enum AVAudioServiceType audio_service_type;
+
+    /**
+     * desired sample format
+     * - encoding: Not used.
+     * - decoding: Set by user.
+     * Decoder will decode to this format if it can.
+     */
+    enum AVSampleFormat request_sample_fmt;
+
+    /**
+     * This callback is called at the beginning of each frame to get data
+     * buffer(s) for it. There may be one contiguous buffer for all the data or
+     * there may be a buffer per each data plane or anything in between. What
+     * this means is, you may set however many entries in buf[] you feel necessary.
+     * Each buffer must be reference-counted using the AVBuffer API (see description
+     * of buf[] below).
+     *
+     * The following fields will be set in the frame before this callback is
+     * called:
+     * - format
+     * - width, height (video only)
+     * - sample_rate, channel_layout, nb_samples (audio only)
+     * Their values may differ from the corresponding values in
+     * AVCodecContext. This callback must use the frame values, not the codec
+     * context values, to calculate the required buffer size.
+     *
+     * This callback must fill the following fields in the frame:
+     * - data[]
+     * - linesize[]
+     * - extended_data:
+     *   * if the data is planar audio with more than 8 channels, then this
+     *     callback must allocate and fill extended_data to contain all pointers
+     *     to all data planes. data[] must hold as many pointers as it can.
+     *     extended_data must be allocated with av_malloc() and will be freed in
+     *     av_frame_unref().
+     *   * otherwise exended_data must point to data
+     * - buf[] must contain one or more pointers to AVBufferRef structures. Each of
+     *   the frame's data and extended_data pointers must be contained in these. That
+     *   is, one AVBufferRef for each allocated chunk of memory, not necessarily one
+     *   AVBufferRef per data[] entry. See: av_buffer_create(), av_buffer_alloc(),
+     *   and av_buffer_ref().
+     * - extended_buf and nb_extended_buf must be allocated with av_malloc() by
+     *   this callback and filled with the extra buffers if there are more
+     *   buffers than buf[] can hold. extended_buf will be freed in
+     *   av_frame_unref().
+     *
+     * If AV_CODEC_CAP_DR1 is not set then get_buffer2() must call
+     * avcodec_default_get_buffer2() instead of providing buffers allocated by
+     * some other means.
+     *
+     * Each data plane must be aligned to the maximum required by the target
+     * CPU.
+     *
+     * @see avcodec_default_get_buffer2()
+     *
+     * Video:
+     *
+     * If AV_GET_BUFFER_FLAG_REF is set in flags then the frame may be reused
+     * (read and/or written to if it is writable) later by libavcodec.
+     *
+     * avcodec_align_dimensions2() should be used to find the required width and
+     * height, as they normally need to be rounded up to the next multiple of 16.
+     *
+     * Some decoders do not support linesizes changing between frames.
+     *
+     * If frame multithreading is used and thread_safe_callbacks is set,
+     * this callback may be called from a different thread, but not from more
+     * than one at once. Does not need to be reentrant.
+     *
+     * @see avcodec_align_dimensions2()
+     *
+     * Audio:
+     *
+     * Decoders request a buffer of a particular size by setting
+     * AVFrame.nb_samples prior to calling get_buffer2(). The decoder may,
+     * however, utilize only part of the buffer by setting AVFrame.nb_samples
+     * to a smaller value in the output frame.
+     *
+     * As a convenience, av_samples_get_buffer_size() and
+     * av_samples_fill_arrays() in libavutil may be used by custom get_buffer2()
+     * functions to find the required data size and to fill data pointers and
+     * linesize. In AVFrame.linesize, only linesize[0] may be set for audio
+     * since all planes must be the same size.
+     *
+     * @see av_samples_get_buffer_size(), av_samples_fill_arrays()
+     *
+     * - encoding: unused
+     * - decoding: Set by libavcodec, user can override.
+     */
+    int (*get_buffer2)(struct AVCodecContext *s, AVFrame *frame, int flags);
+
+    /**
+     * If non-zero, the decoded audio and video frames returned from
+     * avcodec_decode_video2() and avcodec_decode_audio4() are reference-counted
+     * and are valid indefinitely. The caller must free them with
+     * av_frame_unref() when they are not needed anymore.
+     * Otherwise, the decoded frames must not be freed by the caller and are
+     * only valid until the next decode call.
+     *
+     * - encoding: unused
+     * - decoding: set by the caller before avcodec_open2().
+     */
+    int refcounted_frames;
+
+    /* - encoding parameters */
+    float qcompress;  ///< amount of qscale change between easy & hard scenes (0.0-1.0)
+    float qblur;      ///< amount of qscale smoothing over time (0.0-1.0)
+
+    /**
+     * minimum quantizer
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int qmin;
+
+    /**
+     * maximum quantizer
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int qmax;
+
+    /**
+     * maximum quantizer difference between frames
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int max_qdiff;
 
 #if FF_API_MPV_OPT
-  /**
-   * @deprecated use encoder private options instead
-   */
-  attribute_deprecated float rc_qsquish;
-
-  attribute_deprecated float rc_qmod_amp;
-  attribute_deprecated int rc_qmod_freq;
+    /**
+     * @deprecated use encoder private options instead
+     */
+    attribute_deprecated
+    float rc_qsquish;
+
+    attribute_deprecated
+    float rc_qmod_amp;
+    attribute_deprecated
+    int rc_qmod_freq;
 #endif
 
-  /**
-   * decoder bitstream buffer size
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int rc_buffer_size;
-
-  /**
-   * ratecontrol override, see RcOverride
-   * - encoding: Allocated/set/freed by user.
-   * - decoding: unused
-   */
-  int rc_override_count;
-  RcOverride *rc_override;
+    /**
+     * decoder bitstream buffer size
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int rc_buffer_size;
+
+    /**
+     * ratecontrol override, see RcOverride
+     * - encoding: Allocated/set/freed by user.
+     * - decoding: unused
+     */
+    int rc_override_count;
+    RcOverride *rc_override;
 
 #if FF_API_MPV_OPT
-  /**
-   * @deprecated use encoder private options instead
-   */
-  attribute_deprecated const char *rc_eq;
+    /**
+     * @deprecated use encoder private options instead
+     */
+    attribute_deprecated
+    const char *rc_eq;
 #endif
 
-  /**
-   * maximum bitrate
-   * - encoding: Set by user.
-   * - decoding: Set by user, may be overwritten by libavcodec.
-   */
-  int64_t rc_max_rate;
-
-  /**
-   * minimum bitrate
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int64_t rc_min_rate;
+    /**
+     * maximum bitrate
+     * - encoding: Set by user.
+     * - decoding: Set by user, may be overwritten by libavcodec.
+     */
+    int64_t rc_max_rate;
+
+    /**
+     * minimum bitrate
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int64_t rc_min_rate;
 
 #if FF_API_MPV_OPT
-  /**
-   * @deprecated use encoder private options instead
-   */
-  attribute_deprecated float rc_buffer_aggressivity;
-
-  attribute_deprecated float rc_initial_cplx;
+    /**
+     * @deprecated use encoder private options instead
+     */
+    attribute_deprecated
+    float rc_buffer_aggressivity;
+
+    attribute_deprecated
+    float rc_initial_cplx;
 #endif
 
-  /**
-   * Ratecontrol attempt to use, at maximum, <value> of what can be used without
-   * an underflow.
-   * - encoding: Set by user.
-   * - decoding: unused.
-   */
-  float rc_max_available_vbv_use;
-
-  /**
-   * Ratecontrol attempt to use, at least, <value> times the amount needed to
-   * prevent a vbv overflow.
-   * - encoding: Set by user.
-   * - decoding: unused.
-   */
-  float rc_min_vbv_overflow_use;
-
-  /**
-   * Number of bits which should be loaded into the rc buffer before decoding
-   * starts.
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int rc_initial_buffer_occupancy;
+    /**
+     * Ratecontrol attempt to use, at maximum, <value> of what can be used without an underflow.
+     * - encoding: Set by user.
+     * - decoding: unused.
+     */
+    float rc_max_available_vbv_use;
+
+    /**
+     * Ratecontrol attempt to use, at least, <value> times the amount needed to prevent a vbv overflow.
+     * - encoding: Set by user.
+     * - decoding: unused.
+     */
+    float rc_min_vbv_overflow_use;
+
+    /**
+     * Number of bits which should be loaded into the rc buffer before decoding starts.
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int rc_initial_buffer_occupancy;
 
 #if FF_API_CODER_TYPE
-#define FF_CODER_TYPE_VLC 0
-#define FF_CODER_TYPE_AC 1
-#define FF_CODER_TYPE_RAW 2
-#define FF_CODER_TYPE_RLE 3
+#define FF_CODER_TYPE_VLC       0
+#define FF_CODER_TYPE_AC        1
+#define FF_CODER_TYPE_RAW       2
+#define FF_CODER_TYPE_RLE       3
 #if FF_API_UNUSED_MEMBERS
-#define FF_CODER_TYPE_DEFLATE 4
+#define FF_CODER_TYPE_DEFLATE   4
 #endif /* FF_API_UNUSED_MEMBERS */
-  /**
-   * @deprecated use encoder private options instead
-   */
-  attribute_deprecated int coder_type;
+    /**
+     * @deprecated use encoder private options instead
+     */
+    attribute_deprecated
+    int coder_type;
 #endif /* FF_API_CODER_TYPE */
 
-  /**
-   * context model
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int context_model;
+    /**
+     * context model
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int context_model;
 
 #if FF_API_MPV_OPT
-  /**
-   * @deprecated use encoder private options instead
-   */
-  attribute_deprecated int lmin;
-
-  /**
-   * @deprecated use encoder private options instead
-   */
-  attribute_deprecated int lmax;
+    /**
+     * @deprecated use encoder private options instead
+     */
+    attribute_deprecated
+    int lmin;
+
+    /**
+     * @deprecated use encoder private options instead
+     */
+    attribute_deprecated
+    int lmax;
 #endif
 
-  /**
-   * frame skip threshold
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int frame_skip_threshold;
-
-  /**
-   * frame skip factor
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int frame_skip_factor;
-
-  /**
-   * frame skip exponent
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int frame_skip_exp;
-
-  /**
-   * frame skip comparison function
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int frame_skip_cmp;
-
-  /**
-   * trellis RD quantization
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int trellis;
-
-  /**
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int min_prediction_order;
-
-  /**
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int max_prediction_order;
-
-  /**
-   * GOP timecode frame start number
-   * - encoding: Set by user, in non drop frame format
-   * - decoding: Set by libavcodec (timecode in the 25 bits format, -1 if unset)
-   */
-  int64_t timecode_frame_start;
+    /**
+     * frame skip threshold
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int frame_skip_threshold;
+
+    /**
+     * frame skip factor
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int frame_skip_factor;
+
+    /**
+     * frame skip exponent
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int frame_skip_exp;
+
+    /**
+     * frame skip comparison function
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int frame_skip_cmp;
+
+    /**
+     * trellis RD quantization
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int trellis;
+
+    /**
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int min_prediction_order;
+
+    /**
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int max_prediction_order;
+
+    /**
+     * GOP timecode frame start number
+     * - encoding: Set by user, in non drop frame format
+     * - decoding: Set by libavcodec (timecode in the 25 bits format, -1 if unset)
+     */
+    int64_t timecode_frame_start;
 
 #if FF_API_RTP_CALLBACK
-  /**
-   * @deprecated unused
-   */
-  /* The RTP callback: This function is called    */
-  /* every time the encoder has a packet to send. */
-  /* It depends on the encoder if the data starts */
-  /* with a Start Code (it should). H.263 does.   */
-  /* mb_nb contains the number of macroblocks     */
-  /* encoded in the RTP payload.                  */
-  attribute_deprecated void (*rtp_callback)(struct AVCodecContext *avctx,
-                                            void *data, int size, int mb_nb);
+    /**
+     * @deprecated unused
+     */
+    /* The RTP callback: This function is called    */
+    /* every time the encoder has a packet to send. */
+    /* It depends on the encoder if the data starts */
+    /* with a Start Code (it should). H.263 does.   */
+    /* mb_nb contains the number of macroblocks     */
+    /* encoded in the RTP payload.                  */
+    attribute_deprecated
+    void (*rtp_callback)(struct AVCodecContext *avctx, void *data, int size, int mb_nb);
 #endif
 
-  int rtp_payload_size; /* The size of the RTP payload: the coder will  */
-                        /* do its best to deliver a chunk with size     */
-                        /* below rtp_payload_size, the chunk will start */
-                        /* with a start code on some codecs like H.263. */
-                        /* This doesn't take account of any particular  */
-                        /* headers inside the transmitted RTP payload.  */
+    int rtp_payload_size;   /* The size of the RTP payload: the coder will  */
+                            /* do its best to deliver a chunk with size     */
+                            /* below rtp_payload_size, the chunk will start */
+                            /* with a start code on some codecs like H.263. */
+                            /* This doesn't take account of any particular  */
+                            /* headers inside the transmitted RTP payload.  */
 
 #if FF_API_STAT_BITS
-  /* statistics, used for 2-pass encoding */
-  attribute_deprecated int mv_bits;
-  attribute_deprecated int header_bits;
-  attribute_deprecated int i_tex_bits;
-  attribute_deprecated int p_tex_bits;
-  attribute_deprecated int i_count;
-  attribute_deprecated int p_count;
-  attribute_deprecated int skip_count;
-  attribute_deprecated int misc_bits;
-
-  /** @deprecated this field is unused */
-  attribute_deprecated int frame_bits;
+    /* statistics, used for 2-pass encoding */
+    attribute_deprecated
+    int mv_bits;
+    attribute_deprecated
+    int header_bits;
+    attribute_deprecated
+    int i_tex_bits;
+    attribute_deprecated
+    int p_tex_bits;
+    attribute_deprecated
+    int i_count;
+    attribute_deprecated
+    int p_count;
+    attribute_deprecated
+    int skip_count;
+    attribute_deprecated
+    int misc_bits;
+
+    /** @deprecated this field is unused */
+    attribute_deprecated
+    int frame_bits;
 #endif
 
-  /**
-   * pass1 encoding statistics output buffer
-   * - encoding: Set by libavcodec.
-   * - decoding: unused
-   */
-  char *stats_out;
-
-  /**
-   * pass2 encoding statistics input buffer
-   * Concatenated stuff from stats_out of pass1 should be placed here.
-   * - encoding: Allocated/set/freed by user.
-   * - decoding: unused
-   */
-  char *stats_in;
-
-  /**
-   * Work around bugs in encoders which sometimes cannot be detected
-   * automatically.
-   * - encoding: Set by user
-   * - decoding: Set by user
-   */
-  int workaround_bugs;
-#define FF_BUG_AUTODETECT 1  ///< autodetection
+    /**
+     * pass1 encoding statistics output buffer
+     * - encoding: Set by libavcodec.
+     * - decoding: unused
+     */
+    char *stats_out;
+
+    /**
+     * pass2 encoding statistics input buffer
+     * Concatenated stuff from stats_out of pass1 should be placed here.
+     * - encoding: Allocated/set/freed by user.
+     * - decoding: unused
+     */
+    char *stats_in;
+
+    /**
+     * Work around bugs in encoders which sometimes cannot be detected automatically.
+     * - encoding: Set by user
+     * - decoding: Set by user
+     */
+    int workaround_bugs;
+#define FF_BUG_AUTODETECT       1  ///< autodetection
 #if FF_API_OLD_MSMPEG4
-#define FF_BUG_OLD_MSMPEG4 2
+#define FF_BUG_OLD_MSMPEG4      2
 #endif
-#define FF_BUG_XVID_ILACE 4
-#define FF_BUG_UMP4 8
-#define FF_BUG_NO_PADDING 16
-#define FF_BUG_AMV 32
+#define FF_BUG_XVID_ILACE       4
+#define FF_BUG_UMP4             8
+#define FF_BUG_NO_PADDING       16
+#define FF_BUG_AMV              32
 #if FF_API_AC_VLC
-#define FF_BUG_AC_VLC \
-  0  ///< Will be removed, libavcodec can now handle these non-compliant files
-     ///< by default.
+#define FF_BUG_AC_VLC           0  ///< Will be removed, libavcodec can now handle these non-compliant files by default.
 #endif
-#define FF_BUG_QPEL_CHROMA 64
-#define FF_BUG_STD_QPEL 128
-#define FF_BUG_QPEL_CHROMA2 256
+#define FF_BUG_QPEL_CHROMA      64
+#define FF_BUG_STD_QPEL         128
+#define FF_BUG_QPEL_CHROMA2     256
 #define FF_BUG_DIRECT_BLOCKSIZE 512
-#define FF_BUG_EDGE 1024
-#define FF_BUG_HPEL_CHROMA 2048
-#define FF_BUG_DC_CLIP 4096
-#define FF_BUG_MS \
-  8192  ///< Work around various bugs in Microsoft's broken decoders.
-#define FF_BUG_TRUNCATED 16384
-
-  /**
-   * strictly follow the standard (MPEG4, ...).
-   * - encoding: Set by user.
-   * - decoding: Set by user.
-   * Setting this to STRICT or higher means the encoder and decoder will
-   * generally do stupid things, whereas setting it to unofficial or lower
-   * will mean the encoder might produce output that is not supported by all
-   * spec-compliant decoders. Decoders don't differentiate between normal,
-   * unofficial and experimental (that is, they always try to decode things
-   * when they can) unless they are explicitly asked to behave stupidly
-   * (=strictly conform to the specs)
-   */
-  int strict_std_compliance;
-#define FF_COMPLIANCE_VERY_STRICT \
-  2  ///< Strictly conform to an older more strict version of the spec or
-     ///< reference software.
-#define FF_COMPLIANCE_STRICT \
-  1  ///< Strictly conform to all the things in the spec no matter what
-     ///< consequences.
-#define FF_COMPLIANCE_NORMAL 0
-#define FF_COMPLIANCE_UNOFFICIAL -1  ///< Allow unofficial extensions
-#define FF_COMPLIANCE_EXPERIMENTAL \
-  -2  ///< Allow nonstandardized experimental things.
-
-  /**
-   * error concealment flags
-   * - encoding: unused
-   * - decoding: Set by user.
-   */
-  int error_concealment;
-#define FF_EC_GUESS_MVS 1
-#define FF_EC_DEBLOCK 2
+#define FF_BUG_EDGE             1024
+#define FF_BUG_HPEL_CHROMA      2048
+#define FF_BUG_DC_CLIP          4096
+#define FF_BUG_MS               8192 ///< Work around various bugs in Microsoft's broken decoders.
+#define FF_BUG_TRUNCATED       16384
+
+    /**
+     * strictly follow the standard (MPEG4, ...).
+     * - encoding: Set by user.
+     * - decoding: Set by user.
+     * Setting this to STRICT or higher means the encoder and decoder will
+     * generally do stupid things, whereas setting it to unofficial or lower
+     * will mean the encoder might produce output that is not supported by all
+     * spec-compliant decoders. Decoders don't differentiate between normal,
+     * unofficial and experimental (that is, they always try to decode things
+     * when they can) unless they are explicitly asked to behave stupidly
+     * (=strictly conform to the specs)
+     */
+    int strict_std_compliance;
+#define FF_COMPLIANCE_VERY_STRICT   2 ///< Strictly conform to an older more strict version of the spec or reference software.
+#define FF_COMPLIANCE_STRICT        1 ///< Strictly conform to all the things in the spec no matter what consequences.
+#define FF_COMPLIANCE_NORMAL        0
+#define FF_COMPLIANCE_UNOFFICIAL   -1 ///< Allow unofficial extensions
+#define FF_COMPLIANCE_EXPERIMENTAL -2 ///< Allow nonstandardized experimental things.
+
+    /**
+     * error concealment flags
+     * - encoding: unused
+     * - decoding: Set by user.
+     */
+    int error_concealment;
+#define FF_EC_GUESS_MVS   1
+#define FF_EC_DEBLOCK     2
 #define FF_EC_FAVOR_INTER 256
 
-  /**
-   * debug
-   * - encoding: Set by user.
-   * - decoding: Set by user.
-   */
-  int debug;
-#define FF_DEBUG_PICT_INFO 1
-#define FF_DEBUG_RC 2
-#define FF_DEBUG_BITSTREAM 4
-#define FF_DEBUG_MB_TYPE 8
-#define FF_DEBUG_QP 16
+    /**
+     * debug
+     * - encoding: Set by user.
+     * - decoding: Set by user.
+     */
+    int debug;
+#define FF_DEBUG_PICT_INFO   1
+#define FF_DEBUG_RC          2
+#define FF_DEBUG_BITSTREAM   4
+#define FF_DEBUG_MB_TYPE     8
+#define FF_DEBUG_QP          16
 #if FF_API_DEBUG_MV
 /**
  * @deprecated this option does nothing
  */
-#define FF_DEBUG_MV 32
+#define FF_DEBUG_MV          32
 #endif
-#define FF_DEBUG_DCT_COEFF 0x00000040
-#define FF_DEBUG_SKIP 0x00000080
-#define FF_DEBUG_STARTCODE 0x00000100
+#define FF_DEBUG_DCT_COEFF   0x00000040
+#define FF_DEBUG_SKIP        0x00000080
+#define FF_DEBUG_STARTCODE   0x00000100
 #if FF_API_UNUSED_MEMBERS
-#define FF_DEBUG_PTS 0x00000200
+#define FF_DEBUG_PTS         0x00000200
 #endif /* FF_API_UNUSED_MEMBERS */
-#define FF_DEBUG_ER 0x00000400
-#define FF_DEBUG_MMCO 0x00000800
-#define FF_DEBUG_BUGS 0x00001000
+#define FF_DEBUG_ER          0x00000400
+#define FF_DEBUG_MMCO        0x00000800
+#define FF_DEBUG_BUGS        0x00001000
 #if FF_API_DEBUG_MV
-#define FF_DEBUG_VIS_QP \
-  0x00002000  ///< only access through AVOptions from outside libavcodec
-#define FF_DEBUG_VIS_MB_TYPE \
-  0x00004000  ///< only access through AVOptions from outside libavcodec
+#define FF_DEBUG_VIS_QP      0x00002000 ///< only access through AVOptions from outside libavcodec
+#define FF_DEBUG_VIS_MB_TYPE 0x00004000 ///< only access through AVOptions from outside libavcodec
 #endif
-#define FF_DEBUG_BUFFERS 0x00008000
-#define FF_DEBUG_THREADS 0x00010000
-#define FF_DEBUG_GREEN_MD 0x00800000
-#define FF_DEBUG_NOMC 0x01000000
+#define FF_DEBUG_BUFFERS     0x00008000
+#define FF_DEBUG_THREADS     0x00010000
+#define FF_DEBUG_GREEN_MD    0x00800000
+#define FF_DEBUG_NOMC        0x01000000
 
 #if FF_API_DEBUG_MV
-  /**
-   * debug
-   * Code outside libavcodec should access this field using AVOptions
-   * - encoding: Set by user.
-   * - decoding: Set by user.
-   */
-  int debug_mv;
-#define FF_DEBUG_VIS_MV_P_FOR \
-  0x00000001  // visualize forward predicted MVs of P frames
-#define FF_DEBUG_VIS_MV_B_FOR \
-  0x00000002  // visualize forward predicted MVs of B frames
-#define FF_DEBUG_VIS_MV_B_BACK \
-  0x00000004  // visualize backward predicted MVs of B frames
+    /**
+     * debug
+     * Code outside libavcodec should access this field using AVOptions
+     * - encoding: Set by user.
+     * - decoding: Set by user.
+     */
+    int debug_mv;
+#define FF_DEBUG_VIS_MV_P_FOR  0x00000001 //visualize forward predicted MVs of P frames
+#define FF_DEBUG_VIS_MV_B_FOR  0x00000002 //visualize forward predicted MVs of B frames
+#define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames
 #endif
 
-  /**
-   * Error recognition; may misdetect some more or less valid parts as errors.
-   * - encoding: unused
-   * - decoding: Set by user.
-   */
-  int err_recognition;
+    /**
+     * Error recognition; may misdetect some more or less valid parts as errors.
+     * - encoding: unused
+     * - decoding: Set by user.
+     */
+    int err_recognition;
 
 /**
  * Verify checksums embedded in the bitstream (could be of either encoded or
  * decoded data, depending on the codec) and print an error message on mismatch.
  * If AV_EF_EXPLODE is also set, a mismatching checksum will result in the
  * decoder returning an error.
  */
-#define AV_EF_CRCCHECK (1 << 0)
-#define AV_EF_BITSTREAM (1 << 1)  ///< detect bitstream specification deviations
-#define AV_EF_BUFFER (1 << 2)     ///< detect improper bitstream length
-#define AV_EF_EXPLODE (1 << 3)    ///< abort decoding on minor error detection
-
-#define AV_EF_IGNORE_ERR (1 << 15)  ///< ignore errors and continue
-#define AV_EF_CAREFUL \
-  (1 << 16)  ///< consider things that violate the spec, are fast to calculate
-             ///< and have not been seen in the wild as errors
-#define AV_EF_COMPLIANT \
-  (1 << 17)  ///< consider all spec non compliances as errors
-#define AV_EF_AGGRESSIVE \
-  (1 << 18)  ///< consider things that a sane encoder should not do as an error
-
-  /**
-   * opaque 64bit number (generally a PTS) that will be reordered and
-   * output in AVFrame.reordered_opaque
-   * - encoding: unused
-   * - decoding: Set by user.
-   */
-  int64_t reordered_opaque;
-
-  /**
-   * Hardware accelerator in use
-   * - encoding: unused.
-   * - decoding: Set by libavcodec
-   */
-  struct AVHWAccel *hwaccel;
-
-  /**
-   * Hardware accelerator context.
-   * For some hardware accelerators, a global context needs to be
-   * provided by the user. In that case, this holds display-dependent
-   * data FFmpeg cannot instantiate itself. Please refer to the
-   * FFmpeg HW accelerator documentation to know how to fill this
-   * is. e.g. for VA API, this is a struct vaapi_context.
-   * - encoding: unused
-   * - decoding: Set by user
-   */
-  void *hwaccel_context;
-
-  /**
-   * error
-   * - encoding: Set by libavcodec if flags & AV_CODEC_FLAG_PSNR.
-   * - decoding: unused
-   */
-  uint64_t error[AV_NUM_DATA_POINTERS];
-
-  /**
-   * DCT algorithm, see FF_DCT_* below
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int dct_algo;
-#define FF_DCT_AUTO 0
+#define AV_EF_CRCCHECK  (1<<0)
+#define AV_EF_BITSTREAM (1<<1)          ///< detect bitstream specification deviations
+#define AV_EF_BUFFER    (1<<2)          ///< detect improper bitstream length
+#define AV_EF_EXPLODE   (1<<3)          ///< abort decoding on minor error detection
+
+#define AV_EF_IGNORE_ERR (1<<15)        ///< ignore errors and continue
+#define AV_EF_CAREFUL    (1<<16)        ///< consider things that violate the spec, are fast to calculate and have not been seen in the wild as errors
+#define AV_EF_COMPLIANT  (1<<17)        ///< consider all spec non compliances as errors
+#define AV_EF_AGGRESSIVE (1<<18)        ///< consider things that a sane encoder should not do as an error
+
+
+    /**
+     * opaque 64bit number (generally a PTS) that will be reordered and
+     * output in AVFrame.reordered_opaque
+     * - encoding: unused
+     * - decoding: Set by user.
+     */
+    int64_t reordered_opaque;
+
+    /**
+     * Hardware accelerator in use
+     * - encoding: unused.
+     * - decoding: Set by libavcodec
+     */
+    struct AVHWAccel *hwaccel;
+
+    /**
+     * Hardware accelerator context.
+     * For some hardware accelerators, a global context needs to be
+     * provided by the user. In that case, this holds display-dependent
+     * data FFmpeg cannot instantiate itself. Please refer to the
+     * FFmpeg HW accelerator documentation to know how to fill this
+     * is. e.g. for VA API, this is a struct vaapi_context.
+     * - encoding: unused
+     * - decoding: Set by user
+     */
+    void *hwaccel_context;
+
+    /**
+     * error
+     * - encoding: Set by libavcodec if flags & AV_CODEC_FLAG_PSNR.
+     * - decoding: unused
+     */
+    uint64_t error[AV_NUM_DATA_POINTERS];
+
+    /**
+     * DCT algorithm, see FF_DCT_* below
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+    int dct_algo;
+#define FF_DCT_AUTO    0
 #define FF_DCT_FASTINT 1
-#define FF_DCT_INT 2
-#define FF_DCT_MMX 3
+#define FF_DCT_INT     2
+#define FF_DCT_MMX     3
 #define FF_DCT_ALTIVEC 5
-#define FF_DCT_FAAN 6
-
-  /**
-   * IDCT algorithm, see FF_IDCT_* below.
-   * - encoding: Set by user.
-   * - decoding: Set by user.
-   */
-  int idct_algo;
-#define FF_IDCT_AUTO 0
-#define FF_IDCT_INT 1
-#define FF_IDCT_SIMPLE 2
-#define FF_IDCT_SIMPLEMMX 3
-#define FF_IDCT_ARM 7
-#define FF_IDCT_ALTIVEC 8
+#define FF_DCT_FAAN    6
+
+    /**
+     * IDCT algorithm, see FF_IDCT_* below.
+     * - encoding: Set by user.
+     * - decoding: Set by user.
+     */
+    int idct_algo;
+#define FF_IDCT_AUTO          0
+#define FF_IDCT_INT           1
+#define FF_IDCT_SIMPLE        2
+#define FF_IDCT_SIMPLEMMX     3
+#define FF_IDCT_ARM           7
+#define FF_IDCT_ALTIVEC       8
 #if FF_API_ARCH_SH4
-#define FF_IDCT_SH4 9
+#define FF_IDCT_SH4           9
 #endif
-#define FF_IDCT_SIMPLEARM 10
+#define FF_IDCT_SIMPLEARM     10
 #if FF_API_UNUSED_MEMBERS
-#define FF_IDCT_IPP 13
+#define FF_IDCT_IPP           13
 #endif /* FF_API_UNUSED_MEMBERS */
-#define FF_IDCT_XVID 14
+#define FF_IDCT_XVID          14
 #if FF_API_IDCT_XVIDMMX
-#define FF_IDCT_XVIDMMX 14
+#define FF_IDCT_XVIDMMX       14
 #endif /* FF_API_IDCT_XVIDMMX */
 #define FF_IDCT_SIMPLEARMV5TE 16
-#define FF_IDCT_SIMPLEARMV6 17
+#define FF_IDCT_SIMPLEARMV6   17
 #if FF_API_ARCH_SPARC
-#define FF_IDCT_SIMPLEVIS 18
+#define FF_IDCT_SIMPLEVIS     18
 #endif
-#define FF_IDCT_FAAN 20
-#define FF_IDCT_SIMPLENEON 22
+#define FF_IDCT_FAAN          20
+#define FF_IDCT_SIMPLENEON    22
 #if FF_API_ARCH_ALPHA
-#define FF_IDCT_SIMPLEALPHA 23
+#define FF_IDCT_SIMPLEALPHA   23
 #endif
-#define FF_IDCT_SIMPLEAUTO 128
-
-  /**
-   * bits per sample/pixel from the demuxer (needed for huffyuv).
-   * - encoding: Set by libavcodec.
-   * - decoding: Set by user.
-   */
-  int bits_per_coded_sample;
-
-  /**
-   * Bits per sample/pixel of internal libavcodec pixel/sample format.
-   * - encoding: set by user.
-   * - decoding: set by libavcodec.
-   */
-  int bits_per_raw_sample;
+#define FF_IDCT_SIMPLEAUTO    128
+
+    /**
+     * bits per sample/pixel from the demuxer (needed for huffyuv).
+     * - encoding: Set by libavcodec.
+     * - decoding: Set by user.
+     */
+     int bits_per_coded_sample;
+
+    /**
+     * Bits per sample/pixel of internal libavcodec pixel/sample format.
+     * - encoding: set by user.
+     * - decoding: set by libavcodec.
+     */
+    int bits_per_raw_sample;
 
 #if FF_API_LOWRES
-  /**
-   * low resolution decoding, 1-> 1/2 size, 2->1/4 size
-   * - encoding: unused
-   * - decoding: Set by user.
-   * Code outside libavcodec should access this field using:
-   * av_codec_{get,set}_lowres(avctx)
-   */
-  int lowres;
+    /**
+     * low resolution decoding, 1-> 1/2 size, 2->1/4 size
+     * - encoding: unused
+     * - decoding: Set by user.
+     * Code outside libavcodec should access this field using:
+     * av_codec_{get,set}_lowres(avctx)
+     */
+     int lowres;
 #endif
 
 #if FF_API_CODED_FRAME
-  /**
-   * the picture in the bitstream
-   * - encoding: Set by libavcodec.
-   * - decoding: unused
-   *
-   * @deprecated use the quality factor packet side data instead
-   */
-  attribute_deprecated AVFrame *coded_frame;
+    /**
+     * the picture in the bitstream
+     * - encoding: Set by libavcodec.
+     * - decoding: unused
+     *
+     * @deprecated use the quality factor packet side data instead
+     */
+    attribute_deprecated AVFrame *coded_frame;
 #endif
 
-  /**
-   * thread count
-   * is used to decide how many independent tasks should be passed to execute()
-   * - encoding: Set by user.
-   * - decoding: Set by user.
-   */
-  int thread_count;
-
-  /**
-   * Which multithreading methods to use.
-   * Use of FF_THREAD_FRAME will increase decoding delay by one frame per
-   * thread, so clients which cannot provide future frames should not use it.
-   *
-   * - encoding: Set by user, otherwise the default is used.
-   * - decoding: Set by user, otherwise the default is used.
-   */
-  int thread_type;
-#define FF_THREAD_FRAME 1  ///< Decode more than one frame at once
-#define FF_THREAD_SLICE \
-  2  ///< Decode more than one part of a single frame at once
-
-  /**
-   * Which multithreading methods are in use by the codec.
-   * - encoding: Set by libavcodec.
-   * - decoding: Set by libavcodec.
-   */
-  int active_thread_type;
-
-  /**
-   * Set by the client if its custom get_buffer() callback can be called
-   * synchronously from another thread, which allows faster multithreaded
-   * decoding. draw_horiz_band() will be called from other threads regardless of
-   * this setting. Ignored if the default get_buffer() is used.
-   * - encoding: Set by user.
-   * - decoding: Set by user.
-   */
-  int thread_safe_callbacks;
-
-  /**
-   * The codec may call this to execute several independent things.
-   * It will return only after finishing all tasks.
-   * The user may replace this with some multithreaded implementation,
-   * the default implementation will execute the parts serially.
-   * @param count the number of things to execute
-   * - encoding: Set by libavcodec, user can override.
-   * - decoding: Set by libavcodec, user can override.
-   */
-  int (*execute)(struct AVCodecContext *c,
-                 int (*func)(struct AVCodecContext *c2, void *arg), void *arg2,
-                 int *ret, int count, int size);
-
-  /**
-   * The codec may call this to execute several independent things.
-   * It will return only after finishing all tasks.
-   * The user may replace this with some multithreaded implementation,
-   * the default implementation will execute the parts serially.
-   * Also see avcodec_thread_init and e.g. the --enable-pthread configure
-   * option.
-   * @param c context passed also to func
-   * @param count the number of things to execute
-   * @param arg2 argument passed unchanged to func
-   * @param ret return values of executed functions, must have space for "count"
-   * values. May be NULL.
-   * @param func function that will be called count times, with jobnr from 0 to
-   * count-1. threadnr will be in the range 0 to c->thread_count-1 < MAX_THREADS
-   * and so that no two instances of func executing at the same time will have
-   * the same threadnr.
-   * @return always 0 currently, but code should handle a future improvement
-   * where when any call to func returns < 0 no further calls to func may be
-   * done and < 0 is returned.
-   * - encoding: Set by libavcodec, user can override.
-   * - decoding: Set by libavcodec, user can override.
-   */
-  int (*execute2)(struct AVCodecContext *c,
-                  int (*func)(struct AVCodecContext *c2, void *arg, int jobnr,
-                              int threadnr),
-                  void *arg2, int *ret, int count);
-
-  /**
-   * noise vs. sse weight for the nsse comparison function
-   * - encoding: Set by user.
-   * - decoding: unused
-   */
-  int nsse_weight;
-
-  /**
-   * profile
-   * - encoding: Set by user.
-   * - decoding: Set by libavcodec.
-   */
-  int profile;
+    /**
+     * thread count
+     * is used to decide how many independent tasks should be passed to execute()
+     * - encoding: Set by user.
+     * - decoding: Set by user.
+     */
+    int thread_count;
+
+    /**
+     * Which multithreading methods to use.
+     * Use of FF_THREAD_FRAME will increase decoding delay by one frame per thread,
+     * so clients which cannot provide future frames should not use it.
+     *
+     * - encoding: Set by user, otherwise the default is used.
+     * - decoding: Set by user, otherwise the default is used.
+     */
+    int thread_type;
+#define FF_THREAD_FRAME   1 ///< Decode more than one frame at once
+#define FF_THREAD_SLICE   2 ///< Decode more than one part of a single frame at once
+
+    /**
+     * Which multithreading methods are in use by the codec.
+     * - encoding: Set by libavcodec.
+     * - decoding: Set by libavcodec.
+     */
+    int active_thread_type;
+
+    /**
+     * Set by the client if its custom get_buffer() callback can be called
+     * synchronously from another thread, which allows faster multithreaded decoding.
+     * draw_horiz_band() will be called from other threads regardless of this setting.
+     * Ignored if the default get_buffer() is used.
+     * - encoding: Set by user.
+     * - decoding: Set by user.
+     */
+    int thread_safe_callbacks;
+
+    /**
+     * The codec may call this to execute several independent things.
+     * It will return only after finishing all tasks.
+     * The user may replace this with some multithreaded implementation,
+     * the default implementation will execute the parts serially.
+     * @param count the number of things to execute
+     * - encoding: Set by libavcodec, user can override.
+     * - decoding: Set by libavcodec, user can override.
+     */
+    int (*execute)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg), void *arg2, int *ret, int count, int size);
+
+    /**
+     * The codec may call this to execute several independent things.
+     * It will return only after finishing all tasks.
+     * The user may replace this with some multithreaded implementation,
+     * the default implementation will execute the parts serially.
+     * Also see avcodec_thread_init and e.g. the --enable-pthread configure option.
+     * @param c context passed also to func
+     * @param count the number of things to execute
+     * @param arg2 argument passed unchanged to func
+     * @param ret return values of executed functions, must have space for "count" values. May be NULL.
+     * @param func function that will be called count times, with jobnr from 0 to count-1.
+     *             threadnr will be in the range 0 to c->thread_count-1 < MAX_THREADS and so that no
+     *             two instances of func executing at the same time will have the same threadnr.
+     * @return always 0 currently, but code should handle a future improvement where when any call to func
+     *         returns < 0 no further calls to func may be done and < 0 is returned.
+     * - encoding: Set by libavcodec, user can override.
+     * - decoding: Set by libavcodec, user can override.
+     */
+    int (*execute2)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg, int jobnr, int threadnr), void *arg2, int *ret, int count);
+
+    /**
+     * noise vs. sse weight for the nsse comparison function
+     * - encoding: Set by user.
+     * - decoding: unused
+     */
+     int nsse_weight;
+
+    /**
+     * profile
+     * - encoding: Set by user.
+     * - decoding: Set by libavcodec.
+     */
+     int profile;
 #define FF_PROFILE_UNKNOWN -99
 #define FF_PROFILE_RESERVED -100
 
 #define FF_PROFILE_AAC_MAIN 0
-#define FF_PROFILE_AAC_LOW 1
-#define FF_PROFILE_AAC_SSR 2
-#define FF_PROFILE_AAC_LTP 3
-#define FF_PROFILE_AAC_HE 4
+#define FF_PROFILE_AAC_LOW  1
+#define FF_PROFILE_AAC_SSR  2
+#define FF_PROFILE_AAC_LTP  3
+#define FF_PROFILE_AAC_HE   4
 #define FF_PROFILE_AAC_HE_V2 28
-#define FF_PROFILE_AAC_LD 22
-#define FF_PROFILE_AAC_ELD 38
+#define FF_PROFILE_AAC_LD   22
+#define FF_PROFILE_AAC_ELD  38
 #define FF_PROFILE_MPEG2_AAC_LOW 128
-#define FF_PROFILE_MPEG2_AAC_HE 131
-
-#define FF_PROFILE_DTS 20
-#define FF_PROFILE_DTS_ES 30
-#define FF_PROFILE_DTS_96_24 40
-#define FF_PROFILE_DTS_HD_HRA 50
-#define FF_PROFILE_DTS_HD_MA 60
+#define FF_PROFILE_MPEG2_AAC_HE  131
+
+#define FF_PROFILE_DTS         20
+#define FF_PROFILE_DTS_ES      30
+#define FF_PROFILE_DTS_96_24   40
+#define FF_PROFILE_DTS_HD_HRA  50
+#define FF_PROFILE_DTS_HD_MA   60
 #define FF_PROFILE_DTS_EXPRESS 70
 
-#define FF_PROFILE_MPEG2_422 0
-#define FF_PROFILE_MPEG2_HIGH 1
-#define FF_PROFILE_MPEG2_SS 2
-#define FF_PROFILE_MPEG2_SNR_SCALABLE 3
-#define FF_PROFILE_MPEG2_MAIN 4
+#define FF_PROFILE_MPEG2_422    0
+#define FF_PROFILE_MPEG2_HIGH   1
+#define FF_PROFILE_MPEG2_SS     2
+#define FF_PROFILE_MPEG2_SNR_SCALABLE  3
+#define FF_PROFILE_MPEG2_MAIN   4
 #define FF_PROFILE_MPEG2_SIMPLE 5
 
-#define FF_PROFILE_H264_CONSTRAINED (1 << 9)  // 8+1; constraint_set1_flag
-#define FF_PROFILE_H264_INTRA (1 << 11)       // 8+3; constraint_set3_flag
-
-#define FF_PROFILE_H264_BASELINE 66
-#define FF_PROFILE_H264_CONSTRAINED_BASELINE (66 | FF_PROFILE_H264_CONSTRAINED)
-#define FF_PROFILE_H264_MAIN 77
-#define FF_PROFILE_H264_EXTENDED 88
-#define FF_PROFILE_H264_HIGH 100
-#define FF_PROFILE_H264_HIGH_10 110
-#define FF_PROFILE_H264_HIGH_10_INTRA (110 | FF_PROFILE_H264_INTRA)
-#define FF_PROFILE_H264_HIGH_422 122
-#define FF_PROFILE_H264_HIGH_422_INTRA (122 | FF_PROFILE_H264_INTRA)
-#define FF_PROFILE_H264_HIGH_444 144
-#define FF_PROFILE_H264_HIGH_444_PREDICTIVE 244
-#define FF_PROFILE_H264_HIGH_444_INTRA (244 | FF_PROFILE_H264_INTRA)
-#define FF_PROFILE_H264_CAVLC_444 44
-
-#define FF_PROFILE_VC1_SIMPLE 0
-#define FF_PROFILE_VC1_MAIN 1
-#define FF_PROFILE_VC1_COMPLEX 2
+#define FF_PROFILE_H264_CONSTRAINED  (1<<9)  // 8+1; constraint_set1_flag
+#define FF_PROFILE_H264_INTRA        (1<<11) // 8+3; constraint_set3_flag
+
+#define FF_PROFILE_H264_BASELINE             66
+#define FF_PROFILE_H264_CONSTRAINED_BASELINE (66|FF_PROFILE_H264_CONSTRAINED)
+#define FF_PROFILE_H264_MAIN                 77
+#define FF_PROFILE_H264_EXTENDED             88
+#define FF_PROFILE_H264_HIGH                 100
+#define FF_PROFILE_H264_HIGH_10              110
+#define FF_PROFILE_H264_HIGH_10_INTRA        (110|FF_PROFILE_H264_INTRA)
+#define FF_PROFILE_H264_HIGH_422             122
+#define FF_PROFILE_H264_HIGH_422_INTRA       (122|FF_PROFILE_H264_INTRA)
+#define FF_PROFILE_H264_HIGH_444             144
+#define FF_PROFILE_H264_HIGH_444_PREDICTIVE  244
+#define FF_PROFILE_H264_HIGH_444_INTRA       (244|FF_PROFILE_H264_INTRA)
+#define FF_PROFILE_H264_CAVLC_444            44
+
+#define FF_PROFILE_VC1_SIMPLE   0
+#define FF_PROFILE_VC1_MAIN     1
+#define FF_PROFILE_VC1_COMPLEX  2
 #define FF_PROFILE_VC1_ADVANCED 3
 
-#define FF_PROFILE_MPEG4_SIMPLE 0
-#define FF_PROFILE_MPEG4_SIMPLE_SCALABLE 1
-#define FF_PROFILE_MPEG4_CORE 2
-#define FF_PROFILE_MPEG4_MAIN 3
-#define FF_PROFILE_MPEG4_N_BIT 4
-#define FF_PROFILE_MPEG4_SCALABLE_TEXTURE 5
-#define FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION 6
-#define FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE 7
-#define FF_PROFILE_MPEG4_HYBRID 8
-#define FF_PROFILE_MPEG4_ADVANCED_REAL_TIME 9
-#define FF_PROFILE_MPEG4_CORE_SCALABLE 10
-#define FF_PROFILE_MPEG4_ADVANCED_CODING 11
-#define FF_PROFILE_MPEG4_ADVANCED_CORE 12
+#define FF_PROFILE_MPEG4_SIMPLE                     0
+#define FF_PROFILE_MPEG4_SIMPLE_SCALABLE            1
+#define FF_PROFILE_MPEG4_CORE                       2
+#define FF_PROFILE_MPEG4_MAIN                       3
+#define FF_PROFILE_MPEG4_N_BIT                      4
+#define FF_PROFILE_MPEG4_SCALABLE_TEXTURE           5
+#define FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION      6
+#define FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE     7
+#define FF_PROFILE_MPEG4_HYBRID                     8
+#define FF_PROFILE_MPEG4_ADVANCED_REAL_TIME         9
+#define FF_PROFILE_MPEG4_CORE_SCALABLE             10
+#define FF_PROFILE_MPEG4_ADVANCED_CODING           11
+#define FF_PROFILE_MPEG4_ADVANCED_CORE             12
 #define FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE 13
-#define FF_PROFILE_MPEG4_SIMPLE_STUDIO 14
-#define FF_PROFILE_MPEG4_ADVANCED_SIMPLE 15
-
-#define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0 0
-#define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1 1
-#define FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION 2
-#define FF_PROFILE_JPEG2000_DCINEMA_2K 3
-#define FF_PROFILE_JPEG2000_DCINEMA_4K 4
-
-#define FF_PROFILE_VP9_0 0
-#define FF_PROFILE_VP9_1 1
-#define FF_PROFILE_VP9_2 2
-#define FF_PROFILE_VP9_3 3
-
-#define FF_PROFILE_HEVC_MAIN 1
-#define FF_PROFILE_HEVC_MAIN_10 2
-#define FF_PROFILE_HEVC_MAIN_STILL_PICTURE 3
-#define FF_PROFILE_HEVC_REXT 4
-
-  /**
-   * level
-   * - encoding: Set by user.
-   * - decoding: Set by libavcodec.
-   */
-  int level;
+#define FF_PROFILE_MPEG4_SIMPLE_STUDIO             14
+#define FF_PROFILE_MPEG4_ADVANCED_SIMPLE           15
+
+#define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0   0
+#define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1   1
+#define FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION  2
+#define FF_PROFILE_JPEG2000_DCINEMA_2K              3
+#define FF_PROFILE_JPEG2000_DCINEMA_4K              4
+
+#define FF_PROFILE_VP9_0                            0
+#define FF_PROFILE_VP9_1                            1
+#define FF_PROFILE_VP9_2                            2
+#define FF_PROFILE_VP9_3                            3
+
+#define FF_PROFILE_HEVC_MAIN                        1
+#define FF_PROFILE_HEVC_MAIN_10                     2
+#define FF_PROFILE_HEVC_MAIN_STILL_PICTURE          3
+#define FF_PROFILE_HEVC_REXT                        4
+
+    /**
+     * level
+     * - encoding: Set by user.
+     * - decoding: Set by libavcodec.
+     */
+     int level;
 #define FF_LEVEL_UNKNOWN -99
 
-  /**
-   * Skip loop filtering for selected frames.
-   * - encoding: unused
-   * - decoding: Set by user.
-   */
-  enum AVDiscard skip_loop_filter;
-
-  /**
-   * Skip IDCT/dequantization for selected frames.
-   * - encoding: unused
-   * - decoding: Set by user.
-   */
-  enum AVDiscard skip_idct;
-
-  /**
-   * Skip decoding for selected frames.
-   * - encoding: unused
-   * - decoding: Set by user.
-   */
-  enum AVDiscard skip_frame;
-
-  /**
-   * Header containing style information for text subtitles.
-   * For SUBTITLE_ASS subtitle type, it should contain the whole ASS
-   * [Script Info] and [V4+ Styles] section, plus the [Events] line and
-   * the Format line following. It shouldn't include any Dialogue line.
-   * - encoding: Set/allocated/freed by user (before avcodec_open2())
-   * - decoding: Set/allocated/freed by libavcodec (by avcodec_open2())
-   */
-  uint8_t *subtitle_header;
-  int subtitle_header_size;
+    /**
+     * Skip loop filtering for selected frames.
+     * - encoding: unused
+     * - decoding: Set by user.
+     */
+    enum AVDiscard skip_loop_filter;
+
+    /**
+     * Skip IDCT/dequantization for selected frames.
+     * - encoding: unused
+     * - decoding: Set by user.
+     */
+    enum AVDiscard skip_idct;
+
+    /**
+     * Skip decoding for selected frames.
+     * - encoding: unused
+     * - decoding: Set by user.
+     */
+    enum AVDiscard skip_frame;
+
+    /**
+     * Header containing style information for text subtitles.
+     * For SUBTITLE_ASS subtitle type, it should contain the whole ASS
+     * [Script Info] and [V4+ Styles] section, plus the [Events] line and
+     * the Format line following. It shouldn't include any Dialogue line.
+     * - encoding: Set/allocated/freed by user (before avcodec_open2())
+     * - decoding: Set/allocated/freed by libavcodec (by avcodec_open2())
+     */
+    uint8_t *subtitle_header;
+    int subtitle_header_size;
 
 #if FF_API_ERROR_RATE
-  /**
-   * @deprecated use the 'error_rate' private AVOption of the mpegvideo
-   * encoders
-   */
-  attribute_deprecated int error_rate;
+    /**
+     * @deprecated use the 'error_rate' private AVOption of the mpegvideo
+     * encoders
+     */
+    attribute_deprecated
+    int error_rate;
 #endif
 
 #if FF_API_VBV_DELAY
-  /**
-   * VBV delay coded in the last frame (in periods of a 27 MHz clock).
-   * Used for compliant TS muxing.
-   * - encoding: Set by libavcodec.
-   * - decoding: unused.
-   * @deprecated this value is now exported as a part of
-   * AV_PKT_DATA_CPB_PROPERTIES packet side data
-   */
-  attribute_deprecated uint64_t vbv_delay;
+    /**
+     * VBV delay coded in the last frame (in periods of a 27 MHz clock).
+     * Used for compliant TS muxing.
+     * - encoding: Set by libavcodec.
+     * - decoding: unused.
+     * @deprecated this value is now exported as a part of
+     * AV_PKT_DATA_CPB_PROPERTIES packet side data
+     */
+    attribute_deprecated
+    uint64_t vbv_delay;
 #endif
 
 #if FF_API_SIDEDATA_ONLY_PKT
-  /**
-   * Encoding only and set by default. Allow encoders to output packets
-   * that do not contain any encoded data, only side data.
-   *
-   * Some encoders need to output such packets, e.g. to update some stream
-   * parameters at the end of encoding.
-   *
-   * @deprecated this field disables the default behaviour and
-   *             it is kept only for compatibility.
-   */
-  attribute_deprecated int side_data_only_packets;
+    /**
+     * Encoding only and set by default. Allow encoders to output packets
+     * that do not contain any encoded data, only side data.
+     *
+     * Some encoders need to output such packets, e.g. to update some stream
+     * parameters at the end of encoding.
+     *
+     * @deprecated this field disables the default behaviour and
+     *             it is kept only for compatibility.
+     */
+    attribute_deprecated
+    int side_data_only_packets;
 #endif
 
-  /**
-   * Audio only. The number of "priming" samples (padding) inserted by the
-   * encoder at the beginning of the audio. I.e. this number of leading
-   * decoded samples must be discarded by the caller to get the original audio
-   * without leading padding.
-   *
-   * - decoding: unused
-   * - encoding: Set by libavcodec. The timestamps on the output packets are
-   *             adjusted by the encoder so that they always refer to the
-   *             first sample of the data actually contained in the packet,
-   *             including any added padding.  E.g. if the timebase is
-   *             1/samplerate and the timestamp of the first input sample is
-   *             0, the timestamp of the first output packet will be
-   *             -initial_padding.
-   */
-  int initial_padding;
-
-  /**
-   * - decoding: For codecs that store a framerate value in the compressed
-   *             bitstream, the decoder may export it here. { 0, 1} when
-   *             unknown.
-   * - encoding: unused
-   */
-  AVRational framerate;
-
-  /**
-   * Nominal unaccelerated pixel format, see AV_PIX_FMT_xxx.
-   * - encoding: unused.
-   * - decoding: Set by libavcodec before calling get_format()
-   */
-  enum AVPixelFormat sw_pix_fmt;
-
-  /**
-   * Timebase in which pkt_dts/pts and AVPacket.dts/pts are.
-   * Code outside libavcodec should access this field using:
-   * av_codec_{get,set}_pkt_timebase(avctx)
-   * - encoding unused.
-   * - decoding set by user.
-   */
-  AVRational pkt_timebase;
-
-  /**
-   * AVCodecDescriptor
-   * Code outside libavcodec should access this field using:
-   * av_codec_{get,set}_codec_descriptor(avctx)
-   * - encoding: unused.
-   * - decoding: set by libavcodec.
-   */
-  const AVCodecDescriptor *codec_descriptor;
+    /**
+     * Audio only. The number of "priming" samples (padding) inserted by the
+     * encoder at the beginning of the audio. I.e. this number of leading
+     * decoded samples must be discarded by the caller to get the original audio
+     * without leading padding.
+     *
+     * - decoding: unused
+     * - encoding: Set by libavcodec. The timestamps on the output packets are
+     *             adjusted by the encoder so that they always refer to the
+     *             first sample of the data actually contained in the packet,
+     *             including any added padding.  E.g. if the timebase is
+     *             1/samplerate and the timestamp of the first input sample is
+     *             0, the timestamp of the first output packet will be
+     *             -initial_padding.
+     */
+    int initial_padding;
+
+    /**
+     * - decoding: For codecs that store a framerate value in the compressed
+     *             bitstream, the decoder may export it here. { 0, 1} when
+     *             unknown.
+     * - encoding: unused
+     */
+    AVRational framerate;
+
+    /**
+     * Nominal unaccelerated pixel format, see AV_PIX_FMT_xxx.
+     * - encoding: unused.
+     * - decoding: Set by libavcodec before calling get_format()
+     */
+    enum AVPixelFormat sw_pix_fmt;
+
+    /**
+     * Timebase in which pkt_dts/pts and AVPacket.dts/pts are.
+     * Code outside libavcodec should access this field using:
+     * av_codec_{get,set}_pkt_timebase(avctx)
+     * - encoding unused.
+     * - decoding set by user.
+     */
+    AVRational pkt_timebase;
+
+    /**
+     * AVCodecDescriptor
+     * Code outside libavcodec should access this field using:
+     * av_codec_{get,set}_codec_descriptor(avctx)
+     * - encoding: unused.
+     * - decoding: set by libavcodec.
+     */
+    const AVCodecDescriptor *codec_descriptor;
 
 #if !FF_API_LOWRES
-  /**
-   * low resolution decoding, 1-> 1/2 size, 2->1/4 size
-   * - encoding: unused
-   * - decoding: Set by user.
-   * Code outside libavcodec should access this field using:
-   * av_codec_{get,set}_lowres(avctx)
-   */
-  int lowres;
+    /**
+     * low resolution decoding, 1-> 1/2 size, 2->1/4 size
+     * - encoding: unused
+     * - decoding: Set by user.
+     * Code outside libavcodec should access this field using:
+     * av_codec_{get,set}_lowres(avctx)
+     */
+     int lowres;
 #endif
 
-  /**
-   * Current statistics for PTS correction.
-   * - decoding: maintained and used by libavcodec, not intended to be used by
-   * user apps
-   * - encoding: unused
-   */
-  int64_t
-      pts_correction_num_faulty_pts;  /// Number of incorrect PTS values so far
-  int64_t
-      pts_correction_num_faulty_dts;  /// Number of incorrect DTS values so far
-  int64_t pts_correction_last_pts;    /// PTS of the last frame
-  int64_t pts_correction_last_dts;    /// DTS of the last frame
-
-  /**
-   * Character encoding of the input subtitles file.
-   * - decoding: set by user
-   * - encoding: unused
-   */
-  char *sub_charenc;
-
-  /**
-   * Subtitles character encoding mode. Formats or codecs might be adjusting
-   * this setting (if they are doing the conversion themselves for instance).
-   * - decoding: set by libavcodec
-   * - encoding: unused
-   */
-  int sub_charenc_mode;
-#define FF_SUB_CHARENC_MODE_DO_NOTHING \
-  -1  ///< do nothing (demuxer outputs a stream supposed to be already in UTF-8,
-      ///< or the codec is bitmap for instance)
-#define FF_SUB_CHARENC_MODE_AUTOMATIC \
-  0  ///< libavcodec will select the mode itself
-#define FF_SUB_CHARENC_MODE_PRE_DECODER \
-  1  ///< the AVPacket data needs to be recoded to UTF-8 before being fed to the
-     ///< decoder, requires iconv
-
-  /**
-   * Skip processing alpha if supported by codec.
-   * Note that if the format uses pre-multiplied alpha (common with VP6,
-   * and recommended due to better video quality/compression)
-   * the image will look as if alpha-blended onto a black background.
-   * However for formats that do not use pre-multiplied alpha
-   * there might be serious artefacts (though e.g. libswscale currently
-   * assumes pre-multiplied alpha anyway).
-   * Code outside libavcodec should access this field using AVOptions
-   *
-   * - decoding: set by user
-   * - encoding: unused
-   */
-  int skip_alpha;
-
-  /**
-   * Number of samples to skip after a discontinuity
-   * - decoding: unused
-   * - encoding: set by libavcodec
-   */
-  int seek_preroll;
+    /**
+     * Current statistics for PTS correction.
+     * - decoding: maintained and used by libavcodec, not intended to be used by user apps
+     * - encoding: unused
+     */
+    int64_t pts_correction_num_faulty_pts; /// Number of incorrect PTS values so far
+    int64_t pts_correction_num_faulty_dts; /// Number of incorrect DTS values so far
+    int64_t pts_correction_last_pts;       /// PTS of the last frame
+    int64_t pts_correction_last_dts;       /// DTS of the last frame
+
+    /**
+     * Character encoding of the input subtitles file.
+     * - decoding: set by user
+     * - encoding: unused
+     */
+    char *sub_charenc;
+
+    /**
+     * Subtitles character encoding mode. Formats or codecs might be adjusting
+     * this setting (if they are doing the conversion themselves for instance).
+     * - decoding: set by libavcodec
+     * - encoding: unused
+     */
+    int sub_charenc_mode;
+#define FF_SUB_CHARENC_MODE_DO_NOTHING  -1  ///< do nothing (demuxer outputs a stream supposed to be already in UTF-8, or the codec is bitmap for instance)
+#define FF_SUB_CHARENC_MODE_AUTOMATIC    0  ///< libavcodec will select the mode itself
+#define FF_SUB_CHARENC_MODE_PRE_DECODER  1  ///< the AVPacket data needs to be recoded to UTF-8 before being fed to the decoder, requires iconv
+
+    /**
+     * Skip processing alpha if supported by codec.
+     * Note that if the format uses pre-multiplied alpha (common with VP6,
+     * and recommended due to better video quality/compression)
+     * the image will look as if alpha-blended onto a black background.
+     * However for formats that do not use pre-multiplied alpha
+     * there might be serious artefacts (though e.g. libswscale currently
+     * assumes pre-multiplied alpha anyway).
+     * Code outside libavcodec should access this field using AVOptions
+     *
+     * - decoding: set by user
+     * - encoding: unused
+     */
+    int skip_alpha;
+
+    /**
+     * Number of samples to skip after a discontinuity
+     * - decoding: unused
+     * - encoding: set by libavcodec
+     */
+    int seek_preroll;
 
 #if !FF_API_DEBUG_MV
-  /**
-   * debug motion vectors
-   * Code outside libavcodec should access this field using AVOptions
-   * - encoding: Set by user.
-   * - decoding: Set by user.
-   */
-  int debug_mv;
-#define FF_DEBUG_VIS_MV_P_FOR \
-  0x00000001  // visualize forward predicted MVs of P frames
-#define FF_DEBUG_VIS_MV_B_FOR \
-  0x00000002  // visualize forward predicted MVs of B frames
-#define FF_DEBUG_VIS_MV_B_BACK \
-  0x00000004  // visualize backward predicted MVs of B frames
+    /**
+     * debug motion vectors
+     * Code outside libavcodec should access this field using AVOptions
+     * - encoding: Set by user.
+     * - decoding: Set by user.
+     */
+    int debug_mv;
+#define FF_DEBUG_VIS_MV_P_FOR  0x00000001 //visualize forward predicted MVs of P frames
+#define FF_DEBUG_VIS_MV_B_FOR  0x00000002 //visualize forward predicted MVs of B frames
+#define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames
 #endif
 
-  /**
-   * custom intra quantization matrix
-   * Code outside libavcodec should access this field using
-   * av_codec_g/set_chroma_intra_matrix()
-   * - encoding: Set by user, can be NULL.
-   * - decoding: unused.
-   */
-  uint16_t *chroma_intra_matrix;
-
-  /**
-   * dump format separator.
-   * can be ", " or "\n      " or anything else
-   * Code outside libavcodec should access this field using AVOptions
-   * (NO direct access).
-   * - encoding: Set by user.
-   * - decoding: Set by user.
-   */
-  uint8_t *dump_separator;
-
-  /**
-   * ',' separated list of allowed decoders.
-   * If NULL then all are allowed
-   * - encoding: unused
-   * - decoding: set by user through AVOPtions (NO direct access)
-   */
-  char *codec_whitelist;
-
-  /*
-   * Properties of the stream that gets decoded
-   * To be accessed through av_codec_get_properties() (NO direct access)
-   * - encoding: unused
-   * - decoding: set by libavcodec
-   */
-  unsigned properties;
-#define FF_CODEC_PROPERTY_LOSSLESS 0x00000001
+    /**
+     * custom intra quantization matrix
+     * Code outside libavcodec should access this field using av_codec_g/set_chroma_intra_matrix()
+     * - encoding: Set by user, can be NULL.
+     * - decoding: unused.
+     */
+    uint16_t *chroma_intra_matrix;
+
+    /**
+     * dump format separator.
+     * can be ", " or "\n      " or anything else
+     * Code outside libavcodec should access this field using AVOptions
+     * (NO direct access).
+     * - encoding: Set by user.
+     * - decoding: Set by user.
+     */
+    uint8_t *dump_separator;
+
+    /**
+     * ',' separated list of allowed decoders.
+     * If NULL then all are allowed
+     * - encoding: unused
+     * - decoding: set by user through AVOPtions (NO direct access)
+     */
+    char *codec_whitelist;
+
+    /*
+     * Properties of the stream that gets decoded
+     * To be accessed through av_codec_get_properties() (NO direct access)
+     * - encoding: unused
+     * - decoding: set by libavcodec
+     */
+    unsigned properties;
+#define FF_CODEC_PROPERTY_LOSSLESS        0x00000001
 #define FF_CODEC_PROPERTY_CLOSED_CAPTIONS 0x00000002
 
-  /**
-   * Additional data associated with the entire coded stream.
-   *
-   * - decoding: unused
-   * - encoding: may be set by libavcodec after avcodec_open2().
-   */
-  AVPacketSideData *coded_side_data;
-  int nb_coded_side_data;
+    /**
+     * Additional data associated with the entire coded stream.
+     *
+     * - decoding: unused
+     * - encoding: may be set by libavcodec after avcodec_open2().
+     */
+    AVPacketSideData *coded_side_data;
+    int            nb_coded_side_data;
 
 } AVCodecContext;
 
-AVRational av_codec_get_pkt_timebase(const AVCodecContext *avctx);
-void av_codec_set_pkt_timebase(AVCodecContext *avctx, AVRational val);
-
-const AVCodecDescriptor *av_codec_get_codec_descriptor(
-    const AVCodecContext *avctx);
-void av_codec_set_codec_descriptor(AVCodecContext *avctx,
-                                   const AVCodecDescriptor *desc);
+AVRational av_codec_get_pkt_timebase         (const AVCodecContext *avctx);
+void       av_codec_set_pkt_timebase         (AVCodecContext *avctx, AVRational val);
+
+const AVCodecDescriptor *av_codec_get_codec_descriptor(const AVCodecContext *avctx);
+void                     av_codec_set_codec_descriptor(AVCodecContext *avctx, const AVCodecDescriptor *desc);
 
 unsigned av_codec_get_codec_properties(const AVCodecContext *avctx);
 
-int av_codec_get_lowres(const AVCodecContext *avctx);
+int  av_codec_get_lowres(const AVCodecContext *avctx);
 void av_codec_set_lowres(AVCodecContext *avctx, int val);
 
-int av_codec_get_seek_preroll(const AVCodecContext *avctx);
+int  av_codec_get_seek_preroll(const AVCodecContext *avctx);
 void av_codec_set_seek_preroll(AVCodecContext *avctx, int val);
 
 uint16_t *av_codec_get_chroma_intra_matrix(const AVCodecContext *avctx);
 void av_codec_set_chroma_intra_matrix(AVCodecContext *avctx, uint16_t *val);
 
 /**
  * AVProfile.
  */
 typedef struct AVProfile {
-  int profile;
-  const char *name;  ///< short name for the profile
+    int profile;
+    const char *name; ///< short name for the profile
 } AVProfile;
 
 typedef struct AVCodecDefault AVCodecDefault;
 
 struct AVSubtitle;
 
 /**
  * AVCodec.
  */
 typedef struct AVCodec {
-  /**
-   * Name of the codec implementation.
-   * The name is globally unique among encoders and among decoders (but an
-   * encoder and a decoder can share the same name).
-   * This is the primary way to find a codec from the user perspective.
-   */
-  const char *name;
-  /**
-   * Descriptive name for the codec, meant to be more human readable than name.
-   * You should use the NULL_IF_CONFIG_SMALL() macro to define it.
-   */
-  const char *long_name;
-  enum AVMediaType type;
-  enum AVCodecID id;
-  /**
-   * Codec capabilities.
-   * see AV_CODEC_CAP_*
-   */
-  int capabilities;
-  const AVRational
-      *supported_framerates;  ///< array of supported framerates, or NULL if
-                              ///< any, array is terminated by {0,0}
-  const enum AVPixelFormat
-      *pix_fmts;  ///< array of supported pixel formats, or NULL if unknown,
-                  ///< array is terminated by -1
-  const int
-      *supported_samplerates;  ///< array of supported audio samplerates, or
-                               ///< NULL if unknown, array is terminated by 0
-  const enum AVSampleFormat
-      *sample_fmts;  ///< array of supported sample formats, or NULL if unknown,
-                     ///< array is terminated by -1
-  const uint64_t
-      *channel_layouts;  ///< array of support channel layouts, or NULL if
-                         ///< unknown. array is terminated by 0
-  uint8_t max_lowres;    ///< maximum value for lowres supported by the decoder,
-                         ///< no direct access, use av_codec_get_max_lowres()
-  const AVClass *priv_class;  ///< AVClass for the private context
-  const AVProfile
-      *profiles;  ///< array of recognized profiles, or NULL if unknown, array
-                  ///< is terminated by {FF_PROFILE_UNKNOWN}
-
-  /*****************************************************************
-   * No fields below this line are part of the public API. They
-   * may not be used outside of libavcodec and can be changed and
-   * removed at will.
-   * New public fields should be added right above.
-   *****************************************************************
-   */
-  int priv_data_size;
-  struct AVCodec *next;
-  /**
-   * @name Frame-level threading support functions
-   * @{
-   */
-  /**
-   * If defined, called on thread contexts when they are created.
-   * If the codec allocates writable tables in init(), re-allocate them here.
-   * priv_data will be set to a copy of the original.
-   */
-  int (*init_thread_copy)(AVCodecContext *);
-  /**
-   * Copy necessary context variables from a previous thread context to the
-   * current one. If not defined, the next thread will start automatically;
-   * otherwise, the codec must call ff_thread_finish_setup().
-   *
-   * dst and src will (rarely) point to the same context, in which case memcpy
-   * should be skipped.
-   */
-  int (*update_thread_context)(AVCodecContext *dst, const AVCodecContext *src);
-  /** @} */
-
-  /**
-   * Private codec-specific defaults.
-   */
-  const AVCodecDefault *defaults;
-
-  /**
-   * Initialize codec static data, called from avcodec_register().
-   */
-  void (*init_static_data)(struct AVCodec *codec);
-
-  int (*init)(AVCodecContext *);
-  int (*encode_sub)(AVCodecContext *, uint8_t *buf, int buf_size,
-                    const struct AVSubtitle *sub);
-  /**
-   * Encode data to an AVPacket.
-   *
-   * @param      avctx          codec context
-   * @param      avpkt          output AVPacket (may contain a user-provided
-   * buffer)
-   * @param[in]  frame          AVFrame containing the raw data to be encoded
-   * @param[out] got_packet_ptr encoder sets to 0 or 1 to indicate that a
-   *                            non-empty packet was returned in avpkt.
-   * @return 0 on success, negative error code on failure
-   */
-  int (*encode2)(AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame,
-                 int *got_packet_ptr);
-  int (*decode)(AVCodecContext *, void *outdata, int *outdata_size,
-                AVPacket *avpkt);
-  int (*close)(AVCodecContext *);
-  /**
-   * Flush buffers.
-   * Will be called when seeking
-   */
-  void (*flush)(AVCodecContext *);
-  /**
-   * Internal codec capabilities.
-   * See FF_CODEC_CAP_* in internal.h
-   */
-  int caps_internal;
+    /**
+     * Name of the codec implementation.
+     * The name is globally unique among encoders and among decoders (but an
+     * encoder and a decoder can share the same name).
+     * This is the primary way to find a codec from the user perspective.
+     */
+    const char *name;
+    /**
+     * Descriptive name for the codec, meant to be more human readable than name.
+     * You should use the NULL_IF_CONFIG_SMALL() macro to define it.
+     */
+    const char *long_name;
+    enum AVMediaType type;
+    enum AVCodecID id;
+    /**
+     * Codec capabilities.
+     * see AV_CODEC_CAP_*
+     */
+    int capabilities;
+    const AVRational *supported_framerates; ///< array of supported framerates, or NULL if any, array is terminated by {0,0}
+    const enum AVPixelFormat *pix_fmts;     ///< array of supported pixel formats, or NULL if unknown, array is terminated by -1
+    const int *supported_samplerates;       ///< array of supported audio samplerates, or NULL if unknown, array is terminated by 0
+    const enum AVSampleFormat *sample_fmts; ///< array of supported sample formats, or NULL if unknown, array is terminated by -1
+    const uint64_t *channel_layouts;         ///< array of support channel layouts, or NULL if unknown. array is terminated by 0
+    uint8_t max_lowres;                     ///< maximum value for lowres supported by the decoder, no direct access, use av_codec_get_max_lowres()
+    const AVClass *priv_class;              ///< AVClass for the private context
+    const AVProfile *profiles;              ///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN}
+
+    /*****************************************************************
+     * No fields below this line are part of the public API. They
+     * may not be used outside of libavcodec and can be changed and
+     * removed at will.
+     * New public fields should be added right above.
+     *****************************************************************
+     */
+    int priv_data_size;
+    struct AVCodec *next;
+    /**
+     * @name Frame-level threading support functions
+     * @{
+     */
+    /**
+     * If defined, called on thread contexts when they are created.
+     * If the codec allocates writable tables in init(), re-allocate them here.
+     * priv_data will be set to a copy of the original.
+     */
+    int (*init_thread_copy)(AVCodecContext *);
+    /**
+     * Copy necessary context variables from a previous thread context to the current one.
+     * If not defined, the next thread will start automatically; otherwise, the codec
+     * must call ff_thread_finish_setup().
+     *
+     * dst and src will (rarely) point to the same context, in which case memcpy should be skipped.
+     */
+    int (*update_thread_context)(AVCodecContext *dst, const AVCodecContext *src);
+    /** @} */
+
+    /**
+     * Private codec-specific defaults.
+     */
+    const AVCodecDefault *defaults;
+
+    /**
+     * Initialize codec static data, called from avcodec_register().
+     */
+    void (*init_static_data)(struct AVCodec *codec);
+
+    int (*init)(AVCodecContext *);
+    int (*encode_sub)(AVCodecContext *, uint8_t *buf, int buf_size,
+                      const struct AVSubtitle *sub);
+    /**
+     * Encode data to an AVPacket.
+     *
+     * @param      avctx          codec context
+     * @param      avpkt          output AVPacket (may contain a user-provided buffer)
+     * @param[in]  frame          AVFrame containing the raw data to be encoded
+     * @param[out] got_packet_ptr encoder sets to 0 or 1 to indicate that a
+     *                            non-empty packet was returned in avpkt.
+     * @return 0 on success, negative error code on failure
+     */
+    int (*encode2)(AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame,
+                   int *got_packet_ptr);
+    int (*decode)(AVCodecContext *, void *outdata, int *outdata_size, AVPacket *avpkt);
+    int (*close)(AVCodecContext *);
+    /**
+     * Flush buffers.
+     * Will be called when seeking
+     */
+    void (*flush)(AVCodecContext *);
+    /**
+     * Internal codec capabilities.
+     * See FF_CODEC_CAP_* in internal.h
+     */
+    int caps_internal;
 } AVCodec;
 
 int av_codec_get_max_lowres(const AVCodec *codec);
 
 struct MpegEncContext;
 
 /**
  * @defgroup lavc_hwaccel AVHWAccel
  * @{
  */
 typedef struct AVHWAccel {
-  /**
-   * Name of the hardware accelerated codec.
-   * The name is globally unique among encoders and among decoders (but an
-   * encoder and a decoder can share the same name).
-   */
-  const char *name;
-
-  /**
-   * Type of codec implemented by the hardware accelerator.
-   *
-   * See AVMEDIA_TYPE_xxx
-   */
-  enum AVMediaType type;
-
-  /**
-   * Codec implemented by the hardware accelerator.
-   *
-   * See AV_CODEC_ID_xxx
-   */
-  enum AVCodecID id;
-
-  /**
-   * Supported pixel format.
-   *
-   * Only hardware accelerated formats are supported here.
-   */
-  enum AVPixelFormat pix_fmt;
-
-  /**
-   * Hardware accelerated codec capabilities.
-   * see HWACCEL_CODEC_CAP_*
-   */
-  int capabilities;
-
-  /*****************************************************************
-   * No fields below this line are part of the public API. They
-   * may not be used outside of libavcodec and can be changed and
-   * removed at will.
-   * New public fields should be added right above.
-   *****************************************************************
-   */
-  struct AVHWAccel *next;
-
-  /**
-   * Allocate a custom buffer
-   */
-  int (*alloc_frame)(AVCodecContext *avctx, AVFrame *frame);
-
-  /**
-   * Called at the beginning of each frame or field picture.
-   *
-   * Meaningful frame information (codec specific) is guaranteed to
-   * be parsed at this point. This function is mandatory.
-   *
-   * Note that buf can be NULL along with buf_size set to 0.
-   * Otherwise, this means the whole frame is available at this point.
-   *
-   * @param avctx the codec context
-   * @param buf the frame data buffer base
-   * @param buf_size the size of the frame in bytes
-   * @return zero if successful, a negative value otherwise
-   */
-  int (*start_frame)(AVCodecContext *avctx, const uint8_t *buf,
-                     uint32_t buf_size);
-
-  /**
-   * Callback for each slice.
-   *
-   * Meaningful slice information (codec specific) is guaranteed to
-   * be parsed at this point. This function is mandatory.
-   * The only exception is XvMC, that works on MB level.
-   *
-   * @param avctx the codec context
-   * @param buf the slice data buffer base
-   * @param buf_size the size of the slice in bytes
-   * @return zero if successful, a negative value otherwise
-   */
-  int (*decode_slice)(AVCodecContext *avctx, const uint8_t *buf,
-                      uint32_t buf_size);
-
-  /**
-   * Called at the end of each frame or field picture.
-   *
-   * The whole picture is parsed at this point and can now be sent
-   * to the hardware accelerator. This function is mandatory.
-   *
-   * @param avctx the codec context
-   * @return zero if successful, a negative value otherwise
-   */
-  int (*end_frame)(AVCodecContext *avctx);
-
-  /**
-   * Size of per-frame hardware accelerator private data.
-   *
-   * Private data is allocated with av_mallocz() before
-   * AVCodecContext.get_buffer() and deallocated after
-   * AVCodecContext.release_buffer().
-   */
-  int frame_priv_data_size;
-
-  /**
-   * Called for every Macroblock in a slice.
-   *
-   * XvMC uses it to replace the ff_mpv_decode_mb().
-   * Instead of decoding to raw picture, MB parameters are
-   * stored in an array provided by the video driver.
-   *
-   * @param s the mpeg context
-   */
-  void (*decode_mb)(struct MpegEncContext *s);
-
-  /**
-   * Initialize the hwaccel private data.
-   *
-   * This will be called from ff_get_format(), after hwaccel and
-   * hwaccel_context are set and the hwaccel private data in AVCodecInternal
-   * is allocated.
-   */
-  int (*init)(AVCodecContext *avctx);
-
-  /**
-   * Uninitialize the hwaccel private data.
-   *
-   * This will be called from get_format() or avcodec_close(), after hwaccel
-   * and hwaccel_context are already uninitialized.
-   */
-  int (*uninit)(AVCodecContext *avctx);
-
-  /**
-   * Size of the private data to allocate in
-   * AVCodecInternal.hwaccel_priv_data.
-   */
-  int priv_data_size;
+    /**
+     * Name of the hardware accelerated codec.
+     * The name is globally unique among encoders and among decoders (but an
+     * encoder and a decoder can share the same name).
+     */
+    const char *name;
+
+    /**
+     * Type of codec implemented by the hardware accelerator.
+     *
+     * See AVMEDIA_TYPE_xxx
+     */
+    enum AVMediaType type;
+
+    /**
+     * Codec implemented by the hardware accelerator.
+     *
+     * See AV_CODEC_ID_xxx
+     */
+    enum AVCodecID id;
+
+    /**
+     * Supported pixel format.
+     *
+     * Only hardware accelerated formats are supported here.
+     */
+    enum AVPixelFormat pix_fmt;
+
+    /**
+     * Hardware accelerated codec capabilities.
+     * see HWACCEL_CODEC_CAP_*
+     */
+    int capabilities;
+
+    /*****************************************************************
+     * No fields below this line are part of the public API. They
+     * may not be used outside of libavcodec and can be changed and
+     * removed at will.
+     * New public fields should be added right above.
+     *****************************************************************
+     */
+    struct AVHWAccel *next;
+
+    /**
+     * Allocate a custom buffer
+     */
+    int (*alloc_frame)(AVCodecContext *avctx, AVFrame *frame);
+
+    /**
+     * Called at the beginning of each frame or field picture.
+     *
+     * Meaningful frame information (codec specific) is guaranteed to
+     * be parsed at this point. This function is mandatory.
+     *
+     * Note that buf can be NULL along with buf_size set to 0.
+     * Otherwise, this means the whole frame is available at this point.
+     *
+     * @param avctx the codec context
+     * @param buf the frame data buffer base
+     * @param buf_size the size of the frame in bytes
+     * @return zero if successful, a negative value otherwise
+     */
+    int (*start_frame)(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size);
+
+    /**
+     * Callback for each slice.
+     *
+     * Meaningful slice information (codec specific) is guaranteed to
+     * be parsed at this point. This function is mandatory.
+     * The only exception is XvMC, that works on MB level.
+     *
+     * @param avctx the codec context
+     * @param buf the slice data buffer base
+     * @param buf_size the size of the slice in bytes
+     * @return zero if successful, a negative value otherwise
+     */
+    int (*decode_slice)(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size);
+
+    /**
+     * Called at the end of each frame or field picture.
+     *
+     * The whole picture is parsed at this point and can now be sent
+     * to the hardware accelerator. This function is mandatory.
+     *
+     * @param avctx the codec context
+     * @return zero if successful, a negative value otherwise
+     */
+    int (*end_frame)(AVCodecContext *avctx);
+
+    /**
+     * Size of per-frame hardware accelerator private data.
+     *
+     * Private data is allocated with av_mallocz() before
+     * AVCodecContext.get_buffer() and deallocated after
+     * AVCodecContext.release_buffer().
+     */
+    int frame_priv_data_size;
+
+    /**
+     * Called for every Macroblock in a slice.
+     *
+     * XvMC uses it to replace the ff_mpv_decode_mb().
+     * Instead of decoding to raw picture, MB parameters are
+     * stored in an array provided by the video driver.
+     *
+     * @param s the mpeg context
+     */
+    void (*decode_mb)(struct MpegEncContext *s);
+
+    /**
+     * Initialize the hwaccel private data.
+     *
+     * This will be called from ff_get_format(), after hwaccel and
+     * hwaccel_context are set and the hwaccel private data in AVCodecInternal
+     * is allocated.
+     */
+    int (*init)(AVCodecContext *avctx);
+
+    /**
+     * Uninitialize the hwaccel private data.
+     *
+     * This will be called from get_format() or avcodec_close(), after hwaccel
+     * and hwaccel_context are already uninitialized.
+     */
+    int (*uninit)(AVCodecContext *avctx);
+
+    /**
+     * Size of the private data to allocate in
+     * AVCodecInternal.hwaccel_priv_data.
+     */
+    int priv_data_size;
 } AVHWAccel;
 
 /**
  * Hardware acceleration should be used for decoding even if the codec level
  * used is unknown or higher than the maximum supported level reported by the
  * hardware driver.
  *
  * It's generally a good idea to pass this flag unless you have a specific
@@ -3732,88 +3675,89 @@ typedef struct AVHWAccel {
 /**
  * Picture data structure.
  *
  * Up to four components can be stored into it, the last component is
  * alpha.
  * @deprecated use AVFrame or imgutils functions instead
  */
 typedef struct AVPicture {
-  attribute_deprecated uint8_t
-      *data[AV_NUM_DATA_POINTERS];  ///< pointers to the image data planes
-  attribute_deprecated int
-      linesize[AV_NUM_DATA_POINTERS];  ///< number of bytes per line
+    attribute_deprecated
+    uint8_t *data[AV_NUM_DATA_POINTERS];    ///< pointers to the image data planes
+    attribute_deprecated
+    int linesize[AV_NUM_DATA_POINTERS];     ///< number of bytes per line
 } AVPicture;
 
 /**
  * @}
  */
 #endif
 
 enum AVSubtitleType {
-  SUBTITLE_NONE,
-
-  SUBTITLE_BITMAP,  ///< A bitmap, pict will be set
-
-  /**
-   * Plain text, the text field must be set by the decoder and is
-   * authoritative. ass and pict fields may contain approximations.
-   */
-  SUBTITLE_TEXT,
-
-  /**
-   * Formatted text, the ass field must be set by the decoder and is
-   * authoritative. pict and text fields may contain approximations.
-   */
-  SUBTITLE_ASS,
+    SUBTITLE_NONE,
+
+    SUBTITLE_BITMAP,                ///< A bitmap, pict will be set
+
+    /**
+     * Plain text, the text field must be set by the decoder and is
+     * authoritative. ass and pict fields may contain approximations.
+     */
+    SUBTITLE_TEXT,
+
+    /**
+     * Formatted text, the ass field must be set by the decoder and is
+     * authoritative. pict and text fields may contain approximations.
+     */
+    SUBTITLE_ASS,
 };
 
 #define AV_SUBTITLE_FLAG_FORCED 0x00000001
 
 typedef struct AVSubtitleRect {
-  int x;          ///< top left corner  of pict, undefined when pict is not set
-  int y;          ///< top left corner  of pict, undefined when pict is not set
-  int w;          ///< width            of pict, undefined when pict is not set
-  int h;          ///< height           of pict, undefined when pict is not set
-  int nb_colors;  ///< number of colors in pict, undefined when pict is not set
+    int x;         ///< top left corner  of pict, undefined when pict is not set
+    int y;         ///< top left corner  of pict, undefined when pict is not set
+    int w;         ///< width            of pict, undefined when pict is not set
+    int h;         ///< height           of pict, undefined when pict is not set
+    int nb_colors; ///< number of colors in pict, undefined when pict is not set
 
 #if FF_API_AVPICTURE
-  /**
-   * @deprecated unused
-   */
-  attribute_deprecated AVPicture pict;
+    /**
+     * @deprecated unused
+     */
+    attribute_deprecated
+    AVPicture pict;
 #endif
-  /**
-   * data+linesize for the bitmap of this subtitle.
-   * Can be set for text/ass as well once they are rendered.
-   */
-  uint8_t *data[4];
-  int linesize[4];
-
-  enum AVSubtitleType type;
-
-  char *text;  ///< 0 terminated plain UTF-8 text
-
-  /**
-   * 0 terminated ASS/SSA compatible event line.
-   * The presentation of this is unaffected by the other values in this
-   * struct.
-   */
-  char *ass;
-
-  int flags;
+    /**
+     * data+linesize for the bitmap of this subtitle.
+     * Can be set for text/ass as well once they are rendered.
+     */
+    uint8_t *data[4];
+    int linesize[4];
+
+    enum AVSubtitleType type;
+
+    char *text;                     ///< 0 terminated plain UTF-8 text
+
+    /**
+     * 0 terminated ASS/SSA compatible event line.
+     * The presentation of this is unaffected by the other values in this
+     * struct.
+     */
+    char *ass;
+
+    int flags;
 } AVSubtitleRect;
 
 typedef struct AVSubtitle {
-  uint16_t format;             /* 0 = graphics */
-  uint32_t start_display_time; /* relative to packet pts, in ms */
-  uint32_t end_display_time;   /* relative to packet pts, in ms */
-  unsigned num_rects;
-  AVSubtitleRect **rects;
-  int64_t pts;  ///< Same as packet pts, in AV_TIME_BASE
+    uint16_t format; /* 0 = graphics */
+    uint32_t start_display_time; /* relative to packet pts, in ms */
+    uint32_t end_display_time; /* relative to packet pts, in ms */
+    unsigned num_rects;
+    AVSubtitleRect **rects;
+    int64_t pts;    ///< Same as packet pts, in AV_TIME_BASE
 } AVSubtitle;
 
 /**
  * If c is NULL, returns the first registered codec,
  * if c is non-NULL, returns the next registered codec after c,
  * or NULL if c is the last one.
  */
 AVCodec *av_codec_next(const AVCodec *c);
@@ -3952,26 +3896,24 @@ int avcodec_copy_context(AVCodecContext 
  * @endcode
  *
  * @param avctx The context to initialize.
  * @param codec The codec to open this context for. If a non-NULL codec has been
  *              previously passed to avcodec_alloc_context3() or
  *              avcodec_get_context_defaults3() for this context, then this
  *              parameter MUST be either NULL or equal to the previously passed
  *              codec.
- * @param options A dictionary filled with AVCodecContext and codec-private
- * options. On return this object will be filled with options that were not
- * found.
+ * @param options A dictionary filled with AVCodecContext and codec-private options.
+ *                On return this object will be filled with options that were not found.
  *
  * @return zero on success, a negative value on error
- * @see avcodec_alloc_context3(), avcodec_find_decoder(),
- * avcodec_find_encoder(), av_dict_set(), av_opt_find().
- */
-int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec,
-                  AVDictionary **options);
+ * @see avcodec_alloc_context3(), avcodec_find_decoder(), avcodec_find_encoder(),
+ *      av_dict_set(), av_opt_find().
+ */
+int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options);
 
 /**
  * Close a given AVCodecContext and free all the data associated with it
  * (but not the AVCodecContext itself).
  *
  * Calling this function on an AVCodecContext that hasn't been opened will free
  * the codec-specific data allocated in avcodec_alloc_context3() /
  * avcodec_get_context_defaults3() with a non-NULL codec. Subsequent calls will
@@ -4066,33 +4008,34 @@ void av_shrink_packet(AVPacket *pkt, int
 int av_grow_packet(AVPacket *pkt, int grow_by);
 
 /**
  * Initialize a reference-counted packet from av_malloc()ed data.
  *
  * @param pkt packet to be initialized. This function will set the data, size,
  *        buf and destruct fields, all others are left untouched.
  * @param data Data allocated by av_malloc() to be used as packet data. If this
- *        function returns successfully, the data is owned by the underlying
- * AVBuffer. The caller may not access the data through other means.
+ *        function returns successfully, the data is owned by the underlying AVBuffer.
+ *        The caller may not access the data through other means.
  * @param size size of data in bytes, without the padding. I.e. the full buffer
  *        size is assumed to be size + AV_INPUT_BUFFER_PADDING_SIZE.
  *
  * @return 0 on success, a negative AVERROR on error
  */
 int av_packet_from_data(AVPacket *pkt, uint8_t *data, int size);
 
 #if FF_API_AVPACKET_OLD_API
 /**
  * @warning This is a hack - the packet memory allocation stuff is broken. The
  * packet is allocated if it was not really allocated.
  *
  * @deprecated Use av_packet_ref
  */
-attribute_deprecated int av_dup_packet(AVPacket *pkt);
+attribute_deprecated
+int av_dup_packet(AVPacket *pkt);
 /**
  * Copy packet, including contents
  *
  * @return 0 on success, negative AVERROR on fail
  */
 int av_copy_packet(AVPacket *dst, const AVPacket *src);
 
 /**
@@ -4104,27 +4047,28 @@ int av_copy_packet_side_data(AVPacket *d
 
 /**
  * Free a packet.
  *
  * @deprecated Use av_packet_unref
  *
  * @param pkt packet to free
  */
-attribute_deprecated void av_free_packet(AVPacket *pkt);
+attribute_deprecated
+void av_free_packet(AVPacket *pkt);
 #endif
 /**
  * Allocate new information of a packet.
  *
  * @param pkt packet
  * @param type side information type
  * @param size side information size
  * @return pointer to fresh allocated data or NULL otherwise
  */
-uint8_t *av_packet_new_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
+uint8_t* av_packet_new_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
                                  int size);
 
 /**
  * Wrap an existing array as a packet side data.
  *
  * @param pkt packet
  * @param type side information type
  * @param data the side data array. It must be allocated with the av_malloc()
@@ -4152,17 +4096,17 @@ int av_packet_shrink_side_data(AVPacket 
 /**
  * Get side information from packet.
  *
  * @param pkt packet
  * @param type desired side information type
  * @param size pointer for side information size to store (optional)
  * @return pointer to data if present or NULL otherwise
  */
-uint8_t *av_packet_get_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
+uint8_t* av_packet_get_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
                                  int *size);
 
 int av_packet_merge_side_data(AVPacket *pkt);
 
 int av_packet_split_side_data(AVPacket *pkt);
 
 const char *av_packet_side_data_name(enum AVPacketSideDataType type);
 
@@ -4177,18 +4121,18 @@ uint8_t *av_packet_pack_dictionary(AVDic
 /**
  * Unpack a dictionary from side_data.
  *
  * @param data data from side_data
  * @param size size of the data
  * @param dict the metadata storage dictionary
  * @return 0 on success, < 0 on failure
  */
-int av_packet_unpack_dictionary(const uint8_t *data, int size,
-                                AVDictionary **dict);
+int av_packet_unpack_dictionary(const uint8_t *data, int size, AVDictionary **dict);
+
 
 /**
  * Convenience function to free all the side data stored.
  * All the other fields stay untouched.
  *
  * @param pkt packet
  */
 void av_packet_free_side_data(AVPacket *pkt);
@@ -4296,17 +4240,18 @@ int avcodec_default_get_buffer2(AVCodecC
  * provide around the edge of the image for codecs which do not have the
  * CODEC_FLAG_EMU_EDGE flag.
  *
  * @return Required padding in pixels.
  *
  * @deprecated CODEC_FLAG_EMU_EDGE is deprecated, so this function is no longer
  * needed
  */
-attribute_deprecated unsigned avcodec_get_edge_width(void);
+attribute_deprecated
+unsigned avcodec_get_edge_width(void);
 #endif
 
 /**
  * Modify width and height values so that they will result in a memory
  * buffer that is acceptable for the codec if you do not use any horizontal
  * padding.
  *
  * May only be used if a codec with AV_CODEC_CAP_DR1 has been opened.
@@ -4351,18 +4296,18 @@ enum AVChromaLocation avcodec_chroma_pos
  * Some decoders may support multiple frames in a single AVPacket. Such
  * decoders would then just decode the first frame and the return value would be
  * less than the packet size. In this case, avcodec_decode_audio4 has to be
  * called again with an AVPacket containing the remaining data in order to
  * decode the second frame, etc...  Even if no frames are returned, the packet
  * needs to be fed to the decoder with remaining data until it is completely
  * consumed or an error occurs.
  *
- * Some decoders (those marked with AV_CODEC_CAP_DELAY) have a delay between
- * input and output. This means that for some packets they will not immediately
+ * Some decoders (those marked with AV_CODEC_CAP_DELAY) have a delay between input
+ * and output. This means that for some packets they will not immediately
  * produce decoded output and need to be flushed at the end of decoding to get
  * all the decoded data. Flushing is done by calling this function with packets
  * with avpkt->data set to NULL and avpkt->size set to 0 until it stops
  * returning samples. It is safe to flush even those decoders that are not
  * marked with AV_CODEC_CAP_DELAY, then no samples will be returned.
  *
  * @warning The input buffer, avpkt->data must be AV_INPUT_BUFFER_PADDING_SIZE
  *          larger than the actual read bytes because some optimized bitstream
@@ -4370,29 +4315,30 @@ enum AVChromaLocation avcodec_chroma_pos
  *
  * @note The AVCodecContext MUST have been opened with @ref avcodec_open2()
  * before packets may be fed to the decoder.
  *
  * @param      avctx the codec context
  * @param[out] frame The AVFrame in which to store decoded audio samples.
  *                   The decoder will allocate a buffer for the decoded frame by
  *                   calling the AVCodecContext.get_buffer2() callback.
- *                   When AVCodecContext.refcounted_frames is set to 1, the
- * frame is reference counted and the returned reference belongs to the caller.
- * The caller must release the frame using av_frame_unref() when the frame is no
- * longer needed. The caller may safely write to the frame if
- * av_frame_is_writable() returns 1. When AVCodecContext.refcounted_frames is
- * set to 0, the returned reference belongs to the decoder and is valid only
- * until the next call to this function or until closing or flushing the
+ *                   When AVCodecContext.refcounted_frames is set to 1, the frame is
+ *                   reference counted and the returned reference belongs to the
+ *                   caller. The caller must release the frame using av_frame_unref()
+ *                   when the frame is no longer needed. The caller may safely write
+ *                   to the frame if av_frame_is_writable() returns 1.
+ *                   When AVCodecContext.refcounted_frames is set to 0, the returned
+ *                   reference belongs to the decoder and is valid only until the
+ *                   next call to this function or until closing or flushing the
  *                   decoder. The caller may not write to it.
  * @param[out] got_frame_ptr Zero if no frame could be decoded, otherwise it is
  *                           non-zero. Note that this field being set to zero
  *                           does not mean that an error has occurred. For
- *                           decoders with AV_CODEC_CAP_DELAY set, no given
- * decode call is guaranteed to produce a frame.
+ *                           decoders with AV_CODEC_CAP_DELAY set, no given decode
+ *                           call is guaranteed to produce a frame.
  * @param[in]  avpkt The input AVPacket containing the input buffer.
  *                   At least avpkt->data and avpkt->size should be set. Some
  *                   decoders might also require additional fields to be set.
  * @return A negative error code is returned if an error occurred during
  *         decoding, otherwise the number of bytes consumed from the input
  *         AVPacket is returned.
  */
 int avcodec_decode_audio4(AVCodecContext *avctx, AVFrame *frame,
@@ -4413,282 +4359,282 @@ int avcodec_decode_audio4(AVCodecContext
  * @note Codecs which have the AV_CODEC_CAP_DELAY capability set have a delay
  * between input and output, these need to be fed with avpkt->data=NULL,
  * avpkt->size=0 at the end to return the remaining frames.
  *
  * @note The AVCodecContext MUST have been opened with @ref avcodec_open2()
  * before packets may be fed to the decoder.
  *
  * @param avctx the codec context
- * @param[out] picture The AVFrame in which the decoded video frame will be
- * stored. Use av_frame_alloc() to get an AVFrame. The codec will allocate
- * memory for the actual bitmap by calling the AVCodecContext.get_buffer2()
- * callback. When AVCodecContext.refcounted_frames is set to 1, the frame is
+ * @param[out] picture The AVFrame in which the decoded video frame will be stored.
+ *             Use av_frame_alloc() to get an AVFrame. The codec will
+ *             allocate memory for the actual bitmap by calling the
+ *             AVCodecContext.get_buffer2() callback.
+ *             When AVCodecContext.refcounted_frames is set to 1, the frame is
  *             reference counted and the returned reference belongs to the
  *             caller. The caller must release the frame using av_frame_unref()
  *             when the frame is no longer needed. The caller may safely write
  *             to the frame if av_frame_is_writable() returns 1.
  *             When AVCodecContext.refcounted_frames is set to 0, the returned
  *             reference belongs to the decoder and is valid only until the
  *             next call to this function or until closing or flushing the
  *             decoder. The caller may not write to it.
  *
  * @param[in] avpkt The input AVPacket containing the input buffer.
- *            You can create such packet with av_init_packet() and by then
- * setting data and size, some decoders might in addition need other fields like
+ *            You can create such packet with av_init_packet() and by then setting
+ *            data and size, some decoders might in addition need other fields like
  *            flags&AV_PKT_FLAG_KEY. All decoders are designed to use the least
  *            fields possible.
- * @param[in,out] got_picture_ptr Zero if no frame could be decompressed,
- * otherwise, it is nonzero.
+ * @param[in,out] got_picture_ptr Zero if no frame could be decompressed, otherwise, it is nonzero.
  * @return On error a negative value is returned, otherwise the number of bytes
  * used or zero if no frame could be decompressed.
  */
 int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
-                          int *got_picture_ptr, const AVPacket *avpkt);
+                         int *got_picture_ptr,
+                         const AVPacket *avpkt);
 
 /**
  * Decode a subtitle message.
  * Return a negative value on error, otherwise return the number of bytes used.
  * If no subtitle could be decompressed, got_sub_ptr is zero.
  * Otherwise, the subtitle is stored in *sub.
  * Note that AV_CODEC_CAP_DR1 is not available for subtitle codecs. This is for
  * simplicity, because the performance difference is expect to be negligible
- * and reusing a get_buffer written for video codecs would probably perform
- * badly due to a potentially very different allocation pattern.
+ * and reusing a get_buffer written for video codecs would probably perform badly
+ * due to a potentially very different allocation pattern.
  *
  * Some decoders (those marked with CODEC_CAP_DELAY) have a delay between input
  * and output. This means that for some packets they will not immediately
  * produce decoded output and need to be flushed at the end of decoding to get
  * all the decoded data. Flushing is done by calling this function with packets
  * with avpkt->data set to NULL and avpkt->size set to 0 until it stops
  * returning subtitles. It is safe to flush even those decoders that are not
  * marked with CODEC_CAP_DELAY, then no subtitles will be returned.
  *
  * @note The AVCodecContext MUST have been opened with @ref avcodec_open2()
  * before packets may be fed to the decoder.
  *
  * @param avctx the codec context
- * @param[out] sub The Preallocated AVSubtitle in which the decoded subtitle
- * will be stored, must be freed with avsubtitle_free if *got_sub_ptr is set.
- * @param[in,out] got_sub_ptr Zero if no subtitle could be decompressed,
- * otherwise, it is nonzero.
+ * @param[out] sub The Preallocated AVSubtitle in which the decoded subtitle will be stored,
+ *                 must be freed with avsubtitle_free if *got_sub_ptr is set.
+ * @param[in,out] got_sub_ptr Zero if no subtitle could be decompressed, otherwise, it is nonzero.
  * @param[in] avpkt The input AVPacket containing the input buffer.
  */
 int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub,
-                             int *got_sub_ptr, AVPacket *avpkt);
+                            int *got_sub_ptr,
+                            AVPacket *avpkt);
 
 /**
  * @defgroup lavc_parsing Frame parsing
  * @{
  */
 
 enum AVPictureStructure {
-  AV_PICTURE_STRUCTURE_UNKNOWN,       //< unknown
-  AV_PICTURE_STRUCTURE_TOP_FIELD,     //< coded as top field
-  AV_PICTURE_STRUCTURE_BOTTOM_FIELD,  //< coded as bottom field
-  AV_PICTURE_STRUCTURE_FRAME,         //< coded as frame
+    AV_PICTURE_STRUCTURE_UNKNOWN,      //< unknown
+    AV_PICTURE_STRUCTURE_TOP_FIELD,    //< coded as top field
+    AV_PICTURE_STRUCTURE_BOTTOM_FIELD, //< coded as bottom field
+    AV_PICTURE_STRUCTURE_FRAME,        //< coded as frame
 };
 
 typedef struct AVCodecParserContext {
-  void *priv_data;
-  struct AVCodecParser *parser;
-  int64_t frame_offset;      /* offset of the current frame */
-  int64_t cur_offset;        /* current offset
-                                (incremented by each av_parser_parse()) */
-  int64_t next_frame_offset; /* offset of the next frame */
-  /* video info */
-  int pict_type; /* XXX: Put it back in AVCodecContext. */
-  /**
-   * This field is used for proper frame duration computation in lavf.
-   * It signals, how much longer the frame duration of the current frame
-   * is compared to normal frame duration.
-   *
-   * frame_duration = (1 + repeat_pict) * time_base
-   *
-   * It is used by codecs like H.264 to display telecined material.
-   */
-  int repeat_pict; /* XXX: Put it back in AVCodecContext. */
-  int64_t pts;     /* pts of the current frame */
-  int64_t dts;     /* dts of the current frame */
-
-  /* private data */
-  int64_t last_pts;
-  int64_t last_dts;
-  int fetch_timestamp;
+    void *priv_data;
+    struct AVCodecParser *parser;
+    int64_t frame_offset; /* offset of the current frame */
+    int64_t cur_offset; /* current offset
+                           (incremented by each av_parser_parse()) */
+    int64_t next_frame_offset; /* offset of the next frame */
+    /* video info */
+    int pict_type; /* XXX: Put it back in AVCodecContext. */
+    /**
+     * This field is used for proper frame duration computation in lavf.
+     * It signals, how much longer the frame duration of the current frame
+     * is compared to normal frame duration.
+     *
+     * frame_duration = (1 + repeat_pict) * time_base
+     *
+     * It is used by codecs like H.264 to display telecined material.
+     */
+    int repeat_pict; /* XXX: Put it back in AVCodecContext. */
+    int64_t pts;     /* pts of the current frame */
+    int64_t dts;     /* dts of the current frame */
+
+    /* private data */
+    int64_t last_pts;
+    int64_t last_dts;
+    int fetch_timestamp;
 
 #define AV_PARSER_PTS_NB 4
-  int cur_frame_start_index;
-  int64_t cur_frame_offset[AV_PARSER_PTS_NB];
-  int64_t cur_frame_pts[AV_PARSER_PTS_NB];
-  int64_t cur_frame_dts[AV_PARSER_PTS_NB];
-
-  int flags;
-#define PARSER_FLAG_COMPLETE_FRAMES 0x0001
-#define PARSER_FLAG_ONCE 0x0002
+    int cur_frame_start_index;
+    int64_t cur_frame_offset[AV_PARSER_PTS_NB];
+    int64_t cur_frame_pts[AV_PARSER_PTS_NB];
+    int64_t cur_frame_dts[AV_PARSER_PTS_NB];
+
+    int flags;
+#define PARSER_FLAG_COMPLETE_FRAMES           0x0001
+#define PARSER_FLAG_ONCE                      0x0002
 /// Set if the parser has a valid file offset
-#define PARSER_FLAG_FETCHED_OFFSET 0x0004
-#define PARSER_FLAG_USE_CODEC_TS 0x1000
-
-  int64_t offset;  ///< byte offset from starting packet start
-  int64_t cur_frame_end[AV_PARSER_PTS_NB];
-
-  /**
-   * Set by parser to 1 for key frames and 0 for non-key frames.
-   * It is initialized to -1, so if the parser doesn't set this flag,
-   * old-style fallback using AV_PICTURE_TYPE_I picture type as key frames
-   * will be used.
-   */
-  int key_frame;
+#define PARSER_FLAG_FETCHED_OFFSET            0x0004
+#define PARSER_FLAG_USE_CODEC_TS              0x1000
+
+    int64_t offset;      ///< byte offset from starting packet start
+    int64_t cur_frame_end[AV_PARSER_PTS_NB];
+
+    /**
+     * Set by parser to 1 for key frames and 0 for non-key frames.
+     * It is initialized to -1, so if the parser doesn't set this flag,
+     * old-style fallback using AV_PICTURE_TYPE_I picture type as key frames
+     * will be used.
+     */
+    int key_frame;
 
 #if FF_API_CONVERGENCE_DURATION
-  /**
-   * @deprecated unused
-   */
-  attribute_deprecated int64_t convergence_duration;
+    /**
+     * @deprecated unused
+     */
+    attribute_deprecated
+    int64_t convergence_duration;
 #endif
 
-  // Timestamp generation support:
-  /**
-   * Synchronization point for start of timestamp generation.
-   *
-   * Set to >0 for sync point, 0 for no sync point and <0 for undefined
-   * (default).
-   *
-   * For example, this corresponds to presence of H.264 buffering period
-   * SEI message.
-   */
-  int dts_sync_point;
-
-  /**
-   * Offset of the current timestamp against last timestamp sync point in
-   * units of AVCodecContext.time_base.
-   *
-   * Set to INT_MIN when dts_sync_point unused. Otherwise, it must
-   * contain a valid timestamp offset.
-   *
-   * Note that the timestamp of sync point has usually a nonzero
-   * dts_ref_dts_delta, which refers to the previous sync point. Offset of
-   * the next frame after timestamp sync point will be usually 1.
-   *
-   * For example, this corresponds to H.264 cpb_removal_delay.
-   */
-  int dts_ref_dts_delta;
-
-  /**
-   * Presentation delay of current frame in units of AVCodecContext.time_base.
-   *
-   * Set to INT_MIN when dts_sync_point unused. Otherwise, it must
-   * contain valid non-negative timestamp delta (presentation time of a frame
-   * must not lie in the past).
-   *
-   * This delay represents the difference between decoding and presentation
-   * time of the frame.
-   *
-   * For example, this corresponds to H.264 dpb_output_delay.
-   */
-  int pts_dts_delta;
-
-  /**
-   * Position of the packet in file.
-   *
-   * Analogous to cur_frame_pts/dts
-   */
-  int64_t cur_frame_pos[AV_PARSER_PTS_NB];
-
-  /**
-   * Byte position of currently parsed frame in stream.
-   */
-  int64_t pos;
-
-  /**
-   * Previous frame byte position.
-   */
-  int64_t last_pos;
-
-  /**
-   * Duration of the current frame.
-   * For audio, this is in units of 1 / AVCodecContext.sample_rate.
-   * For all other types, this is in units of AVCodecContext.time_base.
-   */
-  int duration;
-
-  enum AVFieldOrder field_order;
-
-  /**
-   * Indicate whether a picture is coded as a frame, top field or bottom field.
-   *
-   * For example, H.264 field_pic_flag equal to 0 corresponds to
-   * AV_PICTURE_STRUCTURE_FRAME. An H.264 picture with field_pic_flag
-   * equal to 1 and bottom_field_flag equal to 0 corresponds to
-   * AV_PICTURE_STRUCTURE_TOP_FIELD.
-   */
-  enum AVPictureStructure picture_structure;
-
-  /**
-   * Picture number incremented in presentation or output order.
-   * This field may be reinitialized at the first picture of a new sequence.
-   *
-   * For example, this corresponds to H.264 PicOrderCnt.
-   */
-  int output_picture_number;
-
-  /**
-   * Dimensions of the decoded video intended for presentation.
-   */
-  int width;
-  int height;
-
-  /**
-   * Dimensions of the coded video.
-   */
-  int coded_width;
-  int coded_height;
-
-  /**
-   * The format of the coded data, corresponds to enum AVPixelFormat for video
-   * and for enum AVSampleFormat for audio.
-   *
-   * Note that a decoder can have considerable freedom in how exactly it
-   * decodes the data, so the format reported here might be different from the
-   * one returned by a decoder.
-   */
-  int format;
+    // Timestamp generation support:
+    /**
+     * Synchronization point for start of timestamp generation.
+     *
+     * Set to >0 for sync point, 0 for no sync point and <0 for undefined
+     * (default).
+     *
+     * For example, this corresponds to presence of H.264 buffering period
+     * SEI message.
+     */
+    int dts_sync_point;
+
+    /**
+     * Offset of the current timestamp against last timestamp sync point in
+     * units of AVCodecContext.time_base.
+     *
+     * Set to INT_MIN when dts_sync_point unused. Otherwise, it must
+     * contain a valid timestamp offset.
+     *
+     * Note that the timestamp of sync point has usually a nonzero
+     * dts_ref_dts_delta, which refers to the previous sync point. Offset of
+     * the next frame after timestamp sync point will be usually 1.
+     *
+     * For example, this corresponds to H.264 cpb_removal_delay.
+     */
+    int dts_ref_dts_delta;
+
+    /**
+     * Presentation delay of current frame in units of AVCodecContext.time_base.
+     *
+     * Set to INT_MIN when dts_sync_point unused. Otherwise, it must
+     * contain valid non-negative timestamp delta (presentation time of a frame
+     * must not lie in the past).
+     *
+     * This delay represents the difference between decoding and presentation
+     * time of the frame.
+     *
+     * For example, this corresponds to H.264 dpb_output_delay.
+     */
+    int pts_dts_delta;
+
+    /**
+     * Position of the packet in file.
+     *
+     * Analogous to cur_frame_pts/dts
+     */
+    int64_t cur_frame_pos[AV_PARSER_PTS_NB];
+
+    /**
+     * Byte position of currently parsed frame in stream.
+     */
+    int64_t pos;
+
+    /**
+     * Previous frame byte position.
+     */
+    int64_t last_pos;
+
+    /**
+     * Duration of the current frame.
+     * For audio, this is in units of 1 / AVCodecContext.sample_rate.
+     * For all other types, this is in units of AVCodecContext.time_base.
+     */
+    int duration;
+
+    enum AVFieldOrder field_order;
+
+    /**
+     * Indicate whether a picture is coded as a frame, top field or bottom field.
+     *
+     * For example, H.264 field_pic_flag equal to 0 corresponds to
+     * AV_PICTURE_STRUCTURE_FRAME. An H.264 picture with field_pic_flag
+     * equal to 1 and bottom_field_flag equal to 0 corresponds to
+     * AV_PICTURE_STRUCTURE_TOP_FIELD.
+     */
+    enum AVPictureStructure picture_structure;
+
+    /**
+     * Picture number incremented in presentation or output order.
+     * This field may be reinitialized at the first picture of a new sequence.
+     *
+     * For example, this corresponds to H.264 PicOrderCnt.
+     */
+    int output_picture_number;
+
+    /**
+     * Dimensions of the decoded video intended for presentation.
+     */
+    int width;
+    int height;
+
+    /**
+     * Dimensions of the coded video.
+     */
+    int coded_width;
+    int coded_height;
+
+    /**
+     * The format of the coded data, corresponds to enum AVPixelFormat for video
+     * and for enum AVSampleFormat for audio.
+     *
+     * Note that a decoder can have considerable freedom in how exactly it
+     * decodes the data, so the format reported here might be different from the
+     * one returned by a decoder.
+     */
+    int format;
 } AVCodecParserContext;
 
 typedef struct AVCodecParser {
-  int codec_ids[5]; /* several codec IDs are permitted */
-  int priv_data_size;
-  int (*parser_init)(AVCodecParserContext *s);
-  /* This callback never returns an error, a negative value means that
-   * the frame start was in a previous packet. */
-  int (*parser_parse)(AVCodecParserContext *s, AVCodecContext *avctx,
-                      const uint8_t **poutbuf, int *poutbuf_size,
-                      const uint8_t *buf, int buf_size);
-  void (*parser_close)(AVCodecParserContext *s);
-  int (*split)(AVCodecContext *avctx, const uint8_t *buf, int buf_size);
-  struct AVCodecParser *next;
+    int codec_ids[5]; /* several codec IDs are permitted */
+    int priv_data_size;
+    int (*parser_init)(AVCodecParserContext *s);
+    /* This callback never returns an error, a negative value means that
+     * the frame start was in a previous packet. */
+    int (*parser_parse)(AVCodecParserContext *s,
+                        AVCodecContext *avctx,
+                        const uint8_t **poutbuf, int *poutbuf_size,
+                        const uint8_t *buf, int buf_size);
+    void (*parser_close)(AVCodecParserContext *s);
+    int (*split)(AVCodecContext *avctx, const uint8_t *buf, int buf_size);
+    struct AVCodecParser *next;
 } AVCodecParser;
 
 AVCodecParser *av_parser_next(const AVCodecParser *c);
 
 void av_register_codec_parser(AVCodecParser *parser);
 AVCodecParserContext *av_parser_init(int codec_id);
 
 /**
  * Parse a packet.
  *
  * @param s             parser context.
  * @param avctx         codec context.
- * @param poutbuf       set to pointer to parsed buffer or NULL if not yet
- * finished.
- * @param poutbuf_size  set to size of parsed buffer or zero if not yet
- * finished.
+ * @param poutbuf       set to pointer to parsed buffer or NULL if not yet finished.
+ * @param poutbuf_size  set to size of parsed buffer or zero if not yet finished.
  * @param buf           input buffer.
- * @param buf_size      input length, to signal EOF, this should be 0 (so that
- * the last frame can be output).
+ * @param buf_size      input length, to signal EOF, this should be 0 (so that the last frame can be output).
  * @param pts           input presentation timestamp.
  * @param dts           input decoding timestamp.
  * @param pos           input byte position in stream.
  * @return the number of bytes of the input bitstream used.
  *
  * Example:
  * @code
  *   while(in_len){
@@ -4698,28 +4644,31 @@ AVCodecParserContext *av_parser_init(int
  *       in_data += len;
  *       in_len  -= len;
  *
  *       if(size)
  *          decode_frame(data, size);
  *   }
  * @endcode
  */
-int av_parser_parse2(AVCodecParserContext *s, AVCodecContext *avctx,
-                     uint8_t **poutbuf, int *poutbuf_size, const uint8_t *buf,
-                     int buf_size, int64_t pts, int64_t dts, int64_t pos);
-
-/**
- * @return 0 if the output buffer is a subset of the input, 1 if it is allocated
- * and must be freed
+int av_parser_parse2(AVCodecParserContext *s,
+                     AVCodecContext *avctx,
+                     uint8_t **poutbuf, int *poutbuf_size,
+                     const uint8_t *buf, int buf_size,
+                     int64_t pts, int64_t dts,
+                     int64_t pos);
+
+/**
+ * @return 0 if the output buffer is a subset of the input, 1 if it is allocated and must be freed
  * @deprecated use AVBitStreamFilter
  */
-int av_parser_change(AVCodecParserContext *s, AVCodecContext *avctx,
-                     uint8_t **poutbuf, int *poutbuf_size, const uint8_t *buf,
-                     int buf_size, int keyframe);
+int av_parser_change(AVCodecParserContext *s,
+                     AVCodecContext *avctx,
+                     uint8_t **poutbuf, int *poutbuf_size,
+                     const uint8_t *buf, int buf_size, int keyframe);
 void av_parser_close(AVCodecParserContext *s);
 
 /**
  * @}
  * @}
  */
 
 /**
@@ -4818,16 +4767,17 @@ int avcodec_encode_audio2(AVCodecContext
  * @return          0 on success, negative error code on failure
  */
 int avcodec_encode_video2(AVCodecContext *avctx, AVPacket *avpkt,
                           const AVFrame *frame, int *got_packet_ptr);
 
 int avcodec_encode_subtitle(AVCodecContext *avctx, uint8_t *buf, int buf_size,
                             const AVSubtitle *sub);
 
+
 /**
  * @}
  */
 
 #if FF_API_AVCODEC_RESAMPLE
 /**
  * @defgroup lavc_resample Audio resampling
  * @ingroup libavc
@@ -4844,159 +4794,150 @@ typedef struct ReSampleContext ReSampleC
  *  Initialize audio resampling context.
  *
  * @param output_channels  number of output channels
  * @param input_channels   number of input channels
  * @param output_rate      output sample rate
  * @param input_rate       input sample rate
  * @param sample_fmt_out   requested output sample format
  * @param sample_fmt_in    input sample format
- * @param filter_length    length of each FIR filter in the filterbank relative
- to the cutoff frequency
- * @param log2_phase_count log2 of the number of entries in the polyphase
- filterbank
- * @param linear           if 1 then the used FIR filter will be linearly
- interpolated between the 2 closest, if 0 the closest will be used
- * @param cutoff           cutoff frequency, 1.0 corresponds to half the output
- sampling rate
+ * @param filter_length    length of each FIR filter in the filterbank relative to the cutoff frequency
+ * @param log2_phase_count log2 of the number of entries in the polyphase filterbank
+ * @param linear           if 1 then the used FIR filter will be linearly interpolated
+                           between the 2 closest, if 0 the closest will be used
+ * @param cutoff           cutoff frequency, 1.0 corresponds to half the output sampling rate
  * @return allocated ReSampleContext, NULL if error occurred
  */
-attribute_deprecated ReSampleContext *av_audio_resample_init(
-    int output_channels, int input_channels, int output_rate, int input_rate,
-    enum AVSampleFormat sample_fmt_out, enum AVSampleFormat sample_fmt_in,
-    int filter_length, int log2_phase_count, int linear, double cutoff);
-
-attribute_deprecated int audio_resample(ReSampleContext *s, short *output,
-                                        short *input, int nb_samples);
+attribute_deprecated
+ReSampleContext *av_audio_resample_init(int output_channels, int input_channels,
+                                        int output_rate, int input_rate,
+                                        enum AVSampleFormat sample_fmt_out,
+                                        enum AVSampleFormat sample_fmt_in,
+                                        int filter_length, int log2_phase_count,
+                                        int linear, double cutoff);
+
+attribute_deprecated
+int audio_resample(ReSampleContext *s, short *output, short *input, int nb_samples);
 
 /**
  * Free resample context.
  *
  * @param s a non-NULL pointer to a resample context previously
  *          created with av_audio_resample_init()
  */
-attribute_deprecated void audio_resample_close(ReSampleContext *s);
+attribute_deprecated
+void audio_resample_close(ReSampleContext *s);
+
 
 /**
  * Initialize an audio resampler.
- * Note, if either rate is not an integer then simply scale both rates up so
- they are.
- * @param filter_length length of each FIR filter in the filterbank relative to
- the cutoff freq
- * @param log2_phase_count log2 of the number of entries in the polyphase
- filterbank
+ * Note, if either rate is not an integer then simply scale both rates up so they are.
+ * @param filter_length length of each FIR filter in the filterbank relative to the cutoff freq
+ * @param log2_phase_count log2 of the number of entries in the polyphase filterbank
  * @param linear If 1 then the used FIR filter will be linearly interpolated
                  between the 2 closest, if 0 the closest will be used
- * @param cutoff cutoff frequency, 1.0 corresponds to half the output sampling
- rate
- */
-attribute_deprecated struct AVResampleContext *av_resample_init(
-    int out_rate, int in_rate, int filter_length, int log2_phase_count,
-    int linear, double cutoff);
+ * @param cutoff cutoff frequency, 1.0 corresponds to half the output sampling rate
+ */
+attribute_deprecated
+struct AVResampleContext *av_resample_init(int out_rate, int in_rate, int filter_length, int log2_phase_count, int linear, double cutoff);
 
 /**
  * Resample an array of samples using a previously configured context.
  * @param src an array of unconsumed samples
- * @param consumed the number of samples of src which have been consumed are
- * returned here
+ * @param consumed the number of samples of src which have been consumed are returned here
  * @param src_size the number of unconsumed samples available
  * @param dst_size the amount of space in samples available in dst
- * @param update_ctx If this is 0 then the context will not be modified, that
- * way several channels can be resampled with the same context.
+ * @param update_ctx If this is 0 then the context will not be modified, that way several channels can be resampled with the same context.
  * @return the number of samples written in dst or -1 if an error occurred
  */
-attribute_deprecated int av_resample(struct AVResampleContext *c, short *dst,
-                                     short *src, int *consumed, int src_size,
-                                     int dst_size, int update_ctx);
+attribute_deprecated
+int av_resample(struct AVResampleContext *c, short *dst, short *src, int *consumed, int src_size, int dst_size, int update_ctx);
+
 
 /**
  * Compensate samplerate/timestamp drift. The compensation is done by changing
  * the resampler parameters, so no audible clicks or similar distortions occur
- * @param compensation_distance distance in output samples over which the
- * compensation should be performed
+ * @param compensation_distance distance in output samples over which the compensation should be performed
  * @param sample_delta number of output samples which should be output less
  *
  * example: av_resample_compensate(c, 10, 500)
  * here instead of 510 samples only 500 samples would be output
  *
  * note, due to rounding the actual compensation might be slightly different,
- * especially if the compensation_distance is large and the in_rate used during
- * init is small
- */
-attribute_deprecated void av_resample_compensate(struct AVResampleContext *c,
-                                                 int sample_delta,
-                                                 int compensation_distance);
-attribute_deprecated void av_resample_close(struct AVResampleContext *c);
+ * especially if the compensation_distance is large and the in_rate used during init is small
+ */
+attribute_deprecated
+void av_resample_compensate(struct AVResampleContext *c, int sample_delta, int compensation_distance);
+attribute_deprecated
+void av_resample_close(struct AVResampleContext *c);
 
 /**
  * @}
  */
 #endif
 
 #if FF_API_AVPICTURE
 /**
  * @addtogroup lavc_picture
  * @{
  */
 
 /**
  * @deprecated unused
  */
-attribute_deprecated int avpicture_alloc(AVPicture *picture,
-                                         enum AVPixelFormat pix_fmt, int width,
-                                         int height);
+attribute_deprecated
+int avpicture_alloc(AVPicture *picture, enum AVPixelFormat pix_fmt, int width, int height);
 
 /**
  * @deprecated unused
  */
-attribute_deprecated void avpicture_free(AVPicture *picture);
+attribute_deprecated
+void avpicture_free(AVPicture *picture);
 
 /**
  * @deprecated use av_image_fill_arrays() instead.
  */
-attribute_deprecated int avpicture_fill(AVPicture *picture, const uint8_t *ptr,
-                                        enum AVPixelFormat pix_fmt, int width,
-                                        int height);
+attribute_deprecated
+int avpicture_fill(AVPicture *picture, const uint8_t *ptr,
+                   enum AVPixelFormat pix_fmt, int width, int height);
 
 /**
  * @deprecated use av_image_copy_to_buffer() instead.
  */
-attribute_deprecated int avpicture_layout(const AVPicture *src,
-                                          enum AVPixelFormat pix_fmt, int width,
-                                          int height, unsigned char *dest,
-                                          int dest_size);
+attribute_deprecated
+int avpicture_layout(const AVPicture *src, enum AVPixelFormat pix_fmt,
+                     int width, int height,
+                     unsigned char *dest, int dest_size);
 
 /**
  * @deprecated use av_image_get_buffer_size() instead.
  */
-attribute_deprecated int avpicture_get_size(enum AVPixelFormat pix_fmt,
-                                            int width, int height);
+attribute_deprecated
+int avpicture_get_size(enum AVPixelFormat pix_fmt, int width, int height);
 
 /**
  * @deprecated av_image_copy() instead.
  */
-attribute_deprecated void av_picture_copy(AVPicture *dst, const AVPicture *src,
-                                          enum AVPixelFormat pix_fmt, int width,
-                                          int height);
+attribute_deprecated
+void av_picture_copy(AVPicture *dst, const AVPicture *src,
+                     enum AVPixelFormat pix_fmt, int width, int height);
 
 /**
  * @deprecated unused
  */
-attribute_deprecated int av_picture_crop(AVPicture *dst, const AVPicture *src,
-                                         enum AVPixelFormat pix_fmt,
-                                         int top_band, int left_band);
+attribute_deprecated
+int av_picture_crop(AVPicture *dst, const AVPicture *src,
+                    enum AVPixelFormat pix_fmt, int top_band, int left_band);
 
 /**
  * @deprecated unused
  */
-attribute_deprecated int av_picture_pad(AVPicture *dst, const AVPicture *src,
-                                        int height, int width,
-                                        enum AVPixelFormat pix_fmt, int padtop,
-                                        int padbottom, int padleft,
-                                        int padright, int *color);
+attribute_deprecated
+int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width, enum AVPixelFormat pix_fmt,
+            int padtop, int padbottom, int padleft, int padright, int *color);
 
 /**
  * @}
  */
 #endif
 
 /**
  * @defgroup lavc_misc Utility functions
@@ -5013,113 +4954,104 @@ attribute_deprecated int av_picture_pad(
  * Functions for working with pixel formats.
  * @{
  */
 
 /**
  * Utility function to access log2_chroma_w log2_chroma_h from
  * the pixel format AVPixFmtDescriptor.
  *
- * This function asserts that pix_fmt is valid. See
- * av_pix_fmt_get_chroma_sub_sample for one that returns a failure code and
- * continues in case of invalid pix_fmts.
+ * This function asserts that pix_fmt is valid. See av_pix_fmt_get_chroma_sub_sample
+ * for one that returns a failure code and continues in case of invalid
+ * pix_fmts.
  *
  * @param[in]  pix_fmt the pixel format
  * @param[out] h_shift store log2_chroma_w
  * @param[out] v_shift store log2_chroma_h
  *
  * @see av_pix_fmt_get_chroma_sub_sample
  */
 
-void avcodec_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, int *h_shift,
-                                   int *v_shift);
+void avcodec_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, int *h_shift, int *v_shift);
 
 /**
  * Return a value representing the fourCC code associated to the
  * pixel format pix_fmt, or 0 if no associated fourCC code can be
  * found.
  */
 unsigned int avcodec_pix_fmt_to_codec_tag(enum AVPixelFormat pix_fmt);
 
 /**
  * @deprecated see av_get_pix_fmt_loss()
  */
-int avcodec_get_pix_fmt_loss(enum AVPixelFormat dst_pix_fmt,
-                             enum AVPixelFormat src_pix_fmt, int has_alpha);
+int avcodec_get_pix_fmt_loss(enum AVPixelFormat dst_pix_fmt, enum AVPixelFormat src_pix_fmt,
+                             int has_alpha);
 
 /**
  * Find the best pixel format to convert to given a certain source pixel
  * format.  When converting from one pixel format to another, information loss
  * may occur.  For example, when converting from RGB24 to GRAY, the color
  * information will be lost. Similarly, other losses occur when converting from
- * some formats to other formats. avcodec_find_best_pix_fmt_of_2() searches
- * which of the given pixel formats should be used to suffer the least amount of
- * loss. The pixel formats from which it chooses one, are determined by the
+ * some formats to other formats. avcodec_find_best_pix_fmt_of_2() searches which of
+ * the given pixel formats should be used to suffer the least amount of loss.
+ * The pixel formats from which it chooses one, are determined by the
  * pix_fmt_list parameter.
  *
  *
- * @param[in] pix_fmt_list AV_PIX_FMT_NONE terminated array of pixel formats to
- * choose from
+ * @param[in] pix_fmt_list AV_PIX_FMT_NONE terminated array of pixel formats to choose from
  * @param[in] src_pix_fmt source pixel format
  * @param[in] has_alpha Whether the source pixel format alpha channel is used.
- * @param[out] loss_ptr Combination of flags informing you what kind of losses
- * will occur.
+ * @param[out] loss_ptr Combination of flags informing you what kind of losses will occur.
  * @return The best pixel format to convert to or -1 if none was found.
  */
-enum AVPixelFormat avcodec_find_best_pix_fmt_of_list(
-    const enum AVPixelFormat *pix_fmt_list, enum AVPixelFormat src_pix_fmt,
-    int has_alpha, int *loss_ptr);
+enum AVPixelFormat avcodec_find_best_pix_fmt_of_list(const enum AVPixelFormat *pix_fmt_list,
+                                            enum AVPixelFormat src_pix_fmt,
+                                            int has_alpha, int *loss_ptr);
 
 /**
  * @deprecated see av_find_best_pix_fmt_of_2()
  */
-enum AVPixelFormat avcodec_find_best_pix_fmt_of_2(
-    enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2,
-    enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr);
+enum AVPixelFormat avcodec_find_best_pix_fmt_of_2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2,
+                                            enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr);
 
 attribute_deprecated
 #if AV_HAVE_INCOMPATIBLE_LIBAV_ABI
-    enum AVPixelFormat
-    avcodec_find_best_pix_fmt2(const enum AVPixelFormat *pix_fmt_list,
-                               enum AVPixelFormat src_pix_fmt, int has_alpha,
-                               int *loss_ptr);
+enum AVPixelFormat avcodec_find_best_pix_fmt2(const enum AVPixelFormat *pix_fmt_list,
+                                              enum AVPixelFormat src_pix_fmt,
+                                              int has_alpha, int *loss_ptr);
 #else
-    enum AVPixelFormat
-    avcodec_find_best_pix_fmt2(enum AVPixelFormat dst_pix_fmt1,
-                               enum AVPixelFormat dst_pix_fmt2,
-                               enum AVPixelFormat src_pix_fmt, int has_alpha,
-                               int *loss_ptr);
+enum AVPixelFormat avcodec_find_best_pix_fmt2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2,
+                                            enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr);
 #endif
 
-enum AVPixelFormat avcodec_default_get_format(struct AVCodecContext *s,
-                                              const enum AVPixelFormat *fmt);
+
+enum AVPixelFormat avcodec_default_get_format(struct AVCodecContext *s, const enum AVPixelFormat * fmt);
 
 /**
  * @}
  */
 
 #if FF_API_SET_DIMENSIONS
 /**
  * @deprecated this function is not supposed to be used from outside of lavc
  */
-attribute_deprecated void avcodec_set_dimensions(AVCodecContext *s, int width,
-                                                 int height);
+attribute_deprecated
+void avcodec_set_dimensions(AVCodecContext *s, int width, int height);
 #endif
 
 /**
  * Put a string representing the codec tag codec_tag in buf.
  *
  * @param buf       buffer to place codec tag in
  * @param buf_size size in bytes of buf
  * @param codec_tag codec tag to assign
  * @return the length of the string that would have been generated if
  * enough space had been available, excluding the trailing null
  */
-size_t av_get_codec_tag_string(char *buf, size_t buf_size,
-                               unsigned int codec_tag);
+size_t av_get_codec_tag_string(char *buf, size_t buf_size, unsigned int codec_tag);
 
 void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode);
 
 /**
  * Return a name for the specified profile, if available.
  *
  * @param codec the codec that is searched for the given profile
  * @param profile the profile value for which a name is requested
@@ -5135,24 +5067,19 @@ const char *av_get_profile_name(const AV
  * @return A name for the profile if found, NULL otherwise.
  *
  * @note unlike av_get_profile_name(), which searches a list of profiles
  *       supported by a specific decoder or encoder implementation, this
  *       function searches the list of profiles from the AVCodecDescriptor
  */
 const char *avcodec_profile_name(enum AVCodecID codec_id, int profile);
 
-int avcodec_default_execute(AVCodecContext *c,
-                            int (*func)(AVCodecContext *c2, void *arg2),
-                            void *arg, int *ret, int count, int size);
-int avcodec_default_execute2(AVCodecContext *c,
-                             int (*func)(AVCodecContext *c2, void *arg2, int,
-                                         int),
-                             void *arg, int *ret, int count);
-// FIXME func typedef
+int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2),void *arg, int *ret, int count, int size);
+int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2, int, int),void *arg, int *ret, int count);
+//FIXME func typedef
 
 /**
  * Fill AVFrame audio data and linesize pointers.
  *
  * The buffer buf must be a preallocated buffer with a size big enough
  * to contain the specified samples amount. The filled AVFrame data
  * pointers will point to this buffer.
  *
@@ -5175,18 +5102,18 @@ int avcodec_default_execute2(AVCodecCont
 int avcodec_fill_audio_frame(AVFrame *frame, int nb_channels,
                              enum AVSampleFormat sample_fmt, const uint8_t *buf,
                              int buf_size, int align);
 
 /**
  * Reset the internal decoder state / flush internal buffers. Should be called
  * e.g. when seeking or when switching to a different stream.
  *
- * @note when refcounted frames are not used (i.e. avctx->refcounted_frames is
- * 0), this invalidates the frames previously returned from the decoder. When
+ * @note when refcounted frames are not used (i.e. avctx->refcounted_frames is 0),
+ * this invalidates the frames previously returned from the decoder. When
  * refcounted frames are used, the decoder just releases any references it might
  * keep internally, but the caller's reference remains valid.
  */
 void avcodec_flush_buffers(AVCodecContext *avctx);
 
 /**
  * Return codec bits per sample.
  *
@@ -5218,36 +5145,39 @@ int av_get_exact_bits_per_sample(enum AV
  *
  * @param avctx        codec context
  * @param frame_bytes  size of the frame, or 0 if unknown
  * @return             frame duration, in samples, if known. 0 if not able to
  *                     determine.
  */
 int av_get_audio_frame_duration(AVCodecContext *avctx, int frame_bytes);
 
+
 typedef struct AVBitStreamFilterContext {
-  void *priv_data;
-  struct AVBitStreamFilter *filter;
-  AVCodecParserContext *parser;
-  struct AVBitStreamFilterContext *next;
-  /**
-   * Internal default arguments, used if NULL is passed to
-   * av_bitstream_filter_filter(). Not for access by library users.
-   */
-  char *args;
+    void *priv_data;
+    struct AVBitStreamFilter *filter;
+    AVCodecParserContext *parser;
+    struct AVBitStreamFilterContext *next;
+    /**
+     * Internal default arguments, used if NULL is passed to av_bitstream_filter_filter().
+     * Not for access by library users.
+     */
+    char *args;
 } AVBitStreamFilterContext;
 
+
 typedef struct AVBitStreamFilter {
-  const char *name;
-  int priv_data_size;
-  int (*filter)(AVBitStreamFilterContext *bsfc, AVCodecContext *avctx,
-                const char *args, uint8_t **poutbuf, int *poutbuf_size,
-                const uint8_t *buf, int buf_size, int keyframe);
-  void (*close)(AVBitStreamFilterContext *bsfc);
-  struct AVBitStreamFilter *next;
+    const char *name;
+    int priv_data_size;
+    int (*filter)(AVBitStreamFilterContext *bsfc,
+                  AVCodecContext *avctx, const char *args,
+                  uint8_t **poutbuf, int *poutbuf_size,
+                  const uint8_t *buf, int buf_size, int keyframe);
+    void (*close)(AVBitStreamFilterContext *bsfc);
+    struct AVBitStreamFilter *next;
 } AVBitStreamFilter;
 
 /**
  * Register a bitstream filter.
  *
  * The filter will be accessible to the application code through
  * av_bitstream_filter_next() or can be directly initialized with
  * av_bitstream_filter_init().
@@ -5271,31 +5201,26 @@ AVBitStreamFilterContext *av_bitstream_f
 /**
  * Filter bitstream.
  *
  * This function filters the buffer buf with size buf_size, and places the
  * filtered buffer in the buffer pointed to by poutbuf.
  *
  * The output buffer must be freed by the caller.
  *
- * @param bsfc            bitstream filter context created by
- * av_bitstream_filter_init()
+ * @param bsfc            bitstream filter context created by av_bitstream_filter_init()
  * @param avctx           AVCodecContext accessed by the filter, may be NULL.
- *                        If specified, this must point to the encoder context
- * of the output stream the packet is sent to.
- * @param args            arguments which specify the filter configuration, may
- * be NULL
- * @param poutbuf         pointer which is updated to point to the filtered
- * buffer
- * @param poutbuf_size    pointer which is updated to the filtered buffer size
- * in bytes
+ *                        If specified, this must point to the encoder context of the
+ *                        output stream the packet is sent to.
+ * @param args            arguments which specify the filter configuration, may be NULL
+ * @param poutbuf         pointer which is updated to point to the filtered buffer
+ * @param poutbuf_size    pointer which is updated to the filtered buffer size in bytes
  * @param buf             buffer containing the data to filter
  * @param buf_size        size in bytes of buf
- * @param keyframe        set to non-zero if the buffer to filter corresponds to
- * a key-frame packet data
+ * @param keyframe        set to non-zero if the buffer to filter corresponds to a key-frame packet data
  * @return >= 0 in case of success, or a negative error code in case of failure
  *
  * If the return value is positive, an output buffer is allocated and
  * is available in *poutbuf, and is distinct from the input buffer.
  *
  * If the return value is 0, the output buffer is not allocated and
  * should be considered identical to the input buffer, or in case
  * *poutbuf was set it points to the input buffer (not necessarily to
@@ -5353,58 +5278,59 @@ unsigned int av_xiphlacing(unsigned char
 #if FF_API_MISSING_SAMPLE
 /**
  * Log a generic warning message about a missing feature. This function is
  * intended to be used internally by FFmpeg (libavcodec, libavformat, etc.)
  * only, and would normally not be used by applications.
  * @param[in] avc a pointer to an arbitrary struct of which the first field is
  * a pointer to an AVClass struct
  * @param[in] feature string containing the name of the missing feature
- * @param[in] want_sample indicates if samples are wanted which exhibit this
- * feature. If want_sample is non-zero, additional verbage will be added to the
- * log message which tells the user how to report samples to the development
+ * @param[in] want_sample indicates if samples are wanted which exhibit this feature.
+ * If want_sample is non-zero, additional verbage will be added to the log
+ * message which tells the user how to report samples to the development
  * mailing list.
  * @deprecated Use avpriv_report_missing_feature() instead.
  */
-attribute_deprecated void av_log_missing_feature(void *avc, const char *feature,
-                                                 int want_sample);
+attribute_deprecated
+void av_log_missing_feature(void *avc, const char *feature, int want_sample);
 
 /**
  * Log a generic warning message asking for a sample. This function is
  * intended to be used internally by FFmpeg (libavcodec, libavformat, etc.)
  * only, and would normally not be used by applications.
  * @param[in] avc a pointer to an arbitrary struct of which the first field is
  * a pointer to an AVClass struct
  * @param[in] msg string containing an optional message, or NULL if no message
  * @deprecated Use avpriv_request_sample() instead.
  */
-attribute_deprecated void av_log_ask_for_sample(void *avc, const char *msg, ...)
-    av_printf_format(2, 3);
+attribute_deprecated
+void av_log_ask_for_sample(void *avc, const char *msg, ...) av_printf_format(2, 3);
 #endif /* FF_API_MISSING_SAMPLE */
 
 /**
  * Register the hardware accelerator hwaccel.
  */
 void av_register_hwaccel(AVHWAccel *hwaccel);
 
 /**
  * If hwaccel is NULL, returns the first registered hardware accelerator,
  * if hwaccel is non-NULL, returns the next registered hardware accelerator
  * after hwaccel, or NULL if hwaccel is the last one.
  */
 AVHWAccel *av_hwaccel_next(const AVHWAccel *hwaccel);
 
+
 /**
  * Lock operation used by lockmgr
  */
 enum AVLockOp {
-  AV_LOCK_CREATE,   ///< Create a mutex
-  AV_LOCK_OBTAIN,   ///< Lock the mutex
-  AV_LOCK_RELEASE,  ///< Unlock the mutex
-  AV_LOCK_DESTROY,  ///< Free mutex resources
+  AV_LOCK_CREATE,  ///< Create a mutex
+  AV_LOCK_OBTAIN,  ///< Lock the mutex
+  AV_LOCK_RELEASE, ///< Unlock the mutex
+  AV_LOCK_DESTROY, ///< Free mutex resources
 };
 
 /**
  * Register a user provided lock manager supporting the operations
  * specified by AVLockOp. The "mutex" argument to the function points
  * to a (void *) where the lockmgr should store/get a pointer to a user
  * allocated mutex. It is NULL upon AV_LOCK_CREATE and equal to the
  * value left by the last call for all other ops. If the lock manager is
--- a/dom/media/platforms/ffmpeg/ffmpeg57/include/libavcodec/avfft.h
+++ b/dom/media/platforms/ffmpeg/ffmpeg57/include/libavcodec/avfft.h
@@ -30,26 +30,25 @@
  * @ingroup lavc_misc
  *
  * @{
  */
 
 typedef float FFTSample;
 
 typedef struct FFTComplex {
-  FFTSample re, im;
+    FFTSample re, im;
 } FFTComplex;
 
 typedef struct FFTContext FFTContext;
 
 /**
  * Set up a complex FFT.
  * @param nbits           log2 of the length of the input array
- * @param inverse         if 0 perform the forward transform, if 1 perform the
- * inverse
+ * @param inverse         if 0 perform the forward transform, if 1 perform the inverse
  */
 FFTContext *av_fft_init(int nbits, int inverse);
 
 /**
  * Do the permutation needed BEFORE calling ff_fft_calc().
  */
 void av_fft_permute(FFTContext *s, FFTComplex *z);
 
@@ -65,20 +64,20 @@ FFTContext *av_mdct_init(int nbits, int 
 void av_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input);
 void av_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input);
 void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input);
 void av_mdct_end(FFTContext *s);
 
 /* Real Discrete Fourier Transform */
 
 enum RDFTransformType {
-  DFT_R2C,
-  IDFT_C2R,
-  IDFT_R2C,
-  DFT_C2R,
+    DFT_R2C,
+    IDFT_C2R,
+    IDFT_R2C,
+    DFT_C2R,
 };
 
 typedef struct RDFTContext RDFTContext;
 
 /**
  * Set up a real FFT.
  * @param nbits           log2 of the length of the input array
  * @param trans           the type of transform
@@ -87,33 +86,33 @@ RDFTContext *av_rdft_init(int nbits, enu
 void av_rdft_calc(RDFTContext *s, FFTSample *data);
 void av_rdft_end(RDFTContext *s);
 
 /* Discrete Cosine Transform */
 
 typedef struct DCTContext DCTContext;
 
 enum DCTTransformType {
-  DCT_II = 0,
-  DCT_III,
-  DCT_I,
-  DST_I,
+    DCT_II = 0,
+    DCT_III,
+    DCT_I,
+    DST_I,
 };
 
 /**
  * Set up DCT.
  *
  * @param nbits           size of the input array:
  *                        (1 << nbits)     for DCT-II, DCT-III and DST-I
  *                        (1 << nbits) + 1 for DCT-I
  * @param type            the type of transform
  *
  * @note the first element of the input of DST-I is ignored
  */
 DCTContext *av_dct_init(int nbits, enum DCTTransformType type);
 void av_dct_calc(DCTContext *s, FFTSample *data);
-void av_dct_end(DCTContext *s);
+void av_dct_end (DCTContext *s);
 
 /**
  * @}
  */
 
 #endif /* AVCODEC_AVFFT_H */
--- a/dom/media/platforms/ffmpeg/ffmpeg57/include/libavcodec/vaapi.h
+++ b/dom/media/platforms/ffmpeg/ffmpeg57/include/libavcodec/vaapi.h
@@ -45,133 +45,145 @@
  * the client video application.
  * This shall be zero-allocated and available as
  * AVCodecContext.hwaccel_context. All user members can be set once
  * during initialization or through each AVCodecContext.get_buffer()
  * function call. In any case, they must be valid prior to calling
  * decoding functions.
  */
 struct vaapi_context {
-  /**
-   * Window system dependent data
-   *
-   * - encoding: unused
-   * - decoding: Set by user
-   */
-  void *display;
+    /**
+     * Window system dependent data
+     *
+     * - encoding: unused
+     * - decoding: Set by user
+     */
+    void *display;
 
-  /**
-   * Configuration ID
-   *
-   * - encoding: unused
-   * - decoding: Set by user
-   */
-  uint32_t config_id;
+    /**
+     * Configuration ID
+     *
+     * - encoding: unused
+     * - decoding: Set by user
+     */
+    uint32_t config_id;
 
-  /**
-   * Context ID (video decode pipeline)
-   *
-   * - encoding: unused
-   * - decoding: Set by user
-   */
-  uint32_t context_id;
+    /**
+     * Context ID (video decode pipeline)
+     *
+     * - encoding: unused
+     * - decoding: Set by user
+     */
+    uint32_t context_id;
 
 #if FF_API_VAAPI_CONTEXT
-  /**
-   * VAPictureParameterBuffer ID
-   *
-   * - encoding: unused
-   * - decoding: Set by libavcodec
-   */
-  attribute_deprecated uint32_t pic_param_buf_id;
+    /**
+     * VAPictureParameterBuffer ID
+     *
+     * - encoding: unused
+     * - decoding: Set by libavcodec
+     */
+    attribute_deprecated
+    uint32_t pic_param_buf_id;
 
-  /**
-   * VAIQMatrixBuffer ID
-   *
-   * - encoding: unused
-   * - decoding: Set by libavcodec
-   */
-  attribute_deprecated uint32_t iq_matrix_buf_id;
+    /**
+     * VAIQMatrixBuffer ID
+     *
+     * - encoding: unused
+     * - decoding: Set by libavcodec
+     */
+    attribute_deprecated
+    uint32_t iq_matrix_buf_id;
 
-  /**
-   * VABitPlaneBuffer ID (for VC-1 decoding)
-   *
-   * - encoding: unused
-   * - decoding: Set by libavcodec
-   */
-  attribute_deprecated uint32_t bitplane_buf_id;
+    /**
+     * VABitPlaneBuffer ID (for VC-1 decoding)
+     *
+     * - encoding: unused
+     * - decoding: Set by libavcodec
+     */
+    attribute_deprecated
+    uint32_t bitplane_buf_id;
 
-  /**
-   * Slice parameter/data buffer IDs
-   *
-   * - encoding: unused
-   * - decoding: Set by libavcodec
-   */
-  attribute_deprecated uint32_t *slice_buf_ids;
+    /**
+     * Slice parameter/data buffer IDs
+     *
+     * - encoding: unused
+     * - decoding: Set by libavcodec
+     */
+    attribute_deprecated
+    uint32_t *slice_buf_ids;
 
-  /**
-   * Number of effective slice buffer IDs to send to the HW
-   *
-   * - encoding: unused
-   * - decoding: Set by libavcodec
-   */
-  attribute_deprecated unsigned int n_slice_buf_ids;
+    /**
+     * Number of effective slice buffer IDs to send to the HW
+     *
+     * - encoding: unused
+     * - decoding: Set by libavcodec
+     */
+    attribute_deprecated
+    unsigned int n_slice_buf_ids;
 
-  /**
-   * Size of pre-allocated slice_buf_ids
-   *
-   * - encoding: unused
-   * - decoding: Set by libavcodec
-   */
-  attribute_deprecated unsigned int slice_buf_ids_alloc;
+    /**
+     * Size of pre-allocated slice_buf_ids
+     *
+     * - encoding: unused
+     * - decoding: Set by libavcodec
+     */
+    attribute_deprecated
+    unsigned int slice_buf_ids_alloc;
 
-  /**
-   * Pointer to VASliceParameterBuffers
-   *
-   * - encoding: unused
-   * - decoding: Set by libavcodec
-   */
-  attribute_deprecated void *slice_params;
+    /**
+     * Pointer to VASliceParameterBuffers
+     *
+     * - encoding: unused
+     * - decoding: Set by libavcodec
+     */
+    attribute_deprecated
+    void *slice_params;
 
-  /**
-   * Size of a VASliceParameterBuffer element
-   *
-   * - encoding: unused
-   * - decoding: Set by libavcodec
-   */
-  attribute_deprecated unsigned int slice_param_size;
+    /**
+     * Size of a VASliceParameterBuffer element
+     *
+     * - encoding: unused
+     * - decoding: Set by libavcodec
+     */
+    attribute_deprecated
+    unsigned int slice_param_size;
 
-  /**
-   * Size of pre-allocated slice_params
-   *
-   * - encoding: unused
-   * - decoding: Set by libavcodec
-   */
-  attribute_deprecated unsigned int slice_params_alloc;
+    /**
+     * Size of pre-allocated slice_params
+     *
+     * - encoding: unused
+     * - decoding: Set by libavcodec
+     */
+    attribute_deprecated
+    unsigned int slice_params_alloc;
 
-  /**
-   * Number of slices currently filled in
-   *
-   * - encoding: unused
-   * - decoding: Set by libavcodec
-   */
-  attribute_deprecated unsigned int slice_count;
+    /**
+     * Number of slices currently filled in
+     *
+     * - encoding: unused
+     * - decoding: Set by libavcodec
+     */
+    attribute_deprecated
+    unsigned int slice_count;
 
-  /**
-   * Pointer to slice data buffer base
-   * - encoding: unused
-   * - decoding: Set by libavcodec
-   */
-  attribute_deprecated const uint8_t *slice_data;
+    /**
+     * Pointer to slice data buffer base
+     * - encoding: unused
+     * - decoding: Set by libavcodec
+     */
+    attribute_deprecated
+    const uint8_t *slice_data;
 
-  /**
-   * Current size of slice data
-   *
-   * - encoding: unused
-   * - decoding: Set by libavcodec
-   */
-  attribute_deprecated uint32_t slice_data_size;
+    /**
+     * Current size of slice data
+     *
+     * - encoding: unused
+     * - decoding: Set by libavcodec
+     */
+    attribute_deprecated
+    uint32_t slice_data_size;
 #endif
 };
 
 /* @} */
 
 #endif /* AVCODEC_VAAPI_H */
--- a/dom/media/platforms/ffmpeg/ffmpeg57/include/libavcodec/vdpau.h
+++ b/dom/media/platforms/ffmpeg/ffmpeg57/include/libavcodec/vdpau.h
@@ -25,16 +25,17 @@
 #define AVCODEC_VDPAU_H
 
 /**
  * @file
  * @ingroup lavc_codec_hwaccel_vdpau
  * Public libavcodec VDPAU header.
  */
 
+
 /**
  * @defgroup lavc_codec_hwaccel_vdpau VDPAU Decoder and Renderer
  * @ingroup lavc_codec_hwaccel
  *
  * VDPAU hardware acceleration has two modules
  * - VDPAU decoding
  * - VDPAU presentation
  *
@@ -53,20 +54,20 @@
 #include "libavutil/avconfig.h"
 #include "libavutil/attributes.h"
 
 #include "avcodec.h"
 #include "version.h"
 
 #if FF_API_BUFS_VDPAU
 union AVVDPAUPictureInfo {
-  VdpPictureInfoH264 h264;
-  VdpPictureInfoMPEG1Or2 mpeg;
-  VdpPictureInfoVC1 vc1;
-  VdpPictureInfoMPEG4Part2 mpeg4;
+    VdpPictureInfoH264        h264;
+    VdpPictureInfoMPEG1Or2    mpeg;
+    VdpPictureInfoVC1          vc1;
+    VdpPictureInfoMPEG4Part2 mpeg4;
 };
 #endif
 
 struct AVCodecContext;
 struct AVFrame;
 
 typedef int (*AVVDPAU_Render2)(struct AVCodecContext *, struct AVFrame *,
                                const VdpPictureInfo *, uint32_t,
@@ -82,61 +83,65 @@ typedef int (*AVVDPAU_Render2)(struct AV
  * function call. In any case, they must be valid prior to calling
  * decoding functions.
  *
  * The size of this structure is not a part of the public ABI and must not
  * be used outside of libavcodec. Use av_vdpau_alloc_context() to allocate an
  * AVVDPAUContext.
  */
 typedef struct AVVDPAUContext {
-  /**
-   * VDPAU decoder handle
-   *
-   * Set by user.
-   */
-  VdpDecoder decoder;
+    /**
+     * VDPAU decoder handle
+     *
+     * Set by user.
+     */
+    VdpDecoder decoder;
 
-  /**
-   * VDPAU decoder render callback
-   *
-   * Set by the user.
-   */
-  VdpDecoderRender *render;
+    /**
+     * VDPAU decoder render callback
+     *
+     * Set by the user.
+     */
+    VdpDecoderRender *render;
 
 #if FF_API_BUFS_VDPAU
-  /**
-   * VDPAU picture information
-   *
-   * Set by libavcodec.
-   */
-  attribute_deprecated union AVVDPAUPictureInfo info;
+    /**
+     * VDPAU picture information
+     *
+     * Set by libavcodec.
+     */
+    attribute_deprecated
+    union AVVDPAUPictureInfo info;
 
-  /**
-   * Allocated size of the bitstream_buffers table.
-   *
-   * Set by libavcodec.
-   */
-  attribute_deprecated int bitstream_buffers_allocated;
+    /**
+     * Allocated size of the bitstream_buffers table.
+     *
+     * Set by libavcodec.
+     */
+    attribute_deprecated
+    int bitstream_buffers_allocated;
 
-  /**
-   * Useful bitstream buffers in the bitstream buffers table.
-   *
-   * Set by libavcodec.
-   */
-  attribute_deprecated int bitstream_buffers_used;
+    /**
+     * Useful bitstream buffers in the bitstream buffers table.
+     *
+     * Set by libavcodec.
+     */
+    attribute_deprecated
+    int bitstream_buffers_used;
 
-  /**
-   * Table of bitstream buffers.
-   * The user is responsible for freeing this buffer using av_freep().
-   *
-   * Set by libavcodec.
-   */
-  attribute_deprecated VdpBitstreamBuffer *bitstream_buffers;
+   /**
+     * Table of bitstream buffers.
+     * The user is responsible for freeing this buffer using av_freep().
+     *
+     * Set by libavcodec.
+     */
+    attribute_deprecated
+    VdpBitstreamBuffer *bitstream_buffers;
 #endif
-  AVVDPAU_Render2 render2;
+    AVVDPAU_Render2 render2;
 } AVVDPAUContext;
 
 /**
  * @brief allocation function for AVVDPAUContext
  *
  * Allows extending the struct without breaking API/ABI
  */
 AVVDPAUContext *av_alloc_vdpaucontext(void);
@@ -200,18 +205,18 @@ AVVDPAUContext *av_vdpau_alloc_context(v
  *
  * @param avctx the codec context being used for decoding the stream
  * @param profile a pointer into which the result will be written on success.
  *                The contents of profile are undefined if this function returns
  *                an error.
  *
  * @return 0 on success (non-negative), a negative AVERROR on failure.
  */
-attribute_deprecated int av_vdpau_get_profile(AVCodecContext *avctx,
-                                              VdpDecoderProfile *profile);
+attribute_deprecated
+int av_vdpau_get_profile(AVCodecContext *avctx, VdpDecoderProfile *profile);
 #endif
 
 #if FF_API_CAP_VDPAU
 /** @brief The videoSurface is used for rendering. */
 #define FF_VDPAU_STATE_USED_FOR_RENDER 1
 
 /**
  * @brief The videoSurface is needed for reference/prediction.
@@ -222,27 +227,27 @@ attribute_deprecated int av_vdpau_get_pr
 /**
  * @brief This structure is used as a callback between the FFmpeg
  * decoder (vd_) and presentation (vo_) module.
  * This is used for defining a video frame containing surface,
  * picture parameter, bitstream information etc which are passed
  * between the FFmpeg decoder and its clients.
  */
 struct vdpau_render_state {
-  VdpVideoSurface surface;  ///< Used as rendered surface, never changed.
+    VdpVideoSurface surface; ///< Used as rendered surface, never changed.
 
-  int state;  ///< Holds FF_VDPAU_STATE_* values.
+    int state; ///< Holds FF_VDPAU_STATE_* values.
 
-  /** picture parameter information for all supported codecs */
-  union AVVDPAUPictureInfo info;
+    /** picture parameter information for all supported codecs */
+    union AVVDPAUPictureInfo info;
 
-  /** Describe size/location of the compressed video data.
-      Set to 0 when freeing bitstream_buffers. */
-  int bitstream_buffers_allocated;
-  int bitstream_buffers_used;
-  /** The user is responsible for freeing this buffer using av_freep(). */
-  VdpBitstreamBuffer *bitstream_buffers;
+    /** Describe size/location of the compressed video data.
+        Set to 0 when freeing bitstream_buffers. */
+    int bitstream_buffers_allocated;
+    int bitstream_buffers_used;
+    /** The user is responsible for freeing this buffer using av_freep(). */
+    VdpBitstreamBuffer *bitstream_buffers;
 };
 #endif
 
 /* @}*/
 
 #endif /* AVCODEC_VDPAU_H */
--- a/dom/media/platforms/ffmpeg/ffmpeg57/include/libavcodec/version.h
+++ b/dom/media/platforms/ffmpeg/ffmpeg57/include/libavcodec/version.h
@@ -23,188 +23,188 @@
 /**
  * @file
  * @ingroup libavc
  * Libavcodec version macros.
  */
 
 #include "libavutil/version.h"
 
-#define LIBAVCODEC_VERSION_MAJOR 57
-#define LIBAVCODEC_VERSION_MINOR 22
+#define LIBAVCODEC_VERSION_MAJOR  57
+#define LIBAVCODEC_VERSION_MINOR  22
 #define LIBAVCODEC_VERSION_MICRO 100
 
-#define LIBAVCODEC_VERSION_INT                                       \
-  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, LIBAVCODEC_VERSION_MINOR, \
-                 LIBAVCODEC_VERSION_MICRO)
-#define LIBAVCODEC_VERSION                                       \
-  AV_VERSION(LIBAVCODEC_VERSION_MAJOR, LIBAVCODEC_VERSION_MINOR, \
-             LIBAVCODEC_VERSION_MICRO)
-#define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT
+#define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
+                                               LIBAVCODEC_VERSION_MINOR, \
+                                               LIBAVCODEC_VERSION_MICRO)
+#define LIBAVCODEC_VERSION      AV_VERSION(LIBAVCODEC_VERSION_MAJOR,    \
+                                           LIBAVCODEC_VERSION_MINOR,    \
+                                           LIBAVCODEC_VERSION_MICRO)
+#define LIBAVCODEC_BUILD        LIBAVCODEC_VERSION_INT
 
-#define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION)
+#define LIBAVCODEC_IDENT        "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION)
 
 /**
  * FF_API_* defines may be placed below to indicate public API that will be
  * dropped at a future version bump. The defines themselves are not part of
  * the public API and may change, break or disappear at any time.
  *
  * @note, when bumping the major version it is recommended to manually
  * disable each FF_API_* in its own commit instead of disabling them all
  * at once through the bump. This improves the git bisect-ability of the change.
  */
 
 #ifndef FF_API_VIMA_DECODER
-#define FF_API_VIMA_DECODER (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_VIMA_DECODER     (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_AUDIO_CONVERT
-#define FF_API_AUDIO_CONVERT (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_AUDIO_CONVERT     (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_AVCODEC_RESAMPLE
-#define FF_API_AVCODEC_RESAMPLE FF_API_AUDIO_CONVERT
+#define FF_API_AVCODEC_RESAMPLE  FF_API_AUDIO_CONVERT
 #endif
 #ifndef FF_API_MISSING_SAMPLE
-#define FF_API_MISSING_SAMPLE (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_MISSING_SAMPLE    (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_LOWRES
-#define FF_API_LOWRES (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_LOWRES            (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_CAP_VDPAU
-#define FF_API_CAP_VDPAU (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_CAP_VDPAU         (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_BUFS_VDPAU
-#define FF_API_BUFS_VDPAU (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_BUFS_VDPAU        (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_VOXWARE
-#define FF_API_VOXWARE (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_VOXWARE           (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_SET_DIMENSIONS
-#define FF_API_SET_DIMENSIONS (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_SET_DIMENSIONS    (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_DEBUG_MV
-#define FF_API_DEBUG_MV (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_DEBUG_MV          (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_AC_VLC
-#define FF_API_AC_VLC (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_AC_VLC            (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_OLD_MSMPEG4
-#define FF_API_OLD_MSMPEG4 (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_OLD_MSMPEG4       (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_ASPECT_EXTENDED
-#define FF_API_ASPECT_EXTENDED (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_ASPECT_EXTENDED   (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_ARCH_ALPHA
-#define FF_API_ARCH_ALPHA (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_ARCH_ALPHA        (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_XVMC
-#define FF_API_XVMC (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_XVMC              (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_ERROR_RATE
-#define FF_API_ERROR_RATE (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_ERROR_RATE        (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_QSCALE_TYPE
-#define FF_API_QSCALE_TYPE (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_QSCALE_TYPE       (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_MB_TYPE
-#define FF_API_MB_TYPE (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_MB_TYPE           (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_MAX_BFRAMES
-#define FF_API_MAX_BFRAMES (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_MAX_BFRAMES       (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_NEG_LINESIZES
-#define FF_API_NEG_LINESIZES (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_NEG_LINESIZES     (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_EMU_EDGE
-#define FF_API_EMU_EDGE (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_EMU_EDGE          (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_ARCH_SH4
-#define FF_API_ARCH_SH4 (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_ARCH_SH4          (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_ARCH_SPARC
-#define FF_API_ARCH_SPARC (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_ARCH_SPARC        (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_UNUSED_MEMBERS
-#define FF_API_UNUSED_MEMBERS (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_UNUSED_MEMBERS    (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_IDCT_XVIDMMX
-#define FF_API_IDCT_XVIDMMX (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_IDCT_XVIDMMX      (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_INPUT_PRESERVED
-#define FF_API_INPUT_PRESERVED (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_INPUT_PRESERVED   (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_NORMALIZE_AQP
-#define FF_API_NORMALIZE_AQP (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_NORMALIZE_AQP     (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_GMC
-#define FF_API_GMC (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_GMC               (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_MV0
-#define FF_API_MV0 (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_MV0               (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_CODEC_NAME
-#define FF_API_CODEC_NAME (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_CODEC_NAME        (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_AFD
-#define FF_API_AFD (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_AFD               (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_VISMV
 /* XXX: don't forget to drop the -vismv documentation */
-#define FF_API_VISMV (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_VISMV             (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_AUDIOENC_DELAY
-#define FF_API_AUDIOENC_DELAY (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_AUDIOENC_DELAY    (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_VAAPI_CONTEXT
-#define FF_API_VAAPI_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 58)
+#define FF_API_VAAPI_CONTEXT     (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_AVCTX_TIMEBASE
-#define FF_API_AVCTX_TIMEBASE (LIBAVCODEC_VERSION_MAJOR < 59)
+#define FF_API_AVCTX_TIMEBASE    (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 #ifndef FF_API_MPV_OPT
-#define FF_API_MPV_OPT (LIBAVCODEC_VERSION_MAJOR < 59)
+#define FF_API_MPV_OPT           (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 #ifndef FF_API_STREAM_CODEC_TAG
-#define FF_API_STREAM_CODEC_TAG (LIBAVCODEC_VERSION_MAJOR < 59)
+#define FF_API_STREAM_CODEC_TAG  (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 #ifndef FF_API_QUANT_BIAS
-#define FF_API_QUANT_BIAS (LIBAVCODEC_VERSION_MAJOR < 59)
+#define FF_API_QUANT_BIAS        (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 #ifndef FF_API_RC_STRATEGY
-#define FF_API_RC_STRATEGY (LIBAVCODEC_VERSION_MAJOR < 59)
+#define FF_API_RC_STRATEGY       (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 #ifndef FF_API_CODED_FRAME
-#define FF_API_CODED_FRAME (LIBAVCODEC_VERSION_MAJOR < 59)
+#define FF_API_CODED_FRAME       (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 #ifndef FF_API_MOTION_EST
-#define FF_API_MOTION_EST (LIBAVCODEC_VERSION_MAJOR < 59)
+#define FF_API_MOTION_EST        (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 #ifndef FF_API_WITHOUT_PREFIX
-#define FF_API_WITHOUT_PREFIX (LIBAVCODEC_VERSION_MAJOR < 59)
+#define FF_API_WITHOUT_PREFIX    (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 #ifndef FF_API_SIDEDATA_ONLY_PKT
 #define FF_API_SIDEDATA_ONLY_PKT (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 #ifndef FF_API_VDPAU_PROFILE
-#define FF_API_VDPAU_PROFILE (LIBAVCODEC_VERSION_MAJOR < 59)
+#define FF_API_VDPAU_PROFILE     (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 #ifndef FF_API_CONVERGENCE_DURATION
 #define FF_API_CONVERGENCE_DURATION (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 #ifndef FF_API_AVPICTURE
-#define FF_API_AVPICTURE (LIBAVCODEC_VERSION_MAJOR < 59)
+#define FF_API_AVPICTURE         (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 #ifndef FF_API_AVPACKET_OLD_API
 #define FF_API_AVPACKET_OLD_API (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 #ifndef FF_API_RTP_CALLBACK
-#define FF_API_RTP_CALLBACK (LIBAVCODEC_VERSION_MAJOR < 59)
+#define FF_API_RTP_CALLBACK      (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 #ifndef FF_API_VBV_DELAY
-#define FF_API_VBV_DELAY (LIBAVCODEC_VERSION_MAJOR < 59)
+#define FF_API_VBV_DELAY         (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 #ifndef FF_API_CODER_TYPE
-#define FF_API_CODER_TYPE (LIBAVCODEC_VERSION_MAJOR < 59)
+#define FF_API_CODER_TYPE        (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 #ifndef FF_API_STAT_BITS
-#define FF_API_STAT_BITS (LIBAVCODEC_VERSION_MAJOR < 59)
+#define FF_API_STAT_BITS         (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 
 #endif /* AVCODEC_VERSION_H */
--- a/dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/attributes.h
+++ b/dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/attributes.h
@@ -22,146 +22,147 @@
  * @file
  * Macro definitions for various function/variable attributes
  */
 
 #ifndef AVUTIL_ATTRIBUTES_H
 #define AVUTIL_ATTRIBUTES_H
 
 #ifdef __GNUC__
-#define AV_GCC_VERSION_AT_LEAST(x, y) \
-  (__GNUC__ > (x) || __GNUC__ == (x) && __GNUC_MINOR__ >= (y))
-#define AV_GCC_VERSION_AT_MOST(x, y) \
-  (__GNUC__ < (x) || __GNUC__ == (x) && __GNUC_MINOR__ <= (y))
+#    define AV_GCC_VERSION_AT_LEAST(x,y) (__GNUC__ > (x) || __GNUC__ == (x) && __GNUC_MINOR__ >= (y))
+#    define AV_GCC_VERSION_AT_MOST(x,y)  (__GNUC__ < (x) || __GNUC__ == (x) && __GNUC_MINOR__ <= (y))
 #else
-#define AV_GCC_VERSION_AT_LEAST(x, y) 0
-#define AV_GCC_VERSION_AT_MOST(x, y) 0
+#    define AV_GCC_VERSION_AT_LEAST(x,y) 0
+#    define AV_GCC_VERSION_AT_MOST(x,y)  0
 #endif
 
 #ifndef av_always_inline
-#if AV_GCC_VERSION_AT_LEAST(3, 1)
-#define av_always_inline __attribute__((always_inline)) inline
+#if AV_GCC_VERSION_AT_LEAST(3,1)
+#    define av_always_inline __attribute__((always_inline)) inline
 #elif defined(_MSC_VER)
-#define av_always_inline __forceinline
+#    define av_always_inline __forceinline
 #else
-#define av_always_inline inline
+#    define av_always_inline inline
 #endif
 #endif
 
 #ifndef av_extern_inline
 #if defined(__ICL) && __ICL >= 1210 || defined(__GNUC_STDC_INLINE__)
-#define av_extern_inline extern inline
+#    define av_extern_inline extern inline
 #else
-#define av_extern_inline inline
+#    define av_extern_inline inline
 #endif
 #endif
 
-#if AV_GCC_VERSION_AT_LEAST(3, 4)
-#define av_warn_unused_result __attribute__((warn_unused_result))
+#if AV_GCC_VERSION_AT_LEAST(3,4)
+#    define av_warn_unused_result __attribute__((warn_unused_result))
 #else
-#define av_warn_unused_result
+#    define av_warn_unused_result
 #endif
 
-#if AV_GCC_VERSION_AT_LEAST(3, 1)
-#define av_noinline __attribute__((noinline))
+#if AV_GCC_VERSION_AT_LEAST(3,1)
+#    define av_noinline __attribute__((noinline))
 #elif defined(_MSC_VER)
-#define av_noinline __declspec(noinline)
+#    define av_noinline __declspec(noinline)
 #else
-#define av_noinline
+#    define av_noinline
 #endif
 
-#if AV_GCC_VERSION_AT_LEAST(3, 1)
-#define av_pure __attribute__((pure))
+#if AV_GCC_VERSION_AT_LEAST(3,1)
+#    define av_pure __attribute__((pure))
 #else
-#define av_pure
+#    define av_pure
 #endif
 
-#if AV_GCC_VERSION_AT_LEAST(2, 6)
-#define av_const __attribute__((const))
+#if AV_GCC_VERSION_AT_LEAST(2,6)
+#    define av_const __attribute__((const))
 #else
-#define av_const
+#    define av_const
 #endif
 
-#if AV_GCC_VERSION_AT_LEAST(4, 3)
-#define av_cold __attribute__((cold))
+#if AV_GCC_VERSION_AT_LEAST(4,3)
+#    define av_cold __attribute__((cold))
 #else
-#define av_cold
+#    define av_cold
 #endif
 
-#if AV_GCC_VERSION_AT_LEAST(4, 1) && !defined(__llvm__)
-#define av_flatten __attribute__((flatten))
+#if AV_GCC_VERSION_AT_LEAST(4,1) && !defined(__llvm__)
+#    define av_flatten __attribute__((flatten))
 #else
-#define av_flatten
+#    define av_flatten
 #endif
 
-#if AV_GCC_VERSION_AT_LEAST(3, 1)
-#define attribute_deprecated __attribute__((deprecated))
+#if AV_GCC_VERSION_AT_LEAST(3,1)
+#    define attribute_deprecated __attribute__((deprecated))
 #elif defined(_MSC_VER)
-#define attribute_deprecated __declspec(deprecated)
+#    define attribute_deprecated __declspec(deprecated)
 #else
-#define attribute_deprecated
+#    define attribute_deprecated
 #endif
 
 /**
  * Disable warnings about deprecated features
  * This is useful for sections of code kept for backward compatibility and
  * scheduled for removal.
  */
 #ifndef AV_NOWARN_DEPRECATED
-#if AV_GCC_VERSION_AT_LEAST(4, 6)
-#define AV_NOWARN_DEPRECATED(code)                                    \
-  _Pragma("GCC diagnostic push")                                      \
-      _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
-          code _Pragma("GCC diagnostic pop")
+#if AV_GCC_VERSION_AT_LEAST(4,6)
+#    define AV_NOWARN_DEPRECATED(code) \
+        _Pragma("GCC diagnostic push") \
+        _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
+        code \
+        _Pragma("GCC diagnostic pop")
 #elif defined(_MSC_VER)
-#define AV_NOWARN_DEPRECATED(code)                                \
-  __pragma(warning(push)) __pragma(warning(disable : 4996)) code; \
-  __pragma(warning(pop))
+#    define AV_NOWARN_DEPRECATED(code) \
+        __pragma(warning(push)) \
+        __pragma(warning(disable : 4996)) \
+        code; \
+        __pragma(warning(pop))
 #else
-#define AV_NOWARN_DEPRECATED(code) code
+#    define AV_NOWARN_DEPRECATED(code) code
 #endif
 #endif
 
+
 #if defined(__GNUC__)
-#define av_unused __attribute__((unused))
+#    define av_unused __attribute__((unused))
 #else
-#define av_unused
+#    define av_unused
 #endif
 
 /**
  * Mark a variable as used and prevent the compiler from optimizing it
  * away.  This is useful for variables accessed only from inline
  * assembler without the compiler being aware.
  */
-#if AV_GCC_VERSION_AT_LEAST(3, 1)
-#define av_used __attribute__((used))
+#if AV_GCC_VERSION_AT_LEAST(3,1)
+#    define av_used __attribute__((used))
 #else
-#define av_used
+#    define av_used
 #endif
 
-#if AV_GCC_VERSION_AT_LEAST(3, 3)
-#define av_alias __attribute__((may_alias))
+#if AV_GCC_VERSION_AT_LEAST(3,3)
+#   define av_alias __attribute__((may_alias))
 #else
-#define av_alias
+#   define av_alias
 #endif
 
 #if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(__clang__)
-#define av_uninit(x) x = x
+#    define av_uninit(x) x=x
 #else
-#define av_uninit(x) x
+#    define av_uninit(x) x
 #endif
 
 #ifdef __GNUC__
-#define av_builtin_constant_p __builtin_constant_p
-#define av_printf_format(fmtpos, attrpos) \
-  __attribute__((__format__(__printf__, fmtpos, attrpos)))
+#    define av_builtin_constant_p __builtin_constant_p
+#    define av_printf_format(fmtpos, attrpos) __attribute__((__format__(__printf__, fmtpos, attrpos)))
 #else
-#define av_builtin_constant_p(x) 0
-#define av_printf_format(fmtpos, attrpos)
+#    define av_builtin_constant_p(x) 0
+#    define av_printf_format(fmtpos, attrpos)
 #endif
 
-#if AV_GCC_VERSION_AT_LEAST(2, 5)
-#define av_noreturn __attribute__((noreturn))
+#if AV_GCC_VERSION_AT_LEAST(2,5)
+#    define av_noreturn __attribute__((noreturn))
 #else
-#define av_noreturn
+#    define av_noreturn
 #endif
 
 #endif /* AVUTIL_ATTRIBUTES_H */
--- a/dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/avutil.h
+++ b/dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/avutil.h
@@ -146,16 +146,17 @@
  *
  * @defgroup version_utils Library Version Macros
  *
  * @{
  *
  * @}
  */
 
+
 /**
  * @addtogroup lavu_ver
  * @{
  */
 
 /**
  * Return the LIBAVUTIL_VERSION_INT constant.
  */
@@ -183,23 +184,23 @@ const char *avutil_license(void);
  */
 
 /**
  * @addtogroup lavu_media Media Type
  * @brief Media Type
  */
 
 enum AVMediaType {
-  AVMEDIA_TYPE_UNKNOWN = -1,  ///< Usually treated as AVMEDIA_TYPE_DATA
-  AVMEDIA_TYPE_VIDEO,
-  AVMEDIA_TYPE_AUDIO,
-  AVMEDIA_TYPE_DATA,  ///< Opaque data information usually continuous
-  AVMEDIA_TYPE_SUBTITLE,
-  AVMEDIA_TYPE_ATTACHMENT,  ///< Opaque data information usually sparse
-  AVMEDIA_TYPE_NB
+    AVMEDIA_TYPE_UNKNOWN = -1,  ///< Usually treated as AVMEDIA_TYPE_DATA
+    AVMEDIA_TYPE_VIDEO,
+    AVMEDIA_TYPE_AUDIO,
+    AVMEDIA_TYPE_DATA,          ///< Opaque data information usually continuous
+    AVMEDIA_TYPE_SUBTITLE,
+    AVMEDIA_TYPE_ATTACHMENT,    ///< Opaque data information usually sparse
+    AVMEDIA_TYPE_NB
 };
 
 /**
  * Return a string describing the media_type enum, NULL if media_type
  * is unknown.
  */
 const char *av_get_media_type_string(enum AVMediaType media_type);
 
@@ -209,21 +210,21 @@ const char *av_get_media_type_string(enu
  *
  * @defgroup lavu_enc Encoding specific
  *
  * @note those definition should move to avcodec
  * @{
  */
 
 #define FF_LAMBDA_SHIFT 7
-#define FF_LAMBDA_SCALE (1 << FF_LAMBDA_SHIFT)
-#define FF_QP2LAMBDA 118  ///< factor to convert from H.263 QP to lambda
-#define FF_LAMBDA_MAX (256 * 128 - 1)
+#define FF_LAMBDA_SCALE (1<<FF_LAMBDA_SHIFT)
+#define FF_QP2LAMBDA 118 ///< factor to convert from H.263 QP to lambda
+#define FF_LAMBDA_MAX (256*128-1)
 
-#define FF_QUALITY_SCALE FF_LAMBDA_SCALE  // FIXME maybe remove
+#define FF_QUALITY_SCALE FF_LAMBDA_SCALE //FIXME maybe remove
 
 /**
  * @}
  * @defgroup lavu_time Timestamp specific
  *
  * FFmpeg internal timebase and timestamp definitions
  *
  * @{
@@ -231,50 +232,49 @@ const char *av_get_media_type_string(enu
 
 /**
  * @brief Undefined timestamp value
  *
  * Usually reported by demuxer that work on containers that do not provide
  * either pts or dts.
  */
 
-#define AV_NOPTS_VALUE ((int64_t)UINT64_C(0x8000000000000000))
+#define AV_NOPTS_VALUE          ((int64_t)UINT64_C(0x8000000000000000))
 
 /**
  * Internal time base represented as integer
  */
 
-#define AV_TIME_BASE 1000000
+#define AV_TIME_BASE            1000000
 
 /**
  * Internal time base represented as fractional value
  */
 
-#define AV_TIME_BASE_Q \
-  (AVRational) { 1, AV_TIME_BASE }
+#define AV_TIME_BASE_Q          (AVRational){1, AV_TIME_BASE}
 
 /**
  * @}
  * @}
  * @defgroup lavu_picture Image related
  *
  * AVPicture types, pixel formats and basic image planes manipulation.
  *
  * @{
  */
 
 enum AVPictureType {
-  AV_PICTURE_TYPE_NONE = 0,  ///< Undefined
-  AV_PICTURE_TYPE_I,         ///< Intra
-  AV_PICTURE_TYPE_P,         ///< Predicted
-  AV_PICTURE_TYPE_B,         ///< Bi-dir predicted
-  AV_PICTURE_TYPE_S,         ///< S(GMC)-VOP MPEG4
-  AV_PICTURE_TYPE_SI,        ///< Switching Intra
-  AV_PICTURE_TYPE_SP,        ///< Switching Predicted
-  AV_PICTURE_TYPE_BI,        ///< BI type
+    AV_PICTURE_TYPE_NONE = 0, ///< Undefined
+    AV_PICTURE_TYPE_I,     ///< Intra
+    AV_PICTURE_TYPE_P,     ///< Predicted
+    AV_PICTURE_TYPE_B,     ///< Bi-dir predicted
+    AV_PICTURE_TYPE_S,     ///< S(GMC)-VOP MPEG4
+    AV_PICTURE_TYPE_SI,    ///< Switching Intra
+    AV_PICTURE_TYPE_SP,    ///< Switching Predicted
+    AV_PICTURE_TYPE_BI,    ///< BI type
 };
 
 /**
  * Return a single letter to describe the given picture type
  * pict_type.
  *
  * @param[in] pict_type the picture type @return a single character
  * representing the picture type, '?' if pict_type is unknown
@@ -292,40 +292,41 @@ char av_get_picture_type_char(enum AVPic
 #include "macros.h"
 #include "mathematics.h"
 #include "log.h"
 #include "pixfmt.h"
 
 /**
  * Return x default pointer in case p is NULL.
  */
-static inline void *av_x_if_null(const void *p, const void *x) {
-  return (void *)(intptr_t)(p ? p : x);
+static inline void *av_x_if_null(const void *p, const void *x)
+{
+    return (void *)(intptr_t)(p ? p : x);
 }
 
 /**
  * Compute the length of an integer list.
  *
  * @param elsize  size in bytes of each list element (only 1, 2, 4 or 8)
  * @param term    list terminator (usually 0 or -1)
  * @param list    pointer to the list
  * @return  length of the list, in elements, not counting the terminator
  */
-unsigned av_int_list_length_for_size(unsigned elsize, const void *list,
-                                     uint64_t term) av_pure;
+unsigned av_int_list_length_for_size(unsigned elsize,
+                                     const void *list, uint64_t term) av_pure;
 
 /**
  * Compute the length of an integer list.
  *
  * @param term  list terminator (usually 0 or -1)
  * @param list  pointer to the list
  * @return  length of the list, in elements, not counting the terminator
  */
 #define av_int_list_length(list, term) \
-  av_int_list_length_for_size(sizeof(*(list)), list, term)
+    av_int_list_length_for_size(sizeof(*(list)), list, term)
 
 /**
  * Open a file using a UTF-8 filename.
  * The API of this function matches POSIX fopen(), errors are returned through
  * errno.
  */
 FILE *av_fopen_utf8(const char *path, const char *mode);
 
--- a/dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/buffer.h
+++ b/dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/buffer.h
@@ -74,28 +74,28 @@ typedef struct AVBuffer AVBuffer;
 
 /**
  * A reference to a data buffer.
  *
  * The size of this struct is not a part of the public ABI and it is not meant
  * to be allocated directly.
  */
 typedef struct AVBufferRef {
-  AVBuffer *buffer;
+    AVBuffer *buffer;
 
-  /**
-   * The data buffer. It is considered writable if and only if
-   * this is the only reference to the buffer, in which case
-   * av_buffer_is_writable() returns 1.
-   */
-  uint8_t *data;
-  /**
-   * Size of data in bytes.
-   */
-  int size;
+    /**
+     * The data buffer. It is considered writable if and only if
+     * this is the only reference to the buffer, in which case
+     * av_buffer_is_writable() returns 1.
+     */
+    uint8_t *data;
+    /**
+     * Size of data in bytes.
+     */
+    int      size;
 } AVBufferRef;
 
 /**
  * Allocate an AVBuffer of the given size using av_malloc().
  *
  * @return an AVBufferRef of given size or NULL when out of memory
  */
 AVBufferRef *av_buffer_alloc(int size);
@@ -241,17 +241,17 @@ typedef struct AVBufferPool AVBufferPool
  * Allocate and initialize a buffer pool.
  *
  * @param size size of each buffer in this pool
  * @param alloc a function that will be used to allocate new buffers when the
  * pool is empty. May be NULL, then the default allocator will be used
  * (av_buffer_alloc()).
  * @return newly created buffer pool on success, NULL on error.
  */
-AVBufferPool *av_buffer_pool_init(int size, AVBufferRef *(*alloc)(int size));
+AVBufferPool *av_buffer_pool_init(int size, AVBufferRef* (*alloc)(int size));
 
 /**
  * Mark the pool as being available for freeing. It will actually be freed only
  * once all the allocated buffers associated with the pool are released. Thus it
  * is safe to call this function while some of the allocated buffers are still
  * in use.
  *
  * @param pool pointer to the pool to be freed. It will be set to NULL.
--- a/dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/channel_layout.h
+++ b/dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/channel_layout.h
@@ -41,111 +41,90 @@
  * The number of bits set must be equal to the number of channels.
  * The value 0 means that the channel layout is not known.
  * @note this data structure is not powerful enough to handle channels
  * combinations that have the same channel multiple times, such as
  * dual-mono.
  *
  * @{
  */
-#define AV_CH_FRONT_LEFT 0x00000001
-#define AV_CH_FRONT_RIGHT 0x00000002
-#define AV_CH_FRONT_CENTER 0x00000004
-#define AV_CH_LOW_FREQUENCY 0x00000008
-#define AV_CH_BACK_LEFT 0x00000010
-#define AV_CH_BACK_RIGHT 0x00000020
-#define AV_CH_FRONT_LEFT_OF_CENTER 0x00000040
-#define AV_CH_FRONT_RIGHT_OF_CENTER 0x00000080
-#define AV_CH_BACK_CENTER 0x00000100
-#define AV_CH_SIDE_LEFT 0x00000200
-#define AV_CH_SIDE_RIGHT 0x00000400
-#define AV_CH_TOP_CENTER 0x00000800
-#define AV_CH_TOP_FRONT_LEFT 0x00001000
-#define AV_CH_TOP_FRONT_CENTER 0x00002000
-#define AV_CH_TOP_FRONT_RIGHT 0x00004000
-#define AV_CH_TOP_BACK_LEFT 0x00008000
-#define AV_CH_TOP_BACK_CENTER 0x00010000
-#define AV_CH_TOP_BACK_RIGHT 0x00020000
-#define AV_CH_STEREO_LEFT 0x20000000   ///< Stereo downmix.
-#define AV_CH_STEREO_RIGHT 0x40000000  ///< See AV_CH_STEREO_LEFT.
-#define AV_CH_WIDE_LEFT 0x0000000080000000ULL
-#define AV_CH_WIDE_RIGHT 0x0000000100000000ULL
-#define AV_CH_SURROUND_DIRECT_LEFT 0x0000000200000000ULL
-#define AV_CH_SURROUND_DIRECT_RIGHT 0x0000000400000000ULL
-#define AV_CH_LOW_FREQUENCY_2 0x0000000800000000ULL
+#define AV_CH_FRONT_LEFT             0x00000001
+#define AV_CH_FRONT_RIGHT            0x00000002
+#define AV_CH_FRONT_CENTER           0x00000004
+#define AV_CH_LOW_FREQUENCY          0x00000008
+#define AV_CH_BACK_LEFT              0x00000010
+#define AV_CH_BACK_RIGHT             0x00000020
+#define AV_CH_FRONT_LEFT_OF_CENTER   0x00000040
+#define AV_CH_FRONT_RIGHT_OF_CENTER  0x00000080
+#define AV_CH_BACK_CENTER            0x00000100
+#define AV_CH_SIDE_LEFT              0x00000200
+#define AV_CH_SIDE_RIGHT             0x00000400
+#define AV_CH_TOP_CENTER             0x00000800
+#define AV_CH_TOP_FRONT_LEFT         0x00001000
+#define AV_CH_TOP_FRONT_CENTER       0x00002000
+#define AV_CH_TOP_FRONT_RIGHT        0x00004000
+#define AV_CH_TOP_BACK_LEFT          0x00008000
+#define AV_CH_TOP_BACK_CENTER        0x00010000
+#define AV_CH_TOP_BACK_RIGHT         0x00020000
+#define AV_CH_STEREO_LEFT            0x20000000  ///< Stereo downmix.
+#define AV_CH_STEREO_RIGHT           0x40000000  ///< See AV_CH_STEREO_LEFT.
+#define AV_CH_WIDE_LEFT              0x0000000080000000ULL
+#define AV_CH_WIDE_RIGHT             0x0000000100000000ULL
+#define AV_CH_SURROUND_DIRECT_LEFT   0x0000000200000000ULL
+#define AV_CH_SURROUND_DIRECT_RIGHT  0x0000000400000000ULL
+#define AV_CH_LOW_FREQUENCY_2        0x0000000800000000ULL
 
 /** Channel mask value used for AVCodecContext.request_channel_layout
     to indicate that the user requests the channel order of the decoder output
     to be the native codec channel order. */
-#define AV_CH_LAYOUT_NATIVE 0x8000000000000000ULL
+#define AV_CH_LAYOUT_NATIVE          0x8000000000000000ULL
 
 /**
  * @}
  * @defgroup channel_mask_c Audio channel layouts
  * @{
  * */
-#define AV_CH_LAYOUT_MONO (AV_CH_FRONT_CENTER)
-#define AV_CH_LAYOUT_STEREO (AV_CH_FRONT_LEFT | AV_CH_FRONT_RIGHT)
-#define AV_CH_LAYOUT_2POINT1 (AV_CH_LAYOUT_STEREO | AV_CH_LOW_FREQUENCY)
-#define AV_CH_LAYOUT_2_1 (AV_CH_LAYOUT_STEREO | AV_CH_BACK_CENTER)
-#define AV_CH_LAYOUT_SURROUND (AV_CH_LAYOUT_STEREO | AV_CH_FRONT_CENTER)
-#define AV_CH_LAYOUT_3POINT1 (AV_CH_LAYOUT_SURROUND | AV_CH_LOW_FREQUENCY)
-#define AV_CH_LAYOUT_4POINT0 (AV_CH_LAYOUT_SURROUND | AV_CH_BACK_CENTER)
-#define AV_CH_LAYOUT_4POINT1 (AV_CH_LAYOUT_4POINT0 | AV_CH_LOW_FREQUENCY)
-#define AV_CH_LAYOUT_2_2 \
-  (AV_CH_LAYOUT_STEREO | AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT)
-#define AV_CH_LAYOUT_QUAD \
-  (AV_CH_LAYOUT_STEREO | AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT)
-#define AV_CH_LAYOUT_5POINT0 \
-  (AV_CH_LAYOUT_SURROUND | AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT)
-#define AV_CH_LAYOUT_5POINT1 (AV_CH_LAYOUT_5POINT0 | AV_CH_LOW_FREQUENCY)
-#define AV_CH_LAYOUT_5POINT0_BACK \
-  (AV_CH_LAYOUT_SURROUND | AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT)
-#define AV_CH_LAYOUT_5POINT1_BACK \
-  (AV_CH_LAYOUT_5POINT0_BACK | AV_CH_LOW_FREQUENCY)
-#define AV_CH_LAYOUT_6POINT0 (AV_CH_LAYOUT_5POINT0 | AV_CH_BACK_CENTER)
-#define AV_CH_LAYOUT_6POINT0_FRONT \
-  (AV_CH_LAYOUT_2_2 | AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_FRONT_RIGHT_OF_CENTER)
-#define AV_CH_LAYOUT_HEXAGONAL (AV_CH_LAYOUT_5POINT0_BACK | AV_CH_BACK_CENTER)
-#define AV_CH_LAYOUT_6POINT1 (AV_CH_LAYOUT_5POINT1 | AV_CH_BACK_CENTER)
-#define AV_CH_LAYOUT_6POINT1_BACK \
-  (AV_CH_LAYOUT_5POINT1_BACK | AV_CH_BACK_CENTER)
-#define AV_CH_LAYOUT_6POINT1_FRONT \
-  (AV_CH_LAYOUT_6POINT0_FRONT | AV_CH_LOW_FREQUENCY)
-#define AV_CH_LAYOUT_7POINT0 \
-  (AV_CH_LAYOUT_5POINT0 | AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT)
-#define AV_CH_LAYOUT_7POINT0_FRONT                     \
-  (AV_CH_LAYOUT_5POINT0 | AV_CH_FRONT_LEFT_OF_CENTER | \
-   AV_CH_FRONT_RIGHT_OF_CENTER)
-#define AV_CH_LAYOUT_7POINT1 \
-  (AV_CH_LAYOUT_5POINT1 | AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT)
-#define AV_CH_LAYOUT_7POINT1_WIDE                      \
-  (AV_CH_LAYOUT_5POINT1 | AV_CH_FRONT_LEFT_OF_CENTER | \
-   AV_CH_FRONT_RIGHT_OF_CENTER)
-#define AV_CH_LAYOUT_7POINT1_WIDE_BACK                      \
-  (AV_CH_LAYOUT_5POINT1_BACK | AV_CH_FRONT_LEFT_OF_CENTER | \
-   AV_CH_FRONT_RIGHT_OF_CENTER)
-#define AV_CH_LAYOUT_OCTAGONAL                                  \
-  (AV_CH_LAYOUT_5POINT0 | AV_CH_BACK_LEFT | AV_CH_BACK_CENTER | \
-   AV_CH_BACK_RIGHT)
-#define AV_CH_LAYOUT_HEXADECAGONAL                                      \
-  (AV_CH_LAYOUT_OCTAGONAL | AV_CH_WIDE_LEFT | AV_CH_WIDE_RIGHT |        \
-   AV_CH_TOP_BACK_LEFT | AV_CH_TOP_BACK_RIGHT | AV_CH_TOP_BACK_CENTER | \
-   AV_CH_TOP_FRONT_CENTER | AV_CH_TOP_FRONT_LEFT | AV_CH_TOP_FRONT_RIGHT)
-#define AV_CH_LAYOUT_STEREO_DOWNMIX (AV_CH_STEREO_LEFT | AV_CH_STEREO_RIGHT)
+#define AV_CH_LAYOUT_MONO              (AV_CH_FRONT_CENTER)
+#define AV_CH_LAYOUT_STEREO            (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT)
+#define AV_CH_LAYOUT_2POINT1           (AV_CH_LAYOUT_STEREO|AV_CH_LOW_FREQUENCY)
+#define AV_CH_LAYOUT_2_1               (AV_CH_LAYOUT_STEREO|AV_CH_BACK_CENTER)
+#define AV_CH_LAYOUT_SURROUND          (AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER)
+#define AV_CH_LAYOUT_3POINT1           (AV_CH_LAYOUT_SURROUND|AV_CH_LOW_FREQUENCY)
+#define AV_CH_LAYOUT_4POINT0           (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_CENTER)
+#define AV_CH_LAYOUT_4POINT1           (AV_CH_LAYOUT_4POINT0|AV_CH_LOW_FREQUENCY)
+#define AV_CH_LAYOUT_2_2               (AV_CH_LAYOUT_STEREO|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT)
+#define AV_CH_LAYOUT_QUAD              (AV_CH_LAYOUT_STEREO|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)
+#define AV_CH_LAYOUT_5POINT0           (AV_CH_LAYOUT_SURROUND|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT)
+#define AV_CH_LAYOUT_5POINT1           (AV_CH_LAYOUT_5POINT0|AV_CH_LOW_FREQUENCY)
+#define AV_CH_LAYOUT_5POINT0_BACK      (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)
+#define AV_CH_LAYOUT_5POINT1_BACK      (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_LOW_FREQUENCY)
+#define AV_CH_LAYOUT_6POINT0           (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_CENTER)
+#define AV_CH_LAYOUT_6POINT0_FRONT     (AV_CH_LAYOUT_2_2|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER)
+#define AV_CH_LAYOUT_HEXAGONAL         (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_BACK_CENTER)
+#define AV_CH_LAYOUT_6POINT1           (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_CENTER)
+#define AV_CH_LAYOUT_6POINT1_BACK      (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_BACK_CENTER)
+#define AV_CH_LAYOUT_6POINT1_FRONT     (AV_CH_LAYOUT_6POINT0_FRONT|AV_CH_LOW_FREQUENCY)
+#define AV_CH_LAYOUT_7POINT0           (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)
+#define AV_CH_LAYOUT_7POINT0_FRONT     (AV_CH_LAYOUT_5POINT0|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER)
+#define AV_CH_LAYOUT_7POINT1           (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)
+#define AV_CH_LAYOUT_7POINT1_WIDE      (AV_CH_LAYOUT_5POINT1|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER)
+#define AV_CH_LAYOUT_7POINT1_WIDE_BACK (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER)
+#define AV_CH_LAYOUT_OCTAGONAL         (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_CENTER|AV_CH_BACK_RIGHT)
+#define AV_CH_LAYOUT_HEXADECAGONAL     (AV_CH_LAYOUT_OCTAGONAL|AV_CH_WIDE_LEFT|AV_CH_WIDE_RIGHT|AV_CH_TOP_BACK_LEFT|AV_CH_TOP_BACK_RIGHT|AV_CH_TOP_BACK_CENTER|AV_CH_TOP_FRONT_CENTER|AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT)
+#define AV_CH_LAYOUT_STEREO_DOWNMIX    (AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT)
 
 enum AVMatrixEncoding {
-  AV_MATRIX_ENCODING_NONE,
-  AV_MATRIX_ENCODING_DOLBY,
-  AV_MATRIX_ENCODING_DPLII,
-  AV_MATRIX_ENCODING_DPLIIX,
-  AV_MATRIX_ENCODING_DPLIIZ,
-  AV_MATRIX_ENCODING_DOLBYEX,
-  AV_MATRIX_ENCODING_DOLBYHEADPHONE,
-  AV_MATRIX_ENCODING_NB
+    AV_MATRIX_ENCODING_NONE,
+    AV_MATRIX_ENCODING_DOLBY,
+    AV_MATRIX_ENCODING_DPLII,
+    AV_MATRIX_ENCODING_DPLIIX,
+    AV_MATRIX_ENCODING_DPLIIZ,
+    AV_MATRIX_ENCODING_DOLBYEX,
+    AV_MATRIX_ENCODING_DOLBYHEADPHONE,
+    AV_MATRIX_ENCODING_NB
 };
 
 /**
  * Return a channel layout id that matches name, or 0 if no match is found.
  *
  * name can be one or several of the following notations,
  * separated by '+' or '|':
  * - the name of an usual channel layout (mono, stereo, 4.0, quad, 5.0,
@@ -169,25 +148,23 @@ uint64_t av_get_channel_layout(const cha
 
 /**
  * Return a description of a channel layout.
  * If nb_channels is <= 0, it is guessed from the channel_layout.
  *
  * @param buf put here the string containing the channel layout
  * @param buf_size size in bytes of the buffer
  */
-void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels,
-                                  uint64_t channel_layout);
+void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels, uint64_t channel_layout);
 
 struct AVBPrint;
 /**
  * Append a description of a channel layout to a bprint buffer.
  */
-void av_bprint_channel_layout(struct AVBPrint *bp, int nb_channels,
-                              uint64_t channel_layout);
+void av_bprint_channel_layout(struct AVBPrint *bp, int nb_channels, uint64_t channel_layout);
 
 /**
  * Return the number of channels in the channel layout.
  */
 int av_get_channel_layout_nb_channels(uint64_t channel_layout);
 
 /**
  * Return default channel layout for a given number of channels.
--- a/dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/common.h
+++ b/dom/media/platforms/ffmpeg/ffmpeg57/include/libavutil/common.h
@@ -21,18 +21,17 @@
 /**
  * @file
  * common internal and external API header
  */
 
 #ifndef AVUTIL_COMMON_H
 #define AVUTIL_COMMON_H
 
-#if defined(__cplusplus) && !defined(__STDC_CONSTANT_MACROS) && \
-    !defined(UINT64_C)
+#if defined(__cplusplus) && !defined(__STDC_CONSTANT_MACROS) && !defined(UINT64_C)
 #error missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS
 #endif
 
 #include <errno.h>
 #include <inttypes.h>
 #include <limits.h>
 #include <math.h>
 #include <stdint.h>
@@ -41,37 +40,34 @@
 #include <string.h>
 
 #include "attributes.h"
 #include "macros.h"
 #include "version.h"
 #include "libavutil/avconfig.h"
 
 #if AV_HAVE_BIGENDIAN
-#define AV_NE(be, le) (be)
+#   define AV_NE(be, le) (be)
 #else
-#define AV_NE(be, le) (le)
+#   define AV_NE(be, le) (le)
 #endif
 
-// rounded division & shift
-#define RSHIFT(a, b)                          \
-  ((a) > 0 ? ((a) + ((1 << (b)) >> 1)) >> (b) \
-           : ((a) + ((1 << (b)) >> 1) - 1) >> (b))
+//rounded division & shift
+#define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b))
 /* assume b>0 */
-#define ROUNDED_DIV(a, b) \
-  (((a) > 0 ? (a) + ((b) >> 1) : (a) - ((b) >> 1)) / (b))
+#define ROUNDED_DIV(a,b) (((a)>0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b))
 /* assume a>0 and b>0 */
-#define FF_CEIL_RSHIFT(a, b) \
-  (!av_builtin_constant_p(b) ? -((-(a)) >> (b)) : ((a) + (1 << (b)) - 1) >> (b))
-#define FFUDIV(a, b) (((a) > 0 ? (a) : (a) - (b) + 1) / (b))
-#define FFUMOD(a, b) ((a) - (b)*FFUDIV(a, b))
+#define FF_CEIL_RSHIFT(a,b) (!av_builtin_constant_p(b) ? -((-(a)) >> (b)) \
+                                                       : ((a) + (1<<(b)) - 1) >> (b))
+#define FFUDIV(a,b) (((a)>0 ?(a):(a)-(b)+1) / (b))
+#define FFUMOD(a,b) ((a)-(b)*FFUDIV(a,b))
 
 /**
- * Absolute value, Note, INT_MIN / INT64_MIN result in undefined behavior as
- * they are not representable as absolute values of their type. This is the same
+ * Absolute value, Note, INT_MIN / INT64_MIN result in undefined behavior as they
+ * are not representable as absolute values of their type. This is the same
  * as with *abs()
  * @see FFNABS()
  */
 #define FFABS(a) ((a) >= 0 ? (a) : (-(a)))
 #define FFSIGN(a) ((a) > 0 ? 1 : -1)
 
 /**
  * Negative Absolute value.
@@ -85,36 +81,31 @@
  * Comparator.
  * For two numerical expressions x and y, gives 1 if x > y, -1 if x < y, and 0
  * if x == y. This is useful for instance in a qsort comparator callback.
  * Furthermore, compilers are able to optimize this to branchless code, and
  * there is no risk of overflow with signed types.
  * As with many macros, this evaluates its argument multiple times, it thus
  * must not have a side-effect.
  */
-#define FFDIFFSIGN(x, y) (((x) > (y)) - ((x) < (y)))
-
-#define FFMAX(a, b) ((a) > (b) ? (a) : (b))
-#define FFMAX3(a, b, c) FFMAX(FFMAX(a, b), c)
-#define FFMIN(a, b) ((a) > (b) ? (b) : (a))
-#define FFMIN3(a, b, c) FFMIN(FFMIN(a, b), c)
+#define FFDIFFSIGN(x,y) (((x)>(y)) - ((x)<(y)))
 
-#define FFSWAP(type, a, b) \
-  do {                     \
-    type SWAP_tmp = b;     \
-    b = a;                 \
-    a = SWAP_tmp;          \
-  } while (0)
+#define FFMAX(a,b) ((a) > (b) ? (a) : (b))
+#define FFMAX3(a,b,c) FFMAX(FFMAX(a,b),c)
+#define FFMIN(a,b) ((a) > (b) ? (b) : (a))
+#define FFMIN3(a,b,c) FFMIN(FFMIN(a,b),c)
+
+#define FFSWAP(type,a,b) do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0)
 #define FF_ARRAY_ELEMS(a) (sizeof(a) / sizeof((a)[0]))
 
 /* misc math functions */
 
 #ifdef HAVE_AV_CONFIG_H
-#include "config.h"
-#include "intmath.h"
+#   include "config.h"
+#   include "intmath.h"
 #endif
 
 /* Pull in unguarded fallback defines at the end of this file. */
 #include "common.h"
 
 #ifndef av_log2
 av_const int av_log2(unsigned v);
 #endif
@@ -125,241 +116,228 @@ av_const int av_log2_16bit(unsigned v);
 
 /**
  * Clip a signed integer value into the amin-amax range.
  * @param a value to clip
  * @param amin minimum value of the clip range
  * @param amax maximum value of the clip range
  * @return clipped value
  */
-static av_always_inline av_const int av_clip_c(int a, int amin, int amax) {
+static av_always_inline av_const int av_clip_c(int a, int amin, int amax)
+{
 #if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2
-  if (amin > amax) abort();
+    if (amin > amax) abort();
 #endif
-  if (a < amin)
-    return amin;
-  else if (a > amax)
-    return amax;
-  else
-    return a;
+    if      (a < amin) return amin;
+    else if (a > amax) return amax;
+    else               return a;
 }
 
 /**
  * Clip a signed 64bit integer value into the amin-amax range.
  * @param a value to clip
  * @param amin minimum value of the clip range
  * @param amax maximum value of the clip range
  * @return clipped value
  */
-static av_always_inline av_const int64_t av_clip64_c(int64_t a, int64_t amin,
-                                                     int64_t amax) {
+static av_always_inline av_const int64_t av_clip64_c(int64_t a, int64_t amin, int64_t amax)
+{
 #if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2
-  if (amin > amax) abort();
+    if (amin > amax) abort();
 #endif
-  if (a < amin)
-    return amin;
-  else if (a > amax)
-    return amax;
-  else
-    return a;
+    if      (a < amin) return amin;
+    else if (a > amax) return amax;
+    else               return a;
 }
 
 /**
  * Clip a signed integer value into the 0-255 range.
  * @param a value to clip
  * @return clipped value
  */
-static av_always_inline av_const uint8_t av_clip_uint8_c(int a) {
-  if (a & (~0xFF))
-    return (-a) >> 31;
-  else
-    return a;
+static av_always_inline av_const uint8_t av_clip_uint8_c(int a)
+{
+    if (a&(~0xFF)) return (-a)>>31;
+    else           return a;
 }
 
 /**
  * Clip a signed integer value into the -128,127 range.
  * @param a value to clip
  * @return clipped value
  */
-static av_always_inline av_const int8_t av_clip_int8_c(int a) {
-  if ((a + 0x80U) & ~0xFF)
-    return (a >> 31) ^ 0x7F;
-  else
-    return a;
+static av_always_inline av_const int8_t av_clip_int8_c(int a)
+{
+    if ((a+0x80U) & ~0xFF) return (a>>31) ^ 0x7F;
+    else                  return a;
 }
 
 /**
  * Clip a signed integer value into the 0-65535 range.
  * @param a value to clip
  * @return clipped value
  */
-static av_always_inline av_const uint16_t av_clip_uint16_c(int a) {
-  if (a & (~0xFFFF))
-    return (-a) >> 31;
-  else
-    return a;
+static av_always_inline av_const uint16_t av_clip_uint16_c(int a)
+{
+    if (a&(~0xFFFF)) return (-a)>>31;
+    else             return a;
 }
 
 /**
  * Clip a signed integer value into the -32768,32767 range.
  * @param a value to clip
  * @return clipped value
  */
-static av_always_inline av_const int16_t av_clip_int16_c(int a) {
-  if ((a + 0x8000U) & ~0xFFFF)
-    return (a >> 31) ^ 0x7FFF;
-  else
-    return a;
+static av_always_inline av_const int16_t av_clip_int16_c(int a)
+{
+    if ((a+0x8000U) & ~0xFFFF) return (a>>31) ^ 0x7FFF;
+    else                      return a;
 }
 
 /**
  * Clip a signed 64-bit integer value into the -2147483648,2147483647 range.
  * @param a value to clip
  * @return clipped value
  */
-static av_always_inline av_const int32_t av_clipl_int32_c(int64_t a) {
-  if ((a + 0x80000000u) & ~UINT64_C(0xFFFFFFFF))
-    return (int32_t)((a >> 63) ^ 0x7FFFFFFF);
-  else
-    return (int32_t)a;
+static av_always_inline av_const int32_t av_clipl_int32_c(int64_t a)
+{
+    if ((a+0x80000000u) & ~UINT64_C(0xFFFFFFFF)) return (int32_t)((a>>63) ^ 0x7FFFFFFF);
+    else                                         return (int32_t)a;
 }
 
 /**
  * Clip a signed integer into the -(2^p),(2^p-1) range.
  * @param  a value to clip
  * @param  p bit position to clip at
  * @return clipped value
  */
-static av_always_inline av_const int av_clip_intp2_c(int a, int p) {
-  if ((a + (1 << p)) & ~((2 << p) - 1))
-    return (a >> 31) ^ ((1 << p) - 1);
-  else
-    return a;
+static av_always_inline av_const int av_clip_intp2_c(int a, int p)
+{
+    if ((a + (1 << p)) & ~((2 << p) - 1))
+        return (a >> 31) ^ ((1 << p) - 1);
+    else
+        return a;
 }
 
 /**
  * Clip a signed integer to an unsigned power of two range.
  * @param  a value to clip
  * @param  p bit position to clip at
  * @return clipped value
  */
-static av_always_inline av_const unsigned av_clip_uintp2_c(int a, int p) {
-  if (a & ~((1 << p) - 1))
-    return -a >> 31 & ((1 << p) - 1);
-  else
-    return a;
+static av_always_inline av_const unsigned av_clip_uintp2_c(int a, int p)
+{
+    if (a & ~((1<<p) - 1)) return -a >> 31 & ((1<<p) - 1);
+    else                   return  a;
 }
 
 /**
  * Clear high bits from an unsigned integer starting with specific bit position
  * @param  a value to clip
  * @param  p bit position to clip at
  * @return clipped value
  */
-static av_always_inline av_const unsigned av_mod_uintp2_c(unsigned a,
-                                                          unsigned p) {
-  return a & ((1 << p) - 1);
+static av_always_inline av_const unsigned av_mod_uintp2_c(unsigned a, unsigned p)
+{
+    return a & ((1 << p) - 1);
 }
 
 /**
  * Add two signed 32-bit values with saturation.
  *
  * @param  a one value
  * @param  b another value
  * @return sum with signed saturation
  */
-static av_always_inline int av_sat_add32_c(int a, int b) {
-  return av_clipl_int32((int64_t)a + b);
+static av_always_inline int av_sat_add32_c(int a, int b)
+{
+    return av_clipl_int32((int64_t)a + b);
 }
 
 /**
  * Add a doubled value to another value with saturation at both stages.
  *
  * @param  a first value
  * @param  b value doubled and added to a
  * @return sum with signed saturation
  */
-static av_always_inline int av_sat_dadd32_c(int a, int b) {
-  return av_sat_add32(a, av_sat_add32(b, b));
+static av_always_inline int av_sat_dadd32_c(int a, int b)
+{
+    return av_sat_add32(a, av_sat_add32(b, b));
 }
 
 /**
  * Clip a float value into the amin-amax range.
  * @param a value to clip
  * @param amin minimum value of the clip range
  * @param amax maximum value of the clip range
  * @return clipped value
  */
-static av_always_inline av_const float av_clipf_c(float a, float amin,
-                                                  float amax) {
+static av_always_inline av_const float av_clipf_c(float a, float amin, float amax)
+{
 #if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2
-  if (amin > amax) abort();
+    if (amin > amax) abort();
 #endif
-  if (a < amin)
-    return amin;
-  else if (a > amax)
-    return amax;
-  else
-    return a;
+    if      (a < amin) return amin;
+    else if (a > amax) return amax;
+    else               return a;
 }
 
 /**
  * Clip a double value into the amin-amax range.
  * @param a value to clip
  * @param amin minimum value of the clip range
  * @param amax maximum value of the clip range
  * @return clipped value
  */
-static av_always_inline av_const double av_clipd_c(double a, double amin,
-                                                   double amax) {
+static av_always_inline av_const double av_clipd_c(double a, double amin, double amax)
+{
 #if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2
-  if (amin > amax) abort();
+    if (amin > amax) abort();
 #endif
-  if (a < amin)
-    return amin;
-  else if (a > amax)
-    return amax;
-  else
-    return a;
+    if      (a < amin) return amin;
+    else if (a > amax) return amax;
+    else               return a;
 }
 
 /** Compute ceil(log2(x)).
  * @param x value used to compute ceil(log2(x))
  * @return computed ceiling of log2(x)
  */
-static av_always_inline av_const int av_ceil_log2_c(int x) {
-  return av_log2((x - 1) << 1);
+static av_always_inline av_const int av_ceil_log2_c(int x)
+{
+    return av_log2((x - 1) << 1);
 }
 
 /**
  * Count number of bits set to one in x
  * @param x value to count bits of
  * @return the number of bits set to one in x
  */
-static av_always_inline av_const int av_popcount_c(uint32_t x) {
-  x -= (x >> 1) & 0x55555555;
-  x = (x & 0x33333333) + ((x >> 2) & 0x33333333);
-  x = (x + (x >> 4)) & 0x0F0F0F0F;
-  x += x >> 8;
-  return (x + (x >> 16)) & 0x3F;
+static av_always_inline av_const int av_popcount_c(uint32_t x)
+{
+    x -= (x >> 1) & 0x55555555;
+    x = (x & 0x33333333) + ((x >> 2) & 0x33333333);
+    x = (x + (x >> 4)) & 0x0F0F0F0F;
+    x += x >> 8;
+    return (x + (x >> 16)) & 0x3F;
 }
 
 /**
  * Count number of bits set to one in x
  * @param x value to count bits of
  * @return the number of bits set to one in x
  */
-static av_always_inline av_const int av_popcount64_c(uint64_t x) {
-  return av_popcount((uint32_t)x) + av_popcount((uint32_t)(x >> 32));
+static av_always_inline av_const int av_popcount64_c(uint64_t x)
+{
+    return av_popcount((uint32_t)x) + av_popcount((uint32_t)(x >> 32));
 }
 
-#define MKTAG(a, b, c, d) \
-  ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24))
-#define MKBETAG(a, b, c, d) \
-  ((d) | ((c) << 8) | ((b) << 16) | ((unsigned)(a) << 24))
+#define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24))
+#define MKBETAG(a,b,c,d) ((d) | ((c) << 8) | ((b) << 16) | ((unsigned)(a) << 24))
 
 /**
  * Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form.
  *
  * @param val      Output value, must be an lvalue of type uint32_t.
  * @param GET_BYTE Expression reading one byte from the input.
  *                 Evaluated up to 7 times (4 for the currently
  *                 assigned Unicode range).  With a memory buffer
@@ -367,171 +345,175 @@ static av_always_inline av_const int av_
  * @param ERROR    Expression to be evaluated on invalid input,
  *                 typically a goto statement.
  *
  * @warning ERROR should not contain a loop control statement which
  * could interact with the internal while loop, and should force an
  * exit from the macro code (e.g. through a goto or a return) in order
  * to prevent undefined results.
  */
-#define GET_UTF8(val, GET_BYTE, ERROR)             \
-  val = GET_BYTE;                                  \
-  {                                                \
-    uint32_t top = (val & 128) >> 1;               \
-    if ((val & 0xc0) == 0x80 || val >= 0xFE) ERROR \
-    while (val & top) {                            \
-      int tmp = GET_BYTE - 128;                    \
-      if (tmp >> 6) ERROR                          \
-      val = (val << 6) + tmp;                      \
-      top <<= 5;                                   \
-    }                                              \
-    val &= (top << 1) - 1;                         \
-  }
+#define GET_UTF8(val, GET_BYTE, ERROR)\
+    val= GET_BYTE;\
+    {\
+        uint32_t top = (val & 128) >> 1;\
+        if ((val & 0xc0) == 0x80 || val >= 0xFE)\
+            ERROR\
+        while (val & top) {\
+            int tmp= GET_BYTE - 128;\
+            if(tmp>>6)\
+                ERROR\
+            val= (val<<6) + tmp;\
+            top <<= 5;\
+        }\
+        val &= (top << 1) - 1;\
+    }
 
 /**
  * Convert a UTF-16 character (2 or 4 bytes) to its 32-bit UCS-4 encoded form.
  *
  * @param val       Output value, must be an lvalue of type uint32_t.
  * @param GET_16BIT Expression returning two bytes of UTF-16 data converted
  *                  to native byte order.  Evaluated one or two times.
  * @param ERROR     Expression to be evaluated on invalid input,
  *                  typically a goto statement.
  */
-#define GET_UTF16(val, GET_16BIT, ERROR)     \
-  val = GET_16BIT;                           \
-  {                                          \
-    unsigned int hi = val - 0xD800;          \
-    if (hi < 0x800) {                        \
-      val = GET_16BIT - 0xDC00;              \
-      if (val > 0x3FFU || hi > 0x3FFU) ERROR \
-      val += (hi << 10) + 0x10000;           \
-    }                                        \
-  }
+#define GET_UTF16(val, GET_16BIT, ERROR)\
+    val = GET_16BIT;\
+    {\
+        unsigned int hi = val - 0xD800;\
+        if (hi < 0x800) {\
+            val = GET_16BIT - 0xDC00;\
+            if (val > 0x3FFU || hi > 0x3FFU)\
+                ERROR\
+            val += (hi<<10) + 0x10000;\
+        }\
+    }\
 
 /**
  * @def PUT_UTF8(val, tmp, PUT_BYTE)
- * Convert a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes
- * long).
+ * Convert a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes long).
  * @param val is an input-only argument and should be of type uint32_t. It holds
  * a UCS-4 encoded Unicode character that is to be converted to UTF-8. If
  * val is given as a function it is executed only once.
  * @param tmp is a temporary variable and should be of type uint8_t. It
  * represents an intermediate value during conversion that is to be
  * output by PUT_BYTE.
  * @param PUT_BYTE writes the converted UTF-8 bytes to any proper destination.
  * It could be a function or a statement, and uses tmp as the input byte.
  * For example, PUT_BYTE could be "*output++ = tmp;" PUT_BYTE will be
  * executed up to 4 times for values in the valid UTF-8 range and up to
  * 7 times in the general case, depending on the length of the converted
  * Unicode character.
  */
-#define PUT_UTF8(val, tmp, PUT_BYTE)                \
-  {                                                 \
-    int bytes, shift;                               \
-    uint32_t in = val;                              \
-    if (in < 0x80) {                                \
-      tmp = in;                                     \
-      PUT_BYTE                                      \
-    } else {                                        \
-      bytes = (av_log2(in) + 4) / 5;                \
-      shift = (bytes - 1) * 6;                      \
-      tmp = (256 - (256 >> bytes)) | (in >> shift); \
-      PUT_BYTE                                      \
-      while (shift >= 6) {                          \
-        shift -= 6;                                 \
-        tmp = 0x80 | ((in >> shift) & 0x3f);        \
-        PUT_BYTE                                    \
-      }                                             \
-    }                                               \
-  }
+#define PUT_UTF8(val, tmp, PUT_BYTE)\
+    {\
+        int bytes, shift;\
+        uint32_t in = val;\
+        if (in < 0x80) {\
+            tmp = in;\
+            PUT_BYTE\
+        } else {\
+            bytes = (av_log2(in) + 4) / 5;\
+            shift = (bytes - 1) * 6;\
+            tmp = (256 - (256 >> bytes)) | (in >> shift);\
+            PUT_BYTE\
+            while (shift >= 6) {\
+                shift -= 6;\
+                tmp = 0x80 | ((in >> shift) & 0x3f);\
+                PUT_BYTE\
+            }\
+        }\
+    }
 
 /**
  * @def PUT_UTF16(val, tmp, PUT_16BIT)
  * Convert a 32-bit Unicode character to its UTF-16 encoded form (2 or 4 bytes).
  * @param val is an input-only argument and should be of type uint32_t. It holds
  * a UCS-4 encoded Unicode character that is to be converted to UTF-16. If
  * val is given as a function it is executed only once.
  * @param tmp is a temporary variable and should be of type uint16_t. It
  * represents an intermediate value during conversion that is to be
  * output by PUT_16BIT.
  * @param PUT_16BIT writes the converted UTF-16 data to any proper destination
  * in desired endianness. It could be a function or a statement, and uses tmp
  * as the input byte.  For example, PUT_BYTE could be "*output++ = tmp;"
  * PUT_BYTE will be executed 1 or 2 times depending on input character.
  */
-#define PUT_UTF16(val, tmp, PUT_16BIT)         \