[packages/ffmpegsource] - fix build with ffmpeg 1.0
baggins
baggins at pld-linux.org
Thu Nov 8 13:15:04 CET 2012
commit ffd91bb9e0f6c11d8382447c806453046f2dd346
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Thu Nov 8 13:14:53 2012 +0100
- fix build with ffmpeg 1.0
ffmpegsource-ffmpeg10.patch | 171 ++++++++++++++++++++++++++++++++++++++++++++
ffmpegsource.spec | 2 +
2 files changed, 173 insertions(+)
---
diff --git a/ffmpegsource.spec b/ffmpegsource.spec
index 65fd69e..334e37f 100644
--- a/ffmpegsource.spec
+++ b/ffmpegsource.spec
@@ -9,6 +9,7 @@ Group: Libraries
Source0: http://ffmpegsource.googlecode.com/files/ffms-%{version}-src.tar.bz2
# Source0-md5: 13770e29d5215ad4b68caad44b09da07
Patch0: %{name}-ffmpeg011.patch
+Patch1: %{name}-ffmpeg10.patch
URL: http://code.google.com/p/ffmpegsource/
BuildRequires: autoconf >= 2.58
BuildRequires: automake
@@ -72,6 +73,7 @@ Statyczna biblioteka FFmpegSource.
%prep
%setup -q -n ffms-%{version}-src
%patch0 -p0
+%patch0 -p1
%undos src/core/{indexing,lavfindexer,utils}.cpp
%{__rm} configure
diff --git a/ffmpegsource-ffmpeg10.patch b/ffmpegsource-ffmpeg10.patch
new file mode 100644
index 0000000..b363615
--- /dev/null
+++ b/ffmpegsource-ffmpeg10.patch
@@ -0,0 +1,171 @@
+diff -ur ffms-2.17-src/src/core/codectype.cpp ffms-2.17-src-ffmpeg1.0/src/core/codectype.cpp
+--- ffms-2.17-src/src/core/codectype.cpp 2012-01-22 05:46:09.000000000 +0100
++++ ffms-2.17-src-ffmpeg1.0/src/core/codectype.cpp 2012-11-08 13:08:43.894100438 +0100
+@@ -25,7 +25,7 @@
+
+ typedef struct CodecTags {
+ char str[20];
+- CodecID id;
++ AVCodecID id;
+ } CodecTags;
+
+ static const CodecTags mkv_codec_tags[] = {
+@@ -92,7 +92,7 @@
+ };
+
+ typedef struct AVCodecTag {
+- enum CodecID id;
++ enum AVCodecID id;
+ unsigned int tag;
+ } AVCodecTag;
+
+@@ -400,7 +400,7 @@
+ }
+ }
+
+-CodecID MatroskaToFFCodecID(char *Codec, void *CodecPrivate, unsigned int FourCC, unsigned int BitsPerSample) {
++AVCodecID MatroskaToFFCodecID(char *Codec, void *CodecPrivate, unsigned int FourCC, unsigned int BitsPerSample) {
+ /* Look up native codecs */
+ for(int i = 0; mkv_codec_tags[i].id != CODEC_ID_NONE; i++){
+ if(!strncmp(mkv_codec_tags[i].str, Codec,
+@@ -408,7 +408,7 @@
+
+ // Uncompressed and exotic format fixup
+ // This list is incomplete
+- CodecID CID = mkv_codec_tags[i].id;
++ AVCodecID CID = mkv_codec_tags[i].id;
+ switch (CID) {
+ case CODEC_ID_PCM_S16LE:
+ switch (BitsPerSample) {
+diff -ur ffms-2.17-src/src/core/codectype.h ffms-2.17-src-ffmpeg1.0/src/core/codectype.h
+--- ffms-2.17-src/src/core/codectype.h 2012-01-22 05:46:09.000000000 +0100
++++ ffms-2.17-src-ffmpeg1.0/src/core/codectype.h 2012-11-08 13:08:50.330766878 +0100
+@@ -27,5 +27,5 @@
+ #include "ffmscompat.h"
+
+ FFMS_TrackType HaaliTrackTypeToFFTrackType(int TT);
+-CodecID MatroskaToFFCodecID(char *Codec, void *CodecPrivate, unsigned int FourCC = 0, unsigned int BitsPerSample = 0);
++AVCodecID MatroskaToFFCodecID(char *Codec, void *CodecPrivate, unsigned int FourCC = 0, unsigned int BitsPerSample = 0);
+ const char *GetLAVCSampleFormatName(AVSampleFormat s);
+diff -ur ffms-2.17-src/src/core/matroskaaudio.cpp ffms-2.17-src-ffmpeg1.0/src/core/matroskaaudio.cpp
+--- ffms-2.17-src/src/core/matroskaaudio.cpp 2012-01-22 05:46:09.000000000 +0100
++++ ffms-2.17-src-ffmpeg1.0/src/core/matroskaaudio.cpp 2012-11-08 13:11:08.054095355 +0100
+@@ -45,7 +45,7 @@
+ CodecContext.reset(avcodec_alloc_context3(NULL), DeleteMatroskaCodecContext);
+ assert(CodecContext);
+
+- AVCodec *Codec = avcodec_find_decoder(MatroskaToFFCodecID(TI->CodecID, TI->CodecPrivate, 0, TI->AV.Audio.BitDepth));
++ AVCodec *Codec = avcodec_find_decoder(MatroskaToFFCodecID(TI->MKVCodecID, TI->CodecPrivate, 0, TI->AV.Audio.BitDepth));
+ if (!Codec) {
+ mkv_Close(MF);
+ throw FFMS_Exception(FFMS_ERROR_DECODING, FFMS_ERROR_CODEC, "Audio codec not found");
+diff -ur ffms-2.17-src/src/core/matroskaindexer.cpp ffms-2.17-src-ffmpeg1.0/src/core/matroskaindexer.cpp
+--- ffms-2.17-src/src/core/matroskaindexer.cpp 2012-01-22 05:46:09.000000000 +0100
++++ ffms-2.17-src-ffmpeg1.0/src/core/matroskaindexer.cpp 2012-11-08 13:11:15.454095093 +0100
+@@ -50,7 +50,7 @@
+
+ for (unsigned int i = 0; i < mkv_GetNumTracks(MF); i++) {
+ TrackInfo *TI = mkv_GetTrackInfo(MF, i);
+- Codec[i] = avcodec_find_decoder(MatroskaToFFCodecID(TI->CodecID, TI->CodecPrivate, 0, TI->AV.Audio.BitDepth));
++ Codec[i] = avcodec_find_decoder(MatroskaToFFCodecID(TI->MKVCodecID, TI->CodecPrivate, 0, TI->AV.Audio.BitDepth));
+ }
+ }
+
+diff -ur ffms-2.17-src/src/core/matroskaparser.c ffms-2.17-src-ffmpeg1.0/src/core/matroskaparser.c
+--- ffms-2.17-src/src/core/matroskaparser.c 2011-01-27 21:38:25.000000000 +0100
++++ ffms-2.17-src-ffmpeg1.0/src/core/matroskaparser.c 2012-11-08 13:12:09.934093171 +0100
+@@ -1366,9 +1366,9 @@
+ readLangCC(mf, len, t.Language);
+ break;
+ case 0x86: // CodecID
+- if (t.CodecID)
++ if (t.MKVCodecID)
+ errorjmp(mf,"Duplicate CodecID");
+- STRGETA(mf,t.CodecID,len);
++ STRGETA(mf,t.MKVCodecID,len);
+ break;
+ case 0x63a2: // CodecPrivate
+ if (cp)
+@@ -1459,7 +1459,7 @@
+ ENDFOR(mf);
+
+ // validate track info
+- if (!t.CodecID)
++ if (!t.MKVCodecID)
+ errorjmp(mf,"Track has no Codec ID");
+
+ if (t.UID != 0) {
+@@ -1525,8 +1525,8 @@
+ // copy strings
+ if (t.Name)
+ cpadd += strlen(t.Name)+1;
+- if (t.CodecID)
+- cpadd += strlen(t.CodecID)+1;
++ if (t.MKVCodecID)
++ cpadd += strlen(t.MKVCodecID)+1;
+
+ tp = mf->cache->memalloc(mf->cache,sizeof(*tp) + cplen + cslen + cpadd);
+ if (tp == NULL)
+@@ -1546,7 +1546,7 @@
+
+ cp = (char*)(tp+1) + cplen + cslen;
+ CopyStr(&tp->Name,&cp);
+- CopyStr(&tp->CodecID,&cp);
++ CopyStr(&tp->MKVCodecID,&cp);
+
+ // set default language
+ if (!tp->Language[0])
+@@ -1797,7 +1797,7 @@
+ proc = ASGET(mf, ch, Process);
+ memset(proc, 0, sizeof(*proc));
+ }
+- proc->CodecID = (unsigned)readUInt(mf,(unsigned)len);
++ proc->MKVCodecID = (unsigned)readUInt(mf,(unsigned)len);
+ break;
+ case 0x450d: // ChapProcessPrivate
+ if (proc == NULL) {
+diff -ur ffms-2.17-src/src/core/matroskaparser.h ffms-2.17-src-ffmpeg1.0/src/core/matroskaparser.h
+--- ffms-2.17-src/src/core/matroskaparser.h 2010-11-28 03:28:40.000000000 +0100
++++ ffms-2.17-src-ffmpeg1.0/src/core/matroskaparser.h 2012-11-08 13:10:59.050762337 +0100
+@@ -161,7 +161,7 @@
+ /* various strings */
+ char *Name;
+ char Language[4];
+- char *CodecID;
++ char *MKVCodecID;
+ };
+
+ typedef struct TrackInfo TrackInfo;
+@@ -208,7 +208,7 @@
+ };
+
+ struct ChapterProcess {
+- unsigned CodecID;
++ unsigned MKVCodecID;
+ unsigned CodecPrivateLength;
+ void *CodecPrivate;
+ unsigned nCommands,nCommandsSize;
+diff -ur ffms-2.17-src/src/core/matroskavideo.cpp ffms-2.17-src-ffmpeg1.0/src/core/matroskavideo.cpp
+--- ffms-2.17-src/src/core/matroskavideo.cpp 2012-01-22 05:46:09.000000000 +0100
++++ ffms-2.17-src-ffmpeg1.0/src/core/matroskavideo.cpp 2012-11-08 13:12:29.977425796 +0100
+@@ -71,7 +71,7 @@
+ CodecContext->thread_count = 1;
+ #endif
+
+- Codec = avcodec_find_decoder(MatroskaToFFCodecID(TI->CodecID, TI->CodecPrivate));
++ Codec = avcodec_find_decoder(MatroskaToFFCodecID(TI->MKVCodecID, TI->CodecPrivate));
+ if (Codec == NULL)
+ throw FFMS_Exception(FFMS_ERROR_DECODING, FFMS_ERROR_CODEC,
+ "Video codec not found");
+diff -ur ffms-2.17-src/src/core/utils.cpp ffms-2.17-src-ffmpeg1.0/src/core/utils.cpp
+--- ffms-2.17-src/src/core/utils.cpp 2012-11-08 13:13:28.604090395 +0100
++++ ffms-2.17-src-ffmpeg1.0/src/core/utils.cpp 2012-11-08 13:12:54.737424924 +0100
+@@ -256,7 +256,7 @@
+ uint8_t *PrivateDataSrc = static_cast<uint8_t *>(TI->CodecPrivate);
+ size_t PrivateDataSize = TI->CodecPrivateSize;
+ size_t BIHSize = sizeof(FFMS_BITMAPINFOHEADER); // 40 bytes
+- if (!strncmp(TI->CodecID, "V_MS/VFW/FOURCC", 15) && PrivateDataSize >= BIHSize) {
++ if (!strncmp(TI->MKVCodecID, "V_MS/VFW/FOURCC", 15) && PrivateDataSize >= BIHSize) {
+ // For some reason UTVideo requires CodecContext->codec_tag (i.e. the FourCC) to be set.
+ // Fine, it can't hurt to set it, so let's go find it.
+ // In a V_MS/VFW/FOURCC track, the codecprivate starts with a BITMAPINFOHEADER. If you treat that struct
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/ffmpegsource.git/commitdiff/ffd91bb9e0f6c11d8382447c806453046f2dd346
More information about the pld-cvs-commit
mailing list