changeset 31293:a51baa308479

libmpeg2: Remove local quantizer scale changes related to postprocessing. Local changes to our locally forked library copy were incompatible with the upstream version and prevented (easily) using the upstream version instead of the forked copy. The md5sums of the decoded frames do not change for one tested sample, so apparently the code is ineffectual and thus, after some discussion with Luca, I decided that the changes are not worth keeping.
author diego
date Thu, 10 Jun 2010 09:52:30 +0000
parents 92f7d389db9f
children 754c22e6d43f
files configure libmpcodecs/vd_libmpeg2.c libmpeg2/header.c libmpeg2/libmpeg2_changes.diff libmpeg2/slice.c
diffstat 5 files changed, 1 insertions(+), 103 deletions(-) [+]
line wrap: on
line diff
--- a/configure	Wed Jun 09 21:13:03 2010 +0000
+++ b/configure	Thu Jun 10 09:52:30 2010 +0000
@@ -8890,8 +8890,7 @@
 #undef FAST_OSD
 #undef FAST_OSD_TABLE
 
-/* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
-#define MPEG12_POSTPROC 1
+/* needed for libmpeg2 */
 #define ATTRIBUTE_ALIGNED_MAX 16
 
 
--- a/libmpcodecs/vd_libmpeg2.c	Wed Jun 09 21:13:03 2010 +0000
+++ b/libmpcodecs/vd_libmpeg2.c	Thu Jun 10 09:52:30 2010 +0000
@@ -25,8 +25,6 @@
 
 #include "vd_internal.h"
 
