Merge commit '7b9ef8d701c319c26f7d0664fe977e176764c74e'
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 23 Jun 2014 01:48:30 +0000 (03:48 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 23 Jun 2014 01:48:30 +0000 (03:48 +0200)
* commit '7b9ef8d701c319c26f7d0664fe977e176764c74e':
  mpeg: Split error resilience bits off into a separate file

Conflicts:
configure
libavcodec/Makefile
libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
13 files changed:
1  2 
configure
libavcodec/Makefile
libavcodec/h261dec.c
libavcodec/h263dec.c
libavcodec/mpeg12dec.c
libavcodec/mpeg_er.c
libavcodec/mpeg_er.h
libavcodec/mpegvideo.c
libavcodec/mpegvideo.h
libavcodec/mss2.c
libavcodec/rv10.c
libavcodec/rv34.c
libavcodec/vc1dec.c

diff --cc configure
+++ b/configure
@@@ -1815,9 -1547,8 +1815,10 @@@ CONFIG_EXTRA=
      huffyuvencdsp
      intrax8
      lgplv3
 +    llauddsp
 +    llviddsp
      lpc
+     mpeg_er
      mpegaudio
      mpegaudiodsp
      mpegvideo
@@@ -1995,9 -1706,10 +1996,10 @@@ frame_thread_encoder_deps="encoders thr
  intrax8_select="error_resilience"
  mdct_select="fft"
  rdft_select="fft"
+ mpeg_er_select="error_resilience"
  mpegaudio_select="mpegaudiodsp"
  mpegaudiodsp_select="dct"
 -mpegvideo_select="blockdsp dsputil hpeldsp videodsp"
 +mpegvideo_select="blockdsp dsputil h264chroma hpeldsp videodsp"
  mpegvideoenc_select="dsputil mpegvideo qpeldsp"
  
  # decoders / encoders
@@@ -2061,11 -1768,11 +2063,11 @@@ flv_decoder_select="h263_decoder
  flv_encoder_select="h263_encoder"
  fourxm_decoder_select="blockdsp dsputil"
  fraps_decoder_select="dsputil huffman"
 -g2m_decoder_deps="zlib"
 -g2m_decoder_select="blockdsp dsputil"
 +g2m_decoder_select="blockdsp dsputil zlib"
 +g729_decoder_select="dsputil"
- h261_decoder_select="error_resilience mpegvideo"
+ h261_decoder_select="mpeg_er mpegvideo"
  h261_encoder_select="aandcttables mpegvideoenc"
- h263_decoder_select="error_resilience h263_parser h263dsp mpegvideo qpeldsp"
+ h263_decoder_select="error_resilience h263_parser h263dsp mpeg_er mpegvideo qpeldsp"
  h263_encoder_select="aandcttables h263dsp mpegvideoenc"
  h263i_decoder_select="h263_decoder"
  h263p_encoder_select="h263_encoder"
@@@ -2106,10 -1813,10 +2108,10 @@@ mpc7_decoder_select="dsputil mpegaudiod
  mpc8_decoder_select="mpegaudiodsp"
  mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h"
  mpeg_xvmc_decoder_select="mpeg2video_decoder"
- mpeg1video_decoder_select="error_resilience mpegvideo"
+ mpeg1video_decoder_select="error_resilience mpeg_er mpegvideo"
 -mpeg1video_encoder_select="aandcttables mpegvideoenc"
 +mpeg1video_encoder_select="aandcttables mpegvideoenc h263dsp"
- mpeg2video_decoder_select="error_resilience mpegvideo"
+ mpeg2video_decoder_select="error_resilience mpeg_er mpegvideo"
 -mpeg2video_encoder_select="aandcttables mpegvideoenc"
 +mpeg2video_encoder_select="aandcttables mpegvideoenc h263dsp"
  mpeg4_decoder_select="h263_decoder mpeg4video_parser"
  mpeg4_encoder_select="h263_encoder"
  msmpeg4v1_decoder_select="h263_decoder"
@@@ -2132,21 -1840,14 +2134,21 @@@ qcelp_decoder_select="lsp
  qdm2_decoder_select="mdct rdft mpegaudiodsp"
  ra_144_encoder_select="audio_frame_queue lpc"
  ralf_decoder_select="golomb"
- rv10_decoder_select="error_resilience h263_decoder h263dsp"
 +rawvideo_decoder_select="dsputil"
 +rtjpeg_decoder_select="dsputil"
+ rv10_decoder_select="error_resilience h263_decoder h263dsp mpeg_er"
  rv10_encoder_select="h263_encoder"
- rv20_decoder_select="error_resilience h263_decoder h263dsp"
+ rv20_decoder_select="error_resilience h263_decoder h263dsp mpeg_er"
  rv20_encoder_select="h263_encoder"
- rv30_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp"
- rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp"
+ rv30_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpeg_er mpegvideo videodsp"
+ rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpeg_er mpegvideo videodsp"
  shorten_decoder_select="golomb"
  sipr_decoder_select="lsp"
 +snow_decoder_select="dsputil dwt h264qpel hpeldsp rangecoder"
 +snow_encoder_select="aandcttables dsputil dwt h264qpel hpeldsp mpegvideoenc rangecoder"
 +sonic_decoder_select="golomb rangecoder"
 +sonic_encoder_select="golomb rangecoder"
 +sonic_ls_encoder_select="golomb rangecoder"
  sp5x_decoder_select="mjpeg_decoder"
  svq1_decoder_select="hpeldsp"
  svq1_encoder_select="aandcttables dsputil hpeldsp mpegvideoenc"
@@@ -2269,14 -1942,11 +2271,14 @@@ wmv3_vdpau_hwaccel_select="vc1_vdpau_hw
  
  # parsers
  h264_parser_select="h264_decoder"
 +hevc_parser_select="hevc_decoder"
  mpegvideo_parser_select="mpegvideo"
- mpeg4video_parser_select="error_resilience h263dsp mpegvideo qpeldsp"
+ mpeg4video_parser_select="error_resilience h263dsp mpeg_er mpegvideo qpeldsp"
 -vc1_parser_select="mpegvideo"
 +vc1_parser_select="mpegvideo vc1_decoder"
  
  # external libraries
 +libaacplus_encoder_deps="libaacplus"
 +libcelt_decoder_deps="libcelt"
  libfaac_encoder_deps="libfaac"
  libfaac_encoder_select="audio_frame_queue"
  libfdk_aac_decoder_deps="libfdk_aac"
@@@ -60,11 -52,10 +60,12 @@@ OBJS-$(CONFIG_HUFFYUVDSP)              
  OBJS-$(CONFIG_HUFFYUVENCDSP)           += huffyuvencdsp.o
  OBJS-$(CONFIG_INTRAX8)                 += intrax8.o intrax8dsp.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_MPEG_ER)                 += mpeg_er.o
  OBJS-$(CONFIG_MPEGAUDIO)               += mpegaudio.o mpegaudiodata.o   \
                                            mpegaudiodecheader.o
  OBJS-$(CONFIG_MPEGAUDIODSP)            += mpegaudiodsp.o                \
