Merge commit '0c6a70873fc6e43194b471d112c30823b6c8d0b4'

* commit '0c6a70873fc6e43194b471d112c30823b6c8d0b4':
  intrax8: Move error resilience out of intrax8

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
pull/206/head
Derek Buitenhuis 9 years ago
commit 909f5e7100
  1. 3
      configure
  2. 10
      libavcodec/intrax8.c
  3. 4
      libavcodec/vc1_block.c
  4. 4
      libavcodec/wmv2dec.c

3
configure vendored

@ -2258,7 +2258,6 @@ faandct_deps="faan fdctdsp"
faanidct_deps="faan idctdsp"
h264dsp_select="startcode"
frame_thread_encoder_deps="encoders threads"
intrax8_select="error_resilience"
mdct_select="fft"
me_cmp_select="fdctdsp idctdsp pixblockdsp"
mpeg_er_select="error_resilience"
@ -2494,7 +2493,7 @@ wmav2_encoder_select="mdct sinewin wma_freqs"
wmavoice_decoder_select="lsp rdft dct mdct sinewin"
wmv1_decoder_select="h263_decoder"
wmv1_encoder_select="h263_encoder"
wmv2_decoder_select="blockdsp h263_decoder idctdsp intrax8 videodsp wmv2dsp"
wmv2_decoder_select="blockdsp error_resilience h263_decoder idctdsp intrax8 videodsp wmv2dsp"
wmv2_encoder_select="h263_encoder wmv2dsp"
wmv3_decoder_select="vc1_decoder"
wmv3image_decoder_select="wmv3_decoder"

@ -23,7 +23,6 @@
#include "libavutil/avassert.h"
#include "avcodec.h"
#include "error_resilience.h"
#include "get_bits.h"
#include "idctdsp.h"
#include "mpegvideo.h"
@ -719,8 +718,8 @@ av_cold void ff_intrax8_common_end(IntraX8Context * w)
/**
* Decode single IntraX8 frame.
* The parent codec must fill s->loopfilter and s->gb (bitstream).
* The parent codec must call ff_mpv_frame_start(), ff_er_frame_start() before calling this function.
* The parent codec must call ff_er_frame_end(), ff_mpv_frame_end() after calling this function.
* The parent codec must call ff_mpv_frame_start() before calling this function.
* The parent codec must call ff_mpv_frame_end() after calling this function.
* This function does not use ff_mpv_decode_mb().
* lowres decoding is theoretically impossible.
* @param w pointer to IntraX8Context
@ -746,8 +745,6 @@ int ff_intrax8_decode_picture(IntraX8Context * const w, int dquant, int quant_of
}
x8_reset_vlc_tables(w);
s->resync_mb_x=0;
s->resync_mb_y=0;
for(s->mb_y=0; s->mb_y < s->mb_height*2; s->mb_y++){
x8_init_block_index(s);
@ -786,8 +783,5 @@ int ff_intrax8_decode_picture(IntraX8Context * const w, int dquant, int quant_of
}
error:
ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y,
(s->mb_x>>1)-1, (s->mb_y>>1)-1,
ER_MB_END );
return 0;
}

@ -2932,6 +2932,10 @@ void ff_vc1_decode_blocks(VC1Context *v)
v->s.esc3_level_length = 0;
if (v->x8_type) {
ff_intrax8_decode_picture(&v->x8, 2*v->pq + v->halfpq, v->pq * !v->pquantizer);
ff_er_add_slice(&v->s.er, 0, 0,
(v->s.mb_x >> 1) - 1, (v->s.mb_y >> 1) - 1,
ER_MB_END);
} else {
v->cur_blk_idx = 0;
v->left_blk_idx = -1;

@ -220,6 +220,10 @@ int ff_wmv2_decode_secondary_picture_header(MpegEncContext *s)
if (w->j_type) {
ff_intrax8_decode_picture(&w->x8, 2 * s->qscale, (s->qscale - 1) | 1);
ff_er_add_slice(&w->s.er, 0, 0,
(w->s.mb_x >> 1) - 1, (w->s.mb_y >> 1) - 1,
ER_MB_END);
return 1;
}

Loading…
Cancel
Save