Merge commit 'a420ccd4f2a011887451a7d5e1bebba4fd7c40e2'
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 6 Apr 2014 20:00:07 +0000 (22:00 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 6 Apr 2014 20:19:16 +0000 (22:19 +0200)
* commit 'a420ccd4f2a011887451a7d5e1bebba4fd7c40e2':
  LucasArts SMUSH SANM video decoder

Conflicts:
Changelog
doc/general.texi
libavcodec/Makefile
libavcodec/allcodecs.c
libavcodec/avcodec.h
libavcodec/sanm.c
libavcodec/version.h

See: 69254f46286099588514454f60fad12f6e51b2cd and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
Changelog
doc/general.texi
libavcodec/avcodec.h
libavcodec/codec_desc.c
libavcodec/sanm.c
libavcodec/utils.c
libavcodec/version.h

diff --cc Changelog
+++ b/Changelog
@@@ -274,49 -137,20 +274,49 @@@ version 1.0
  - Microsoft Expression Encoder Screen decoder
  - RTMPS protocol support
  - RTMPTS protocol support
 -- JPEG 2000 encoding support through OpenJPEG
 -- G.723.1 demuxer and decoder
  - RTMPE protocol support
  - RTMPTE protocol support
- - LucasArts SMUSH playback support
 +- showwaves and showspectrum filter
++- LucasArts SMUSH SANM playback support
 +- SAMI, RealText and SubViewer demuxers and decoders
 +- Heart Of Darkness PAF playback support
 +- iec61883 device
 +- asettb filter
 +- new option: -progress
 +- 3GPP Timed Text encoder/decoder
 +- GeoTIFF decoder support
 +- ffmpeg -(no)stdin option
 +- Opus decoder using libopus
 +- caca output device using libcaca
 +- alphaextract and alphamerge filters
 +- concat filter
 +- flite filter
  - Canopus Lossless Codec decoder
 -- avconv -shortest option is now per-output file,
 +- bitmap subtitles in filters (experimental and temporary)
 +- MP2 encoding via TwoLAME
 +- bmp parser
 +- smptebars source
 +- asetpts filter
 +- hue filter
 +- ICO muxer
 +- SubRip encoder and decoder without embedded timing
 +- edge detection filter
 +- framestep filter
 +- ffmpeg -shortest option is now per-output file
    -pass and -passlogfile are now per-output stream
 +- volume measurement filter
  - Ut Video encoder
  - Microsoft Screen 2 decoder
 +- smartblur filter ported from MPlayer
 +- CPiA decoder
 +- decimate filter ported from MPlayer
  - RTP depacketization of JPEG
  - Smooth Streaming live segmenter muxer
 +- F4V muxer
 +- sendcmd and asendcmd filters
 +- WebVTT demuxer and decoder (simple tags supported)
  - RTP packetization of JPEG
 -- Opus decoder and encoder using libopus
 -- remove -same_quant, it hasn't worked for years
 +- faststart option in the MOV/MP4 muxer
  - support for building with MSVC
  
  
@@@ -683,8 -616,8 +683,8 @@@ following image formats are supported
  @item LCL (LossLess Codec Library) MSZH  @tab     @tab  X
  @item LCL (LossLess Codec Library) ZLIB  @tab  E  @tab  E
  @item LOCO                   @tab     @tab  X
- @item LucasArts Smush        @tab     @tab  X
-     @tab Used in LucasArts games.
 -@item LucasArts SANM         @tab     @tab  X
 -    @tab Used in LucasArts SMUSH animations.
++@item LucasArts SANM/Smush   @tab     @tab  X
++    @tab Used in LucasArts games / SMUSH animations.
  @item lossless MJPEG         @tab  X  @tab  X
  @item Microsoft ATC Screen   @tab     @tab  X
      @tab Also known as Microsoft Screen 3.
@@@ -280,46 -278,18 +280,47 @@@ enum AVCodecID 
      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_ESCAPE130_DEPRECATED,
 +    AV_CODEC_ID_G2M_DEPRECATED,
 +    AV_CODEC_ID_WEBP_DEPRECATED,
      AV_CODEC_ID_HNM4_VIDEO,
 -    AV_CODEC_ID_HEVC,
 +    AV_CODEC_ID_HEVC_DEPRECATED,
      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_BRENDER_PIX_DEPRECATED,
 +    AV_CODEC_ID_PAF_VIDEO_DEPRECATED,
 +    AV_CODEC_ID_EXR_DEPRECATED,
 +    AV_CODEC_ID_VP7_DEPRECATED,
++    AV_CODEC_ID_SANM_DEPRECATED,
 +
 +    AV_CODEC_ID_BRENDER_PIX= MKBETAG('B','P','I','X'),
 +    AV_CODEC_ID_Y41P       = MKBETAG('Y','4','1','P'),
 +    AV_CODEC_ID_ESCAPE130  = MKBETAG('E','1','3','0'),
 +    AV_CODEC_ID_EXR        = MKBETAG('0','E','X','R'),
 +    AV_CODEC_ID_AVRP       = MKBETAG('A','V','R','P'),
 +
 +    AV_CODEC_ID_012V       = MKBETAG('0','1','2','V'),
 +    AV_CODEC_ID_G2M        = MKBETAG( 0 ,'G','2','M'),
 +    AV_CODEC_ID_AVUI       = MKBETAG('A','V','U','I'),
 +    AV_CODEC_ID_AYUV       = MKBETAG('A','Y','U','V'),
 +    AV_CODEC_ID_TARGA_Y216 = MKBETAG('T','2','1','6'),
 +    AV_CODEC_ID_V308       = MKBETAG('V','3','0','8'),
 +    AV_CODEC_ID_V408       = MKBETAG('V','4','0','8'),
 +    AV_CODEC_ID_YUV4       = MKBETAG('Y','U','V','4'),
 +    AV_CODEC_ID_SANM       = MKBETAG('S','A','N','M'),
 +    AV_CODEC_ID_PAF_VIDEO  = MKBETAG('P','A','F','V'),
 +    AV_CODEC_ID_AVRN       = MKBETAG('A','V','R','n'),
 +    AV_CODEC_ID_CPIA       = MKBETAG('C','P','I','A'),
 +    AV_CODEC_ID_XFACE      = MKBETAG('X','F','A','C'),
 +    AV_CODEC_ID_SGIRLE     = MKBETAG('S','G','I','R'),
 +    AV_CODEC_ID_MVC1       = MKBETAG('M','V','C','1'),
 +    AV_CODEC_ID_MVC2       = MKBETAG('M','V','C','2'),
 +    AV_CODEC_ID_SNOW       = MKBETAG('S','N','O','W'),
 +    AV_CODEC_ID_WEBP       = MKBETAG('W','E','B','P'),
 +    AV_CODEC_ID_SMVJPEG    = MKBETAG('S','M','V','J'),
 +    AV_CODEC_ID_HEVC       = MKBETAG('H','2','6','5'),
 +#define AV_CODEC_ID_H265 AV_CODEC_ID_HEVC
 +    AV_CODEC_ID_VP7        = MKBETAG('V','P','7','0'),
  
      /* various PCM "codecs" */
      AV_CODEC_ID_FIRST_AUDIO = 0x10000,     ///< A dummy id pointing at the start of audio codecs
@@@ -1103,95 -1065,6 +1103,88 @@@ static const AVCodecDescriptor codec_de
          .props     = AV_CODEC_PROP_LOSSY,
      },
      {
-         .id        = AV_CODEC_ID_SANM,
-         .type      = AVMEDIA_TYPE_VIDEO,
-         .name      = "sanm",
-         .long_name = NULL_IF_CONFIG_SMALL("LucasArts SMUSH video"),
-         .props     = AV_CODEC_PROP_LOSSY,
-     },
-     {
 +        .id        = AV_CODEC_ID_AVRP,
 +        .type      = AVMEDIA_TYPE_VIDEO,
 +        .name      = "avrp",
 +        .long_name = NULL_IF_CONFIG_SMALL("Avid 1:1 10-bit RGB Packer"),
 +        .props     = AV_CODEC_PROP_INTRA_ONLY,
 +    },
 +    {
 +        .id        = AV_CODEC_ID_012V,
 +        .type      = AVMEDIA_TYPE_VIDEO,
 +        .name      = "012v",
 +        .long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"),
 +        .props     = AV_CODEC_PROP_INTRA_ONLY,
 +    },
 +    {
 +        .id        = AV_CODEC_ID_AVUI,
 +        .type      = AVMEDIA_TYPE_VIDEO,
 +        .name      = "avui",
 +        .long_name = NULL_IF_CONFIG_SMALL("Avid Meridien Uncompressed"),
 +        .props     = AV_CODEC_PROP_INTRA_ONLY,
 +    },
 +    {
 +        .id        = AV_CODEC_ID_AYUV,
 +        .type      = AVMEDIA_TYPE_VIDEO,
 +        .name      = "ayuv",
 +        .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed MS 4:4:4:4"),
 +        .props     = AV_CODEC_PROP_INTRA_ONLY,
 +    },
 +    {
 +        .id        = AV_CODEC_ID_TARGA_Y216,
 +        .type      = AVMEDIA_TYPE_VIDEO,
 +        .name      = "targa_y216",
 +        .long_name = NULL_IF_CONFIG_SMALL("Pinnacle TARGA CineWave YUV16"),
 +        .props     = AV_CODEC_PROP_INTRA_ONLY,
 +    },
 +    {
 +        .id        = AV_CODEC_ID_V308,
 +        .type      = AVMEDIA_TYPE_VIDEO,
 +        .name      = "v308",
 +        .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed 4:4:4"),
 +        .props     = AV_CODEC_PROP_INTRA_ONLY,
 +    },
 +    {
 +        .id        = AV_CODEC_ID_V408,
 +        .type      = AVMEDIA_TYPE_VIDEO,
 +        .name      = "v408",
 +        .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed QT 4:4:4:4"),
 +        .props     = AV_CODEC_PROP_INTRA_ONLY,
 +    },
 +    {
 +        .id        = AV_CODEC_ID_YUV4,
 +        .type      = AVMEDIA_TYPE_VIDEO,
 +        .name      = "yuv4",
 +        .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed 4:2:0"),
 +        .props     = AV_CODEC_PROP_INTRA_ONLY,
 +    },
 +    {
 +        .id        = AV_CODEC_ID_AVRN,
 +        .type      = AVMEDIA_TYPE_VIDEO,
 +        .name      = "avrn",
 +        .long_name = NULL_IF_CONFIG_SMALL("Avid AVI Codec"),
 +    },
 +    {
 +        .id        = AV_CODEC_ID_CPIA,
 +        .type      = AVMEDIA_TYPE_VIDEO,
 +        .name      = "cpia",
 +        .long_name = NULL_IF_CONFIG_SMALL("CPiA video format"),
 +    },
 +    {
 +        .id        = AV_CODEC_ID_XFACE,
 +        .type      = AVMEDIA_TYPE_VIDEO,
 +        .name      = "xface",
 +        .long_name = NULL_IF_CONFIG_SMALL("X-face image"),
 +        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
 +    },
 +    {
 +        .id        = AV_CODEC_ID_SMVJPEG,
 +        .type      = AVMEDIA_TYPE_VIDEO,
 +        .name      = "smv",
 +        .long_name = NULL_IF_CONFIG_SMALL("Sigmatel Motion Video"),
 +    },
 +
 +    {
          .id        = AV_CODEC_ID_G2M,
          .type      = AVMEDIA_TYPE_VIDEO,
          .name      = "g2m",
          .long_name = NULL_IF_CONFIG_SMALL("On2 VP7"),
          .props     = AV_CODEC_PROP_LOSSY,
      },
 -        .long_name = NULL_IF_CONFIG_SMALL("LucasArts SANM video"),