@@@ -25,8 -25,8 +25,9 @@@
   * H.261 decoder.
   */
  
 +#include "libavutil/avassert.h"
  #include "avcodec.h"
+ #include "mpeg_er.h"
  #include "mpegutils.h"
  #include "mpegvideo.h"
  #include "h263.h"
Simple merge
Simple merge
index 0000000,7a1b6b2..3d90582
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,59 +1,60 @@@
 - * This file is part of Libav.
+ /*
 - * 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
+  */
+ #include "error_resilience.h"
+ #include "mpegvideo.h"
+ #include "mpeg_er.h"
+ static void set_erpic(ERPicture *dst, Picture *src)
+ {
+     int i;
++    memset(dst, 0, sizeof(*dst));
+     if (!src) {
+         dst->f  = NULL;
+         dst->tf = NULL;
+         return;
+     }
+     dst->f = src->f;
+     dst->tf = &src->tf;
+     for (i = 0; i < 2; i++) {
+         dst->motion_val[i] = src->motion_val[i];
+         dst->ref_index[i] = src->ref_index[i];
+     }
+     dst->mb_type = src->mb_type;
+     dst->field_picture = src->field_picture;
+ }
+ void ff_mpeg_er_frame_start(MpegEncContext *s)
+ {
+     ERContext *er = &s->er;
+     set_erpic(&er->cur_pic,  s->current_picture_ptr);
+     set_erpic(&er->next_pic, s->next_picture_ptr);
+     set_erpic(&er->last_pic, s->last_picture_ptr);
+     er->pp_time           = s->pp_time;
+     er->pb_time           = s->pb_time;
+     er->quarter_sample    = s->quarter_sample;
+     er->partitioned_frame = s->partitioned_frame;
+     ff_er_frame_start(er);
+ }
index 0000000,1968184..bd74fbb
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,26 +1,26 @@@
 - * This file is part of Libav.
+ /*
 - * 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_MPEG_ER_H
+ #define AVCODEC_MPEG_ER_H
+ #include "mpegvideo.h"
+ void ff_mpeg_er_frame_start(MpegEncContext *s);
+ #endif /* AVCODEC_MPEG_ER_H */
Simple merge
@@@ -753,11 -723,7 +753,8 @@@ void ff_MPV_report_decode_progress(Mpeg
  int ff_mpeg_update_thread_context(AVCodecContext *dst, const AVCodecContext *src);
  void ff_set_qscale(MpegEncContext * s, int qscale);
  
- /* Error resilience */
- void ff_mpeg_er_frame_start(MpegEncContext *s);
  int ff_dct_common_init(MpegEncContext *s);
 +int ff_dct_encode_init(MpegEncContext *s);
  void ff_convert_matrix(DSPContext *dsp, int (*qmat)[64], uint16_t (*qmat16)[2][64],
                         const uint16_t *quant_matrix, int bias, int qmin, int qmax, int intra);
  int ff_dct_quantize_c(MpegEncContext *s, int16_t *block, int n, int qscale, int *overflow);
Simple merge
Simple merge
Simple merge
Simple merge