The intrax8 decoding process does not imply any kind of error
correction, and the only call present is more related to how mpegvideo
works rather than anything else.

Therefore have the parent decoders carried out er when actually needed.

Drop two variables that were initialized but never used.
Update documentation accordingly.
---
 configure              |  3 +--
 libavcodec/intrax8.c   | 10 ++--------
 libavcodec/vc1_block.c |  4 ++++
 libavcodec/wmv2dec.c   |  4 ++++
 4 files changed, 11 insertions(+), 10 deletions(-)

Modified as discussed with Diego.
Vittorio

diff --git a/configure b/configure
index 5376e67..56d3bbf 100755
--- a/configure
+++ b/configure
@@ -1860,7 +1860,6 @@ error_resilience_select="me_cmp"
 faandct_deps="faan fdctdsp"
 faanidct_deps="faan idctdsp"
 h264dsp_select="startcode"
-intrax8_select="error_resilience"
 mdct_select="fft"
 rdft_select="fft"
 me_cmp_select="fdctdsp idctdsp pixblockdsp"
@@ -2083,7 +2082,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"
diff --git a/libavcodec/intrax8.c b/libavcodec/intrax8.c
index 3cd84dc..45fff96 100644
--- a/libavcodec/intrax8.c
+++ b/libavcodec/intrax8.c
@@ -22,7 +22,6 @@
  */
 
 #include "avcodec.h"
-#include "error_resilience.h"
 #include "get_bits.h"
 #include "idctdsp.h"
 #include "mpegvideo.h"
@@ -718,8 +717,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().
  * @param w pointer to IntraX8Context
  * @param dquant doubled quantizer, it would be odd in case of VC-1 halfpq==1.
@@ -745,8 +744,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);
@@ -785,8 +782,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;
 }
diff --git a/libavcodec/vc1_block.c b/libavcodec/vc1_block.c
index 4588af4..8b46260 100644
--- a/libavcodec/vc1_block.c
+++ b/libavcodec/vc1_block.c
@@ -3023,6 +3023,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;
diff --git a/libavcodec/wmv2dec.c b/libavcodec/wmv2dec.c
index c71fd3d..ca8afe6 100644
--- a/libavcodec/wmv2dec.c
+++ b/libavcodec/wmv2dec.c
@@ -229,6 +229,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;
     }
 
-- 
2.7.3

_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to