2012-08-23, 17:32
I also don't get all the hi10p rage, but I recently got a video in hi10p from a friend that I couldn't play on my ION system. So I decided to look at ffmpeg multithreading support in the latest xmbc trunk for fun.
I found that while everything was there and compiled correctly, xbmc wouldn't use threading. Apparantly, this is due to a check in xbmc/cores/dvdplayer/DVDCodecFFmpeg.cpp (or something) to set the number of threads. When hints.software is false (because ION == vdpau I guess) it will set the number of threads to use to 1
By removing that condition, or better yet use the m_bSoftware instead it works flawlessly. m_bSoftware is set automatically to false when dealing with certain unaccelerated profiles it seems.
However playback was still choppy, but after also removing the THREAD_SLICE restriction (in the same file) playback worked like a charm for a 720p ~5 mb/s avg bitrate video on my slooow intel atom, so that's something I'll take. Use at your own risk though, e.g., full threading (!THREAD_SLICE) was disabled by the devs as it caused crashes on vdpau systems. Though I havent noticed any so far...
Hope this is somewhat clear and sorry for not giving any line numbers but you should find them quite easily if you were so inclined.
I found that while everything was there and compiled correctly, xbmc wouldn't use threading. Apparantly, this is due to a check in xbmc/cores/dvdplayer/DVDCodecFFmpeg.cpp (or something) to set the number of threads. When hints.software is false (because ION == vdpau I guess) it will set the number of threads to use to 1
By removing that condition, or better yet use the m_bSoftware instead it works flawlessly. m_bSoftware is set automatically to false when dealing with certain unaccelerated profiles it seems.
However playback was still choppy, but after also removing the THREAD_SLICE restriction (in the same file) playback worked like a charm for a 720p ~5 mb/s avg bitrate video on my slooow intel atom, so that's something I'll take. Use at your own risk though, e.g., full threading (!THREAD_SLICE) was disabled by the devs as it caused crashes on vdpau systems. Though I havent noticed any so far...
Hope this is somewhat clear and sorry for not giving any line numbers but you should find them quite easily if you were so inclined.