FreeBSD Bugzilla – Attachment 170067 Details for
Bug 209346
net/opal: Fix build with ffmpeg 3.0.x
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch to fix build of net/opal using ffmpeg 3.0.x
opal.diff (text/plain), 10.18 KB, created by
Ben Woods
on 2016-05-06 22:19:58 UTC
(
hide
)
Description:
Patch to fix build of net/opal using ffmpeg 3.0.x
Filename:
MIME Type:
Creator:
Ben Woods
Created:
2016-05-06 22:19:58 UTC
Size:
10.18 KB
patch
obsolete
>Index: net/opal/files/patch-ffmpeg3 >=================================================================== >--- net/opal/files/patch-ffmpeg3 (nonexistent) >+++ net/opal/files/patch-ffmpeg3 (working copy) >@@ -0,0 +1,247 @@ >+Description: Replace deprecated FFmpeg API >+Author: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com> >+Last-Update: <2015-11-02> >+ >+--- plugins/video/H.263-1998/h263-1998.cxx.orig >++++ plugins/video/H.263-1998/h263-1998.cxx >+@@ -230,11 +230,10 @@ bool H263_Base_EncoderContext::Init(AVCo >+ >+ m_context->opaque = this; >+ >+- m_context->flags = CODEC_FLAG_EMU_EDGE // don't draw edges >+- | CODEC_FLAG_TRUNCATED // Possible missing packets >++ m_context->flags = CODEC_FLAG_TRUNCATED // Possible missing packets >+ ; >+ >+- m_context->pix_fmt = PIX_FMT_YUV420P; >++ m_context->pix_fmt = AV_PIX_FMT_YUV420P; >+ m_context->gop_size = H263_KEY_FRAME_INTERVAL; >+ >+ // X-Lite does not like Custom Picture frequency clocks... stick to 29.97Hz >+@@ -440,9 +439,6 @@ bool H263_Base_EncoderContext::OpenCodec >+ m_inputFrame->data[1] = m_inputFrame->data[0] + planeSize; >+ m_inputFrame->data[2] = m_inputFrame->data[1] + (planeSize / 4); >+ >+- if (m_context->width > 352) >+- m_context->flags &= ~CODEC_FLAG_EMU_EDGE; // Totally bizarre! FFMPEG crashes if on for CIF4 >+- >+ // Dump info >+ PTRACE(5, m_prefix, "Size is " << m_context->width << "x" << m_context->height); >+ PTRACE(5, m_prefix, "GOP is " << m_context->gop_size); >+@@ -456,7 +452,7 @@ bool H263_Base_EncoderContext::OpenCodec >+ PTRACE(5, m_prefix, "qmax set to " << m_context->qmax); >+ PTRACE(5, m_prefix, "payload size set to " << m_context->rtp_payload_size); >+ >+- return FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec) == 0; >++ return FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec, NULL) == 0; >+ } >+ >+ void H263_Base_EncoderContext::CloseCodec() >+@@ -707,7 +703,7 @@ bool H263_Base_DecoderContext::OpenCodec >+ return 0; >+ } >+ >+- if (FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec) < 0) { >++ if (FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec, NULL) < 0) { >+ PTRACE(1, m_prefix, "Failed to open H.263 decoder"); >+ return false; >+ } >+--- plugins/video/H.264/h264-x264.cxx.orig >++++ plugins/video/H.264/h264-x264.cxx >+@@ -1074,7 +1074,6 @@ class MyDecoder : public PluginCodec<MY_ >+ m_context->workaround_bugs = FF_BUG_AUTODETECT; >+ 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_DROP_FRAME_TIMECODE | >+ CODEC_FLAG2_SKIP_RD | >+ CODEC_FLAG2_CHUNKS; >+@@ -1084,7 +1083,7 @@ class MyDecoder : public PluginCodec<MY_ >+ if ((m_picture = FFMPEGLibraryInstance.AvcodecAllocFrame()) == NULL) >+ return false; >+ >+- if (FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec) < 0) >++ if (FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec, NULL) < 0) >+ return false; >+ >+ PTRACE(4, MY_CODEC_LOG, "Opened decoder (SVN $Revision: 28048 $)"); >+--- plugins/video/MPEG4-ffmpeg/mpeg4.cxx.orig >++++ plugins/video/MPEG4-ffmpeg/mpeg4.cxx >+@@ -539,7 +539,7 @@ void MPEG4EncoderContext::ResetBitCounte >+ // >+ >+ void MPEG4EncoderContext::SetStaticEncodingParams(){ >+- m_avcontext->pix_fmt = PIX_FMT_YUV420P; >++ m_avcontext->pix_fmt = AV_PIX_FMT_YUV420P; >+ m_avcontext->mb_decision = FF_MB_DECISION_SIMPLE; // high quality off >+ m_avcontext->rtp_payload_size = 750; // ffh263 uses 750 >+ m_avcontext->rtp_callback = &MPEG4EncoderContext::RtpCallback; >+@@ -595,7 +595,6 @@ void MPEG4EncoderContext::SetStaticEncod >+ m_avcontext->flags|=CODEC_FLAG_AC_PRED; >+ /*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; >+ #endif >+ m_avcontext->opaque = this; // for use in RTP callback >+@@ -710,13 +709,15 @@ bool MPEG4EncoderContext::OpenCodec() >+ if (PTRACE_CHECK(4)) { >+ m_avcontext->debug |= FF_DEBUG_RC; >+ m_avcontext->debug |= FF_DEBUG_PICT_INFO; >+- m_avcontext->debug |= FF_DEBUG_MV; >++// m_avcontext->debug |= FF_DEBUG_MV; >+ } >+ #endif >+ >+ SetStaticEncodingParams(); >+ SetDynamicEncodingParams(false); // don't force a restart, it's not open >+- if (FFMPEGLibraryInstance.AvcodecOpen(m_avcontext, m_avcodec) < 0) >++ AVDictionary *opts = NULL; >++ av_dict_set_int(&opts, "gmc", 1, 0); >++ if (FFMPEGLibraryInstance.AvcodecOpen(m_avcontext, m_avcodec, &opts) < 0) >+ { >+ PTRACE(1, "MPEG4", "Encoder could not be opened"); >+ return false; >+@@ -1411,7 +1412,7 @@ bool MPEG4DecoderContext::OpenCodec() >+ >+ SetStaticDecodingParams(); >+ SetDynamicDecodingParams(false); // don't force a restart, it's not open >+- if (FFMPEGLibraryInstance.AvcodecOpen(m_avcontext, m_avcodec) < 0) { >++ if (FFMPEGLibraryInstance.AvcodecOpen(m_avcontext, m_avcodec, NULL) < 0) { >+ PTRACE(1, "MPEG4", "Decoder failed to open"); >+ return false; >+ } >+--- plugins/video/common/dyna.h.orig >++++ plugins/video/common/dyna.h >+@@ -97,7 +97,7 @@ class FFMPEGLibrary >+ AVCodec *AvcodecFindDecoder(enum AVCodecID id); >+ AVCodecContext *AvcodecAllocContext(AVCodec*); >+ AVFrame *AvcodecAllocFrame(void); >+- int AvcodecOpen(AVCodecContext *ctx, AVCodec *codec); >++ int AvcodecOpen(AVCodecContext *ctx, AVCodec *codec, AVDictionary **options); >+ int AvcodecClose(AVCodecContext *ctx); >+ int AvcodecEncodeVideo(AVCodecContext *ctx, BYTE *buf, int buf_size, const AVFrame *pict); >+ int AvcodecDecodeVideo(AVCodecContext *ctx, AVFrame *pict, int *got_picture_ptr, BYTE *buf, int buf_size); >+--- plugins/video/common/ffmpeg.h.orig >++++ plugins/video/common/ffmpeg.h >+@@ -47,6 +47,7 @@ >+ >+ extern "C" { >+ #include "libavcodec/avcodec.h" >++#include "libavutil/imgutils.h" >+ // AVPacket was declared in avformat.h before April 2009 >+ #if LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(52, 25, 0) >+ #include <libavformat/avformat.h> >+--- plugins/video/H.263-1998/h263-1998.cxx.orig >++++ plugins/video/H.263-1998/h263-1998.cxx >+@@ -98,7 +98,7 @@ >+ { CIF16_WIDTH, CIF16_HEIGHT, PLUGINCODEC_CIF16_MPI }, >+ }; >+ >+-static FFMPEGLibrary FFMPEGLibraryInstance(CODEC_ID_H263P); >++static FFMPEGLibrary FFMPEGLibraryInstance(AV_CODEC_ID_H263P); >+ >+ >+ ///////////////////////////////////////////////////////////////////////////// >+@@ -583,7 +583,7 @@ >+ >+ bool H263_RFC2190_EncoderContext::Init() >+ { >+- if (!H263_Base_EncoderContext::Init(CODEC_ID_H263)) >++ if (!H263_Base_EncoderContext::Init(AV_CODEC_ID_H263)) >+ return false; >+ >+ #if LIBAVCODEC_RTP_MODE >+@@ -620,7 +620,7 @@ >+ >+ bool H263_RFC2429_EncoderContext::Init() >+ { >+- return H263_Base_EncoderContext::Init(CODEC_ID_H263P); >++ return H263_Base_EncoderContext::Init(AV_CODEC_ID_H263P); >+ } >+ >+ >+@@ -644,7 +644,7 @@ >+ if (!FFMPEGLibraryInstance.Load()) >+ return; >+ >+- if ((m_codec = FFMPEGLibraryInstance.AvcodecFindDecoder(CODEC_ID_H263)) == NULL) { >++ if ((m_codec = FFMPEGLibraryInstance.AvcodecFindDecoder(AV_CODEC_ID_H263)) == NULL) { >+ PTRACE(1, m_prefix, "Codec not found for decoder"); >+ return; >+ } >+--- plugins/video/common/dyna.cxx.orig >++++ plugins/video/common/dyna.cxx >+@@ -213,11 +213,11 @@ >+ FFMPEGLibrary::FFMPEGLibrary(AVCodecID codec) >+ { >+ m_codec = codec; >+- if (m_codec==CODEC_ID_H264) >++ if (m_codec==AV_CODEC_ID_H264) >+ snprintf( m_codecString, sizeof(m_codecString), "H264"); >+- if (m_codec==CODEC_ID_H263P) >++ if (m_codec==AV_CODEC_ID_H263P) >+ snprintf( m_codecString, sizeof(m_codecString), "H263+"); >+- if (m_codec==CODEC_ID_MPEG4) >++ if (m_codec==AV_CODEC_ID_MPEG4) >+ snprintf( m_codecString, sizeof(m_codecString), "MPEG4"); >+ m_isLoadedOK = false; >+ } >+@@ -374,7 +374,7 @@ >+ return Favcodec_alloc_frame(); >+ } >+ >+-int FFMPEGLibrary::AvcodecOpen(AVCodecContext *ctx, AVCodec *codec) >++int FFMPEGLibrary::AvcodecOpen(AVCodecContext *ctx, AVCodec *codec, AVDictionary **options) >+ { >+ WaitAndSignal m(processLock); >+ >+--- plugins/video/MPEG4-ffmpeg/mpeg4.cxx.orig >++++ plugins/video/MPEG4-ffmpeg/mpeg4.cxx >+@@ -206,7 +206,7 @@ >+ { 0 } >+ }; >+ >+-FFMPEGLibrary FFMPEGLibraryInstance(CODEC_ID_MPEG4); >++FFMPEGLibrary FFMPEGLibraryInstance(AV_CODEC_ID_MPEG4); >+ >+ >+ static bool mpeg4IsIframe (BYTE * frameBuffer, unsigned int frameLen ) >+@@ -703,7 +703,7 @@ >+ return false; >+ } >+ >+- if((m_avcodec = FFMPEGLibraryInstance.AvcodecFindEncoder(CODEC_ID_MPEG4)) == NULL){ >++ if((m_avcodec = FFMPEGLibraryInstance.AvcodecFindEncoder(AV_CODEC_ID_MPEG4)) == NULL){ >+ PTRACE(1, "MPEG4", "Encoder not found"); >+ return false; >+ } >+@@ -1396,7 +1396,7 @@ >+ >+ bool MPEG4DecoderContext::OpenCodec() >+ { >+- if ((m_avcodec = FFMPEGLibraryInstance.AvcodecFindDecoder(CODEC_ID_MPEG4)) == NULL) { >++ if ((m_avcodec = FFMPEGLibraryInstance.AvcodecFindDecoder(AV_CODEC_ID_MPEG4)) == NULL) { >+ PTRACE(1, "MPEG4", "Decoder not found for encoder"); >+ return false; >+ } >+--- plugins/video/H.264/h264-x264.cxx.orig >++++ plugins/video/H.264/h264-x264.cxx >+@@ -107,7 +107,7 @@ >+ >+ /////////////////////////////////////////////////////////////////////////////// >+ >+-FFMPEGLibrary FFMPEGLibraryInstance(CODEC_ID_H264); >++FFMPEGLibrary FFMPEGLibraryInstance(AV_CODEC_ID_H264); >+ >+ PLUGINCODEC_CONTROL_LOG_FUNCTION_DEF >+ >+@@ -1067,7 +1067,7 @@ >+ allows you to fail the create operation (return false), which cannot >+ be done in the normal C++ constructor. */ >+ >+- if ((m_codec = FFMPEGLibraryInstance.AvcodecFindDecoder(CODEC_ID_H264)) == NULL) >++ if ((m_codec = FFMPEGLibraryInstance.AvcodecFindDecoder(AV_CODEC_ID_H264)) == NULL) >+ return false; >+ >+ if ((m_context = FFMPEGLibraryInstance.AvcodecAllocContext()) == NULL) > >Property changes on: net/opal/files/patch-ffmpeg3 >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 209346
:
170066
| 170067 |
170070