<div><br></div><div><br><div class="gmail_quote"><div dir="ltr">On Tue, Jul 3, 2018 at 10:37 AM Peter Bennett <<a href="mailto:pb.mythtv@gmail.com">pb.mythtv@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
On 07/02/2018 09:38 PM, David Engel wrote:<br>
> On Mon, Jul 02, 2018 at 05:14:52PM -0400, Aman Gupta wrote:<br>
>> On Mon, Jul 2, 2018 at 3:58 PM Peter Bennett <<a href="mailto:pb.mythtv@gmail.com" target="_blank">pb.mythtv@gmail.com</a>> wrote:<br>
>>> Hi Aman<br>
>>><br>
>>> Thank you for all your help so far.<br>
>>><br>
>>> I upgraded my Shield to Android 8.0. Now I get a seg fault every time I<br>
>>> play 1080 interlaced recordings. Progressive recordings are fine, and<br>
>>> 480 interlaced are fine. Also 4K recordings are fine. With 1080<br>
>>> interlaced it gets a seg fault in avcodec_receive_frame. This happens at<br>
>>> about the fifth frame received in the video. It starts off fine, with<br>
>>> avcodec_receive_frame returning EAGAIN until some number of packets have<br>
>>> been sent, then it receives a few frames, then there is a seg fault in<br>
>>> memcpy. There are no null addresses being passed to memcpy, but<br>
>>> something must be invalid. This was working fine with Android 7. I am<br>
>>> using the default buffer allocation: AVCodecContext->get_buffer2 =<br>
>>> get_avf_buffer. avcodec_receive_frame should allocate the buffers using<br>
>>> that routine so they should be valid.<br>
>>><br>
>>> [backtrace snipped]<br>
>>><br>
>> You can try the mpv-android apk from GitHub to compare. I'm pretty sure it<br>
>> works fine on Oreo.<br>
> mpv-android almost always crashes for me after a split second on 1080i<br>
> content.  When it doesn't crash, it just exits playback, also after a<br>
> split second.  720p content works fine, just like with MythTV.<br>
><br>
> David<br>
Thank you for doing that test.<br>
<br>
This indicates the problem is somewhere in ffmpeg rather than mythtv <br>
code. I don't know what the trigger is, interlaced video or mpeg2 video, <br>
but it does not affect 480 interlaced mpeg2 video.<br>
<br>
The issue of the illegal state exception while fast forwarding is still <br>
there so I should remove the code that discards frames, as that did not <br>
fix it consistently.</blockquote><div dir="auto"><br></div><div dir="auto">You could try setting the delay_flush option on the decoder to see if it makes any difference.</div><div dir="auto"><br></div><div dir="auto">Aman</div><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
I will wait a while to see if FFmpeg can give us a fix, before looking <br>
into it further.<br>
<br>
Peter<br>
</blockquote></div></div>