2009-06-16, 15:05
I'm using XBMC to play back recordings from BBC HD on my TV. The programmes are recorded using Elgato EyeTV on the Mac, then exported from there using the "Native, no re-encoding" option.
The BBC HD signal is 50Hz (25fps) 1080i encoded with h.264, that means the export is basically rewrapping the h.264 data from a DVB-S transport stream to a h.264 MPEG4 file with no transcode. ie: the video data is the same, only the encapsulation format has changed. XBMC on Linux, Windows and OSX has no trouble playing back these files, where the machines are quick enough to do so.
I've set up XBMC on both my iMac, which is fast enough to manage playback entirely in software, and on my Aspire Revo running Ubuntu Jaunty, which is using the new VDPAU support to do hardware decoding. (And has to: as discussed elsewhere the Atom CPU is far, far too slow to do it in software.)
What I find is that on the Mac playback is fine, but on the Revo I get quite visible combing artifacts affecting on-screen motion. In all other respects the Revo is now doing its job perfectly, and would be much more convenient than the 5m cables trailing across the room from my Mac. It's just the combing when there's motion, which is more or less distracting to watch depending on the content and my mood!
I tried changing the XBMC resolution (Settings->Appearance->Screen->Resolution) from "Auto" to "1080i 16:9" (and restarted XBMC to be sure) but while that seems to improve the combing a *bit* it introduces a timing glitch every second-and-a-bit which I think is a 60Hz/50Hz (ie: 30fps/25fps) issue. (There doesn't appear to be a 50Hz 1080i option.) So leaving resolution on Auto is currently the best I can get, with combing the only issue.
The TV is reporting that it's receiving a 1080p signal (despite changing the resolution setting as above) so presumably the deinterlacing is happening in the computer. The same applies on the Mac btw; the TV reports that it's getting a 1080p signal, so presumably the deinterlacing must be happening on the computer; but presumably because it's doing it in software it's using a different algorithm - one that works better! I don't know whether the problem is in the hardware decoding (I'd have thought not) but it is the main difference between the two systems.
I don't seem to have the option in the nvidia-settings or elsewhere outside XBMC to actually emit 1080i to the TV so the computer doesn't have to deinterlace at all.
I need a solution so it works better on the Revo. If it's just a setting someone already knows about that I can change, and I just haven't found it, that's great; if there's a way to do the deinterlacing in software in advance (ie: convert my recordings from 1080i to 1080p without any other lossiness) that's also acceptable. Or if the XBMC developers - maybe specifically wrt the VDPAU implementation - need to do something, this is maybe a bug report. :-)
The BBC HD signal is 50Hz (25fps) 1080i encoded with h.264, that means the export is basically rewrapping the h.264 data from a DVB-S transport stream to a h.264 MPEG4 file with no transcode. ie: the video data is the same, only the encapsulation format has changed. XBMC on Linux, Windows and OSX has no trouble playing back these files, where the machines are quick enough to do so.
I've set up XBMC on both my iMac, which is fast enough to manage playback entirely in software, and on my Aspire Revo running Ubuntu Jaunty, which is using the new VDPAU support to do hardware decoding. (And has to: as discussed elsewhere the Atom CPU is far, far too slow to do it in software.)
What I find is that on the Mac playback is fine, but on the Revo I get quite visible combing artifacts affecting on-screen motion. In all other respects the Revo is now doing its job perfectly, and would be much more convenient than the 5m cables trailing across the room from my Mac. It's just the combing when there's motion, which is more or less distracting to watch depending on the content and my mood!
I tried changing the XBMC resolution (Settings->Appearance->Screen->Resolution) from "Auto" to "1080i 16:9" (and restarted XBMC to be sure) but while that seems to improve the combing a *bit* it introduces a timing glitch every second-and-a-bit which I think is a 60Hz/50Hz (ie: 30fps/25fps) issue. (There doesn't appear to be a 50Hz 1080i option.) So leaving resolution on Auto is currently the best I can get, with combing the only issue.
The TV is reporting that it's receiving a 1080p signal (despite changing the resolution setting as above) so presumably the deinterlacing is happening in the computer. The same applies on the Mac btw; the TV reports that it's getting a 1080p signal, so presumably the deinterlacing must be happening on the computer; but presumably because it's doing it in software it's using a different algorithm - one that works better! I don't know whether the problem is in the hardware decoding (I'd have thought not) but it is the main difference between the two systems.
I don't seem to have the option in the nvidia-settings or elsewhere outside XBMC to actually emit 1080i to the TV so the computer doesn't have to deinterlace at all.
I need a solution so it works better on the Revo. If it's just a setting someone already knows about that I can change, and I just haven't found it, that's great; if there's a way to do the deinterlacing in software in advance (ie: convert my recordings from 1080i to 1080p without any other lossiness) that's also acceptable. Or if the XBMC developers - maybe specifically wrt the VDPAU implementation - need to do something, this is maybe a bug report. :-)