Merge commit '4978850ca2cb1ec6908f5bc79cc592ca454d11e8'
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 30 Mar 2015 23:02:00 +0000 (01:02 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 30 Mar 2015 23:11:02 +0000 (01:11 +0200)
* commit '4978850ca2cb1ec6908f5bc79cc592ca454d11e8':
  build: Split JPEG-related tables off into a separate component

Conflicts:
configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
12 files changed:
1  2 
configure
libavcodec/Makefile
libavcodec/g2meet.c
libavcodec/jpegtables.c
libavcodec/jpegtables.h
libavcodec/ljpegenc.c
libavcodec/mjpeg.h
libavcodec/mjpeg2jpeg_bsf.c
libavcodec/mjpegdec.c
libavcodec/mjpegenc.c
libavcodec/mjpegenc_common.c
libavformat/rtpdec_jpeg.c

diff --cc configure
+++ b/configure
@@@ -1880,9 -1590,8 +1880,10 @@@ CONFIG_EXTRA=
      iirfilter
      imdct15
      intrax8
+     jpegtables
      lgplv3
 +    llauddsp
 +    llviddsp
      lpc
      me_cmp
      mpeg_er
@@@ -2094,10 -1782,8 +2095,10 @@@ alac_encoder_select="lpc
  als_decoder_select="bswapdsp"
  amrnb_decoder_select="lsp"
  amrwb_decoder_select="lsp"
 -amv_decoder_select="sp5x_decoder"
 -ape_decoder_select="bswapdsp"
 +amv_decoder_select="sp5x_decoder exif"
- amv_encoder_select="aandcttables mpegvideoenc"
++amv_encoder_select="aandcttables jpegtables mpegvideoenc"
 +ape_decoder_select="bswapdsp llauddsp"
 +apng_decoder_select="zlib"
  asv1_decoder_select="blockdsp bswapdsp idctdsp"
  asv1_encoder_select="bswapdsp fdctdsp pixblockdsp"
  asv2_decoder_select="blockdsp bswapdsp idctdsp"
@@@ -2105,7 -1791,6 +2106,7 @@@ asv2_encoder_select="bswapdsp fdctdsp p
  atrac1_decoder_select="mdct sinewin"
  atrac3_decoder_select="mdct"
  atrac3p_decoder_select="mdct sinewin"
- avrn_decoder_select="exif"
++avrn_decoder_select="exif jpegtables"
  bink_decoder_select="blockdsp hpeldsp"
  binkaudio_dct_decoder_select="mdct rdft dct sinewin wma_freqs"
  binkaudio_rdft_decoder_select="mdct rdft sinewin wma_freqs"
@@@ -2143,8 -1826,8 +2144,8 @@@ flv_decoder_select="h263_decoder
  flv_encoder_select="h263_encoder"
  fourxm_decoder_select="blockdsp bswapdsp"
  fraps_decoder_select="bswapdsp huffman"
- g2m_decoder_select="blockdsp idctdsp zlib"
 -g2m_decoder_deps="zlib"
 -g2m_decoder_select="blockdsp idctdsp jpegtables"
++g2m_decoder_select="blockdsp idctdsp jpegtables zlib"
 +g729_decoder_select="audiodsp"
  h261_decoder_select="mpeg_er mpegvideo"
  h261_encoder_select="aandcttables mpegvideoenc"
  h263_decoder_select="error_resilience h263_parser h263dsp mpeg_er mpegvideo qpeldsp"
@@@ -2173,8 -1856,8 +2174,8 @@@ loco_decoder_select="golomb
  mdec_decoder_select="blockdsp idctdsp mpegvideo"
  metasound_decoder_select="lsp mdct sinewin"
  mimic_decoder_select="blockdsp bswapdsp hpeldsp idctdsp"
- mjpeg_decoder_select="blockdsp hpeldsp exif idctdsp"
- mjpeg_encoder_select="aandcttables mpegvideoenc"
 -mjpeg_decoder_select="blockdsp hpeldsp idctdsp jpegtables"
++mjpeg_decoder_select="blockdsp hpeldsp exif idctdsp jpegtables"
+ mjpeg_encoder_select="aandcttables jpegtables mpegvideoenc"
  mjpegb_decoder_select="mjpeg_decoder"
  mlp_decoder_select="mlp_parser"
  motionpixels_decoder_select="bswapdsp"
@@@ -2371,9 -2018,10 +2372,12 @@@ mpegvideo_parser_select="mpegvideo
  mpeg4video_parser_select="error_resilience h263dsp mpeg_er mpegvideo qpeldsp"
  vc1_parser_select="mpegvideo startcode vc1_decoder"
  
+ # bitstream_filters
+ mjpeg2jpeg_bsf_select="jpegtables"
  # external libraries
 +libaacplus_encoder_deps="libaacplus"
 +libcelt_decoder_deps="libcelt"
  libdcadec_decoder_deps="libdcadec"
  libfaac_encoder_deps="libfaac"
  libfaac_encoder_select="audio_frame_queue"
@@@ -70,12 -61,11 +70,13 @@@ OBJS-$(CONFIG_IDCTDSP)                 
  OBJS-$(CONFIG_IIRFILTER)               += iirfilter.o
  OBJS-$(CONFIG_IMDCT15)                 += imdct15.o
  OBJS-$(CONFIG_INTRAX8)                 += intrax8.o intrax8dsp.o
+ OBJS-$(CONFIG_JPEGTABLES)              += jpegtables.o
  OBJS-$(CONFIG_LIBXVID)                 += libxvid_rc.o
 +OBJS-$(CONFIG_LLAUDDSP)                += lossless_audiodsp.o
 +OBJS-$(CONFIG_LLVIDDSP)                += lossless_videodsp.o
  OBJS-$(CONFIG_LPC)                     += lpc.o
  OBJS-$(CONFIG_LSP)                     += lsp.o
 -OBJS-$(CONFIG_MDCT)                    += mdct_fixed.o mdct_float.o
 +OBJS-$(CONFIG_MDCT)                    += mdct_fixed.o mdct_float.o mdct_fixed_32.o
  OBJS-$(CONFIG_ME_CMP)                  += me_cmp.o
  OBJS-$(CONFIG_MPEG_ER)                 += mpeg_er.o
  OBJS-$(CONFIG_MPEGAUDIO)               += mpegaudio.o mpegaudiodata.o   \
@@@ -136,10 -122,6 +137,10 @@@ OBJS-$(CONFIG_AMRWB_DECODER)           
                                            celp_math.o acelp_filters.o \
                                            acelp_vectors.o             \
                                            acelp_pitch_delay.o
- OBJS-$(CONFIG_AMV_ENCODER)             += mjpegenc.o mjpeg.o mjpegenc_common.o \
++OBJS-$(CONFIG_AMV_ENCODER)             += mjpegenc.o mjpegenc_common.o \
 +                                          mpegvideo_enc.o motion_est.o \
 +                                          ratecontrol.o mpeg12data.o   \
 +                                          mpegvideo.o
  OBJS-$(CONFIG_ANM_DECODER)             += anm.o
  OBJS-$(CONFIG_ANSI_DECODER)            += ansi.o cga_data.o
  OBJS-$(CONFIG_APE_DECODER)             += apedec.o
@@@ -158,14 -137,7 +159,14 @@@ OBJS-$(CONFIG_ATRAC3P_DECODER)         
                                            atrac3plusdsp.o atrac.o
  OBJS-$(CONFIG_AURA_DECODER)            += cyuv.o
  OBJS-$(CONFIG_AURA2_DECODER)           += aura.o
- OBJS-$(CONFIG_AVRN_DECODER)            += avrndec.o mjpegdec.o mjpeg.o
++OBJS-$(CONFIG_AVRN_DECODER)            += avrndec.o mjpegdec.o
 +OBJS-$(CONFIG_AVRP_DECODER)            += r210dec.o
 +OBJS-$(CONFIG_AVRP_ENCODER)            += r210enc.o
  OBJS-$(CONFIG_AVS_DECODER)             += avs.o
 +OBJS-$(CONFIG_AVUI_DECODER)            += avuidec.o
 +OBJS-$(CONFIG_AVUI_ENCODER)            += avuienc.o
 +OBJS-$(CONFIG_AYUV_DECODER)            += v408dec.o
 +OBJS-$(CONFIG_AYUV_ENCODER)            += v408enc.o
  OBJS-$(CONFIG_BETHSOFTVID_DECODER)     += bethsoftvideo.o
  OBJS-$(CONFIG_BFI_DECODER)             += bfi.o
  OBJS-$(CONFIG_BINK_DECODER)            += bink.o binkdsp.o
@@@ -249,11 -207,9 +250,11 @@@ OBJS-$(CONFIG_FLIC_DECODER)            
  OBJS-$(CONFIG_FOURXM_DECODER)          += 4xm.o
  OBJS-$(CONFIG_FRAPS_DECODER)           += fraps.o
  OBJS-$(CONFIG_FRWU_DECODER)            += frwu.o
- OBJS-$(CONFIG_G2M_DECODER)             += g2meet.o mjpeg.o
+ OBJS-$(CONFIG_G2M_DECODER)             += g2meet.o
  OBJS-$(CONFIG_G723_1_DECODER)          += g723_1.o acelp_vectors.o \
 -                                          celp_filters.o
 +                                          celp_filters.o celp_math.o
 +OBJS-$(CONFIG_G723_1_ENCODER)          += g723_1.o acelp_vectors.o celp_math.o
 +OBJS-$(CONFIG_G729_DECODER)            += g729dec.o lsp.o celp_math.o acelp_filters.o acelp_pitch_delay.o acelp_vectors.o g729postfilter.o
  OBJS-$(CONFIG_GIF_DECODER)             += gifdec.o lzw.o
  OBJS-$(CONFIG_GIF_ENCODER)             += gif.o lzwenc.o
  OBJS-$(CONFIG_GSM_DECODER)             += gsmdec.o gsmdec_data.o msgsmdec.o
@@@ -309,10 -260,9 +310,10 @@@ OBJS-$(CONFIG_MACE6_DECODER)           
  OBJS-$(CONFIG_MDEC_DECODER)            += mdec.o mpeg12.o mpeg12data.o
  OBJS-$(CONFIG_METASOUND_DECODER)       += metasound.o metasound_data.o \
                                            twinvq.o
 +OBJS-$(CONFIG_MICRODVD_DECODER)        += microdvddec.o ass.o
  OBJS-$(CONFIG_MIMIC_DECODER)           += mimic.o
- OBJS-$(CONFIG_MJPEG_DECODER)           += mjpegdec.o mjpeg.o
- OBJS-$(CONFIG_MJPEG_ENCODER)           += mjpegenc.o mjpeg.o mjpegenc_common.o
+ OBJS-$(CONFIG_MJPEG_DECODER)           += mjpegdec.o
+ OBJS-$(CONFIG_MJPEG_ENCODER)           += mjpegenc.o mjpegenc_common.o
  OBJS-$(CONFIG_MJPEGB_DECODER)          += mjpegbdec.o
  OBJS-$(CONFIG_MLP_DECODER)             += mlpdec.o mlpdsp.o
  OBJS-$(CONFIG_MMVIDEO_DECODER)         += mmvideo.o
@@@ -712,16 -598,11 +713,15 @@@ OBJS-$(CONFIG_MOV_DEMUXER)             
  OBJS-$(CONFIG_MOV_MUXER)               += mpeg4audio.o mpegaudiodata.o
  OBJS-$(CONFIG_MPEGTS_MUXER)            += mpeg4audio.o
  OBJS-$(CONFIG_MPEGTS_DEMUXER)          += mpeg4audio.o mpegaudiodata.o
 +OBJS-$(CONFIG_MXF_MUXER)               += dnxhddata.o
  OBJS-$(CONFIG_NUT_MUXER)               += mpegaudiodata.o
 +OBJS-$(CONFIG_NUT_DEMUXER)             += mpegaudiodata.o mpeg4audio.o
 +OBJS-$(CONFIG_OGA_MUXER)               += flac.o flacdata.o
  OBJS-$(CONFIG_OGG_DEMUXER)             += mpeg12data.o \
 -                                          dirac.o
 -OBJS-$(CONFIG_OGG_MUXER)               += flac.o flacdata.o
 +                                          dirac.o vorbis_data.o
 +OBJS-$(CONFIG_OGG_MUXER)               += flac.o flacdata.o \
 +                                          vorbis_data.o
  OBJS-$(CONFIG_RTP_MUXER)               += mpeg4audio.o
- OBJS-$(CONFIG_RTPDEC)                  += mjpeg.o
  OBJS-$(CONFIG_SPDIF_DEMUXER)           += aacadtsdec.o mpeg4audio.o
  OBJS-$(CONFIG_SPDIF_MUXER)             += dca.o
  OBJS-$(CONFIG_TAK_DEMUXER)             += tak.o
@@@ -838,11 -703,9 +838,11 @@@ OBJS-$(CONFIG_CHOMP_BSF
  OBJS-$(CONFIG_DUMP_EXTRADATA_BSF)         += dump_extradata_bsf.o
  OBJS-$(CONFIG_H264_MP4TOANNEXB_BSF)       += h264_mp4toannexb_bsf.o
  OBJS-$(CONFIG_IMX_DUMP_HEADER_BSF)        += imx_dump_header_bsf.o
- OBJS-$(CONFIG_MJPEG2JPEG_BSF)             += mjpeg2jpeg_bsf.o mjpeg.o
+ OBJS-$(CONFIG_MJPEG2JPEG_BSF)             += mjpeg2jpeg_bsf.o
  OBJS-$(CONFIG_MJPEGA_DUMP_HEADER_BSF)     += mjpega_dump_header_bsf.o
  OBJS-$(CONFIG_MOV2TEXTSUB_BSF)            += movsub_bsf.o
 +OBJS-$(CONFIG_MP3_HEADER_DECOMPRESS_BSF)  += mp3_header_decompress_bsf.o \
 +                                             mpegaudiodata.o
  OBJS-$(CONFIG_NOISE_BSF)                  += noise_bsf.o
  OBJS-$(CONFIG_REMOVE_EXTRADATA_BSF)       += remove_extradata_bsf.o
  OBJS-$(CONFIG_TEXT2MOVSUB_BSF)            += movsub_bsf.o
Simple merge
index 0000000,ce2bae2..cbe5523
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,145 +1,145 @@@
 - * This file is part of Libav.
+ /*
+  * MJPEG encoder and decoder
+  * Copyright (c) 2000, 2001 Fabrice Bellard
+  * Copyright (c) 2003 Alex Beregszaszi
+  * Copyright (c) 2003-2004 Michael Niedermayer
+  *
+  * Support for external huffman table, various fixes (AVID workaround),
+  * aspecting, new decode_frame mechanism and apple mjpeg-b support
+  *                                  by Alex Beregszaszi
+  *
 - * Libav is free software; you can redistribute it and/or
++ * This file is part of FFmpeg.
+  *
 - * Libav is distributed in the hope that it will be useful,
++ * FFmpeg is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+  * version 2.1 of the License, or (at your option) any later version.
+  *
 - * License along with Libav; if not, write to the Free Software
++ * FFmpeg is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
 -const unsigned char std_luminance_quant_tbl[64] = {
++ * License along with FFmpeg; if not, write to the Free Software
+  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+  */
+ /**
+  * @file
+  * MJPEG encoder and decoder.
+  */
+ #include "jpegtables.h"
+ #if 0
+ /* These are the sample quantization tables given in JPEG spec section K.1.
+  * The spec says that the values given produce "good" quality, and
+  * when divided by 2, "very good" quality.
+  */
 -const unsigned char std_chrominance_quant_tbl[64] = {
++static const unsigned char std_luminance_quant_tbl[64] = {
+     16,  11,  10,  16,  24,  40,  51,  61,
+     12,  12,  14,  19,  26,  58,  60,  55,
+     14,  13,  16,  24,  40,  57,  69,  56,
+     14,  17,  22,  29,  51,  87,  80,  62,
+     18,  22,  37,  56,  68, 109, 103,  77,
+     24,  35,  55,  64,  81, 104, 113,  92,
+     49,  64,  78,  87, 103, 121, 120, 101,
+     72,  92,  95,  98, 112, 100, 103,  99
+ };
++static const unsigned char std_chrominance_quant_tbl[64] = {
+     17,  18,  24,  47,  99,  99,  99,  99,
+     18,  21,  26,  66,  99,  99,  99,  99,
+     24,  26,  56,  99,  99,  99,  99,  99,
+     47,  66,  99,  99,  99,  99,  99,  99,
+     99,  99,  99,  99,  99,  99,  99,  99,
+     99,  99,  99,  99,  99,  99,  99,  99,
+     99,  99,  99,  99,  99,  99,  99,  99,
+     99,  99,  99,  99,  99,  99,  99,  99
+ };
+ #endif
+ /* Set up the standard Huffman tables (cf. JPEG standard section K.3) */
+ /* IMPORTANT: these are only valid for 8-bit data precision! */
+ const uint8_t avpriv_mjpeg_bits_dc_luminance[17] =
+ { /* 0-base */ 0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 };
+ const uint8_t avpriv_mjpeg_val_dc[12] =
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
+ const uint8_t avpriv_mjpeg_bits_dc_chrominance[17] =
+ { /* 0-base */ 0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 };
+ const uint8_t avpriv_mjpeg_bits_ac_luminance[17] =
+ { /* 0-base */ 0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 0x7d };
+ const uint8_t avpriv_mjpeg_val_ac_luminance[] =
+ { 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12,
+   0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07,
+   0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1, 0x08,
+   0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0,
+   0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0a, 0x16,
+   0x17, 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28,
+   0x29, 0x2a, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
+   0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
+   0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
+   0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
+   0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
+   0x7a, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,
+   0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98,
+   0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
+   0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6,
+   0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5,
+   0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4,
+   0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe1, 0xe2,
+   0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea,
+   0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8,
+   0xf9, 0xfa
+ };
+ const uint8_t avpriv_mjpeg_bits_ac_chrominance[17] =
+ { /* 0-base */ 0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 0x77 };
+ const uint8_t avpriv_mjpeg_val_ac_chrominance[] =
+ { 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21,
+   0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71,
+   0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91,
+   0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0,
+   0x15, 0x62, 0x72, 0xd1, 0x0a, 0x16, 0x24, 0x34,
+   0xe1, 0x25, 0xf1, 0x17, 0x18, 0x19, 0x1a, 0x26,
+   0x27, 0x28, 0x29, 0x2a, 0x35, 0x36, 0x37, 0x38,
+   0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
+   0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
+   0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
+   0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
+   0x79, 0x7a, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+   0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96,
+   0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5,
+   0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4,
+   0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3,
+   0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2,
+   0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda,
+   0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9,
+   0xea, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8,
+   0xf9, 0xfa
+ };
+ /* isn't this function nicer than the one in the libjpeg ? */
+ void ff_mjpeg_build_huffman_codes(uint8_t *huff_size, uint16_t *huff_code,
+                                   const uint8_t *bits_table,
+                                   const uint8_t *val_table)
+ {
+     int i, j, k,nb, code, sym;
+     code = 0;
+     k = 0;
+     for(i=1;i<=16;i++) {
+         nb = bits_table[i];
+         for(j=0;j<nb;j++) {
+             sym = val_table[k++];
+             huff_size[sym] = i;
+             huff_code[sym] = code;
+             code++;
+         }
+         code <<= 1;
+     }
+ }
index 0000000,1a909be..6833b4b
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,43 +1,43 @@@
 - * This file is part of Libav.
+ /*
+  * JPEG-related tables
+  *
 - * Libav is free software; you can redistribute it and/or
++ * This file is part of FFmpeg.
+  *
 - * Libav is distributed in the hope that it will be useful,
++ * FFmpeg is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+  * version 2.1 of the License, or (at your option) any later version.
+  *
 - * License along with Libav; if not, write to the Free Software
++ * FFmpeg is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
++ * License along with FFmpeg; if not, write to the Free Software
+  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+  */
+ #ifndef AVCODEC_JPEGTABLES_H
+ #define AVCODEC_JPEGTABLES_H
+ #include <stdint.h>
+ #include "libavutil/internal.h"
+ extern av_export const uint8_t avpriv_mjpeg_bits_dc_luminance[];
+ extern av_export const uint8_t avpriv_mjpeg_val_dc[];
+ extern av_export const uint8_t avpriv_mjpeg_bits_dc_chrominance[];
+ extern av_export const uint8_t avpriv_mjpeg_bits_ac_luminance[];
+ extern av_export const uint8_t avpriv_mjpeg_val_ac_luminance[];
+ extern av_export const uint8_t avpriv_mjpeg_bits_ac_chrominance[];
+ extern av_export const uint8_t avpriv_mjpeg_val_ac_chrominance[];
+ void ff_mjpeg_build_huffman_codes(uint8_t *huff_size, uint16_t *huff_code,
+                                   const uint8_t *bits_table,
+                                   const uint8_t *val_table);
+ #endif /* AVCODEC_JPEGTABLES_H */
Simple merge
Simple merge
Simple merge
  #include "libavutil/opt.h"
  #include "avcodec.h"
  #include "blockdsp.h"
 +#include "copy_block.h"
  #include "idctdsp.h"
  #include "internal.h"
+ #include "jpegtables.h"
  #include "mjpeg.h"
  #include "mjpegdec.h"
  #include "jpeglsdec.h"
Simple merge
Simple merge
Simple merge