[MPlayer-dev-eng] [PATCH] Fix compilation on NetBSD
Diego Biurrun
diego at biurrun.de
Tue Oct 4 23:58:05 CEST 2005
On Tue, Oct 04, 2005 at 02:37:49PM +0200, Diego Biurrun wrote:
> On Wed, Sep 28, 2005 at 09:50:50PM +0200, Diego Biurrun wrote:
> > On Wed, Sep 28, 2005 at 09:58:33PM +0300, Jan Knutar wrote:
> > > On Wednesday 28 September 2005 02:07, Diego Biurrun wrote:
> > >
> > > <lrintf problems, avutil.h not defining lrintf unless HAVE_AV_CONFIG_H is defined>
> > >
> > > > Look at libvo/jpeg_enc.c, it has the same problem and a more or less
> > > > clean solution.
> > >
> > > Right. jpeg_enc is written as if it was inside ffmpeg. When I define
> > > HAVE_AV_CONFIG_H before including avutil.h, that also means
> > > that malloc, free and printf among others get disabled. I suppose
> > > one could just replace those in vf_qp.c with the av_ equivalents...
> >
> > Yes, you could. I'm not sure what the best solution is. Anyone?
> >
> > > Also replace the printf with mp_msg. This either requires an
> > > #include "mp_msg.h" to be added to mp_image.h (ugly), or then
> > > #include "mp_msg.h" to be added or moved in nearly every
> > > file in libvo/ (sigh).
> >
> > Huh? There is no printf in vf_qp.c, besides many files in libvo/
> > already #include mp_msg.h...
>
> Does the attached patch work for you?
Here is a better one that should actually work and not duplicate code
while just being a small hack.
Diego
-------------- next part --------------
Index: libmpcodecs/vf_qp.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpcodecs/vf_qp.c,v
retrieving revision 1.2
diff -u -r1.2 vf_qp.c
--- libmpcodecs/vf_qp.c 5 Feb 2004 22:03:42 -0000 1.2
+++ libmpcodecs/vf_qp.c 4 Oct 2005 21:57:17 -0000
@@ -39,11 +39,16 @@
#ifdef USE_LIBAVCODEC_SO
#include <ffmpeg/avcodec.h>
#include <ffmpeg/dsputil.h>
+#include <ffmpeg/common.h>
#else
#include "../libavcodec/avcodec.h"
#include "../libavcodec/dsputil.h"
+#include "../libavutil/common.h"
#endif
+/* FIXME: common.h #defines printf away, but mp_image.h needs printf */
+#undef printf
+
#ifdef HAVE_MALLOC_H
#include <malloc.h>
#endif
@@ -68,7 +73,7 @@
int i;
vf->priv->qp_stride= (width+15)>>4;
- vf->priv->qp= malloc(vf->priv->qp_stride*h*sizeof(int8_t));
+ vf->priv->qp= av_malloc(vf->priv->qp_stride*h*sizeof(int8_t));
for(i=-129; i<128; i++){
double const_values[]={
@@ -155,10 +160,10 @@
static void uninit(struct vf_instance_s* vf){
if(!vf->priv) return;
- if(vf->priv->qp) free(vf->priv->qp);
+ if(vf->priv->qp) av_free(vf->priv->qp);
vf->priv->qp= NULL;
- free(vf->priv);
+ av_free(vf->priv);
vf->priv=NULL;
}
@@ -168,7 +173,7 @@
vf->put_image=put_image;
vf->get_image=get_image;
vf->uninit=uninit;
- vf->priv=malloc(sizeof(struct vf_priv_s));
+ vf->priv=av_malloc(sizeof(struct vf_priv_s));
memset(vf->priv, 0, sizeof(struct vf_priv_s));
// avcodec_init();
More information about the MPlayer-dev-eng
mailing list