[mythtv-users] AFD: Unknown audio decoding error
George Nassas
gnassas at mac.com
Fri Feb 27 13:50:01 UTC 2015
On Feb 26, 2015, at 11:49 PM, Jean-Yves Avenard <jyavenard at gmail.com> wrote:
>
> On 27 February 2015 at 09:00, Tim Draper <veehexx at zoho.com> wrote:
>> running 'mythfrontend > fe.log' i'm seeing the following occur. sometimes it's a few times in as many minutes, other times it can be fine for 5mins and then show a decoding error.
>>
>> 2015-02-26 21:39:27.432033 E AFD: Unknown audio decoding error
>> 2015-02-26 21:40:33.072405 E AFD: Unknown audio decoding error
>> 2015-02-26 21:41:24.112808 E AFD: Unknown audio decoding error
>> 2015-02-26 21:41:34.414204 E AFD: Unknown audio decoding error
>
> Run mythfrontend in a gdb session, and when it crashes, type "bt" and
> create a bug with the output.
But, it isn’t crashing. The FE logs this and continues and it’s in a loop that succeeds hundreds, if not thousands, of times in between messages so stepping in a debugger is not ver productive. I would increase the logging.
There are only two places that issue that particular message:
libs/libmythtv/avformatdecoder.cpp:4707: LOG(VB_GENERAL, LOG_ERR, LOC + "Unknown audio decoding error");
libs/libmythtv/nuppeldecoder.cpp:1282: LOG(VB_GENERAL, LOG_ERR, LOC + "Unknown audio decoding error");
I would bet on avformatdecoder as the source and figure out what line in AvFormatDecoder::ProcessAudioPacket is failing and drill down from there. The message is written by the code that looks like this:
if (ret < 0)
{
LOG(VB_GENERAL, LOG_ERR, LOC + "Unknown audio decoding error");
return false;
}
Essentially you’d go to every line that sets ret and, if it ends up < 0, log something that indicates the failure point. When you have that drill down into the function that triggers the error and add logging there & repeat until you know what’s going on. That’s how I would do it.
Debugging intermittent errors in real-time code isn’t much fun.
- George
More information about the mythtv-users
mailing list