bennettpeter / android-MythTV-Leanfront

:tv: MythTV Android TV frontend
GNU General Public License v3.0
45 stars 9 forks source link

"Error loading data from the MediaSource" after upgrading mythbackend from 0.31 to 0.32 #32

Closed AndyJRobinson closed 2 years ago

AndyJRobinson commented 2 years ago

After upgrading mythbackend from 0.31 to 0.32, many recordings have become unplayable, giving an "Error loading data from the MediaSource" when attempting playback. Mythfrontend and Kodi still play them fine, as does the TV's DNLA browser.

The log shows the following:

04-30 10:11:41.955 15616 16316 D lfe : AsyncBackendCall URL: http://192.168.218.162:6744/Content/GetFile?StorageGroup=Default&FileName=/1041_20220427003000.ts 04-30 10:11:42.025 15616 16316 D lfe : AsyncBackendCall Response: 200 OK 04-30 10:11:42.027 15616 15616 I lfe : PlaybackFragment File Length changed from -1 to 2164624104 04-30 10:11:42.305 15616 15616 E lfe : PlaybackFragment Player Error Mr. Mayor http://192.168.218.162:6744/Content/GetFile?StorageGroup=Default&FileName=/1041_20220427003000.ts 04-30 10:11:42.305 15616 15616 E lfe : u1.q: Source error 04-30 10:11:42.305 15616 15616 E lfe : at u1.z0.E(Unknown Source:16) 04-30 10:11:42.305 15616 15616 E lfe : at u1.z0.handleMessage(Unknown Source:329) 04-30 10:11:42.305 15616 15616 E lfe : at android.os.Handler.dispatchMessage(Handler.java:102) 04-30 10:11:42.305 15616 15616 E lfe : at android.os.Looper.loop(Looper.java:193) 04-30 10:11:42.305 15616 15616 E lfe : at android.os.HandlerThread.run(HandlerThread.java:65) 04-30 10:11:42.305 15616 15616 E lfe : Caused by: n3.c0$h: Unexpected IllegalArgumentException: byteCount < 0: -2130457384 04-30 10:11:42.305 15616 15616 E lfe : at n3.c0$d.run(Unknown Source:147) 04-30 10:11:42.305 15616 15616 E lfe : at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 04-30 10:11:42.305 15616 15616 E lfe : at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 04-30 10:11:42.305 15616 15616 E lfe : at java.lang.Thread.run(Thread.java:764) 04-30 10:11:42.305 15616 15616 E lfe : Caused by: java.lang.IllegalArgumentException: byteCount < 0: -2130457384 04-30 10:11:42.305 15616 15616 E lfe : at com.android.okhttp.okio.RealBufferedSource.read(RealBufferedSource.java:46) 04-30 10:11:42.305 15616 15616 E lfe : at com.android.okhttp.internal.http.Http1xStream$FixedLengthSource.read(Http1xStream.java:393) 04-30 10:11:42.305 15616 15616 E lfe : at com.android.okhttp.internal.Util.skipAll(Util.java:159) 04-30 10:11:42.305 15616 15616 E lfe : at com.android.okhttp.internal.Util.discard(Util.java:141) 04-30 10:11:42.305 15616 15616 E lfe : at com.android.okhttp.internal.http.Http1xStream$FixedLengthSource.close(Http1xStream.java:410) 04-30 10:11:42.305 15616 15616 E lfe : at com.android.okhttp.okio.RealBufferedSource.close(RealBufferedSource.java:396) 04-30 10:11:42.305 15616 15616 E lfe : at com.android.okhttp.okio.RealBufferedSource$1.close(RealBufferedSource.java:384) 04-30 10:11:42.305 15616 15616 E lfe : at n3.t.close(Unknown Source:24) 04-30 10:11:42.305 15616 15616 E lfe : at u3.c.close(Unknown Source:2) 04-30 10:11:42.305 15616 15616 E lfe : at n3.h0.close(Unknown Source:2) 04-30 10:11:42.305 15616 15616 E lfe : at n3.n.a(Unknown Source:2) 04-30 10:11:42.305 15616 15616 E lfe : at v3.g$a.a(Unknown Source:278) 04-30 10:11:42.305 15616 15616 E lfe : at n3.c0$d.run(Unknown Source:53) 04-30 10:11:42.305 15616 15616 E lfe : ... 3 more 04-30 10:11:42.306 15616 15616 E lfe : PlaybackFragment Player Error Error loading data from the MediaSource. 04-30 10:11:42.306 15616 15616 E lfe : Source error 04-30 10:11:42.306 15616 15616 E lfe : Unexpected IllegalArgumentException: byteCount < 0: -2130457384 04-30 10:11:43.068 15616 16316 D lfe : AsyncBackendCall URL: http://192.168.218.162:6744/Content/GetFile?StorageGroup=Default&FileName=/1041_20220427003000.ts 04-30 10:11:43.097 15616 16316 D lfe : AsyncBackendCall Response: 200 OK 04-30 10:11:43.098 15616 15616 I lfe : PlaybackFragment File Length changed from 2164624104 to 2164624104 04-30 10:11:44.139 15616 16316 D lfe : AsyncBackendCall URL: http://192.168.218.162:6744/Content/GetFile?StorageGroup=Default&FileName=/1041_20220427003000.ts 04-30 10:11:44.203 15616 16316 D lfe : AsyncBackendCall Response: 200 OK 04-30 10:11:44.214 15616 15616 I lfe : PlaybackFragment File Length changed from 2164624104 to 2164624104

AndyJRobinson commented 2 years ago

Looks like this is an issue in mythbackend itself. The Content-Length header is coming back with a negative value:

curl -i --head 'http://192.168.218.162:6744/Content/GetFile?StorageGroup=Default&FileName=/1041_20220427003000.ts' -H 'Range: bytes=0-' --ignore-content-length

HTTP/1.1 206 Partial Content Date: Sat, 07 May 2022 00:11:33 GMT Server: MythTV/32.0+fixes.202204250633.daa4e7e447~ubuntu20.04.1 Linux/5.4.0-109-generic UPnP/1.0 Accept-Ranges: bytes Connection: Keep-Alive Keep-Alive: timeout=10 Content-Type: video/mp2t Content-Range: bytes 0-2164624103/2164624104 Content-Length: -2130343192 Cache-Control: no-cache="Ext",max-age=31536000 Last-Modified: Wed, 27 Apr 2022 01:00:00 GMT [...]

bennettpeter commented 2 years ago

I suggest switch back to port 6544 until this is resolved

bennettpeter commented 2 years ago

OP has opened a bug in MythTV https://github.com/MythTV/mythtv/issues/555 Reopening this to track until the mythtv bug is fixed.