[mythtv] DVD dropping back to the frontend at the menu. PCM_DVD problem?

Paul Harrison mythtv at sky.com
Thu Nov 22 13:46:16 UTC 2012


On 21/11/12 14:17, Neil Salstrom wrote:
> On Wed, Nov 21, 2012 at 6:00 AM, Paul Harrison <mythtv at sky.com> wrote:
>> I'm seeing something similar in master as well except there it causes a
>> segfault. The problem seems to be the audio is detected as having 0
>> channels. Do you know roughly when you first noticed this problem so I can
>> narrow down which commit broke things?
>>
>> Paul H.
>>
>> _______________________________________________
>> mythtv-dev mailing list
>> mythtv-dev at mythtv.org
>> http://www.mythtv.org/mailman/listinfo/mythtv-dev
> Hi Paul,
>
> I noticed it somewhere around the 6th or 7th of November.
> Unfortunately for me it's not a case of it working before and then
> seeing some sort of regression.  I had never tried those disks before
> that time.  If you think you've got a solution I'd happily apply some
> patches this weekend on my 0.26-fixes system.
>
> Thanks,
>
> Neil
>

Neil,

I have a workaround that you could try that at least allows the problem 
DVDs to play for me but it could be considered a bit of a hack.

I've tested this in master and haven't seen any problems. The code in 
0.26fixes is slightly different but I don't think there is anything that 
should top this working assuming you are seeing the same problem as me 
of cause.

In this file 
http://code.mythtv.org/cgit/mythtv/tree/mythtv/libs/libmythtv/avformatdecoder.cpp?h=fixes%2F0.26#n2131
comment out lines 2131 to 2133 and add a continue; at the end so that 
section of code looks like this:-

if (open_val < 0)
{
     LOG(VB_GENERAL, LOG_ERR, LOC +
         QString("Could not open codec 0x%1, id(%2) type(%3) "
                 "aborting. reason %4").arg((uint64_t)enc,0,16)
             .arg(ff_codec_id_string(enc->codec_id))
             .arg(ff_codec_type_string(enc->codec_type))
             .arg(open_val));
     //av_close_input_file(ic); // causes segfault
     //ic = NULL;
     //scanerror = -1;
     //break;
     continue;
}

Does anyone know why ScanStreams() stops the scan at this point rather 
than continuing on to find a valid stream? ic is used after it is set to 
NULL here so at the very least a NULL check need to be added to line 
2208 in master to prevent a segfault.
http://code.mythtv.org/cgit/mythtv/tree/mythtv/libs/libmythtv/avformatdecoder.cpp?h=master#n2208

Paul H.



More information about the mythtv-dev mailing list