179 lines
9.7 KiB
Diff
179 lines
9.7 KiB
Diff
commit 2528bd0db7331f98167c7e18dafddb568840c471
|
|
Author: Alexis Ballier <aballier@gentoo.org>
|
|
Date: Thu Mar 1 10:48:46 2012 -0300
|
|
|
|
Replace av_metadata_(get/set2) by av_dict_(get/set).
|
|
|
|
The former is deprecated and gone in ffmpeg git.
|
|
|
|
diff --git a/lib/DllAvFormat.h b/lib/DllAvFormat.h
|
|
index 0671fee..4f9a60d 100644
|
|
--- a/lib/DllAvFormat.h
|
|
+++ b/lib/DllAvFormat.h
|
|
@@ -63,7 +63,6 @@ public:
|
|
virtual void av_register_all_dont_call(void)=0;
|
|
virtual AVInputFormat *av_find_input_format(const char *short_name)=0;
|
|
virtual int url_feof(AVIOContext *s)=0;
|
|
- virtual AVDictionaryEntry *av_metadata_get(AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags)=0;
|
|
virtual void av_close_input_file(AVFormatContext *s)=0;
|
|
virtual void av_close_input_stream(AVFormatContext *s)=0;
|
|
virtual int av_read_frame(AVFormatContext *s, AVPacket *pkt)=0;
|
|
@@ -105,7 +104,6 @@ public:
|
|
virtual int avformat_write_header (AVFormatContext *s, AVDictionary **options)=0;
|
|
virtual int av_write_trailer(AVFormatContext *s)=0;
|
|
virtual int av_write_frame (AVFormatContext *s, AVPacket *pkt)=0;
|
|
- virtual int av_metadata_set2(AVDictionary **pm, const char *key, const char *value, int flags)=0;
|
|
};
|
|
|
|
#if (defined USE_EXTERNAL_FFMPEG)
|
|
@@ -123,7 +121,6 @@ public:
|
|
virtual void av_register_all_dont_call() { *(int* )0x0 = 0; }
|
|
virtual AVInputFormat *av_find_input_format(const char *short_name) { return ::av_find_input_format(short_name); }
|
|
virtual int url_feof(AVIOContext *s) { return ::url_feof(s); }
|
|
- virtual AVDictionaryEntry *av_metadata_get(AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags){ return ::av_metadata_get(m, key, prev, flags); }
|
|
virtual void av_close_input_file(AVFormatContext *s) { ::av_close_input_file(s); }
|
|
virtual void av_close_input_stream(AVFormatContext *s) { ::av_close_input_stream(s); }
|
|
virtual int av_read_frame(AVFormatContext *s, AVPacket *pkt) { return ::av_read_frame(s, pkt); }
|
|
@@ -168,7 +165,6 @@ public:
|
|
virtual int avformat_write_header (AVFormatContext *s, AVDictionary **options) { return ::avformat_write_header (s, options); }
|
|
virtual int av_write_trailer(AVFormatContext *s) { return ::av_write_trailer(s); }
|
|
virtual int av_write_frame (AVFormatContext *s, AVPacket *pkt) { return ::av_write_frame(s, pkt); }
|
|
- virtual int av_metadata_set2(AVDictionary **pm, const char *key, const char *value, int flags) { return ::av_metadata_set2(pm, key, value, flags); }
|
|
|
|
// DLL faking.
|
|
virtual bool ResolveExports() { return true; }
|
|
@@ -190,7 +186,6 @@ class DllAvFormat : public DllDynamic, DllAvFormatInterface
|
|
DEFINE_METHOD0(void, av_register_all_dont_call)
|
|
DEFINE_METHOD1(AVInputFormat*, av_find_input_format, (const char *p1))
|
|
DEFINE_METHOD1(int, url_feof, (AVIOContext *p1))
|
|
- DEFINE_METHOD4(AVDictionaryEntry*, av_metadata_get, (AVDictionary *p1, const char *p2, const AVDictionaryEntry *p3, int p4))
|
|
DEFINE_METHOD1(void, av_close_input_file, (AVFormatContext *p1))
|
|
DEFINE_METHOD1(void, av_close_input_stream, (AVFormatContext *p1))
|
|
DEFINE_METHOD1(int, av_read_play, (AVFormatContext *p1))
|
|
@@ -230,12 +225,10 @@ class DllAvFormat : public DllDynamic, DllAvFormatInterface
|
|
DEFINE_METHOD2(int, avformat_write_header , (AVFormatContext *p1, AVDictionary **p2))
|
|
DEFINE_METHOD1(int, av_write_trailer, (AVFormatContext *p1))
|
|
DEFINE_METHOD2(int, av_write_frame , (AVFormatContext *p1, AVPacket *p2))
|
|
- DEFINE_METHOD4(int, av_metadata_set2, (AVDictionary **p1, const char *p2, const char *p3, int p4));
|
|
BEGIN_METHOD_RESOLVE()
|
|
RESOLVE_METHOD_RENAME(av_register_all, av_register_all_dont_call)
|
|
RESOLVE_METHOD(av_find_input_format)
|
|
RESOLVE_METHOD(url_feof)
|
|
- RESOLVE_METHOD(av_metadata_get)
|
|
RESOLVE_METHOD(av_close_input_file)
|
|
RESOLVE_METHOD(av_close_input_stream)
|
|
RESOLVE_METHOD(av_read_frame)
|
|
@@ -269,7 +262,6 @@ class DllAvFormat : public DllDynamic, DllAvFormatInterface
|
|
RESOLVE_METHOD(avformat_write_header)
|
|
RESOLVE_METHOD(av_write_trailer)
|
|
RESOLVE_METHOD(av_write_frame)
|
|
- RESOLVE_METHOD(av_metadata_set2)
|
|
END_METHOD_RESOLVE()
|
|
|
|
/* dependencies of libavformat */
|
|
diff --git a/lib/DllAvUtil.h b/lib/DllAvUtil.h
|
|
index f907834..0a293f9 100644
|
|
--- a/lib/DllAvUtil.h
|
|
+++ b/lib/DllAvUtil.h
|
|
@@ -99,6 +99,8 @@ public:
|
|
virtual int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void*, void*, int)) = 0;
|
|
virtual char *av_strdup(const char *s)=0;
|
|
virtual int av_get_bits_per_sample_fmt(enum AVSampleFormat p1) = 0;
|
|
+ virtual AVDictionaryEntry *av_dict_get(AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags) = 0;
|
|
+ virtual int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags)=0;
|
|
};
|
|
|
|
#if (defined USE_EXTERNAL_FFMPEG)
|
|
@@ -136,6 +138,8 @@ public:
|
|
virtual char *av_strdup(const char *s) { return ::av_strdup(s); }
|
|
virtual int av_get_bits_per_sample_fmt(enum AVSampleFormat p1)
|
|
{ return ::av_get_bits_per_sample_fmt(p1); }
|
|
+ virtual AVDictionaryEntry *av_dict_get(AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags){ return ::av_dict_get(m, key, prev, flags); }
|
|
+ virtual int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags) { return ::av_dict_set(pm, key, value, flags); }
|
|
|
|
// DLL faking.
|
|
virtual bool ResolveExports() { return true; }
|
|
@@ -173,6 +177,8 @@ class DllAvUtilBase : public DllDynamic, DllAvUtilInterface
|
|
DEFINE_METHOD4(int, av_fifo_generic_write, (AVFifoBuffer *p1, void *p2, int p3, int (*p4)(void*, void*, int)))
|
|
DEFINE_METHOD1(char*, av_strdup, (const char *p1))
|
|
DEFINE_METHOD1(int, av_get_bits_per_sample_fmt, (enum AVSampleFormat p1))
|
|
+ DEFINE_METHOD4(AVDictionaryEntry *, av_dict_get, (AVDictionary *p1, const char *p2, const AVDictionaryEntry *p3, int p4))
|
|
+ DEFINE_METHOD4(int, av_dict_set, (AVDictionary **p1, const char *p2, const char *p3, int p4));
|
|
|
|
public:
|
|
BEGIN_METHOD_RESOLVE()
|
|
@@ -195,6 +201,8 @@ class DllAvUtilBase : public DllDynamic, DllAvUtilInterface
|
|
RESOLVE_METHOD(av_fifo_generic_write)
|
|
RESOLVE_METHOD(av_strdup)
|
|
RESOLVE_METHOD(av_get_bits_per_sample_fmt)
|
|
+ RESOLVE_METHOD(av_dict_get)
|
|
+ RESOLVE_METHOD(av_dict_set)
|
|
END_METHOD_RESOLVE()
|
|
};
|
|
|
|
diff --git a/xbmc/cdrip/EncoderFFmpeg.cpp b/xbmc/cdrip/EncoderFFmpeg.cpp
|
|
index 7959919..b67b231 100644
|
|
--- a/xbmc/cdrip/EncoderFFmpeg.cpp
|
|
+++ b/xbmc/cdrip/EncoderFFmpeg.cpp
|
|
@@ -181,7 +181,7 @@ bool CEncoderFFmpeg::Init(const char* strFile, int iInChannels, int iInRate, int
|
|
|
|
void CEncoderFFmpeg::SetTag(const CStdString tag, const CStdString value)
|
|
{
|
|
- m_dllAvFormat.av_metadata_set2(&m_Format->metadata, tag.c_str(), value.c_str(), 0);
|
|
+ m_dllAvUtil.av_dict_set(&m_Format->metadata, tag.c_str(), value.c_str(), 0);
|
|
}
|
|
|
|
int CEncoderFFmpeg::MuxerReadPacket(void *opaque, uint8_t *buf, int buf_size)
|
|
diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
|
|
index aff44f6..991491c 100644
|
|
--- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
|
|
+++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
|
|
@@ -959,8 +959,8 @@ void CDVDDemuxFFmpeg::AddStream(int iId)
|
|
st->iBitRate = pStream->codec->bit_rate;
|
|
st->iBitsPerSample = pStream->codec->bits_per_coded_sample;
|
|
|
|
- if(m_dllAvFormat.av_metadata_get(pStream->metadata, "title", NULL, 0))
|
|
- st->m_description = m_dllAvFormat.av_metadata_get(pStream->metadata, "title", NULL, 0)->value;
|
|
+ if(m_dllAvUtil.av_dict_get(pStream->metadata, "title", NULL, 0))
|
|
+ st->m_description = m_dllAvUtil.av_dict_get(pStream->metadata, "title", NULL, 0)->value;
|
|
|
|
break;
|
|
}
|
|
@@ -1049,8 +1049,8 @@ void CDVDDemuxFFmpeg::AddStream(int iId)
|
|
if(pStream->codec)
|
|
st->identifier = pStream->codec->sub_id;
|
|
|
|
- if(m_dllAvFormat.av_metadata_get(pStream->metadata, "title", NULL, 0))
|
|
- st->m_description = m_dllAvFormat.av_metadata_get(pStream->metadata, "title", NULL, 0)->value;
|
|
+ if(m_dllAvUtil.av_dict_get(pStream->metadata, "title", NULL, 0))
|
|
+ st->m_description = m_dllAvUtil.av_dict_get(pStream->metadata, "title", NULL, 0)->value;
|
|
|
|
break;
|
|
}
|
|
@@ -1061,7 +1061,7 @@ void CDVDDemuxFFmpeg::AddStream(int iId)
|
|
{
|
|
std::string fileName = "special://temp/fonts/";
|
|
XFILE::CDirectory::Create(fileName);
|
|
- AVDictionaryEntry *nameTag = m_dllAvFormat.av_metadata_get(pStream->metadata, "filename", NULL, 0);
|
|
+ AVDictionaryEntry *nameTag = m_dllAvUtil.av_dict_get(pStream->metadata, "filename", NULL, 0);
|
|
if (!nameTag) {
|
|
CLog::Log(LOGERROR, "%s: TTF attachment has no name", __FUNCTION__);
|
|
break;
|
|
@@ -1110,7 +1110,7 @@ void CDVDDemuxFFmpeg::AddStream(int iId)
|
|
// API added on: 2010-10-15
|
|
// (Note that while the function was available earlier, the generic
|
|
// metadata tags were not populated by default)
|
|
- AVDictionaryEntry *langTag = m_dllAvFormat.av_metadata_get(pStream->metadata, "language", NULL, 0);
|
|
+ AVDictionaryEntry *langTag = m_dllAvUtil.av_dict_get(pStream->metadata, "language", NULL, 0);
|
|
if (langTag)
|
|
strncpy(m_streams[iId]->language, langTag->value, 3);
|
|
#else
|
|
@@ -1220,7 +1220,7 @@ void CDVDDemuxFFmpeg::GetChapterName(std::string& strChapterName)
|
|
// API added on: 2010-10-15
|
|
// (Note that while the function was available earlier, the generic
|
|
// metadata tags were not populated by default)
|
|
- AVDictionaryEntry *titleTag = m_dllAvFormat.av_metadata_get(m_pFormatContext->chapters[chapterIdx-1]->metadata,
|
|
+ AVDictionaryEntry *titleTag = m_dllAvUtil.av_dict_get(m_pFormatContext->chapters[chapterIdx-1]->metadata,
|
|
"title", NULL, 0);
|
|
if (titleTag)
|
|
strChapterName = titleTag->value;
|