You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
5.0 KiB
156 lines
5.0 KiB
Source: Mandriva patch
|
|
Upstream: No bug report on bugs.kde.org
|
|
Reason: libstreamanalyzer uses deprecated symbols from ffmpeg removed in 0.11
|
|
--- strigi-0.7.7/libstreamanalyzer/plugins/endplugins/ffmpegendanalyzer.cpp.bero 2012-06-08 16:49:40.846877030 +0200
|
|
+++ strigi-0.7.7/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;
|