Revision: 99252 http://trac.macports.org//changeset/99252 Author: mk@macports.org Date: 2012-10-30 06:53:20 -0700 (Tue, 30 Oct 2012) Log Message: ----------- strigi: add missing patch (solves issue #36790) Modified Paths: -------------- trunk/dports/devel/strigi/Portfile Added Paths: ----------- trunk/dports/devel/strigi/files/ trunk/dports/devel/strigi/files/strigi-0.7.7-ffmpeg_fix-1.patch Modified: trunk/dports/devel/strigi/Portfile =================================================================== --- trunk/dports/devel/strigi/Portfile 2012-10-30 11:23:13 UTC (rev 99251) +++ trunk/dports/devel/strigi/Portfile 2012-10-30 13:53:20 UTC (rev 99252) @@ -6,6 +6,7 @@ name strigi version 0.7.7 +revision 1 categories devel maintainers gmail.com:clubjuggler openmaintainer license LGPL-2+ @@ -41,6 +42,8 @@ # things because the build and destroot phases can be left at the default # values. +patchfiles strigi-0.7.7-ffmpeg_fix-1.patch + post-destroot { xinstall -m 755 -d ${destroot}${prefix}/share/doc/${name} xinstall -m 644 -W ${worksrcpath} COPYING AUTHORS ChangeLog ${destroot}${prefix}/share/doc/${name} Added: trunk/dports/devel/strigi/files/strigi-0.7.7-ffmpeg_fix-1.patch =================================================================== --- trunk/dports/devel/strigi/files/strigi-0.7.7-ffmpeg_fix-1.patch (rev 0) +++ trunk/dports/devel/strigi/files/strigi-0.7.7-ffmpeg_fix-1.patch 2012-10-30 13:53:20 UTC (rev 99252) @@ -0,0 +1,160 @@ +Submitted By: Bruce Dubbs (bdubbs at linuxfromscratch dot org) +Date: 2012-04-15 +Initial Package Version: 0.7.7 +Description: Fixes compiling strigi with FFmpeg. +Source: Mandriva patch +Upstream: No bug report on bugs.kde.org +Reason: libstreamanalyzer uses deprecated symbols from ffmpeg removed in 0.11 + +--- libstreamanalyzer/plugins/endplugins/ffmpegendanalyzer.cpp.bero 2012-06-08 16:49:40.846877030 +0200 ++++ libstreamanalyzer/plugins/endplugins/ffmpegendanalyzer.cpp 2012-06-08 17:27:40.416888115 +0200 +@@ -305,13 +305,6 @@ FFMPEGEndAnalyzer::analyze(AnalysisResul + uint8_t pDataBuffer[32768];//65536]; + long lSize = 32768; + +- ByteIOContext ByteIOCtx; +- if(init_put_byte(&ByteIOCtx, pDataBuffer, lSize, 0, in, read_data, NULL, seek_data) < 0) +- return -1; +- +- //pAVInputFormat->flags |= AVFMT_NOFILE; +- ByteIOCtx.is_streamed = 0; +- + AVProbeData pd; + const char *buf; + pd.filename =""; +@@ -324,14 +317,27 @@ FFMPEGEndAnalyzer::analyze(AnalysisResul + if(fmt == NULL) + return 1; + +- AVFormatContext *fc = NULL; +- if(av_open_input_stream(&fc, &ByteIOCtx, "", fmt, NULL) < 0) ++ AVFormatContext *fc = avformat_alloc_context(); ++ if(!fc) ++ return -1; ++ ++ AVIOContext *pb = avio_alloc_context(pDataBuffer, lSize, 0, in, read_data, NULL, seek_data); ++ if(!fc->pb) { ++ av_free(fc); + return -1; ++ } ++ ++ fc->pb = pb; ++ ++ if(avformat_open_input(&fc, "", fmt, NULL) < 0) { ++ av_free(fc); ++ return -1; ++ } + +- av_find_stream_info(fc); ++ avformat_find_stream_info(fc, NULL); + + // Dump information about file onto standard error +- dump_format(fc, 0, ar.path().c_str(), false); ++ av_dump_format(fc, 0, ar.path().c_str(), false); + + if(fc->bit_rate) + ar.addValue(factory->bitrateProperty, fc->bit_rate); +@@ -372,10 +378,10 @@ FFMPEGEndAnalyzer::analyze(AnalysisResul + ar.addTriplet(streamuri, durationPropertyName,outs.str()); + } + +- //FIXME we must stop using the deprecated fuction av_metadata_get and use ++ //FIXME we must stop using the deprecated fuction av_dict_get and use + // av_dict_get once we are able to detect the version of FFMpeg being used + // using version macros. same goes for all occurences of this function. +- AVMetadataTag *entry = av_metadata_get(stream.metadata, "language", NULL, 0); ++ AVDictionaryEntry *entry = av_dict_get(stream.metadata, "language", NULL, 0); + if (entry != NULL) { + const char *languageValue = entry->value; + if (size_t len = strlen(languageValue)) { +@@ -430,7 +436,7 @@ FFMPEGEndAnalyzer::analyze(AnalysisResul + outs << codec.sample_rate; + ar.addTriplet(streamuri, sampleratePropertyName, outs.str()); + } +- if (codec.sample_fmt != SAMPLE_FMT_NONE) {}//FIXME sample format ++ if (codec.sample_fmt != AV_SAMPLE_FMT_NONE) {}//FIXME sample format + + } else { // video stream + +@@ -469,7 +475,7 @@ FFMPEGEndAnalyzer::analyze(AnalysisResul + + // Tags + +- AVMetadataTag *entry = av_metadata_get(fc->metadata, "title", NULL, 0); ++ AVDictionaryEntry *entry = av_dict_get(fc->metadata, "title", NULL, 0); + if (entry != NULL) + { + const char *titleValue = entry->value; +@@ -478,7 +484,7 @@ FFMPEGEndAnalyzer::analyze(AnalysisResul + } + } + +- entry = av_metadata_get(fc->metadata, "author", NULL, 0); ++ entry = av_dict_get(fc->metadata, "author", NULL, 0); + if (entry != NULL) + { + const char *authorValue = entry->value; +@@ -490,7 +496,7 @@ FFMPEGEndAnalyzer::analyze(AnalysisResul + } + } + +- entry = av_metadata_get(fc->metadata, "copyright", NULL, 0); ++ entry = av_dict_get(fc->metadata, "copyright", NULL, 0); + if (entry != NULL) + { + const char *copyrightValue = entry->value; +@@ -499,7 +505,7 @@ FFMPEGEndAnalyzer::analyze(AnalysisResul + } + } + +- entry = av_metadata_get(fc->metadata, "comment", NULL, 0); ++ entry = av_dict_get(fc->metadata, "comment", NULL, 0); + if (entry != NULL) + { + const char *commentValue = entry->value; +@@ -508,7 +514,7 @@ FFMPEGEndAnalyzer::analyze(AnalysisResul + } + } + +- entry = av_metadata_get(fc->metadata, "album", NULL, 0); ++ entry = av_dict_get(fc->metadata, "album", NULL, 0); + if (entry != NULL) + { + const char *albumValue = entry->value; +@@ -520,7 +526,7 @@ FFMPEGEndAnalyzer::analyze(AnalysisResul + } + } + +- entry = av_metadata_get(fc->metadata, "genre", NULL, 0); ++ entry = av_dict_get(fc->metadata, "genre", NULL, 0); + if (entry != NULL) + { + const char *genreValue = entry->value; +@@ -529,7 +535,7 @@ FFMPEGEndAnalyzer::analyze(AnalysisResul + } + } + +- entry = av_metadata_get(fc->metadata, "track", NULL, 0); ++ entry = av_dict_get(fc->metadata, "track", NULL, 0); + if (entry != NULL) + { + const char *trackValue = entry->value; +@@ -538,7 +544,7 @@ FFMPEGEndAnalyzer::analyze(AnalysisResul + } + } + +- entry = av_metadata_get(fc->metadata, "year", NULL, 0); ++ entry = av_dict_get(fc->metadata, "year", NULL, 0); + if (entry != NULL) + { + const char *yearValue = entry->value; +@@ -547,7 +553,8 @@ FFMPEGEndAnalyzer::analyze(AnalysisResul + } + } + +- av_close_input_stream(fc); ++ avformat_close_input(&fc); ++ av_free(pb); + //url_fclose(&ByteIOCtx); + + return 0;