diff -Naur opal-3.10.7.orig/plugins/video/H.263-1998/h263-1998.cxx opal-3.10.7/plugins/video/H.263-1998/h263-1998.cxx --- opal-3.10.7.orig/plugins/video/H.263-1998/h263-1998.cxx 2012-08-23 04:18:42.000000000 +0200 +++ opal-3.10.7/plugins/video/H.263-1998/h263-1998.cxx 2012-09-11 21:22:27.429998081 +0200 @@ -48,6 +48,7 @@ #endif #include "h263-1998.h" +#include #include #include #include @@ -317,9 +318,9 @@ // Level 2+ // works with eyeBeam, signaled via non-standard "D" if (atoi(value) == 1) - m_context->flags |= CODEC_FLAG_H263P_UMV; + av_opt_set_int(m_context->priv_data, "umv", 1, 0); else - m_context->flags &= ~CODEC_FLAG_H263P_UMV; + av_opt_set_int(m_context->priv_data, "umv", 0, 0); return; } @@ -328,9 +329,9 @@ // Annex F: Advanced Prediction Mode // does not work with eyeBeam if (atoi(value) == 1) - m_context->flags |= CODEC_FLAG_OBMC; + av_opt_set_int(m_context->priv_data, "obmc", 1, 0); else - m_context->flags &= ~CODEC_FLAG_OBMC; + av_opt_set_int(m_context->priv_data, "obmc", 0, 0); return; } #endif @@ -360,9 +361,9 @@ // Annex K: Slice Structure // does not work with eyeBeam if (atoi(value) != 0) - m_context->flags |= CODEC_FLAG_H263P_SLICE_STRUCT; + av_opt_set_int(m_context->priv_data, "structured_slices", 1, 0); else - m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT; + av_opt_set_int(m_context->priv_data, "structured_slices", 0, 0); return; } @@ -370,9 +371,9 @@ // Annex S: Alternative INTER VLC mode // does not work with eyeBeam if (atoi(value) == 1) - m_context->flags |= CODEC_FLAG_H263P_AIV; + av_opt_set_int(m_context->priv_data, "aiv", 1, 0); else - m_context->flags &= ~CODEC_FLAG_H263P_AIV; + av_opt_set_int(m_context->priv_data, "aiv", 0, 0); return; } @@ -450,15 +451,6 @@ PTRACE(5, m_prefix, "qmax set to " << m_context->qmax); PTRACE(5, m_prefix, "payload size set to " << m_context->rtp_payload_size); - #define CODEC_TRACER_FLAG(tracer, flag) \ - PTRACE(4, m_prefix, #flag " is " << ((m_context->flags & flag) ? "enabled" : "disabled")); - CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_UMV); - CODEC_TRACER_FLAG(tracer, CODEC_FLAG_OBMC); - CODEC_TRACER_FLAG(tracer, CODEC_FLAG_AC_PRED); - CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_SLICE_STRUCT) - CODEC_TRACER_FLAG(tracer, CODEC_FLAG_LOOP_FILTER); - CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_AIV); - return FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec) == 0; } @@ -521,7 +513,7 @@ // Need to copy to local buffer to guarantee 16 byte alignment memcpy(m_inputFrame->data[0], OPAL_VIDEO_FRAME_DATA_PTR(header), header->width*header->height*3/2); - m_inputFrame->pict_type = (flags & PluginCodec_CoderForceIFrame) ? FF_I_TYPE : AV_PICTURE_TYPE_NONE; + m_inputFrame->pict_type = (flags & PluginCodec_CoderForceIFrame) ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_NONE; /* m_inputFrame->pts = (int64_t)srcRTP.GetTimestamp()*m_context->time_base.den/m_context->time_base.num/VIDEO_CLOCKRATE; @@ -603,13 +595,13 @@ m_context->rtp_callback = &H263_RFC2190_EncoderContext::RTPCallBack; m_context->opaque = this; // used to separate out packets from different encode threads - m_context->flags &= ~CODEC_FLAG_H263P_UMV; + av_opt_set_int(m_context->priv_data, "umv", 0, 0); m_context->flags &= ~CODEC_FLAG_4MV; #if LIBAVCODEC_RTP_MODE m_context->flags &= ~CODEC_FLAG_H263P_AIC; #endif - m_context->flags &= ~CODEC_FLAG_H263P_AIV; - m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT; + av_opt_set_int(m_context->priv_data, "aiv", 0, 0); + av_opt_set_int(m_context->priv_data, "structured_slices", 0, 0); return true; } diff -Naur opal-3.10.7.orig/plugins/video/H.264/h264-x264.cxx opal-3.10.7/plugins/video/H.264/h264-x264.cxx --- opal-3.10.7.orig/plugins/video/H.264/h264-x264.cxx 2012-08-23 04:18:41.000000000 +0200 +++ opal-3.10.7/plugins/video/H.264/h264-x264.cxx 2012-09-11 21:25:33.654998816 +0200 @@ -1071,13 +1071,10 @@ return false; m_context->workaround_bugs = FF_BUG_AUTODETECT; - m_context->error_recognition = FF_ER_AGGRESSIVE; m_context->idct_algo = FF_IDCT_H264; m_context->error_concealment = FF_EC_GUESS_MVS | FF_EC_DEBLOCK; m_context->flags = CODEC_FLAG_INPUT_PRESERVED | CODEC_FLAG_EMU_EDGE; - m_context->flags2 = CODEC_FLAG2_BRDO | - CODEC_FLAG2_MEMC_ONLY | - CODEC_FLAG2_DROP_FRAME_TIMECODE | + m_context->flags2 = CODEC_FLAG2_DROP_FRAME_TIMECODE | CODEC_FLAG2_SKIP_RD | CODEC_FLAG2_CHUNKS; diff -Naur opal-3.10.7.orig/plugins/video/MPEG4-ffmpeg/mpeg4.cxx opal-3.10.7/plugins/video/MPEG4-ffmpeg/mpeg4.cxx --- opal-3.10.7.orig/plugins/video/MPEG4-ffmpeg/mpeg4.cxx 2012-08-23 04:18:44.000000000 +0200 +++ opal-3.10.7/plugins/video/MPEG4-ffmpeg/mpeg4.cxx 2012-09-11 21:33:10.256012246 +0200 @@ -589,17 +589,17 @@ m_avpicture->quality = m_videoQMin; #ifdef USE_ORIG - m_avcontext->flags |= CODEC_FLAG_PART; // data partitioning + av_opt_set_int(m_avcontext->priv_data, "data_partitionin", 1, 0); m_avcontext->flags |= CODEC_FLAG_4MV; // 4 motion vectors #else m_avcontext->max_b_frames=0; /*don't use b frames*/ m_avcontext->flags|=CODEC_FLAG_AC_PRED; - m_avcontext->flags|=CODEC_FLAG_H263P_UMV; + av_opt_set_int(m_avcontext->priv_data, "umv", 1, 0); /*c->flags|=CODEC_FLAG_QPEL;*/ /*don't enable this one: this forces profile_level to advanced simple profile */ m_avcontext->flags|=CODEC_FLAG_4MV; m_avcontext->flags|=CODEC_FLAG_GMC; m_avcontext->flags|=CODEC_FLAG_LOOP_FILTER; - m_avcontext->flags|=CODEC_FLAG_H263P_SLICE_STRUCT; + av_opt_set_int(m_avcontext->priv_data, "structured_slices", 1, 0); #endif m_avcontext->opaque = this; // for use in RTP callback } @@ -804,7 +804,7 @@ // Should the next frame be an I-Frame? if ((flags & PluginCodec_CoderForceIFrame) || (m_frameNum == 0)) { - m_avpicture->pict_type = FF_I_TYPE; + m_avpicture->pict_type = AV_PICTURE_TYPE_I; } else // No IFrame requested, let avcodec decide what to do { @@ -1325,7 +1325,7 @@ void MPEG4DecoderContext::SetStaticDecodingParams() { m_avcontext->flags |= CODEC_FLAG_4MV; - m_avcontext->flags |= CODEC_FLAG_PART; + av_opt_set_int(m_avcontext->priv_data, "data_partitionin", 1, 0); m_avcontext->workaround_bugs = 0; // no workaround for buggy implementations } diff -Naur opal-3.10.7.orig/plugins/video/common/ffmpeg.h opal-3.10.7/plugins/video/common/ffmpeg.h --- opal-3.10.7.orig/plugins/video/common/ffmpeg.h 2012-08-23 04:18:43.000000000 +0200 +++ opal-3.10.7/plugins/video/common/ffmpeg.h 2012-09-11 21:29:08.505015076 +0200 @@ -46,6 +46,7 @@ #include "platform.h" #include "libavcodec/avcodec.h" +#include // AVPacket was declared in avformat.h before April 2009 #if LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(52, 25, 0) #include "libavformat/avformat.h"