Page 2 of 2
Re: MrMC v3.0.1 on Amazon
Posted: 06 Mar 2017, 16:15
by davilla
DC1983 wrote:Hi Davilla,
Thanks for all your hard work.
Will it be going back to the ffmpeg approach? I'm UK based as well, fire tv 2, V3.0.0 for me was perfect, no drops or skips.
Two ways to get proper h264/interlaced.
1) FFMpeg (now and future)
2) MediaCodec(no-S) with Bob/Bob Invert (future) Changes to support this have not been released yet.
Re: MrMC v3.0.1 on Amazon
Posted: 10 Mar 2017, 17:50
by jamesp26
davilla wrote: 06 Mar 2017, 14:48
I took a much, much closer look at h264/interlaced behavior under both MediaCodec(S) and MediaCodec(no-S). On FireTV2 and Shield.
Well, just smack me silly with a fish but you are correct. On FireTV2, both flavors of MediaCodec just decode, they do not do any form of internal deinterlacing. With MediaCodec(no-S), we can to the deinterlace via GPU (Bob or Bob Invert). With MediaCodec(S), what we get is what we get.
On Shield, both flavors of MediaCodec do internal deinterlacing. You can see this via logcat, when starting playback. A deinterlacing thread is created. There does not seem to be a way to disable it. Doing MediaCodec(no-S) and adding a second level of deinterlacing is bad. And some forms of media content will actually playback bad as the framerate calculated wrong. Added clamps to prevent that.
FireTV2 is API 22, Shield is API 24. Not sure if this internal deinterlacing is a required property API 23+ or a property of the Nvidia decoder.
Interesting
Thanks for looking into it. At least it proves i wasn't going crazy. Looking forward to the changes anyway, as i think mediacodec deinterlacing, although still bob, will at least mean that firetv won't be heating the house anymore. That thing gets hot watching livetv!
From memory, i thought i had read somewhere that NVidia added their own deinterlacing. I've google it today and cant find jack, so ive probably made it up.
On a final note, I would love to offer my time to help test if possible. I have loads of use cases covered and think i want to help your project. I know there is no test flight for firetv, but if I can build the app myself would that be good enough? I notice you tend not to commit to github until you release. Let me know anyway, my tech skills are in the wrong technologies but I am pretty persistent so sure I can get it to build.
Re: MrMC v3.0.1 on Amazon
Posted: 13 Mar 2017, 06:18
by vlaves
As deinterlacing is not working well still on the Fire TV 4k, would it be possible to implement this backport to MrMC's DVBViewer PVR Client:
https://github.com/Uukrull/pvr.dvbviewer/commits/spmc
Then transcoding on serverside could be used at least to make the interlaced streams progressive.
Of course best would be hardware accelerated deinterlacing, but somehow I gave up hope on that in the meanwhile. I guess we will never get good hardware accelerated deinterlacing (better den bob or bob-inverted...important for sport shows for example) s the Fire TVs hardware is not capable of that.
Re: MrMC v3.0.1 on Amazon
Posted: 13 Mar 2017, 13:30
by davilla
define 'deinterlacing is not working well' please. Bob Invert works for all my test files on firetv2.
Re: MrMC v3.0.1 on Amazon
Posted: 13 Mar 2017, 13:55
by vlaves
davilla wrote: 13 Mar 2017, 13:30
define 'deinterlacing is not working well' please. Bob Invert works for all my test files on firetv2.
Bob is not good enough if you having Sports shows, like soccer games for example. In parallel I have an Wetek Hub also running Android and there deinterlacing is perfect.
Currently MrMC on The Fire TV 4k is not deinterlacing at all when using hardware acceleration.
Too bad, not enough horse power to use yadif 2x with ffmpeg, it was a great pic on my chromebox I had earlier
Re: MrMC v3.0.1 on Amazon
Posted: 13 Mar 2017, 14:02
by davilla
I thought I pushed a version that enabled it
MediaCodec (S) on, disable interlace.
MediaCodec on, enable interlace.
This lets MediaCodec (non-surface) handled h264 interlaced, with Bob/Bob Invert.
Mpeg2 interlaced is always handled with FFMpeg.
Re: MrMC v3.0.1 on Amazon
Posted: 13 Mar 2017, 14:13
by vlaves
davilla wrote: 13 Mar 2017, 14:02
I thought I pushed a version that enabled it
MediaCodec (S) on, disable interlace.
MediaCodec on, enable interlace.
This lets MediaCodec (non-surface) handled h264 interlaced, with Bob/Bob Invert.
Mpeg2 interlaced is always handled with FFMpeg.
It is there of course when using mediacodec (non surface), just that the Fire TV 4k is to weak to process 1080i h264 streams with yadif 2x.
The Shield can for sure, but there again it's done in hardware completely anyway
Re: MrMC v3.0.1 on Amazon
Posted: 13 Mar 2017, 15:31
by davilla
yadif is only possible under FFMpeg. It's a CPU based where usage is tied to using FFMpeg codec.
Shield has the ponies to do yadif w/FFmpeg. No other embedded platform (that MrMC supports) has enough ponies.
Re: MrMC v3.0.1 on Amazon
Posted: 13 Mar 2017, 16:42
by vlaves
davilla wrote: 13 Mar 2017, 15:31
...
Shield has the ponies to do yadif w/FFmpeg. No other embedded platform (that MrMC supports) has enough ponies.
Yeah that's the irony in it

THE device which doesn't need it has enough ponies

Re: MrMC v3.0.1 on Amazon
Posted: 13 Mar 2017, 19:16
by jamesp26
vlaves wrote: 13 Mar 2017, 13:55
davilla wrote: 13 Mar 2017, 13:30
define 'deinterlacing is not working well' please. Bob Invert works for all my test files on firetv2.
Bob is not good enough if you having Sports shows, like soccer games for example. In parallel I have an Wetek Hub also running Android and there deinterlacing is perfect.
Currently MrMC on The Fire TV 4k is not deinterlacing at all when using hardware acceleration.
Too bad, not enough horse power to use yadif 2x with ffmpeg, it was a great pic on my chromebox I had earlier
The bouncy reds can get annoying.
Davilla + others devs, it may be a long shot for me to request it but its worth a go! On the AppleTv i bought a tvheadend app which uses vlckit to play streams. The forum of the app is here:
https://gitter.im/zipleen/tvheadend-iphone-client
In the first version they only supported blend deinterlacing but in the latest version they implemented some other deinterlacers including bob and yadif. Yadif, of course, doesn't work because the appletv doesn't have the ponies. However, one mode that works really well is 'Linear'.
See linear from -
https://wiki.videolan.org/Deinterlacing ... lace_modes
Linear plays everything perfectly and you don't get bouncy reds when watching sport. It still suffers from a few jaggies but its much better than bob inverted. Unfortunately, the app isn't WAF friendly and has a pretty terrible interface.
I don't know if the equivalent of linear is supported by ffmpeg, but it would be great to see this deinterlacer come to MrMC. I can see mention of something similar in
https://ffmpeg.org/ffmpeg-filters.html
lb/linblenddeint
Linear blend deinterlacing filter that deinterlaces the given block by filtering all lines with a (1 2 1) filter.
but thats far as my abilities stretch!