diff options
Diffstat (limited to 'extra/opal/opal-ffmpeg.patch')
-rw-r--r-- | extra/opal/opal-ffmpeg.patch | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/extra/opal/opal-ffmpeg.patch b/extra/opal/opal-ffmpeg.patch index c40e1ddfb..e7671ee53 100644 --- a/extra/opal/opal-ffmpeg.patch +++ b/extra/opal/opal-ffmpeg.patch @@ -193,3 +193,180 @@ diff -ru opal-3.10.7/plugins/video/MPEG4-ffmpeg/mpeg4.cxx opal-3.10.7.patched/pl m_avcontext->workaround_bugs = 0; // no workaround for buggy implementations } +diff -rupN a/plugins/video/common/dyna.cxx b/plugins/video/common/dyna.cxx +--- a/plugins/video/common/dyna.cxx 2013-02-20 02:18:05.000000000 +0000 ++++ b/plugins/video/common/dyna.cxx 2013-07-22 16:55:47.307946942 +0000 +@@ -210,7 +210,7 @@ static void logCallbackFFMPEG(void * avc + #endif + + +-FFMPEGLibrary::FFMPEGLibrary(CodecID codec) ++FFMPEGLibrary::FFMPEGLibrary(AVCodecID codec) + { + m_codec = codec; + if (m_codec==CODEC_ID_H264) +@@ -348,12 +348,12 @@ bool FFMPEGLibrary::Load() + 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 -rupN a/plugins/video/common/dyna.h b/plugins/video/common/dyna.h +--- a/plugins/video/common/dyna.h 2013-02-20 02:18:05.000000000 +0000 ++++ b/plugins/video/common/dyna.h 2013-07-22 16:55:47.191281134 +0000 +@@ -88,13 +88,13 @@ class DynaLink + 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 @@ class FFMPEGLibrary + 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 -rupN a/plugins/video/common/ffmpeg/libavcodec/avcodec.h b/plugins/video/common/ffmpeg/libavcodec/avcodec.h +--- a/plugins/video/common/ffmpeg/libavcodec/avcodec.h 2013-02-20 02:18:04.000000000 +0000 ++++ b/plugins/video/common/ffmpeg/libavcodec/avcodec.h 2013-07-22 16:55:47.167947971 +0000 +@@ -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 @@ typedef struct AVCodecContext { + + 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 @@ typedef struct AVCodec { + */ + 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 @@ typedef struct AVHWAccel { + * + * See CODEC_ID_xxx + */ +- enum CodecID id; ++ enum AVCodecID id; + + /** + * Supported pixel format. +@@ -3402,10 +3402,10 @@ void avcodec_register(AVCodec *codec); + /** + * 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 @@ AVCodec *avcodec_find_encoder_by_name(co + /** + * 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 @@ char av_get_pict_type_char(int pict_type + * @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 + /** +diff -rupN a/plugins/video/H.263-1998/h263-1998.cxx b/plugins/video/H.263-1998/h263-1998.cxx +--- a/plugins/video/H.263-1998/h263-1998.cxx 2013-02-20 02:18:03.000000000 +0000 ++++ b/plugins/video/H.263-1998/h263-1998.cxx 2013-07-22 16:55:47.314613571 +0000 +@@ -203,7 +203,7 @@ H263_Base_EncoderContext::~H263_Base_Enc + 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"); + +diff -rupN a/plugins/video/H.263-1998/h263-1998.h b/plugins/video/H.263-1998/h263-1998.h +--- a/plugins/video/H.263-1998/h263-1998.h 2013-02-20 02:18:03.000000000 +0000 ++++ b/plugins/video/H.263-1998/h263-1998.h 2013-07-22 16:55:47.307946942 +0000 +@@ -115,7 +115,7 @@ class H263_Base_EncoderContext + 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 -rupN a/plugins/video/H.264/h264-x264.cxx b/plugins/video/H.264/h264-x264.cxx +--- a/plugins/video/H.264/h264-x264.cxx 2013-02-20 02:18:02.000000000 +0000 ++++ b/plugins/video/H.264/h264-x264.cxx 2013-07-22 17:05:35.383661843 +0000 +@@ -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" |