[SCM] libav/experimental: disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 15:59:45 UTC 2013


The following commit has been merged in the experimental branch:
commit 15025553627082053c3a756937185cef13ba37df
Author: Aurelien Jacobs <aurel at gnuage.org>
Date:   Thu May 10 13:11:36 2007 +0000

    disable reference to msmpeg4 and wmv2 code when those codecs are not compiled in
    
    Originally committed as revision 8975 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c
index 819866e..0434b10 100644
--- a/libavcodec/h263dec.c
+++ b/libavcodec/h263dec.c
@@ -30,6 +30,7 @@
 #include "mpegvideo.h"
 #include "h263_parser.h"
 #include "mpeg4video_parser.h"
+#include "msmpeg4.h"
 
 //#define DEBUG
 //#define PRINT_FRAME_TIME
@@ -110,7 +111,7 @@ int ff_h263_decode_init(AVCodecContext *avctx)
         if (MPV_common_init(s) < 0)
             return -1;
 
-    if (s->h263_msmpeg4)
+    if (ENABLE_MSMPEG4_DECODER && s->h263_msmpeg4)
         ff_msmpeg4_decode_init(s);
     else
         h263_decode_init_vlc(s);
@@ -388,9 +389,9 @@ retry:
     }
 
     /* let's go :-) */
