trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: July 2012

Re: [trinity-devel] Bug 1119 - opened to track scope/declaration ftbfs for k3b, k9copy, kdmtheme, krusader

From: "David C. Rankin" <drankinatty@...>
Date: Mon, 23 Jul 2012 17:33:12 -0500
On 07/23/2012 03:24 PM, David C. Rankin wrote:
> On 07/20/2012 04:16 PM, David C. Rankin wrote:
>> Tim, All,
>>
>>    To track the recent handful of ftbfs for k3b, k9copy, kdmtheme, krusader due
>> to scope/declaration issues that have surfaced, I have opened:
>>
>> http://bugs.pearsoncomputing.net/bugzilla/show_bug.cgi?id=1119
>>
>>    That will provide a common point to work from.
>>
> 
> The failure in k9copy and likely k3b is due to ffmpeg 0.11-1. Since the updates
> to ffmpeg contain potential security related fixes, I elevated the bug to a
> blocker for R14. See: http://ffmpeg.org/
> 
> I'm trying to figure out what needs to be fixed in k9copy. Any help appreciated.
> 

cpp help needed:

  Looking at the k9copy ftbfs, the problem seems to be that the
AVFormatParameters struct has been dropped from
/usr/include/libavformat/avformat.h. The error:

In file included from k9avidecode.cpp:12:0:
k9avidecode.h:35:91: error: 'AVFormatParameters' has not been declared

  Both AVFormatContext, and AVInputFormat are defined in
/usr/include/libavformat/avformat.h, but AVFormatParameters is nowhere to be
found. It used to be there:

http://ffmpeg.org/doxygen/0.6/structAVFormatParameters.html

 How do I fix the code?  A whole struct disappeared.

  Along with the drop of AVFormatParameters it looks like 'av_open_input_file'
is deprecated in favor of 'avformat_open_input'. Thankfully there are only 4
instances of this in k9copy (k9author/k9avidecode.h k9author/k9avidecode.cpp).

17:19 archangel:/dat_e/tmp/src/k9copy> grep -r av_open_input_file *
k9author/k9avidecode.h:typedef int (*av_open_input_file_t)(AVFormatContext **,
const char *,AVInputFormat *,int, AVFormatParameters *);
k9author/k9avidecode.h:    av_open_input_file_t av_open_input_file;
k9author/k9avidecode.cpp:    av_open_input_file =
(av_open_input_file_t)dlsym(FormatHandle,"av_open_input_file");
k9author/k9avidecode.cpp:    if (av_open_input_file(&m_FormatCtx,
_fileName.utf8(), NULL, 0, NULL)!=0) {

  How do you fix this? What is the lvalue and rvalue that need changing? The
reason this is confusing is av_open_input_file seems to be used both as a name_t
and by itself:

  Experts - what say you? This will take an experienced eye.


-- 
David C. Rankin, J.D.,P.E.