linphone-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Linphone-developers] Update to recent FFmpeg


From: Peter Kovář
Subject: [Linphone-developers] Update to recent FFmpeg
Date: Thu, 24 Sep 2015 17:25:32 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0

Hi *,

following patch will fix the compilation of the mediastreamer2 with up
to date FFmpeg library.

Kind regards,

Peter

---
 src/videofilters/h264dec.c    |  2 +-
 src/videofilters/jpegwriter.c |  4 ++--
 src/videofilters/nowebcam.c   |  4 ++--
 src/videofilters/videodec.c   |  4 ++--
 src/videofilters/videoenc.c   | 14 ++++++++++----
 src/voip/msvideo.c            | 30 +++++++++++++++---------------
 6 files changed, 32 insertions(+), 26 deletions(-)

diff --git a/src/videofilters/h264dec.c b/src/videofilters/h264dec.c
index 1ee4611..e9eaa7a 100644
--- a/src/videofilters/h264dec.c
+++ b/src/videofilters/h264dec.c
@@ -132,7 +132,7 @@ static mblk_t *get_as_yuvmsg(MSFilter *f, DecData
*s, AVFrame *orig){
                s->vsize.width=ctx->width;
                s->vsize.height=ctx->height;
                s->sws_ctx=sws_getContext(ctx->width,ctx->height,ctx->pix_fmt,
-                       
ctx->width,ctx->height,PIX_FMT_YUV420P,SWS_FAST_BILINEAR,
+                       
ctx->width,ctx->height,AV_PIX_FMT_YUV420P,SWS_FAST_BILINEAR,
                        NULL, NULL, NULL);
                ms_filter_notify_no_arg(f,MS_FILTER_OUTPUT_FMT_CHANGED);
        }