-    if (s->msmpeg4_version==5) {
+    if (ENABLE_WMV2_DECODER && s->msmpeg4_version==5) {
         ret= ff_wmv2_decode_picture_header(s);
-    } else if (s->msmpeg4_version) {
+    } else if (ENABLE_MSMPEG4_DECODER && s->msmpeg4_version) {
         ret = msmpeg4_decode_picture_header(s);
     } else if (s->h263_pred) {
         if(s->avctx->extradata_size && s->picture_number==0){
@@ -622,7 +623,7 @@ retry:
     //the second part of the wmv2 header contains the MB skip bits which are stored in current_picture->mb_type
     //which isnt available before MPV_frame_start()
     if (s->msmpeg4_version==5){
-        if(ff_wmv2_decode_secondary_picture_header(s) < 0)
+        if(!ENABLE_WMV2_DECODER || ff_wmv2_decode_secondary_picture_header(s) < 0)
             return -1;
     }
 
@@ -647,7 +648,7 @@ retry:
     }
 
     if (s->h263_msmpeg4 && s->msmpeg4_version<4 && s->pict_type==I_TYPE)
-        if(msmpeg4_decode_ext_header(s, buf_size) < 0){
+        if(!ENABLE_MSMPEG4_DECODER || msmpeg4_decode_ext_header(s, buf_size) < 0){
             s->error_status_table[s->mb_num-1]= AC_ERROR|DC_ERROR|MV_ERROR;
         }
 
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index f0069fa..c377993 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -30,6 +30,7 @@
 #include "avcodec.h"
 #include "dsputil.h"
 #include "mpegvideo.h"
+#include "msmpeg4.h"
 #include "faandct.h"
 #include <limits.h>
 
@@ -1354,7 +1355,7 @@ int MPV_encode_init(AVCodecContext *avctx)
 #endif
     if (s->out_format == FMT_H263)
         h263_encode_init(s);
-    if(s->msmpeg4_version)
+    if (ENABLE_MSMPEG4_ENCODER && s->msmpeg4_version)
         ff_msmpeg4_encode_init(s);
     if (s->out_format == FMT_MPEG1)
         ff_mpeg1_encode_init(s);
@@ -3552,7 +3553,7 @@ static inline void MPV_motion(MpegEncContext *s,
                         0, 0, 0,
                         ref_picture, pix_op, qpix_op,
                         s->mv[dir][0][0], s->mv[dir][0][1], 16);
-        }else if(s->mspel){
+        }else if(ENABLE_WMV2 && s->mspel){
             ff_mspel_motion(s, dest_y, dest_cb, dest_cr,
                         ref_picture, pix_op,
                         s->mv[dir][0][0], s->mv[dir][0][1], 16);
@@ -4076,7 +4077,7 @@ static av_always_inline void MPV_decode_mb_internal(MpegEncContext *s, DCTELEM b
                     }
                 }//fi gray
             }
-            else{
+            else if (ENABLE_WMV2) {
                 ff_wmv2_add_mb(s, block, dest_y, dest_cb, dest_cr);
             }
         } else {
@@ -4581,8 +4582,10 @@ static av_always_inline void encode_mb_internal(MpegEncContext *s, int motion_x,
     case CODEC_ID_MSMPEG4V2:
     case CODEC_ID_MSMPEG4V3:
     case CODEC_ID_WMV1:
+        if (ENABLE_MSMPEG4_ENCODER)
         msmpeg4_encode_mb(s, s->block, motion_x, motion_y); break;
     case CODEC_ID_WMV2:
+        if (ENABLE_WMV2_ENCODER)
          ff_wmv2_encode_mb(s, s->block, motion_x, motion_y); break;
 #ifdef CONFIG_H261_ENCODER
     case CODEC_ID_H261:
@@ -5508,7 +5511,7 @@ static int encode_thread(AVCodecContext *c, void *arg){
     }
 
     //not beautiful here but we must write it before flushing so it has to be here
-    if (s->msmpeg4_version && s->msmpeg4_version<4 && s->pict_type == I_TYPE)
+    if (ENABLE_MSMPEG4_ENCODER && s->msmpeg4_version && s->msmpeg4_version<4 && s->pict_type == I_TYPE)
         msmpeg4_encode_ext_header(s);
 
     write_slice_end(s);
@@ -5772,9 +5775,9 @@ static int encode_picture(MpegEncContext *s, int picture_number)
         break;
 #endif
     case FMT_H263:
-        if (s->codec_id == CODEC_ID_WMV2)
+        if (ENABLE_WMV2_ENCODER && s->codec_id == CODEC_ID_WMV2)
             ff_wmv2_encode_picture_header(s, picture_number);
-        else if (s->h263_msmpeg4)
+        else if (ENABLE_MSMPEG4_ENCODER && s->h263_msmpeg4)
             msmpeg4_encode_picture_header(s, picture_number);
         else if (s->h263_pred)
             mpeg4_encode_picture_header(s, picture_number);
diff --git a/libavcodec/msmpeg4data.h b/libavcodec/msmpeg4.h
similarity index 51%
copy from libavcodec/msmpeg4data.h
copy to libavcodec/msmpeg4.h
index c32fc5d..1cf9663 100644
--- a/libavcodec/msmpeg4data.h
+++ b/libavcodec/msmpeg4.h
@@ -1,7 +1,6 @@
 /*
  * MSMPEG4 backend for ffmpeg encoder and decoder
- * copyright (c) 2001 Fabrice Bellard
- * copyright (c) 2002-2004 Michael Niedermayer <michaelni at gmx.at>
+ * copyright (c) 2007 Aurelien Jacobs <aurel at gnuage.org>
  *
  * This file is part of FFmpeg.
  *
@@ -18,26 +17,26 @@
  * 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
- *
- * msmpeg4v1 & v2 stuff by Michael Niedermayer <michaelni at gmx.at>
  */
 
 /**
- * @file msmpeg4data.h
- * MSMPEG4 data tables.
+ * @file msmpeg4.h
  */
 
-#ifndef MSMPEG4DATA_H
-#define MSMPEG4DATA_H
-
-#include "common.h"
-#include "bitstream.h"
+#ifndef MSMPEG4_H
+#define MSMPEG4_H
 
-extern VLC ff_msmp4_mb_i_vlc;
-extern VLC ff_msmp4_dc_luma_vlc[2];
-extern VLC ff_msmp4_dc_chroma_vlc[2];
+#include "config.h"
 
-/* intra picture macro block coded block pattern */
-extern const uint16_t ff_msmp4_mb_i_table[64][2];
+#define ENABLE_MSMPEG4_DECODER (ENABLE_MSMPEG4V1_DECODER || \
+                                ENABLE_MSMPEG4V2_DECODER || \
+                                ENABLE_MSMPEG4V3_DECODER || \
+                                ENABLE_WMV2_DECODER)
+#define ENABLE_MSMPEG4_ENCODER (ENABLE_MSMPEG4V1_ENCODER || \
+                                ENABLE_MSMPEG4V2_ENCODER || \
+                                ENABLE_MSMPEG4V3_ENCODER || \
+                                ENABLE_WMV2_ENCODER)
+#define ENABLE_MSMPEG4 (ENABLE_MSMPEG4_DECODER || ENABLE_MSMPEG4_ENCODER)
+#define ENABLE_WMV2 (ENABLE_WMV2_DECODER || ENABLE_WMV2_ENCODER)
 
-#endif /* MSMPEG4DATA_H */
+#endif /* MSMPEG4_H */

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list