libraries/opal: Added patch for FFMPEG 2.x
Thanks to Sebastian Arcus Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
f54d060e49
commit
226d1026a6
|
@ -1,172 +0,0 @@
|
|||
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 <libavutil/opt.h>
|
||||
#include <limits>
|
||||
#include <iomanip>
|
||||
#include <stdio.h>
|
||||
@@ -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 <libavutil/opt.h>
|
||||
// AVPacket was declared in avformat.h before April 2009
|
||||
#if LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(52, 25, 0)
|
||||
#include "libavformat/avformat.h"
|
|
@ -0,0 +1,389 @@
|
|||
diff -Naur opal-3.10.10-orig/plugins/video/H.263-1998/Makefile.in opal-3.10.10/plugins/video/H.263-1998/Makefile.in
|
||||
--- opal-3.10.10-orig/plugins/video/H.263-1998/Makefile.in 2013-02-20 03:18:03.000000000 +0100
|
||||
+++ opal-3.10.10/plugins/video/H.263-1998/Makefile.in 2013-09-10 21:43:11.091108557 +0200
|
||||
@@ -35,7 +35,7 @@
|
||||
$(COMMONDIR)/dyna.cxx
|
||||
|
||||
CFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR)
|
||||
-LIBS += @DL_LIBS@
|
||||
+LIBS += @DL_LIBS@ @LIBAVUTIL_LIBS@
|
||||
|
||||
HAVE_LIBAVCODEC_RTP_MODE=@HAVE_LIBAVCODEC_RTP_MODE@
|
||||
ifeq ($(HAVE_LIBAVCODEC_RTP_MODE),yes)
|
||||
diff -Naur opal-3.10.10-orig/plugins/video/H.263-1998/h263-1998.cxx opal-3.10.10/plugins/video/H.263-1998/h263-1998.cxx
|
||||
--- opal-3.10.10-orig/plugins/video/H.263-1998/h263-1998.cxx 2013-02-20 03:18:03.000000000 +0100
|
||||
+++ opal-3.10.10/plugins/video/H.263-1998/h263-1998.cxx 2013-09-10 21:43:11.091108557 +0200
|
||||
@@ -48,6 +48,10 @@
|
||||
#endif
|
||||
|
||||
#include "h263-1998.h"
|
||||
+extern "C"
|
||||
+{
|
||||
+#include <libavutil/opt.h>
|
||||
+}
|
||||
#include <limits>
|
||||
#include <iomanip>
|
||||
#include <stdio.h>
|
||||
@@ -203,7 +207,7 @@
|
||||
PTRACE(4, m_prefix, "Encoder closed");
|
||||
}
|
||||
|
||||
-bool H263_Base_EncoderContext::Init(CodecID codecId)
|
||||
+bool H263_Base_EncoderContext::Init(AVCodecID codecId)
|
||||
{
|
||||
PTRACE(5, m_prefix, "Opening encoder");
|
||||
|
||||
@@ -317,9 +321,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 +332,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 +364,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 +374,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 +454,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 +516,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 +598,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.10-orig/plugins/video/H.263-1998/h263-1998.h opal-3.10.10/plugins/video/H.263-1998/h263-1998.h
|
||||
--- opal-3.10.10-orig/plugins/video/H.263-1998/h263-1998.h 2013-02-20 03:18:03.000000000 +0100
|
||||
+++ opal-3.10.10/plugins/video/H.263-1998/h263-1998.h 2013-09-10 21:43:11.091108557 +0200
|
||||
@@ -115,7 +115,7 @@
|
||||
virtual ~H263_Base_EncoderContext();
|
||||
|
||||
virtual bool Init() = 0;
|
||||
- virtual bool Init(CodecID codecId);
|
||||
+ virtual bool Init(AVCodecID codecId);
|
||||
|
||||
virtual bool SetOptions(const char * const * options);
|
||||
virtual void SetOption(const char * option, const char * value);
|
||||
diff -Naur opal-3.10.10-orig/plugins/video/H.264/gpl/h264_helper.cxx opal-3.10.10/plugins/video/H.264/gpl/h264_helper.cxx
|
||||
--- opal-3.10.10-orig/plugins/video/H.264/gpl/h264_helper.cxx 2013-02-20 03:18:02.000000000 +0100
|
||||
+++ opal-3.10.10/plugins/video/H.264/gpl/h264_helper.cxx 2013-09-10 21:43:11.091108557 +0200
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <fstream>
|
||||
#include <stdlib.h>
|
||||
#include <sys/stat.h>
|
||||
+#include <unistd.h>
|
||||
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
diff -Naur opal-3.10.10-orig/plugins/video/H.264/h264-x264.cxx opal-3.10.10/plugins/video/H.264/h264-x264.cxx
|
||||
--- opal-3.10.10-orig/plugins/video/H.264/h264-x264.cxx 2013-02-20 03:18:02.000000000 +0100
|
||||
+++ opal-3.10.10/plugins/video/H.264/h264-x264.cxx 2013-09-10 21:43:11.091108557 +0200
|
||||
@@ -40,6 +40,9 @@
|
||||
#include "plugin-config.h"
|
||||
#endif
|
||||
|
||||
+#define FF_IDCT_H264 11
|
||||
+#define CODEC_FLAG2_SKIP_RD 0x00004000
|
||||
+
|
||||
#include <codec/opalplugin.hpp>
|
||||
|
||||
#include "../common/ffmpeg.h"
|
||||
@@ -1071,13 +1074,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.10-orig/plugins/video/H.264/shared/x264wrap.cxx opal-3.10.10/plugins/video/H.264/shared/x264wrap.cxx
|
||||
--- opal-3.10.10-orig/plugins/video/H.264/shared/x264wrap.cxx 2013-02-20 03:18:02.000000000 +0100
|
||||
+++ opal-3.10.10/plugins/video/H.264/shared/x264wrap.cxx 2013-09-10 21:43:11.091108557 +0200
|
||||
@@ -33,6 +33,7 @@
|
||||
|
||||
#include <codec/opalplugin.hpp>
|
||||
#include <stdio.h>
|
||||
+#include <unistd.h>
|
||||
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
diff -Naur opal-3.10.10-orig/plugins/video/MPEG4-ffmpeg/Makefile.in opal-3.10.10/plugins/video/MPEG4-ffmpeg/Makefile.in
|
||||
--- opal-3.10.10-orig/plugins/video/MPEG4-ffmpeg/Makefile.in 2013-02-20 03:18:07.000000000 +0100
|
||||
+++ opal-3.10.10/plugins/video/MPEG4-ffmpeg/Makefile.in 2013-09-10 21:43:49.101654132 +0200
|
||||
@@ -31,7 +31,7 @@
|
||||
SRCS := mpeg4.cxx $(COMMONDIR)/dyna.cxx
|
||||
|
||||
CFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR)
|
||||
-LIBS += @DL_LIBS@
|
||||
+LIBS += @DL_LIBS@ @LIBAVUTIL_LIBS@
|
||||
|
||||
# Add LIBAVCODEC_SOURCE_DIR to the include path so we can #include <libavcodec/...h>
|
||||
# Also add libavutil, so ffmpeg headers can #include "log.h".
|
||||
diff -Naur opal-3.10.10-orig/plugins/video/MPEG4-ffmpeg/mpeg4.cxx opal-3.10.10/plugins/video/MPEG4-ffmpeg/mpeg4.cxx
|
||||
--- opal-3.10.10-orig/plugins/video/MPEG4-ffmpeg/mpeg4.cxx 2013-02-20 03:18:07.000000000 +0100
|
||||
+++ opal-3.10.10/plugins/video/MPEG4-ffmpeg/mpeg4.cxx 2013-09-10 21:43:11.091108557 +0200
|
||||
@@ -103,6 +103,7 @@
|
||||
|
||||
#else /* LIBAVCODEC_HAVE_SOURCE_DIR */
|
||||
#include "../common/ffmpeg.h"
|
||||
+#include <libavutil/opt.h>
|
||||
#endif /* LIBAVCODEC_HAVE_SOURCE_DIR */
|
||||
}
|
||||
|
||||
@@ -589,17 +590,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 +805,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 +1326,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.10-orig/plugins/video/common/dyna.cxx opal-3.10.10/plugins/video/common/dyna.cxx
|
||||
--- opal-3.10.10-orig/plugins/video/common/dyna.cxx 2013-02-20 03:18:05.000000000 +0100
|
||||
+++ opal-3.10.10/plugins/video/common/dyna.cxx 2013-09-10 21:43:11.091108557 +0200
|
||||
@@ -210,7 +210,7 @@
|
||||
#endif
|
||||
|
||||
|
||||
-FFMPEGLibrary::FFMPEGLibrary(CodecID codec)
|
||||
+FFMPEGLibrary::FFMPEGLibrary(AVCodecID codec)
|
||||
{
|
||||
m_codec = codec;
|
||||
if (m_codec==CODEC_ID_H264)
|
||||
@@ -348,12 +348,12 @@
|
||||
return true;
|
||||
}
|
||||
|
||||
-AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum CodecID id)
|
||||
+AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum AVCodecID id)
|
||||
{
|
||||
return Favcodec_find_encoder(id);
|
||||
}
|
||||
|
||||
-AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum CodecID id)
|
||||
+AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum AVCodecID id)
|
||||
{
|
||||
WaitAndSignal m(processLock);
|
||||
|
||||
diff -Naur opal-3.10.10-orig/plugins/video/common/dyna.h opal-3.10.10/plugins/video/common/dyna.h
|
||||
--- opal-3.10.10-orig/plugins/video/common/dyna.h 2013-02-20 03:18:05.000000000 +0100
|
||||
+++ opal-3.10.10/plugins/video/common/dyna.h 2013-09-10 21:43:11.091108557 +0200
|
||||
@@ -88,13 +88,13 @@
|
||||
class FFMPEGLibrary
|
||||
{
|
||||
public:
|
||||
- FFMPEGLibrary(CodecID codec);
|
||||
+ FFMPEGLibrary(AVCodecID codec);
|
||||
~FFMPEGLibrary();
|
||||
|
||||
bool Load();
|
||||
|
||||
- AVCodec *AvcodecFindEncoder(enum CodecID id);
|
||||
- AVCodec *AvcodecFindDecoder(enum CodecID id);
|
||||
+ AVCodec *AvcodecFindEncoder(enum AVCodecID id);
|
||||
+ AVCodec *AvcodecFindDecoder(enum AVCodecID id);
|
||||
AVCodecContext *AvcodecAllocContext(void);
|
||||
AVFrame *AvcodecAllocFrame(void);
|
||||
int AvcodecOpen(AVCodecContext *ctx, AVCodec *codec);
|
||||
@@ -117,15 +117,15 @@
|
||||
DynaLink m_libAvcodec;
|
||||
DynaLink m_libAvutil;
|
||||
|
||||
- CodecID m_codec;
|
||||
+ AVCodecID m_codec;
|
||||
char m_codecString[32];
|
||||
|
||||
void (*Favcodec_init)(void);
|
||||
void (*Fav_init_packet)(AVPacket *pkt);
|
||||
|
||||
void (*Favcodec_register_all)(void);
|
||||
- AVCodec *(*Favcodec_find_encoder)(enum CodecID id);
|
||||
- AVCodec *(*Favcodec_find_decoder)(enum CodecID id);
|
||||
+ AVCodec *(*Favcodec_find_encoder)(enum AVCodecID id);
|
||||
+ AVCodec *(*Favcodec_find_decoder)(enum AVCodecID id);
|
||||
AVCodecContext *(*Favcodec_alloc_context)(void);
|
||||
AVFrame *(*Favcodec_alloc_frame)(void);
|
||||
int (*Favcodec_open)(AVCodecContext *ctx, AVCodec *codec);
|
||||
diff -Naur opal-3.10.10-orig/plugins/video/common/ffmpeg/libavcodec/avcodec.h opal-3.10.10/plugins/video/common/ffmpeg/libavcodec/avcodec.h
|
||||
--- opal-3.10.10-orig/plugins/video/common/ffmpeg/libavcodec/avcodec.h 2013-02-20 03:18:04.000000000 +0100
|
||||
+++ opal-3.10.10/plugins/video/common/ffmpeg/libavcodec/avcodec.h 2013-09-10 21:43:11.094441937 +0200
|
||||
@@ -101,7 +101,7 @@
|
||||
* 1. no value of a existing codec ID changes (that would break ABI),
|
||||
* 2. it is as close as possible to similar codecs.
|
||||
*/
|
||||
-enum CodecID {
|
||||
+enum AVCodecID {
|
||||
CODEC_ID_NONE,
|
||||
|
||||
/* video codecs */
|
||||
@@ -1390,7 +1390,7 @@
|
||||
|
||||
char codec_name[32];
|
||||
enum AVMediaType codec_type; /* see AVMEDIA_TYPE_xxx */
|
||||
- enum CodecID codec_id; /* see CODEC_ID_xxx */
|
||||
+ enum AVCodecID codec_id; /* see CODEC_ID_xxx */
|
||||
|
||||
/**
|
||||
* fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').
|
||||
@@ -2843,7 +2843,7 @@
|
||||
*/
|
||||
const char *name;
|
||||
enum AVMediaType type;
|
||||
- enum CodecID id;
|
||||
+ enum AVCodecID id;
|
||||
int priv_data_size;
|
||||
int (*init)(AVCodecContext *);
|
||||
int (*encode)(AVCodecContext *, uint8_t *buf, int buf_size, void *data);
|
||||
@@ -2898,7 +2898,7 @@
|
||||
*
|
||||
* See CODEC_ID_xxx
|
||||
*/
|
||||
- enum CodecID id;
|
||||
+ enum AVCodecID id;
|
||||
|
||||
/**
|
||||
* Supported pixel format.
|
||||
@@ -3402,10 +3402,10 @@
|
||||
/**
|
||||
* Find a registered encoder with a matching codec ID.
|
||||
*
|
||||
- * @param id CodecID of the requested encoder
|
||||
+ * @param id AVCodecID of the requested encoder
|
||||
* @return An encoder if one was found, NULL otherwise.
|
||||
*/
|
||||
-AVCodec *avcodec_find_encoder(enum CodecID id);
|
||||
+AVCodec *avcodec_find_encoder(enum AVCodecID id);
|
||||
|
||||
/**
|
||||
* Find a registered encoder with the specified name.
|
||||
@@ -3418,10 +3418,10 @@
|
||||
/**
|
||||
* Find a registered decoder with a matching codec ID.
|
||||
*
|
||||
- * @param id CodecID of the requested decoder
|
||||
+ * @param id AVCodecID of the requested decoder
|
||||
* @return A decoder if one was found, NULL otherwise.
|
||||
*/
|
||||
-AVCodec *avcodec_find_decoder(enum CodecID id);
|
||||
+AVCodec *avcodec_find_decoder(enum AVCodecID id);
|
||||
|
||||
/**
|
||||
* Find a registered decoder with the specified name.
|
||||
@@ -3822,7 +3822,7 @@
|
||||
* @param[in] codec_id the codec
|
||||
* @return Number of bits per sample or zero if unknown for the given codec.
|
||||
*/
|
||||
-int av_get_bits_per_sample(enum CodecID codec_id);
|
||||
+int av_get_bits_per_sample(enum AVCodecID codec_id);
|
||||
|
||||
#if FF_API_OLD_SAMPLE_FMT
|
||||
/**
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
PRGNAM=opal
|
||||
VERSION=${VERSION:-3.10.10}
|
||||
BUILD=${BUILD:-1}
|
||||
BUILD=${BUILD:-2}
|
||||
TAG=${TAG:-_SBo}
|
||||
|
||||
if [ -z "$ARCH" ]; then
|
||||
|
@ -81,8 +81,7 @@ find -L . \
|
|||
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
|
||||
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
|
||||
|
||||
# Thanks to ArchLinux for this patch, rewritten for this version
|
||||
patch -p1 < $CWD/opal-ffmpeg-gcc.patch
|
||||
patch -p1 < $CWD/opal-ffmpeg.patch
|
||||
|
||||
CFLAGS="$SLKCFLAGS" \
|
||||
CXXFLAGS="$SLKCFLAGS" \
|
||||
|
|
Loading…
Reference in New Issue