+     {
+         .id        = AV_CODEC_ID_SANM,
+         .type      = AVMEDIA_TYPE_VIDEO,
+         .name      = "sanm",
++        .long_name = NULL_IF_CONFIG_SMALL("LucasArts SANM/SMUSH video"),
+         .props     = AV_CODEC_PROP_LOSSY,
+     },
  
      /* image codecs */
      {
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
- // #define DEBUG 1
+ #include "libavutil/avassert.h"
+ #include "libavutil/bswap.h"
+ #include "libavutil/imgutils.h"
  
  #include "avcodec.h"
- #include "copy_block.h"
  #include "bytestream.h"
+ #include "copy_block.h"
  #include "internal.h"
- #include "libavutil/bswap.h"
- #include "libavutil/imgutils.h"
- #include "sanm_data.h"
- #include "libavutil/avassert.h"
  
  #define NGLYPHS 256
+ #define GLYPH_COORD_VECT_SIZE 16
+ #define PALETTE_SIZE 256
+ #define PALETTE_DELTA 768
+ static const int8_t glyph4_x[GLYPH_COORD_VECT_SIZE] = {
+     0, 1, 2, 3, 3, 3, 3, 2, 1, 0, 0, 0, 1, 2, 2, 1
+ };
+ static const int8_t glyph4_y[GLYPH_COORD_VECT_SIZE] = {
+     0, 0, 0, 0, 1, 2, 3, 3, 3, 3, 2, 1, 1, 1, 2, 2
+ };
+ static const int8_t glyph8_x[GLYPH_COORD_VECT_SIZE] = {
+     0, 2, 5, 7, 7, 7, 7, 7, 7, 5, 2, 0, 0, 0, 0, 0
+ };
  
- typedef struct {
+ static const int8_t glyph8_y[GLYPH_COORD_VECT_SIZE] = {
+     0, 0, 0, 0, 1, 3, 4, 6, 7, 7, 7, 7, 6, 4, 3, 1
+ };
+ static const int8_t motion_vectors[256][2] = {
+     {   0,   0 }, {  -1, -43 }, {   6, -43 }, {  -9, -42 }, {  13, -41 },
+     { -16, -40 }, {  19, -39 }, { -23, -36 }, {  26, -34 }, {  -2, -33 },
+     {   4, -33 }, { -29, -32 }, {  -9, -32 }, {  11, -31 }, { -16, -29 },
+     {  32, -29 }, {  18, -28 }, { -34, -26 }, { -22, -25 }, {  -1, -25 },
+     {   3, -25 }, {  -7, -24 }, {   8, -24 }, {  24, -23 }, {  36, -23 },
+     { -12, -22 }, {  13, -21 }, { -38, -20 }, {   0, -20 }, { -27, -19 },
+     {  -4, -19 }, {   4, -19 }, { -17, -18 }, {  -8, -17 }, {   8, -17 },
+     {  18, -17 }, {  28, -17 }, {  39, -17 }, { -12, -15 }, {  12, -15 },
+     { -21, -14 }, {  -1, -14 }, {   1, -14 }, { -41, -13 }, {  -5, -13 },
+     {   5, -13 }, {  21, -13 }, { -31, -12 }, { -15, -11 }, {  -8, -11 },
+     {   8, -11 }, {  15, -11 }, {  -2, -10 }, {   1, -10 }, {  31, -10 },
+     { -23,  -9 }, { -11,  -9 }, {  -5,  -9 }, {   4,  -9 }, {  11,  -9 },
+     {  42,  -9 }, {   6,  -8 }, {  24,  -8 }, { -18,  -7 }, {  -7,  -7 },
+     {  -3,  -7 }, {  -1,  -7 }, {   2,  -7 }, {  18,  -7 }, { -43,  -6 },
+     { -13,  -6 }, {  -4,  -6 }, {   4,  -6 }, {   8,  -6 }, { -33,  -5 },
+     {  -9,  -5 }, {  -2,  -5 }, {   0,  -5 }, {   2,  -5 }, {   5,  -5 },
+     {  13,  -5 }, { -25,  -4 }, {  -6,  -4 }, {  -3,  -4 }, {   3,  -4 },
+     {   9,  -4 }, { -19,  -3 }, {  -7,  -3 }, {  -4,  -3 }, {  -2,  -3 },
+     {  -1,  -3 }, {   0,  -3 }, {   1,  -3 }, {   2,  -3 }, {   4,  -3 },
+     {   6,  -3 }, {  33,  -3 }, { -14,  -2 }, { -10,  -2 }, {  -5,  -2 },
+     {  -3,  -2 }, {  -2,  -2 }, {  -1,  -2 }, {   0,  -2 }, {   1,  -2 },
+     {   2,  -2 }, {   3,  -2 }, {   5,  -2 }, {   7,  -2 }, {  14,  -2 },
+     {  19,  -2 }, {  25,  -2 }, {  43,  -2 }, {  -7,  -1 }, {  -3,  -1 },
+     {  -2,  -1 }, {  -1,  -1 }, {   0,  -1 }, {   1,  -1 }, {   2,  -1 },
+     {   3,  -1 }, {  10,  -1 }, {  -5,   0 }, {  -3,   0 }, {  -2,   0 },
+     {  -1,   0 }, {   1,   0 }, {   2,   0 }, {   3,   0 }, {   5,   0 },
+     {   7,   0 }, { -10,   1 }, {  -7,   1 }, {  -3,   1 }, {  -2,   1 },
+     {  -1,   1 }, {   0,   1 }, {   1,   1 }, {   2,   1 }, {   3,   1 },
+     { -43,   2 }, { -25,   2 }, { -19,   2 }, { -14,   2 }, {  -5,   2 },
+     {  -3,   2 }, {  -2,   2 }, {  -1,   2 }, {   0,   2 }, {   1,   2 },
+     {   2,   2 }, {   3,   2 }, {   5,   2 }, {   7,   2 }, {  10,   2 },
+     {  14,   2 }, { -33,   3 }, {  -6,   3 }, {  -4,   3 }, {  -2,   3 },
+     {  -1,   3 }, {   0,   3 }, {   1,   3 }, {   2,   3 }, {   4,   3 },
+     {  19,   3 }, {  -9,   4 }, {  -3,   4 }, {   3,   4 }, {   7,   4 },
+     {  25,   4 }, { -13,   5 }, {  -5,   5 }, {  -2,   5 }, {   0,   5 },
+     {   2,   5 }, {   5,   5 }, {   9,   5 }, {  33,   5 }, {  -8,   6 },
+     {  -4,   6 }, {   4,   6 }, {  13,   6 }, {  43,   6 }, { -18,   7 },
+     {  -2,   7 }, {   0,   7 }, {   2,   7 }, {   7,   7 }, {  18,   7 },
+     { -24,   8 }, {  -6,   8 }, { -42,   9 }, { -11,   9 }, {  -4,   9 },
+     {   5,   9 }, {  11,   9 }, {  23,   9 }, { -31,  10 }, {  -1,  10 },
+     {   2,  10 }, { -15,  11 }, {  -8,  11 }, {   8,  11 }, {  15,  11 },
+     {  31,  12 }, { -21,  13 }, {  -5,  13 }, {   5,  13 }, {  41,  13 },
+     {  -1,  14 }, {   1,  14 }, {  21,  14 }, { -12,  15 }, {  12,  15 },
+     { -39,  17 }, { -28,  17 }, { -18,  17 }, {  -8,  17 }, {   8,  17 },
+     {  17,  18 }, {  -4,  19 }, {   0,  19 }, {   4,  19 }, {  27,  19 },
+     {  38,  20 }, { -13,  21 }, {  12,  22 }, { -36,  23 }, { -24,  23 },
+     {  -8,  24 }, {   7,  24 }, {  -3,  25 }, {   1,  25 }, {  22,  25 },
+     {  34,  26 }, { -18,  28 }, { -32,  29 }, {  16,  29 }, { -11,  31 },
+     {   9,  32 }, {  29,  32 }, {  -4,  33 }, {   2,  33 }, { -26,  34 },
+     {  23,  36 }, { -19,  39 }, {  16,  40 }, { -13,  41 }, {   9,  42 },
+     {  -6,  43 }, {   1,  43 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
+ };
+ static const int8_t c37_mv[] = {
 -    0,   0,   1,   0,   2,   0,   3,   0,   5,   0,   8,   0,  13,   0,  21,
 -    0,  -1,   0,  -2,   0,  -3,   0,  -5,   0,  -8,   0, -13,   0, -17,   0,
 -  -21,   0,   0,   1,   1,   1,   2,   1,   3,   1,   5,   1,   8,   1,  13,
 -    1,  21,   1,  -1,   1,  -2,   1,  -3,   1,  -5,   1,  -8,   1, -13,   1,
 -  -17,   1, -21,   1,   0,   2,   1,   2,   2,   2,   3,   2,   5,   2,   8,
 -    2,  13,   2,  21,   2,  -1,   2,  -2,   2,  -3,   2,  -5,   2,  -8,   2,
 -  -13,   2, -17,   2, -21,   2,   0,   3,   1,   3,   2,   3,   3,   3,   5,
 -    3,   8,   3,  13,   3,  21,   3,  -1,   3,  -2,   3,  -3,   3,  -5,   3,
 -   -8,   3, -13,   3, -17,   3, -21,   3,   0,   5,   1,   5,   2,   5,   3,
 -    5,   5,   5,   8,   5,  13,   5,  21,   5,  -1,   5,  -2,   5,  -3,   5,
 -   -5,   5,  -8,   5, -13,   5, -17,   5, -21,   5,   0,   8,   1,   8,   2,
 -    8,   3,   8,   5,   8,   8,   8,  13,   8,  21,   8,  -1,   8,  -2,   8,
 -   -3,   8,  -5,   8,  -8,   8, -13,   8, -17,   8, -21,   8,   0,  13,   1,
 -   13,   2,  13,   3,  13,   5,  13,   8,  13,  13,  13,  21,  13,  -1,  13,
 -   -2,  13,  -3,  13,  -5,  13,  -8,  13, -13,  13, -17,  13, -21,  13,   0,
 -   21,   1,  21,   2,  21,   3,  21,   5,  21,   8,  21,  13,  21,  21,  21,
 -   -1,  21,  -2,  21,  -3,  21,  -5,  21,  -8,  21, -13,  21, -17,  21, -21,
 -   21,   0,  -1,   1,  -1,   2,  -1,   3,  -1,   5,  -1,   8,  -1,  13,  -1,
 -   21,  -1,  -1,  -1,  -2,  -1,  -3,  -1,  -5,  -1,  -8,  -1, -13,  -1, -17,
 -   -1, -21,  -1,   0,  -2,   1,  -2,   2,  -2,   3,  -2,   5,  -2,   8,  -2,
 -   13,  -2,  21,  -2,  -1,  -2,  -2,  -2,  -3,  -2,  -5,  -2,  -8,  -2, -13,
 -   -2, -17,  -2, -21,  -2,   0,  -3,   1,  -3,   2,  -3,   3,  -3,   5,  -3,
 -    8,  -3,  13,  -3,  21,  -3,  -1,  -3,  -2,  -3,  -3,  -3,  -5,  -3,  -8,
 -   -3, -13,  -3, -17,  -3, -21,  -3,   0,  -5,   1,  -5,   2,  -5,   3,  -5,
 -    5,  -5,   8,  -5,  13,  -5,  21,  -5,  -1,  -5,  -2,  -5,  -3,  -5,  -5,
 -   -5,  -8,  -5, -13,  -5, -17,  -5, -21,  -5,   0,  -8,   1,  -8,   2,  -8,
 -    3,  -8,   5,  -8,   8,  -8,  13,  -8,  21,  -8,  -1,  -8,  -2,  -8,  -3,
 -   -8,  -5,  -8,  -8,  -8, -13,  -8, -17,  -8, -21,  -8,   0, -13,   1, -13,
 -    2, -13,   3, -13,   5, -13,   8, -13,  13, -13,  21, -13,  -1, -13,  -2,
 -  -13,  -3, -13,  -5, -13,  -8, -13, -13, -13, -17, -13, -21, -13,   0, -17,
 -    1, -17,   2, -17,   3, -17,   5, -17,   8, -17,  13, -17,  21, -17,  -1,
 -  -17,  -2, -17,  -3, -17,  -5, -17,  -8, -17, -13, -17, -17, -17, -21, -17,
 -    0, -21,   1, -21,   2, -21,   3, -21,   5, -21,   8, -21,  13, -21,  21,
 -  -21,  -1, -21,  -2, -21,  -3, -21,  -5, -21,  -8, -21, -13, -21, -17, -21,
 -    0,   0,  -8, -29,   8, -29, -18, -25,  17, -25,   0, -23,  -6, -22,   6,
 -  -22, -13, -19,  12, -19,   0, -18,  25, -18, -25, -17,  -5, -17,   5, -17,
 -  -10, -15,  10, -15,   0, -14,  -4, -13,   4, -13,  19, -13, -19, -12,  -8,
 -  -11,  -2, -11,   0, -11,   2, -11,   8, -11, -15, -10,  -4, -10,   4, -10,
 -   15, -10,  -6,  -9,  -1,  -9,   1,  -9,   6,  -9, -29,  -8, -11,  -8,  -8,
 -   -8,  -3,  -8,   3,  -8,   8,  -8,  11,  -8,  29,  -8,  -5,  -7,  -2,  -7,
 -    0,  -7,   2,  -7,   5,  -7, -22,  -6,  -9,  -6,  -6,  -6,  -3,  -6,  -1,
 -   -6,   1,  -6,   3,  -6,   6,  -6,   9,  -6,  22,  -6, -17,  -5,  -7,  -5,
 -   -4,  -5,  -2,  -5,   0,  -5,   2,  -5,   4,  -5,   7,  -5,  17,  -5, -13,
 -   -4, -10,  -4,  -5,  -4,  -3,  -4,  -1,  -4,   0,  -4,   1,  -4,   3,  -4,
 -    5,  -4,  10,  -4,  13,  -4,  -8,  -3,  -6,  -3,  -4,  -3,  -3,  -3,  -2,
 -   -3,  -1,  -3,   0,  -3,   1,  -3,   2,  -3,   4,  -3,   6,  -3,   8,  -3,
 -  -11,  -2,  -7,  -2,  -5,  -2,  -3,  -2,  -2,  -2,  -1,  -2,   0,  -2,   1,
 -   -2,   2,  -2,   3,  -2,   5,  -2,   7,  -2,  11,  -2,  -9,  -1,  -6,  -1,
 -   -4,  -1,  -3,  -1,  -2,  -1,  -1,  -1,   0,  -1,   1,  -1,   2,  -1,   3,
 -   -1,   4,  -1,   6,  -1,   9,  -1, -31,   0, -23,   0, -18,   0, -14,   0,
 -  -11,   0,  -7,   0,  -5,   0,  -4,   0,  -3,   0,  -2,   0,  -1,   0,   0,
 -  -31,   1,   0,   2,   0,   3,   0,   4,   0,   5,   0,   7,   0,  11,   0,
 -   14,   0,  18,   0,  23,   0,  31,   0,  -9,   1,  -6,   1,  -4,   1,  -3,
 -    1,  -2,   1,  -1,   1,   0,   1,   1,   1,   2,   1,   3,   1,   4,   1,
 -    6,   1,   9,   1, -11,   2,  -7,   2,  -5,   2,  -3,   2,  -2,   2,  -1,
 -    2,   0,   2,   1,   2,   2,   2,   3,   2,   5,   2,   7,   2,  11,   2,
 -   -8,   3,  -6,   3,  -4,   3,  -2,   3,  -1,   3,   0,   3,   1,   3,   2,
 -    3,   3,   3,   4,   3,   6,   3,   8,   3, -13,   4, -10,   4,  -5,   4,
 -   -3,   4,  -1,   4,   0,   4,   1,   4,   3,   4,   5,   4,  10,   4,  13,
 -    4, -17,   5,  -7,   5,  -4,   5,  -2,   5,   0,   5,   2,   5,   4,   5,
 -    7,   5,  17,   5, -22,   6,  -9,   6,  -6,   6,  -3,   6,  -1,   6,   1,
 -    6,   3,   6,   6,   6,   9,   6,  22,   6,  -5,   7,  -2,   7,   0,   7,
 -    2,   7,   5,   7, -29,   8, -11,   8,  -8,   8,  -3,   8,   3,   8,   8,
 -    8,  11,   8,  29,   8,  -6,   9,  -1,   9,   1,   9,   6,   9, -15,  10,
 -   -4,  10,   4,  10,  15,  10,  -8,  11,  -2,  11,   0,  11,   2,  11,   8,
 -   11,  19,  12, -19,  13,  -4,  13,   4,  13,   0,  14, -10,  15,  10,  15,
 -   -5,  17,   5,  17,  25,  17, -25,  18,   0,  18, -12,  19,  13,  19,  -6,
 -   22,   6,  22,   0,  23, -17,  25,  18,  25,  -8,  29,   8,  29,   0,  31,
 -    0,   0,  -6, -22,   6, -22, -13, -19,  12, -19,   0, -18,  -5, -17,   5,
 -  -17, -10, -15,  10, -15,   0, -14,  -4, -13,   4, -13,  19, -13, -19, -12,
 -   -8, -11,  -2, -11,   0, -11,   2, -11,   8, -11, -15, -10,  -4, -10,   4,
 -  -10,  15, -10,  -6,  -9,  -1,  -9,   1,  -9,   6,  -9, -11,  -8,  -8,  -8,
 -   -3,  -8,   0,  -8,   3,  -8,   8,  -8,  11,  -8,  -5,  -7,  -2,  -7,   0,
 -   -7,   2,  -7,   5,  -7, -22,  -6,  -9,  -6,  -6,  -6,  -3,  -6,  -1,  -6,
 -    1,  -6,   3,  -6,   6,  -6,   9,  -6,  22,  -6, -17,  -5,  -7,  -5,  -4,
 -   -5,  -2,  -5,  -1,  -5,   0,  -5,   1,  -5,   2,  -5,   4,  -5,   7,  -5,
 -   17,  -5, -13,  -4, -10,  -4,  -5,  -4,  -3,  -4,  -2,  -4,  -1,  -4,   0,
 -   -4,   1,  -4,   2,  -4,   3,  -4,   5,  -4,  10,  -4,  13,  -4,  -8,  -3,
 -   -6,  -3,  -4,  -3,  -3,  -3,  -2,  -3,  -1,  -3,   0,  -3,   1,  -3,   2,
 -   -3,   3,  -3,   4,  -3,   6,  -3,   8,  -3, -11,  -2,  -7,  -2,  -5,  -2,
 -   -4,  -2,  -3,  -2,  -2,  -2,  -1,  -2,   0,  -2,   1,  -2,   2,  -2,   3,
 -   -2,   4,  -2,   5,  -2,   7,  -2,  11,  -2,  -9,  -1,  -6,  -1,  -5,  -1,
 -   -4,  -1,  -3,  -1,  -2,  -1,  -1,  -1,   0,  -1,   1,  -1,   2,  -1,   3,
 -   -1,   4,  -1,   5,  -1,   6,  -1,   9,  -1, -23,   0, -18,   0, -14,   0,
 -  -11,   0,  -7,   0,  -5,   0,  -4,   0,  -3,   0,  -2,   0,  -1,   0,   0,
 -  -23,   1,   0,   2,   0,   3,   0,   4,   0,   5,   0,   7,   0,  11,   0,
 -   14,   0,  18,   0,  23,   0,  -9,   1,  -6,   1,  -5,   1,  -4,   1,  -3,
 -    1,  -2,   1,  -1,   1,   0,   1,   1,   1,   2,   1,   3,   1,   4,   1,
 -    5,   1,   6,   1,   9,   1, -11,   2,  -7,   2,  -5,   2,  -4,   2,  -3,
 -    2,  -2,   2,  -1,   2,   0,   2,   1,   2,   2,   2,   3,   2,   4,   2,
 -    5,   2,   7,   2,  11,   2,  -8,   3,  -6,   3,  -4,   3,  -3,   3,  -2,
 -    3,  -1,   3,   0,   3,   1,   3,   2,   3,   3,   3,   4,   3,   6,   3,
 -    8,   3, -13,   4, -10,   4,  -5,   4,  -3,   4,  -2,   4,  -1,   4,   0,
 -    4,   1,   4,   2,   4,   3,   4,   5,   4,  10,   4,  13,   4, -17,   5,
 -   -7,   5,  -4,   5,  -2,   5,  -1,   5,   0,   5,   1,   5,   2,   5,   4,
 -    5,   7,   5,  17,   5, -22,   6,  -9,   6,  -6,   6,  -3,   6,  -1,   6,
 -    1,   6,   3,   6,   6,   6,   9,   6,  22,   6,  -5,   7,  -2,   7,   0,
 -    7,   2,   7,   5,   7, -11,   8,  -8,   8,  -3,   8,   0,   8,   3,   8,
 -    8,   8,  11,   8,  -6,   9,  -1,   9,   1,   9,   6,   9, -15,  10,  -4,
 -   10,   4,  10,  15,  10,  -8,  11,  -2,  11,   0,  11,   2,  11,   8,  11,
 -   19,  12, -19,  13,  -4,  13,   4,  13,   0,  14, -10,  15,  10,  15,  -5,
 -   17,   5,  17,   0,  18, -12,  19,  13,  19,  -6,  22,   6,  22,   0,  23,
++    0,   0,   1,   0,   2,   0,   3,   0,   5,   0,
++    8,   0,  13,   0,  21,   0,  -1,   0,  -2,   0,
++   -3,   0,  -5,   0,  -8,   0, -13,   0, -17,   0,
++  -21,   0,   0,   1,   1,   1,   2,   1,   3,   1,
++    5,   1,   8,   1,  13,   1,  21,   1,  -1,   1,
++   -2,   1,  -3,   1,  -5,   1,  -8,   1, -13,   1,
++  -17,   1, -21,   1,   0,   2,   1,   2,   2,   2,
++    3,   2,   5,   2,   8,   2,  13,   2,  21,   2,
++   -1,   2,  -2,   2,  -3,   2,  -5,   2,  -8,   2,
++  -13,   2, -17,   2, -21,   2,   0,   3,   1,   3,
++    2,   3,   3,   3,   5,   3,   8,   3,  13,   3,
++   21,   3,  -1,   3,  -2,   3,  -3,   3,  -5,   3,
++   -8,   3, -13,   3, -17,   3, -21,   3,   0,   5,
++    1,   5,   2,   5,   3,   5,   5,   5,   8,   5,
++   13,   5,  21,   5,  -1,   5,  -2,   5,  -3,   5,
++   -5,   5,  -8,   5, -13,   5, -17,   5, -21,   5,
++    0,   8,   1,   8,   2,   8,   3,   8,   5,   8,
++    8,   8,  13,   8,  21,   8,  -1,   8,  -2,   8,
++   -3,   8,  -5,   8,  -8,   8, -13,   8, -17,   8,
++  -21,   8,   0,  13,   1,  13,   2,  13,   3,  13,
++    5,  13,   8,  13,  13,  13,  21,  13,  -1,  13,
++   -2,  13,  -3,  13,  -5,  13,  -8,  13, -13,  13,
++  -17,  13, -21,  13,   0,  21,   1,  21,   2,  21,
++    3,  21,   5,  21,   8,  21,  13,  21,  21,  21,
++   -1,  21,  -2,  21,  -3,  21,  -5,  21,  -8,  21,
++  -13,  21, -17,  21, -21,  21,   0,  -1,   1,  -1,
++    2,  -1,   3,  -1,   5,  -1,   8,  -1,  13,  -1,
++   21,  -1,  -1,  -1,  -2,  -1,  -3,  -1,  -5,  -1,
++   -8,  -1, -13,  -1, -17,  -1, -21,  -1,   0,  -2,
++    1,  -2,   2,  -2,   3,  -2,   5,  -2,   8,  -2,
++   13,  -2,  21,  -2,  -1,  -2,  -2,  -2,  -3,  -2,
++   -5,  -2,  -8,  -2, -13,  -2, -17,  -2, -21,  -2,
++    0,  -3,   1,  -3,   2,  -3,   3,  -3,   5,  -3,
++    8,  -3,  13,  -3,  21,  -3,  -1,  -3,  -2,  -3,
++   -3,  -3,  -5,  -3,  -8,  -3, -13,  -3, -17,  -3,
++  -21,  -3,   0,  -5,   1,  -5,   2,  -5,   3,  -5,
++    5,  -5,   8,  -5,  13,  -5,  21,  -5,  -1,  -5,
++   -2,  -5,  -3,  -5,  -5,  -5,  -8,  -5, -13,  -5,
++  -17,  -5, -21,  -5,   0,  -8,   1,  -8,   2,  -8,
++    3,  -8,   5,  -8,   8,  -8,  13,  -8,  21,  -8,
++   -1,  -8,  -2,  -8,  -3,  -8,  -5,  -8,  -8,  -8,
++  -13,  -8, -17,  -8, -21,  -8,   0, -13,   1, -13,
++    2, -13,   3, -13,   5, -13,   8, -13,  13, -13,
++   21, -13,  -1, -13,  -2, -13,  -3, -13,  -5, -13,
++   -8, -13, -13, -13, -17, -13, -21, -13,   0, -17,
++    1, -17,   2, -17,   3, -17,   5, -17,   8, -17,
++   13, -17,  21, -17,  -1, -17,  -2, -17,  -3, -17,
++   -5, -17,  -8, -17, -13, -17, -17, -17, -21, -17,
++    0, -21,   1, -21,   2, -21,   3, -21,   5, -21,
++    8, -21,  13, -21,  21, -21,  -1, -21,  -2, -21,
++   -3, -21,  -5, -21,  -8, -21, -13, -21, -17, -21,
++    0,   0,  -8, -29,   8, -29, -18, -25,  17, -25,
++    0, -23,  -6, -22,   6, -22, -13, -19,  12, -19,
++    0, -18,  25, -18, -25, -17,  -5, -17,   5, -17,
++  -10, -15,  10, -15,   0, -14,  -4, -13,   4, -13,
++   19, -13, -19, -12,  -8, -11,  -2, -11,   0, -11,
++    2, -11,   8, -11, -15, -10,  -4, -10,   4, -10,
++   15, -10,  -6,  -9,  -1,  -9,   1,  -9,   6,  -9,
++  -29,  -8, -11,  -8,  -8,  -8,  -3,  -8,   3,  -8,
++    8,  -8,  11,  -8,  29,  -8,  -5,  -7,  -2,  -7,
++    0,  -7,   2,  -7,   5,  -7, -22,  -6,  -9,  -6,
++   -6,  -6,  -3,  -6,  -1,  -6,   1,  -6,   3,  -6,
++    6,  -6,   9,  -6,  22,  -6, -17,  -5,  -7,  -5,
++   -4,  -5,  -2,  -5,   0,  -5,   2,  -5,   4,  -5,
++    7,  -5,  17,  -5, -13,  -4, -10,  -4,  -5,  -4,
++   -3,  -4,  -1,  -4,   0,  -4,   1,  -4,   3,  -4,
++    5,  -4,  10,  -4,  13,  -4,  -8,  -3,  -6,  -3,
++   -4,  -3,  -3,  -3,  -2,  -3,  -1,  -3,   0,  -3,
++    1,  -3,   2,  -3,   4,  -3,   6,  -3,   8,  -3,
++  -11,  -2,  -7,  -2,  -5,  -2,  -3,  -2,  -2,  -2,
++   -1,  -2,   0,  -2,   1,  -2,   2,  -2,   3,  -2,
++    5,  -2,   7,  -2,  11,  -2,  -9,  -1,  -6,  -1,
++   -4,  -1,  -3,  -1,  -2,  -1,  -1,  -1,   0,  -1,
++    1,  -1,   2,  -1,   3,  -1,   4,  -1,   6,  -1,
++    9,  -1, -31,   0, -23,   0, -18,   0, -14,   0,
++  -11,   0,  -7,   0,  -5,   0,  -4,   0,  -3,   0,
++   -2,   0,  -1,   0,   0, -31,   1,   0,   2,   0,
++    3,   0,   4,   0,   5,   0,   7,   0,  11,   0,
++   14,   0,  18,   0,  23,   0,  31,   0,  -9,   1,
++   -6,   1,  -4,   1,  -3,   1,  -2,   1,  -1,   1,
++    0,   1,   1,   1,   2,   1,   3,   1,   4,   1,
++    6,   1,   9,   1, -11,   2,  -7,   2,  -5,   2,
++   -3,   2,  -2,   2,  -1,   2,   0,   2,   1,   2,
++    2,   2,   3,   2,   5,   2,   7,   2,  11,   2,
++   -8,   3,  -6,   3,  -4,   3,  -2,   3,  -1,   3,
++    0,   3,   1,   3,   2,   3,   3,   3,   4,   3,
++    6,   3,   8,   3, -13,   4, -10,   4,  -5,   4,
++   -3,   4,  -1,   4,   0,   4,   1,   4,   3,   4,
++    5,   4,  10,   4,  13,   4, -17,   5,  -7,   5,
++   -4,   5,  -2,   5,   0,   5,   2,   5,   4,   5,
++    7,   5,  17,   5, -22,   6,  -9,   6,  -6,   6,
++   -3,   6,  -1,   6,   1,   6,   3,   6,   6,   6,
++    9,   6,  22,   6,  -5,   7,  -2,   7,   0,   7,
++    2,   7,   5,   7, -29,   8, -11,   8,  -8,   8,
++   -3,   8,   3,   8,   8,   8,  11,   8,  29,   8,
++   -6,   9,  -1,   9,   1,   9,   6,   9, -15,  10,
++   -4,  10,   4,  10,  15,  10,  -8,  11,  -2,  11,
++    0,  11,   2,  11,   8,  11,  19,  12, -19,  13,
++   -4,  13,   4,  13,   0,  14, -10,  15,  10,  15,
++   -5,  17,   5,  17,  25,  17, -25,  18,   0,  18,
++  -12,  19,  13,  19,  -6,  22,   6,  22,   0,  23,
++  -17,  25,  18,  25,  -8,  29,   8,  29,   0,  31,
++    0,   0,  -6, -22,   6, -22, -13, -19,  12, -19,
++    0, -18,  -5, -17,   5, -17, -10, -15,  10, -15,
++    0, -14,  -4, -13,   4, -13,  19, -13, -19, -12,
++   -8, -11,  -2, -11,   0, -11,   2, -11,   8, -11,
++  -15, -10,  -4, -10,   4, -10,  15, -10,  -6,  -9,
++   -1,  -9,   1,  -9,   6,  -9, -11,  -8,  -8,  -8,
++   -3,  -8,   0,  -8,   3,  -8,   8,  -8,  11,  -8,
++   -5,  -7,  -2,  -7,   0,  -7,   2,  -7,   5,  -7,
++  -22,  -6,  -9,  -6,  -6,  -6,  -3,  -6,  -1,  -6,
++    1,  -6,   3,  -6,   6,  -6,   9,  -6,  22,  -6,
++  -17,  -5,  -7,  -5,  -4,  -5,  -2,  -5,  -1,  -5,
++    0,  -5,   1,  -5,   2,  -5,   4,  -5,   7,  -5,
++   17,  -5, -13,  -4, -10,  -4,  -5,  -4,  -3,  -4,
++   -2,  -4,  -1,  -4,   0,  -4,   1,  -4,   2,  -4,
++    3,  -4,   5,  -4,  10,  -4,  13,  -4,  -8,  -3,
++   -6,  -3,  -4,  -3,  -3,  -3,  -2,  -3,  -1,  -3,
++    0,  -3,   1,  -3,   2,  -3,   3,  -3,   4,  -3,
++    6,  -3,   8,  -3, -11,  -2,  -7,  -2,  -5,  -2,
++   -4,  -2,  -3,  -2,  -2,  -2,  -1,  -2,   0,  -2,
++    1,  -2,   2,  -2,   3,  -2,   4,  -2,   5,  -2,
++    7,  -2,  11,  -2,  -9,  -1,  -6,  -1,  -5,  -1,
++   -4,  -1,  -3,  -1,  -2,  -1,  -1,  -1,   0,  -1,
++    1,  -1,   2,  -1,   3,  -1,   4,  -1,   5,  -1,
++    6,  -1,   9,  -1, -23,   0, -18,   0, -14,   0,
++  -11,   0,  -7,   0,  -5,   0,  -4,   0,  -3,   0,
++   -2,   0,  -1,   0,   0, -23,   1,   0,   2,   0,
++    3,   0,   4,   0,   5,   0,   7,   0,  11,   0,
++   14,   0,  18,   0,  23,   0,  -9,   1,  -6,   1,
++   -5,   1,  -4,   1,  -3,   1,  -2,   1,  -1,   1,
++    0,   1,   1,   1,   2,   1,   3,   1,   4,   1,
++    5,   1,   6,   1,   9,   1, -11,   2,  -7,   2,
++   -5,   2,  -4,   2,  -3,   2,  -2,   2,  -1,   2,
++    0,   2,   1,   2,   2,   2,   3,   2,   4,   2,
++    5,   2,   7,   2,  11,   2,  -8,   3,  -6,   3,
++   -4,   3,  -3,   3,  -2,   3,  -1,   3,   0,   3,
++    1,   3,   2,   3,   3,   3,   4,   3,   6,   3,
++    8,   3, -13,   4, -10,   4,  -5,   4,  -3,   4,
++   -2,   4,  -1,   4,   0,   4,   1,   4,   2,   4,
++    3,   4,   5,   4,  10,   4,  13,   4, -17,   5,
++   -7,   5,  -4,   5,  -2,   5,  -1,   5,   0,   5,
++    1,   5,   2,   5,   4,   5,   7,   5,  17,   5,
++  -22,   6,  -9,   6,  -6,   6,  -3,   6,  -1,   6,
++    1,   6,   3,   6,   6,   6,   9,   6,  22,   6,
++   -5,   7,  -2,   7,   0,   7,   2,   7,   5,   7,
++  -11,   8,  -8,   8,  -3,   8,   0,   8,   3,   8,
++    8,   8,  11,   8,  -6,   9,  -1,   9,   1,   9,
++    6,   9, -15,  10,  -4,  10,   4,  10,  15,  10,
++   -8,  11,  -2,  11,   0,  11,   2,  11,   8,  11,
++   19,  12, -19,  13,  -4,  13,   4,  13,   0,  14,
++  -10,  15,  10,  15,  -5,  17,   5,  17,   0,  18,
++  -12,  19,  13,  19,  -6,  22,   6,  22,   0,  23,
+ };
+ typedef struct SANMVideoContext {
      AVCodecContext *avctx;
      GetByteContext gb;
  
@@@ -1295,7 -1464,7 +1515,7 @@@ static int decode_frame(AVCodecContext 
  
  AVCodec ff_sanm_decoder = {
      .name           = "sanm",
-     .long_name      = NULL_IF_CONFIG_SMALL("LucasArts SMUSH video"),
 -    .long_name      = NULL_IF_CONFIG_SMALL("LucasArts SANM video"),
++    .long_name      = NULL_IF_CONFIG_SMALL("LucasArts SANM/Smush video"),
      .type           = AVMEDIA_TYPE_VIDEO,
      .id             = AV_CODEC_ID_SANM,
      .priv_data_size = sizeof(SANMVideoContext),
@@@ -2669,29 -1663,6 +2669,30 @@@ av_cold int avcodec_close(AVCodecContex
      return 0;
  }
  
 +static enum AVCodecID remap_deprecated_codec_id(enum AVCodecID id)
 +{
 +    switch(id){
 +        //This is for future deprecatec codec ids, its empty since
 +        //last major bump but will fill up again over time, please don't remove it
 +//         case AV_CODEC_ID_UTVIDEO_DEPRECATED: return AV_CODEC_ID_UTVIDEO;
 +        case AV_CODEC_ID_BRENDER_PIX_DEPRECATED: return AV_CODEC_ID_BRENDER_PIX;
 +        case AV_CODEC_ID_OPUS_DEPRECATED: return AV_CODEC_ID_OPUS;
 +        case AV_CODEC_ID_TAK_DEPRECATED : return AV_CODEC_ID_TAK;
 +        case AV_CODEC_ID_PAF_AUDIO_DEPRECATED : return AV_CODEC_ID_PAF_AUDIO;
 +        case AV_CODEC_ID_PCM_S24LE_PLANAR_DEPRECATED : return AV_CODEC_ID_PCM_S24LE_PLANAR;
 +        case AV_CODEC_ID_PCM_S32LE_PLANAR_DEPRECATED : return AV_CODEC_ID_PCM_S32LE_PLANAR;
 +        case AV_CODEC_ID_ESCAPE130_DEPRECATED : return AV_CODEC_ID_ESCAPE130;
 +        case AV_CODEC_ID_EXR_DEPRECATED : return AV_CODEC_ID_EXR;
 +        case AV_CODEC_ID_G2M_DEPRECATED : return AV_CODEC_ID_G2M;
 +        case AV_CODEC_ID_PAF_VIDEO_DEPRECATED : return AV_CODEC_ID_PAF_VIDEO;
 +        case AV_CODEC_ID_WEBP_DEPRECATED: return AV_CODEC_ID_WEBP;
 +        case AV_CODEC_ID_HEVC_DEPRECATED: return AV_CODEC_ID_HEVC;
++        case AV_CODEC_ID_SANM_DEPRECATED: return AV_CODEC_ID_SANM;
 +        case AV_CODEC_ID_VP7_DEPRECATED : return AV_CODEC_ID_VP7;
 +        default                         : return id;
 +    }
 +}
 +
  static AVCodec *find_encdec(enum AVCodecID id, int encoder)
  {
      AVCodec *p, *experimental = NULL;
@@@ -29,8 -29,8 +29,8 @@@
  #include "libavutil/version.h"
  
  #define LIBAVCODEC_VERSION_MAJOR 55
 -#define LIBAVCODEC_VERSION_MINOR 44
 -#define LIBAVCODEC_VERSION_MICRO  0
 +#define LIBAVCODEC_VERSION_MINOR  57
- #define LIBAVCODEC_VERSION_MICRO 101
++#define LIBAVCODEC_VERSION_MICRO 102
  
  #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
                                                 LIBAVCODEC_VERSION_MINOR, \