diff --git a/src/videofilters/jpegwriter.c b/src/videofilters/jpegwriter.c
index 32b8f72..957030d 100644
--- a/src/videofilters/jpegwriter.c
+++ b/src/videofilters/jpegwriter.c
@@ -127,7 +127,7 @@ static void jpg_process(MSFilter *f){
                        avctx->height=yuvbuf.h;
                        avctx->time_base.num = 1;
                        avctx->time_base.den =1;
-                       avctx->pix_fmt=PIX_FMT_YUVJ420P;
+                       avctx->pix_fmt=AV_PIX_FMT_YUVJ420P;

                        error=avcodec_open2(avctx,s->codec,NULL);
                        if (error!=0) {
@@ -136,7 +136,7 @@ static void jpg_process(MSFilter *f){
                                av_free(avctx);
                                goto end;
                        }
-                       
sws_ctx=sws_getContext(avctx->width,avctx->height,PIX_FMT_YUV420P,
+                       
sws_ctx=sws_getContext(avctx->width,avctx->height,AV_PIX_FMT_YUV420P,
                                
avctx->width,avctx->height,avctx->pix_fmt,SWS_FAST_BILINEAR,NULL,
NULL, NULL);
                        if (sws_ctx==NULL) {
                                ms_error(" sws_getContext() failed.");
diff --git a/src/videofilters/nowebcam.c b/src/videofilters/nowebcam.c
index 5c01aa9..60fbc0f 100644
--- a/src/videofilters/nowebcam.c
+++ b/src/videofilters/nowebcam.c
@@ -84,9 +84,9 @@ static mblk_t *jpeg2yuv(uint8_t *jpgbuf, int bufsize,
MSVideoSize *reqsize){
        }
        ret=ms_yuv_buf_alloc(&dest, reqsize->width,reqsize->height);
        /* not using SWS_FAST_BILINEAR because it doesn't play well with
-        * av_context.pix_fmt set to PIX_FMT_YUVJ420P by jpeg decoder */
+        * av_context.pix_fmt set to AV_PIX_FMT_YUVJ420P by jpeg decoder */

sws_ctx=sws_getContext(av_context.width,av_context.height,av_context.pix_fmt,
-               reqsize->width,reqsize->height,PIX_FMT_YUV420P,SWS_BILINEAR,
+               reqsize->width,reqsize->height,AV_PIX_FMT_YUV420P,SWS_BILINEAR,
                 NULL, NULL, NULL);
        if (sws_ctx==NULL) {
                ms_error("jpeg2yuv: ms_sws_getContext() failed.");
diff --git a/src/videofilters/videodec.c b/src/videofilters/videodec.c
index ba04eb7..42c384a 100644
--- a/src/videofilters/videodec.c
+++ b/src/videofilters/videodec.c
@@ -40,7 +40,7 @@ typedef struct DecState{
        YuvBuf outbuf;
        mblk_t *yuv_msg;
        struct SwsContext *sws_ctx;
-       enum PixelFormat output_pix_fmt;
+       enum AVPixelFormat output_pix_fmt;
        uint8_t dci[512];
        int dci_size;
        MSAverageFPS fps;
@@ -59,7 +59,7 @@ static void dec_init(MSFilter *f, enum CodecID cid){
        s->codec=cid;
        s->input=NULL;
        s->yuv_msg=NULL;
-       s->output_pix_fmt=PIX_FMT_YUV420P;
+       s->output_pix_fmt=AV_PIX_FMT_YUV420P;
        s->snow_initialized=FALSE;
        s->outbuf.w=0;
        s->outbuf.h=0;
diff --git a/src/videofilters/videoenc.c b/src/videofilters/videoenc.c
index 4f29149..8303ba3 100644
--- a/src/videofilters/videoenc.c
+++ b/src/videofilters/videoenc.c
@@ -259,13 +259,13 @@ static void prepare(EncState *s){
        avcodec_get_context_defaults3(c, NULL);
        if (s->codec==CODEC_ID_MJPEG)
        {
-               ms_message("Codec bitrate set to %i",c->bit_rate);
+               ms_message("Codec bitrate set to %li",c->bit_rate);
                c->width = s->vconf.vsize.width;
                c->height = s->vconf.vsize.height;
                c->time_base.num = 1;
                c->time_base.den = (int)s->vconf.fps;
                c->gop_size=(int)s->vconf.fps*5; /*emit I frame every 5 
seconds*/
-               c->pix_fmt=PIX_FMT_YUVJ420P;
+               c->pix_fmt=AV_PIX_FMT_YUVJ420P;
                s->comp_buf=allocb(c->bit_rate*2,0);
                return;
        }
@@ -297,13 +297,13 @@ static void prepare(EncState *s){
                c->qmin=s->qmin;
        }

-       ms_message("Codec bitrate set to %i",c->bit_rate);
+       ms_message("Codec bitrate set to %li",c->bit_rate);
        c->width = s->vconf.vsize.width;
        c->height = s->vconf.vsize.height;
        c->time_base.num = 1;
        c->time_base.den = (int)s->vconf.fps;
        c->gop_size=(int)s->vconf.fps*10; /*emit I frame every 10 seconds*/
-       c->pix_fmt=PIX_FMT_YUV420P;
+       c->pix_fmt=AV_PIX_FMT_YUV420P;
        s->comp_buf=allocb(c->bit_rate*2,0);
 #if HAVE_AVCODEC_SNOW
        if (s->codec==CODEC_ID_SNOW){
@@ -401,7 +401,10 @@ static void add_rfc2190_header(mblk_t **packet,
AVCodecContext *context){
        // assume video size is CIF or QCIF
        if (context->width == 352 && context->height == 288) header->b_wptr[1]
= 0x60;
        else header->b_wptr[1] = 0x40;
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
        if (context->coded_frame->pict_type != FF_I_TYPE) header->b_wptr[1] |=
0x10;
+#pragma GCC diagnostic pop
        header->b_wptr += 4;
        header->b_cont = *packet;
        *packet = header;
@@ -837,9 +840,12 @@ static void process_frame(MSFilter *f, mblk_t *inm){
                if (s->framenum==1){
                        ms_video_starter_first_frame(&s->starter, 
f->ticker->time);
                }
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
                if (c->coded_frame->pict_type==FF_I_TYPE){
                        ms_message("Emitting I-frame");
                }
+#pragma GCC diagnostic pop
                comp_buf->b_wptr+=packet.size;
                split_and_send(f,s,comp_buf);
        }
diff --git a/src/voip/msvideo.c b/src/voip/msvideo.c
index d915551..c6fee18 100644
--- a/src/voip/msvideo.c
+++ b/src/voip/msvideo.c
@@ -404,21 +404,21 @@ void ms_rgb_to_yuv(const uint8_t rgb[3], uint8_t
yuv[3]){
 int ms_pix_fmt_to_ffmpeg(MSPixFmt fmt){
        switch(fmt){
                case MS_RGBA32:
-                       return PIX_FMT_RGBA;
+                       return AV_PIX_FMT_RGBA;
                case MS_RGB24:
-                       return PIX_FMT_RGB24;
+                       return AV_PIX_FMT_RGB24;
                case MS_RGB24_REV:
-                       return PIX_FMT_BGR24;
+                       return AV_PIX_FMT_BGR24;
                case MS_YUV420P:
-                       return PIX_FMT_YUV420P;
+                       return AV_PIX_FMT_YUV420P;
                case MS_YUYV:
-                       return PIX_FMT_YUYV422;
+                       return AV_PIX_FMT_YUYV422;
                case MS_UYVY:
-                       return PIX_FMT_UYVY422;
+                       return AV_PIX_FMT_UYVY422;
                case MS_YUY2:
-                       return PIX_FMT_YUYV422;   /* <- same as MS_YUYV */
+                       return AV_PIX_FMT_YUYV422;   /* <- same as MS_YUYV */
                case MS_RGB565:
-                       return PIX_FMT_RGB565;
+                       return AV_PIX_FMT_RGB565;
                default:
                        ms_fatal("format not supported.");
                        return -1;
@@ -428,19 +428,19 @@ int ms_pix_fmt_to_ffmpeg(MSPixFmt fmt){

 MSPixFmt ffmpeg_pix_fmt_to_ms(int fmt){
        switch(fmt){
-               case PIX_FMT_RGB24:
+               case AV_PIX_FMT_RGB24:
                        return MS_RGB24;
-               case PIX_FMT_BGR24:
+               case AV_PIX_FMT_BGR24:
                        return MS_RGB24_REV;
-               case PIX_FMT_YUV420P:
+               case AV_PIX_FMT_YUV420P:
                        return MS_YUV420P;
-               case PIX_FMT_YUYV422:
+               case AV_PIX_FMT_YUYV422:
                        return MS_YUYV;     /* same as MS_YUY2 */
-               case PIX_FMT_UYVY422:
+               case AV_PIX_FMT_UYVY422:
                        return MS_UYVY;
-               case PIX_FMT_RGBA:
+               case AV_PIX_FMT_RGBA:
                        return MS_RGBA32;
-               case PIX_FMT_RGB565:
+               case AV_PIX_FMT_RGB565:
                        return MS_RGB565;
                default:
                        ms_fatal("format not supported.");
-- 
2.5.3




reply via email to

[Prev in Thread] Current Thread [Next in Thread]