-//#undef MPEG12_POSTPROC
-
 static const vd_info_t info =
 {
 	"libmpeg2 MPEG 1/2 Video decoder",
@@ -256,20 +254,6 @@
             if (!(info->current_picture->flags&PIC_FLAG_PROGRESSIVE_FRAME))
                 mpi_new->fields |= MP_IMGFIELD_INTERLACED;
 
-#ifdef MPEG12_POSTPROC
-	    mpi_new->qstride=info->sequence->width>>4;
-	    {
-	    char **p = &context->quant_store[type==PIC_FLAG_CODING_TYPE_B ?
-					2 : (context->quant_store_idx ^= 1)];
-	    *p = realloc(*p, mpi_new->qstride*(info->sequence->height>>4));
-	    mpi_new->qscale = *p;
-	    }
-	    mpeg2dec->decoder.quant_store=mpi_new->qscale;
-	    mpeg2dec->decoder.quant_stride=mpi_new->qstride;
-	    mpi_new->pict_type=type; // 1->I, 2->P, 3->B
-	    mpi_new->qscale_type= 1;
-#endif
-
 	    if (mpi_new->flags&MP_IMGFLAG_DRAW_CALLBACK
 	        && !(mpi_new->flags&MP_IMGFLAG_DIRECT)) {
 		// nice, filter/vo likes draw_callback :)
--- a/libmpeg2/header.c	Wed Jun 09 21:13:03 2010 +0000
+++ b/libmpeg2/header.c	Thu Jun 10 09:52:30 2010 +0000
@@ -20,10 +20,6 @@
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Modified for use with MPlayer, see libmpeg2_changes.diff for the exact changes.
- * detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
- * $Id$
  */
 
 #include "config.h"
@@ -876,7 +872,6 @@
 	mpeg2dec->scaled[idx] = decoder->q_scale_type;
 	for (i = 0; i < 32; i++) {
 	    k = decoder->q_scale_type ? non_linear_scale[i] : (i << 1);
-	    decoder->quantizer_scales[i] = k;
 	    for (j = 0; j < 64; j++)
 		decoder->quantizer_prescale[idx][i][j] =
 		    k * mpeg2dec->quantizer_matrix[idx][j];
--- a/libmpeg2/libmpeg2_changes.diff	Wed Jun 09 21:13:03 2010 +0000
+++ b/libmpeg2/libmpeg2_changes.diff	Thu Jun 10 09:52:30 2010 +0000
@@ -126,16 +126,6 @@
      if (accel & MPEG2_ACCEL_PPC_ALTIVEC) {
  	mpeg2_cpu_state_save = state_save_altivec;
  	mpeg2_cpu_state_restore = state_restore_altivec;
---- libmpeg2/header.c	2006-06-16 20:12:26.000000000 +0200
-+++ libmpeg2/header.c	2006-06-16 20:12:50.000000000 +0200
-@@ -872,6 +879,7 @@
- 	mpeg2dec->scaled[idx] = decoder->q_scale_type;
- 	for (i = 0; i < 32; i++) {
- 	    k = decoder->q_scale_type ? non_linear_scale[i] : (i << 1);
-+	    decoder->quantizer_scales[i] = k;
- 	    for (j = 0; j < 64; j++)
- 		decoder->quantizer_prescale[idx][i][j] =
- 		    k * mpeg2dec->quantizer_matrix[idx][j];
 --- libmpeg2/idct.c	(revision 26652)
 +++ libmpeg2/idct.c	(working copy)
 @@ -235,34 +239,40 @@
@@ -343,18 +333,6 @@
 
 --- libmpeg2/mpeg2_internal.h	2006-06-16 20:12:26.000000000 +0200
 +++ libmpeg2/mpeg2_internal.h	2006-06-16 20:12:50.000000000 +0200
-@@ -152,6 +156,11 @@
-
-     /* XXX: stuff due to xine shit */
-     int8_t q_scale_type;
-+
-+    int quantizer_scales[32];
-+    int quantizer_scale;
-+    char* quant_store;
-+    int quant_stride;
- };
-
- typedef struct {
 @@ -226,7 +238,7 @@
  };
 
@@ -364,38 +342,3 @@
      uint8_t regv[12*16];
  #endif
      int dummy;
---- libmpeg2/slice.c	2006-06-16 20:12:26.000000000 +0200
-+++ libmpeg2/slice.c	2006-06-16 20:12:50.000000000 +0200
-@@ -142,6 +146,7 @@
-
-     quantizer_scale_code = UBITS (bit_buf, 5);
-     DUMPBITS (bit_buf, bits, 5);
-+    decoder->quantizer_scale = decoder->quantizer_scales[quantizer_scale_code];
-
-     decoder->quantizer_matrix[0] =
- 	decoder->quantizer_prescale[0][quantizer_scale_code];
-@@ -1564,6 +1569,24 @@
-
- #define NEXT_MACROBLOCK							\
- do {									\
-+    if(decoder->quant_store) {						\
-+	if (decoder->picture_structure == TOP_FIELD)			\
-+	    decoder->quant_store[2 * decoder->quant_stride		\
-+				 * (decoder->v_offset >> 4)		\
-+				 + (decoder->offset >> 4)]		\
-+		= decoder->quantizer_scale;				\
-+	else if (decoder->picture_structure == BOTTOM_FIELD)		\
-+	    decoder->quant_store[2 * decoder->quant_stride		\
-+				 * (decoder->v_offset >> 4)		\
-+				 + decoder->quant_stride		\
-+				 + (decoder->offset >> 4)]		\
-+		= decoder->quantizer_scale;				\
-+	else								\
-+	    decoder->quant_store[decoder->quant_stride			\
-+				 * (decoder->v_offset >> 4)		\
-+				 + (decoder->offset >> 4)]		\
-+		= decoder->quantizer_scale;				\
-+    }									\
-     decoder->offset += 16;						\
-     if (decoder->offset == decoder->width) {				\
- 	do { /* just so we can use the break statement */		\
--- a/libmpeg2/slice.c	Wed Jun 09 21:13:03 2010 +0000
+++ b/libmpeg2/slice.c	Thu Jun 10 09:52:30 2010 +0000
@@ -20,10 +20,6 @@
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Modified for use with MPlayer, see libmpeg2_changes.diff for the exact changes.
- * detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
- * $Id$
  */
 
 #include "config.h"
@@ -146,7 +142,6 @@
 
     quantizer_scale_code = UBITS (bit_buf, 5);
     DUMPBITS (bit_buf, bits, 5);
-    decoder->quantizer_scale = decoder->quantizer_scales[quantizer_scale_code];
 
     decoder->quantizer_matrix[0] =
 	decoder->quantizer_prescale[0][quantizer_scale_code];
@@ -1569,24 +1564,6 @@
 
 #define NEXT_MACROBLOCK							\
 do {									\
-    if(decoder->quant_store) {						\
-	if (decoder->picture_structure == TOP_FIELD)			\
-	    decoder->quant_store[2 * decoder->quant_stride		\
-				 * (decoder->v_offset >> 4)		\
-				 + (decoder->offset >> 4)]		\
-		= decoder->quantizer_scale;				\
-	else if (decoder->picture_structure == BOTTOM_FIELD)		\
-	    decoder->quant_store[2 * decoder->quant_stride		\
-				 * (decoder->v_offset >> 4)		\
-				 + decoder->quant_stride		\
-				 + (decoder->offset >> 4)]		\
-		= decoder->quantizer_scale;				\
-	else								\
-	    decoder->quant_store[decoder->quant_stride			\
-				 * (decoder->v_offset >> 4)		\
-				 + (decoder->offset >> 4)]		\
-		= decoder->quantizer_scale;				\
-    }									\
     decoder->offset += 16;						\
     if (decoder->offset == decoder->width) {				\
 	do { /* just so we can use the break statement */		\