commit ffd91bb9e0f6c11d8382447c806453046f2dd346
Author: Jan RÄ™korajski <[email protected]>
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

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to