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;