<div><div dir="auto">You can try the mpv-android apk from GitHub to compare. I'm pretty sure it works fine on Oreo.</div></div><div dir="auto"><br></div><div dir="auto">Aman</div><div><br><div class="gmail_quote"><div dir="ltr">On Mon, Jul 2, 2018 at 3:58 PM 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">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>
Thread 42 "Thread-6" received signal SIGSEGV, Segmentation fault.<br>
[Switching to Thread 21798.21939]<br>
0x0000002ade99c51c in memcpy () from <br>
/home/peter/proj/<a href="http://github.com/MythTV/packaging/android/so/libc.so" rel="noreferrer" target="_blank">github.com/MythTV/packaging/android/so/libc.so</a><br>
(gdb) bt<br>
#0 0x0000002ade99c51c in memcpy () from <br>
/home/peter/proj/<a href="http://github.com/MythTV/packaging/android/so/libc.so" rel="noreferrer" target="_blank">github.com/MythTV/packaging/android/so/libc.so</a><br>
#1 0x0000002afc1afa4c in <br>
ff_mediacodec_sw_buffer_copy_yuv420_semi_planar <br>
(avctx=avctx@entry=0x2b13274c00,<br>
s=s@entry=0x2b14044cc0, data=data@entry=0x2b2ccc3a00 '\020' <br>
<repeats 200 times>..., size=size@entry=3110400,<br>
info=info@entry=0x2b19ed8bf8, frame=frame@entry=0x2b140ba800) at <br>
libavcodec/mediacodec_sw_buffer.c:159<br>
#2 0x0000002afc1b418c in mediacodec_wrap_sw_buffer (frame=0x2b140ba800, <br>
info=0x2b19ed8bf8, index=7, size=3110400,<br>
data=0x2b2ccc3a00 '\020' <repeats 200 times>..., s=0x2b14044cc0, <br>
avctx=0x2b13274c00)<br>
at libavcodec/mediacodecdec_common.c:328<br>
#3 ff_mediacodec_dec_receive (avctx=avctx@entry=0x2b13274c00, <br>
s=0x2b14044cc0, frame=frame@entry=0x2b140ba800,<br>
wait=wait@entry=true) at libavcodec/mediacodecdec_common.c:706<br>
#4 0x0000002afc1b31e0 in mediacodec_receive_frame (avctx=0x2b13274c00, <br>
frame=0x2b140ba800)<br>
at libavcodec/mediacodecdec.c:432<br>
#5 0x0000002afbf494e4 in decode_receive_frame_internal <br>
(avctx=avctx@entry=0x2b13274c00,<br>
frame=frame@entry=0x2b140ba800) at libavcodec/decode.c:610<br>
#6 0x0000002afbf4bf28 in avcodec_receive_frame (avctx=0x2b13274c00, <br>
frame=0x2b140ba800) at libavcodec/decode.c:726<br>
#7 0x0000002b0185bcdc in AvFormatDecoder::ProcessVideoPacket <br>
(this=0x2b0a41dc00, curstream=0x2b11bf6c80,<br>
pkt=0x2b13f45a20) at avformatdecoder.cpp:3653<br>
<br>
Another backtrace shows some suspicious looking stuff in one of the <br>
buffers. a lot of 9's, 8's, 7's. I don't know if this gives a clue.<br>
<br>
#0 0x0000002ade99c51c in memcpy () from <br>
/home/peter/proj/<a href="http://github.com/MythTV/packaging/android/so/libc.so" rel="noreferrer" target="_blank">github.com/MythTV/packaging/android/so/libc.so</a><br>
#1 0x0000002afc4b2a4c in <br>
ff_mediacodec_sw_buffer_copy_yuv420_semi_planar <br>
(avctx=avctx@entry=0x2b1293ee00,<br>
s=s@entry=0x2b1afa0aa0,<br>
data=data@entry=0x2b249f1a00 '9' <repeats 13 times>, ":::", '9' <br>
<repeats 13 times>, ":::", '9' <repeats 80 times>, <br>
":::999999999888899999889999889998998888889988889:998888999988887888888889988887789988888"..., <br>
size=size@entry=3110400,<br>
info=info@entry=0x2b17e42bf8, frame=frame@entry=0x2b04ba9c00) at <br>
libavcodec/mediacodec_sw_buffer.c:159<br>
#2 0x0000002afc4b718c in mediacodec_wrap_sw_buffer (frame=0x2b04ba9c00, <br>
info=0x2b17e42bf8, index=7, size=3110400,<br>
data=0x2b249f1a00 '9' <repeats 13 times>, ":::", '9' <repeats 13 <br>
times>, ":::", '9' <repeats 80 times>, <br>
":::999999999888899999889999889998998888889988889:998888999988887888888889988887789988888"..., <br>
s=0x2b1afa0aa0, avctx=0x2b1293ee00)<br>
at libavcodec/mediacodecdec_common.c:328<br>
#3 ff_mediacodec_dec_receive (avctx=avctx@entry=0x2b1293ee00, <br>
s=0x2b1afa0aa0, frame=frame@entry=0x2b04ba9c00,<br>
wait=wait@entry=false) at libavcodec/mediacodecdec_common.c:706<br>
#4 0x0000002afc4b6074 in mediacodec_receive_frame (avctx=0x2b1293ee00, <br>
frame=0x2b04ba9c00)<br>
at libavcodec/mediacodecdec.c:421<br>
#5 0x0000002afc24c4e4 in decode_receive_frame_internal <br>
(avctx=avctx@entry=0x2b1293ee00,<br>
frame=frame@entry=0x2b04ba9c00) at libavcodec/decode.c:610<br>
#6 0x0000002afc24ef28 in avcodec_receive_frame (avctx=0x2b1293ee00, <br>
frame=0x2b04ba9c00) at libavcodec/decode.c:726<br>
#7 0x0000002b01857cdc in AvFormatDecoder::ProcessVideoPacket <br>
(this=0x2adf725800, curstream=0x2af790b300,<br>
pkt=0x2b03547440) at avformatdecoder.cpp:3653<br>
<br>
Peter<br>
<br>
</blockquote></div></div>