void-packages/srcpkgs/xbmc/patches/070_all_deprecated_function...

341 lines
18 KiB
Diff

commit 1aed04a52e753b5fd395b55d97a70226f62bc634
Author: elupus <elupus@xbmc.org>
Date: Tue Nov 1 21:36:32 2011 +0100
Replace more depreciated ffmpeg functions
diff --git a/lib/DllAvCodec.h b/lib/DllAvCodec.h
index 05edcb7..355b8b2 100644
--- a/lib/DllAvCodec.h
+++ b/lib/DllAvCodec.h
@@ -106,7 +106,7 @@ public:
virtual ~DllAvCodecInterface() {}
virtual void avcodec_register_all(void)=0;
virtual void avcodec_flush_buffers(AVCodecContext *avctx)=0;
- virtual int avcodec_open_dont_call(AVCodecContext *avctx, AVCodec *codec)=0;
+ virtual int avcodec_open2_dont_call(AVCodecContext *avctx, AVCodec *codec, AVDictionary **options)=0;
virtual AVCodec *avcodec_find_decoder(enum CodecID id)=0;
virtual AVCodec *avcodec_find_encoder(enum CodecID id)=0;
virtual int avcodec_close_dont_call(AVCodecContext *avctx)=0;
@@ -117,9 +117,9 @@ public:
virtual int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, int *got_sub_ptr, AVPacket *avpkt)=0;
virtual int avcodec_encode_audio(AVCodecContext *avctx, uint8_t *buf, int buf_size, const short *samples)=0;
virtual int avpicture_get_size(PixelFormat pix_fmt, int width, int height)=0;
- virtual AVCodecContext *avcodec_alloc_context(void)=0;
+ virtual AVCodecContext *avcodec_alloc_context3(AVCodec *codec)=0;
virtual void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode)=0;
- virtual void avcodec_get_context_defaults(AVCodecContext *s)=0;
+ virtual void avcodec_get_context_defaults3(AVCodecContext *s, AVCodec *codec)=0;
virtual AVCodecParserContext *av_parser_init(int codec_id)=0;
virtual int av_parser_parse2(AVCodecParserContext *s,AVCodecContext *avctx, uint8_t **poutbuf, int *poutbuf_size,
const uint8_t *buf, int buf_size,
@@ -165,12 +165,12 @@ public:
::avcodec_register_all();
}
virtual void avcodec_flush_buffers(AVCodecContext *avctx) { ::avcodec_flush_buffers(avctx); }
- virtual int avcodec_open(AVCodecContext *avctx, AVCodec *codec)
+ virtual int avcodec_open2(AVCodecContext *avctx, AVCodec *codec, AVDictionary **options)
{
CSingleLock lock(DllAvCodec::m_critSection);
- return ::avcodec_open(avctx, codec);
+ return ::avcodec_open2(avctx, codec, options);
}
- virtual int avcodec_open_dont_call(AVCodecContext *avctx, AVCodec *codec) { *(int *)0x0 = 0; return 0; }
+ virtual int avcodec_open2_dont_call(AVCodecContext *avctx, AVCodec *codec, AVDictionary **options) { *(int *)0x0 = 0; return 0; }
virtual int avcodec_close_dont_call(AVCodecContext *avctx) { *(int *)0x0 = 0; return 0; }
virtual AVCodec *avcodec_find_decoder(enum CodecID id) { return ::avcodec_find_decoder(id); }
virtual AVCodec *avcodec_find_encoder(enum CodecID id) { return ::avcodec_find_encoder(id); }
@@ -193,9 +193,9 @@ public:
#endif
virtual int avcodec_encode_audio(AVCodecContext *avctx, uint8_t *buf, int buf_size, const short *samples) { return ::avcodec_encode_audio(avctx, buf, buf_size, samples); }
virtual int avpicture_get_size(PixelFormat pix_fmt, int width, int height) { return ::avpicture_get_size(pix_fmt, width, height); }
- virtual AVCodecContext *avcodec_alloc_context() { return ::avcodec_alloc_context(); }
+ virtual AVCodecContext *avcodec_alloc_context3(AVCodec *codec) { return ::avcodec_alloc_context3(codec); }
virtual void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) { ::avcodec_string(buf, buf_size, enc, encode); }
- virtual void avcodec_get_context_defaults(AVCodecContext *s) { ::avcodec_get_context_defaults(s); }
+ virtual void avcodec_get_context_defaults3(AVCodecContext *s, AVCodec *codec) { ::avcodec_get_context_defaults3(s, codec); }
virtual AVCodecParserContext *av_parser_init(int codec_id) { return ::av_parser_init(codec_id); }
virtual int av_parser_parse2(AVCodecParserContext *s,AVCodecContext *avctx, uint8_t **poutbuf, int *poutbuf_size,
@@ -254,12 +254,12 @@ class DllAvCodec : public DllDynamic, DllAvCodecInterface
{
DECLARE_DLL_WRAPPER(DllAvCodec, DLL_PATH_LIBAVCODEC)
DEFINE_FUNC_ALIGNED1(void, __cdecl, avcodec_flush_buffers, AVCodecContext*)
- DEFINE_FUNC_ALIGNED2(int, __cdecl, avcodec_open_dont_call, AVCodecContext*, AVCodec *)
+ DEFINE_FUNC_ALIGNED3(int, __cdecl, avcodec_open2_dont_call, AVCodecContext*, AVCodec *, AVDictionary **)
DEFINE_FUNC_ALIGNED4(int, __cdecl, avcodec_decode_video2, AVCodecContext*, AVFrame*, int*, AVPacket*)
DEFINE_FUNC_ALIGNED4(int, __cdecl, avcodec_decode_audio3, AVCodecContext*, int16_t*, int*, AVPacket*)
DEFINE_FUNC_ALIGNED4(int, __cdecl, avcodec_decode_subtitle2, AVCodecContext*, AVSubtitle*, int*, AVPacket*)
DEFINE_FUNC_ALIGNED4(int, __cdecl, avcodec_encode_audio, AVCodecContext*, uint8_t*, int, const short*)
- DEFINE_FUNC_ALIGNED0(AVCodecContext*, __cdecl, avcodec_alloc_context)
+ DEFINE_FUNC_ALIGNED1(AVCodecContext*, __cdecl, avcodec_alloc_context3, AVCodec *)
DEFINE_FUNC_ALIGNED1(AVCodecParserContext*, __cdecl, av_parser_init, int)
DEFINE_FUNC_ALIGNED9(int, __cdecl, av_parser_parse2, AVCodecParserContext*,AVCodecContext*, uint8_t**, int*, const uint8_t*, int, int64_t, int64_t, int64_t)
DEFINE_METHOD1(int, av_dup_packet, (AVPacket *p1))
@@ -276,7 +276,7 @@ class DllAvCodec : public DllDynamic, DllAvCodecInterface
DEFINE_METHOD5(int, avpicture_fill, (AVPicture *p1, uint8_t *p2, PixelFormat p3, int p4, int p5))
DEFINE_METHOD3(int, avpicture_get_size, (PixelFormat p1, int p2, int p3))
DEFINE_METHOD4(void, avcodec_string, (char *p1, int p2, AVCodecContext *p3, int p4))
- DEFINE_METHOD1(void, avcodec_get_context_defaults, (AVCodecContext *p1))
+ DEFINE_METHOD2(void, avcodec_get_context_defaults3, (AVCodecContext *p1, AVCodec *p2))
DEFINE_METHOD1(void, av_parser_close, (AVCodecParserContext *p1))
DEFINE_METHOD1(void, avpicture_free, (AVPicture *p1))
DEFINE_METHOD1(AVBitStreamFilterContext*, av_bitstream_filter_init, (const char *p1))
@@ -298,7 +298,7 @@ class DllAvCodec : public DllDynamic, DllAvCodecInterface
const void * const p4[6], const int p5[6], int p6))
BEGIN_METHOD_RESOLVE()
RESOLVE_METHOD(avcodec_flush_buffers)
- RESOLVE_METHOD_RENAME(avcodec_open,avcodec_open_dont_call)
+ RESOLVE_METHOD_RENAME(avcodec_open2,avcodec_open2_dont_call)
RESOLVE_METHOD_RENAME(avcodec_close,avcodec_close_dont_call)
RESOLVE_METHOD(avcodec_find_decoder)
RESOLVE_METHOD(avcodec_find_encoder)
@@ -310,9 +310,9 @@ class DllAvCodec : public DllDynamic, DllAvCodecInterface
RESOLVE_METHOD(avcodec_decode_subtitle2)
RESOLVE_METHOD(avcodec_encode_audio)
RESOLVE_METHOD(avpicture_get_size)
- RESOLVE_METHOD(avcodec_alloc_context)
+ RESOLVE_METHOD(avcodec_alloc_context3)
RESOLVE_METHOD(avcodec_string)
- RESOLVE_METHOD(avcodec_get_context_defaults)
+ RESOLVE_METHOD(avcodec_get_context_defaults3)
RESOLVE_METHOD(av_parser_init)
RESOLVE_METHOD(av_parser_parse2)
RESOLVE_METHOD(av_parser_close)
@@ -340,10 +340,10 @@ class DllAvCodec : public DllDynamic, DllAvCodecInterface
public:
static CCriticalSection m_critSection;
- int avcodec_open(AVCodecContext *avctx, AVCodec *codec)
+ int avcodec_open2(AVCodecContext *avctx, AVCodec *codec, AVDictionary **options)
{
CSingleLock lock(DllAvCodec::m_critSection);
- return avcodec_open_dont_call(avctx,codec);
+ return avcodec_open2_dont_call(avctx,codec, options);
}
int avcodec_close(AVCodecContext *avctx)
{
diff --git a/lib/DllAvFormat.h b/lib/DllAvFormat.h
index ed26a0b..9b38c9c 100644
--- a/lib/DllAvFormat.h
+++ b/lib/DllAvFormat.h
@@ -98,7 +98,7 @@ public:
virtual void put_be32(AVIOContext *s, unsigned int val)=0;
virtual void put_be16(AVIOContext *s, unsigned int val)=0;
virtual AVFormatContext *avformat_alloc_context(void)=0;
- virtual AVStream *av_new_stream(AVFormatContext *s, int id)=0;
+ virtual AVStream *avformat_new_stream(AVFormatContext *s, AVCodec *c)=0;
virtual AVOutputFormat *av_guess_format(const char *short_name, const char *filename, const char *mime_type)=0;
virtual int av_set_parameters(AVFormatContext *s, AVFormatParameters *ap)=0;
virtual AVIOContext *av_alloc_put_byte(unsigned char *buffer, int buffer_size, int write_flag, void *opaque,
@@ -146,7 +146,7 @@ public:
}
virtual void url_set_interrupt_cb(URLInterruptCB *interrupt_cb) { ::url_set_interrupt_cb(interrupt_cb); }
virtual int avformat_open_input(AVFormatContext **ps, const char *filename, AVInputFormat *fmt, AVDictionary **options)
- { return ::avformat_open_input(ps, filename, fmt, opt, ap); }
+ { return ::avformat_open_input(ps, filename, fmt, options); }
virtual int init_put_byte(AVIOContext *s, unsigned char *buffer, int buffer_size, int write_flag, void *opaque,
int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
@@ -174,7 +174,7 @@ public:
virtual void put_be32(AVIOContext *s, unsigned int val) { ::put_be32(s, val); }
virtual void put_be16(AVIOContext *s, unsigned int val) { ::put_be16(s, val); }
virtual AVFormatContext *avformat_alloc_context() { return ::avformat_alloc_context(); }
- virtual AVStream *av_new_stream(AVFormatContext *s, int id) { return ::av_new_stream(s, id); }
+ virtual AVStream *avformat_new_stream(AVFormatContext *s, AVCodec *c) { return ::avformat_new_stream(s, c); }
#if LIBAVFORMAT_VERSION_INT < (52<<16 | 45<<8)
virtual AVOutputFormat *av_guess_format(const char *short_name, const char *filename, const char *mime_type) { return ::guess_format(short_name, filename, mime_type); }
#else
@@ -251,7 +251,7 @@ class DllAvFormat : public DllDynamic, DllAvFormatInterface
DEFINE_METHOD2(int, url_close_dyn_buf, (AVIOContext *p1, uint8_t **p2))
DEFINE_METHOD3(offset_t, url_fseek, (AVIOContext *p1, offset_t p2, int p3))
DEFINE_METHOD0(AVFormatContext *, avformat_alloc_context)
- DEFINE_METHOD2(AVStream *, av_new_stream, (AVFormatContext *p1, int p2))
+ DEFINE_METHOD2(AVStream *, avformat_new_stream, (AVFormatContext *p1, AVCodec *p2))
#if LIBAVFORMAT_VERSION_INT < (52<<16 | 45<<8)
DEFINE_METHOD3(AVOutputFormat *, guess_format, (const char *p1, const char *p2, const char *p3))
#else
@@ -300,7 +300,7 @@ class DllAvFormat : public DllDynamic, DllAvFormatInterface
RESOLVE_METHOD(put_be32)
RESOLVE_METHOD(put_be16)
RESOLVE_METHOD(avformat_alloc_context)
- RESOLVE_METHOD(av_new_stream)
+ RESOLVE_METHOD(avformat_new_stream)
#if LIBAVFORMAT_VERSION_INT < (52<<16 | 45<<8)
RESOLVE_METHOD(guess_format)
#else
diff --git a/xbmc/cdrip/EncoderFFmpeg.cpp b/xbmc/cdrip/EncoderFFmpeg.cpp
index 1ec9805..0b3ef76 100644
--- a/xbmc/cdrip/EncoderFFmpeg.cpp
+++ b/xbmc/cdrip/EncoderFFmpeg.cpp
@@ -103,7 +103,7 @@ bool CEncoderFFmpeg::Init(const char* strFile, int iInChannels, int iInRate, int
}
/* add a stream to it */
- m_Stream = m_dllAvFormat.av_new_stream(m_Format, 1);
+ m_Stream = m_dllAvFormat.avformat_new_stream(m_Format, codec);
if (!m_Stream)
{
m_dllAvUtil.av_freep(&m_Format->pb);
@@ -144,7 +144,7 @@ bool CEncoderFFmpeg::Init(const char* strFile, int iInChannels, int iInRate, int
return false;
}
- if (m_dllAvCodec.avcodec_open(m_CodecCtx, codec))
+ if (m_dllAvCodec.avcodec_open2(m_CodecCtx, codec, NULL))
{
CLog::Log(LOGERROR, "CEncoderFFmpeg::Init - Failed to open the codec");
m_dllAvUtil.av_freep(&m_Stream);
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp
index 6037781..838a27f 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp
@@ -63,8 +63,6 @@ bool CDVDAudioCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
return false;
m_dllAvCodec.avcodec_register_all();
- m_pCodecContext = m_dllAvCodec.avcodec_alloc_context();
- m_dllAvCodec.avcodec_get_context_defaults(m_pCodecContext);
pCodec = m_dllAvCodec.avcodec_find_decoder(hints.codec);
if (!pCodec)
@@ -73,6 +71,7 @@ bool CDVDAudioCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
return false;
}
+ m_pCodecContext = m_dllAvCodec.avcodec_alloc_context3(pCodec);
m_pCodecContext->debug_mv = 0;
m_pCodecContext->debug = 0;
m_pCodecContext->workaround_bugs = 1;
@@ -97,7 +96,7 @@ bool CDVDAudioCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
memcpy(m_pCodecContext->extradata, hints.extradata, hints.extrasize);
}
- if (m_dllAvCodec.avcodec_open(m_pCodecContext, pCodec) < 0)
+ if (m_dllAvCodec.avcodec_open2(m_pCodecContext, pCodec, NULL) < 0)
{
CLog::Log(LOGDEBUG,"CDVDAudioCodecFFmpeg::Open() Unable to open codec");
Dispose();
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecPassthroughFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecPassthroughFFmpeg.cpp
index 34e93a4..440b04b 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecPassthroughFFmpeg.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecPassthroughFFmpeg.cpp
@@ -149,7 +149,7 @@ bool CDVDAudioCodecPassthroughFFmpeg::SetupMuxer(CDVDStreamInfo &hints, CStdStri
}
/* add a stream to it */
- muxer.m_pStream = m_dllAvFormat.av_new_stream(muxer.m_pFormat, 1);
+ muxer.m_pStream = m_dllAvFormat.avformat_new_stream(muxer.m_pFormat, NULL);
if (!muxer.m_pStream)
{
CLog::Log(LOGERROR, "CDVDAudioCodecPassthroughFFmpeg::SetupMuxer - Failed to allocate AVStream context");
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Audio/Encoders/DVDAudioEncoderFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Audio/Encoders/DVDAudioEncoderFFmpeg.cpp
index 6f30e11..6141982 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/Encoders/DVDAudioEncoderFFmpeg.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/Encoders/DVDAudioEncoderFFmpeg.cpp
@@ -65,7 +65,7 @@ bool CDVDAudioEncoderFFmpeg::Initialize(unsigned int channels, enum PCMChannels
return false;
/* always assume 6 channels, 5.1... m_remap will give us what we want */
- m_CodecCtx = m_dllAvCodec.avcodec_alloc_context();
+ m_CodecCtx = m_dllAvCodec.avcodec_alloc_context3(codec);
m_CodecCtx->bit_rate = AC3_ENCODE_BITRATE;
m_CodecCtx->sample_rate = sampleRate;
m_CodecCtx->channels = 6;
@@ -104,7 +104,7 @@ bool CDVDAudioEncoderFFmpeg::Initialize(unsigned int channels, enum PCMChannels
}
}
- if (m_dllAvCodec.avcodec_open(m_CodecCtx, codec))
+ if (m_dllAvCodec.avcodec_open2(m_CodecCtx, codec, NULL))
{
m_dllAvUtil.av_freep(&m_CodecCtx);
return false;
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp
index 563ce78..754169e 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp
@@ -49,7 +49,14 @@ bool CDVDOverlayCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &optio
m_dllAvCodec.avcodec_register_all();
- m_pCodecContext = m_dllAvCodec.avcodec_alloc_context();
+ AVCodec* pCodec = m_dllAvCodec.avcodec_find_decoder(hints.codec);
+ if (!pCodec)
+ {
+ CLog::Log(LOGDEBUG,"%s - Unable to find codec %d", __FUNCTION__, hints.codec);
+ return false;
+ }
+
+ m_pCodecContext = m_dllAvCodec.avcodec_alloc_context3(pCodec);
m_pCodecContext->debug_mv = 0;
m_pCodecContext->debug = 0;
m_pCodecContext->workaround_bugs = FF_BUG_AUTODETECT;
@@ -100,14 +107,7 @@ bool CDVDOverlayCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &optio
delete[] parse_extra;
}
- AVCodec* pCodec = m_dllAvCodec.avcodec_find_decoder(hints.codec);
- if (!pCodec)
- {
- CLog::Log(LOGDEBUG,"%s - Unable to find codec %d", __FUNCTION__, hints.codec);
- return false;
- }
-
- if (m_dllAvCodec.avcodec_open(m_pCodecContext, pCodec) < 0)
+ if (m_dllAvCodec.avcodec_open2(m_pCodecContext, pCodec, NULL) < 0)
{
CLog::Log(LOGDEBUG,"CDVDVideoCodecFFmpeg::Open() Unable to open codec");
return false;
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
index 26bdb3a..c792cfd 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
@@ -163,9 +163,9 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
m_dllAvFilter.avfilter_register_all();
m_bSoftware = hints.software;
- m_pCodecContext = m_dllAvCodec.avcodec_alloc_context();
pCodec = NULL;
+ m_pCodecContext = NULL;
if (hints.codec == CODEC_ID_H264)
{
@@ -196,6 +196,7 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
CLog::Log(LOGNOTICE,"CDVDVideoCodecFFmpeg::Open() Creating VDPAU(%ix%i, %d)",hints.width, hints.height, hints.codec);
CVDPAU* vdp = new CVDPAU();
+ m_pCodecContext = m_dllAvCodec.avcodec_alloc_context3(pCodec);
m_pCodecContext->codec_id = hints.codec;
m_pCodecContext->width = hints.width;
m_pCodecContext->height = hints.height;
@@ -207,7 +208,7 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
m_pCodecContext->codec_id = CODEC_ID_NONE; // ffmpeg will complain if this has been set
break;
}
- m_pCodecContext->codec_id = CODEC_ID_NONE; // ffmpeg will complain if this has been set
+ m_dllAvUtil.av_freep(&m_pCodecContext);
CLog::Log(LOGNOTICE,"CDVDVideoCodecFFmpeg::Open() Failed to get VDPAU device");
vdp->Release();
}
@@ -226,6 +227,9 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
CLog::Log(LOGNOTICE,"CDVDVideoCodecFFmpeg::Open() Using codec: %s",pCodec->long_name ? pCodec->long_name : pCodec->name);
+ if(m_pCodecContext == NULL)
+ m_pCodecContext = m_dllAvCodec.avcodec_alloc_context3(pCodec);
+
m_pCodecContext->opaque = (void*)this;
m_pCodecContext->debug_mv = 0;
m_pCodecContext->debug = 0;
@@ -281,7 +285,7 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
|| pCodec->id == CODEC_ID_MPEG4 ))
m_pCodecContext->thread_count = num_threads;
- if (m_dllAvCodec.avcodec_open(m_pCodecContext, pCodec) < 0)
+ if (m_dllAvCodec.avcodec_open2(m_pCodecContext, pCodec, NULL) < 0)
{
CLog::Log(LOGDEBUG,"CDVDVideoCodecFFmpeg::Open() Unable to open codec");
return false;