Alketi
February 26, 2013, 6:07am
1
Hi,
Koying from the awesome XBMC dev team is trying to get hardware decoding working on Tegra3 (which will be supported on Ouya and many other devices) and has been successful for all codecs except VC-1 and MP4 (the latter of which partially works but is unstable).
His post and the XBMC dev forum can be found here: libstagefright - Experimental hardware video decoding builds
For MP4, he receives an error to the effect of "coding method not supported"
Is there someone here or at nVidia who can give him some guidance on how to interface Tegra3 with these two codecs?
Thank you in advance.
sjones
March 5, 2013, 2:59am
2
Please follow up with me directly - we would like to discuss with Koying.
Alketi
March 6, 2013, 1:51am
3
Hi Mr. Jones,
Thank you very much for your response.
Tim, an nVidia dev, contacted me directly and I’ve given him Koying’s details. Hopefully the two will be in touch shortly.
Cheers,
Alketi
p.s. Despite all those @ symbols in your two names, I couldn’t figure out how to successfully email you. :)
koying
March 7, 2013, 3:13pm
4
Hi, Koying from XBMC, here.
I’ve sent Tim an email explaining the issues.
koying
March 11, 2013, 9:43am
5
Mmm… Sent the message to “Tim” on March 6th and no response.
Is he not the person I should address the mail to?
koying
March 13, 2013, 10:14am
6
Well, unfortunately Tim’s response was not very helpful.
I’m reproducing the mail I sent him here, in case someone could help.
Context:
As of our latest release, “Frodo”, we have an Android port of XBMC. Unfortunately, this port lacks a generic approach to H/W accelerated video.
We are working on bringing this generic H/W acceleration by using the “libstagefright” private API of Android.
Basically, we are incorporating the equivalent of “AwesomePlayer.cpp” into XBMC, with the major difference being that we use our own demuxers and thus a custom MediaSource input.
For reference, the source of the pach is available at https://github.com/xbmc/xbmc/pull/1832
I’m using an Ouya and a Nexus 7 for development.
Problems:
VC-1: When feeding VC-1 frames to the OMX codec, it seems to just “eat up” all input without ever providing an output frame.
I’m assuming there is some metadata I should provide to the codec, but I have no idea what/which.
MP4: Some mp4 lvl2 files cannot be read by the codec. See http://www.auby.no/files/video_tests/xvid_480p_as_l5_1mbps_he-aac_foreign_subs_matrix.mkv , for example.
This is no really a problem per se (although those can be decoded by other SoC, so it might be a bug on your side).
The real problem is that we get no prior indication that the file is not supported. The codec just returns errors during the decoding loop.
Being that late, we cannot recover and fall back to software decoding, so, so far, I don’t have any other option than to blacklist the codec as a whole.
Question here would be: How can I detect, before entering the decoding loop, if a given file is supported or not?
Thanks already for providing assistance on those issues.
His reply was basically “Use MediaCodec”. That’s not helpful because:
MediaCodec is JB+ only. JB+ accounts for ~16% of android base today. Might be an option in a few years but not now.
Anyway, MediaCodec is just a JAVA API wrapper around libstagefright, using the same OMX codecs. I assume the problems I outlined here will occur on MediaCodec, too.
Thanks in advance for any help.
Alketi
March 18, 2013, 6:35pm
7
sjones, the MP4 and VC-1 issues still persist on Tegra3 for XBMC…
Is there additional help or guidance that can be offered to Koying?
Thank you in advance.
sjones
April 10, 2013, 11:24pm
8
sorry - i missed this thread - let me check with tim
Alketi
April 16, 2013, 6:30am
9
Thanks. Any news from Tim?
sjones
April 19, 2013, 7:30pm
10
i checked with tim on 4/10 and he said all is good w/ koying - please let me know if there are outstanding items