• 1
  • 7
  • 8
  • 9
  • 10(current)
  • 11
[LINUX] HD Video Corruption with pre-11.0 PVR (ffmpeg?) and VDPAU
Remember that iPlayer streams at different bitrates at well, roughly corresponding to the different HD/SD/sort-of-VGA-ish resolutions they can deliver. This corruption only shows on the HD stream from what I've seen, and not the SD ones (I presume they don't have the crop parameter set and are the "right" size)... so it's a bit of a lottery. Unless you have BBC in really small letters in the top left, you won't trigger the conditions for the corruption.

@FernetMenta - good work on tracking this down, your VDPAU fame goes up a level :-) ... let me know what I can do to test for you in due course, or anything else I can do beyond actually writing the code myself.
Reply
Prof

I can only confirm that openelec rc7 plays hd iplayer streams and the sample that you sent me no problem.
The version i was prev using was the pvr developer version,which as stated is based on eden and not dharma.
If i press 'O' when playing the video it now display 724 for the y res instead of 720.
So it now means i can have Sat tv with the eden releases and no hd iplayer,
or use the rc7 with dharma and get iplayer but no sat tv.

It is always the same,it is nearly there but not Quite.:confused2:
Reply
Then it's as FernetMenta said, I'm afraid - OpenELEC builds seem to be Dharma, which is why they work. But the pre-Eden and PVR builds will both behave just like the pre-Eden and PVR XBMC builds unless the problem is OS-related (or a related library, e.g. a PPA on Ubuntu) and doesn't appear on OpenELEC's Linux build. Which it isn't!
Reply
He surfaces, blinking in the light...

@FernetMenta - this seems to be resting on your shoulders now, sorry for that - anything I can do to help?
Reply
I am currently working on getting direct XVBA support into ffmpeg and XBMC. In this context I will prepare the system for texture cropping needed to get the corruption fixed. Then I will fix vdpau.

Quote:anything I can do to help?
Yeah, you can look after my 4 year old daughter while I am working on this Smile This morning she decided not to visit her grand parents over the weekend. grrrr ...
Reply
XVBA? I thought most hardcore XBMCphiles would burst into flame if they came near ATI chipsets! Thanks for the update, though, the offer stands if I can help.

As for your suggestion... sorry, while I might well be getting to Munich this week, she'd probably put me over my baggage allowance for the flight back!
Reply
FernetMenta Wrote:I am currently working on getting direct XVBA support into ffmpeg and XBMC. In this context I will prepare the system for texture cropping needed to get the corruption fixed. Then I will fix vdpau.

Great idea. I have a Zotac AD02 that awaits for months to get video acceleration. Installed everything (readding various threads), vainfo displays expected results but when playing video using vaapi, I only get audio for a while and a black screen.


I suppose you know xvbat tools code located on sourceforce has very primitive player based on ffmpeg (there is a patch to make it compile with recent ffmpeg version also). Spend half day compiling packages and various obsolete dependencies just to send them xvbainfo output.
Reply
FernetMenta Wrote:Ok, I think I have spotted the change in ffmpeg which casues the corruption:
http://git.videolan.org/?p=ffmpeg.git;a=...a65cbb6f08

Cropping was limited to a lower value prior to this change, this is why height was 724 (736-4*3). I can't see anything wrong with this patch.

Nice detective work! Smile

I can confirm that this is the root cause of the problem... The code has changed slightly since this post, but building with external ffmpeg I found that the corruption still persisted. Backing out the change so we are back to limiting the crop to '3' fixes it:

if(h->sps.frame_mbs_only_flag)
s->height= 16*s->mb_height - (1<<s->chroma_y_shift)*FFMIN(h->sps.crop_bottom, (16>>s->chroma_y_shift)-1);
else
//s->height= 16*s->mb_height - (2<<s->chroma_y_shift)*FFMIN(h->sps.crop_bottom, (16>>s->chroma_y_shift)-1);
s->height= 16*s->mb_height - (2<<s->chroma_y_shift)*FFMIN(h->sps.crop_bottom, 3);


BTW, as I now have a quick and easy dev platform for this, I'm happy to try any more rational changes anyone wants to suggest...
Reply
Hi Guys,

I just went from dharma to a pre-eden build from margro which was built on 16-10-2011.
I am noticing now with lots of videos I get a fuzzy line at the top of the screen and sometimes at the bottom also, like maybe one or two rows of pixels that are I guess corrupted and you get this annoying fuzzy wavy line at the top, hard to describe.

I stumbled over this thread and am wondering if this is the same issue or not?
Im on Windows 7, going back to dharma and playing the same videos there are no issues whatsoever with them....

Sorry if this is not connected, I am not a technical person so am trying to work out if this is related or not or if this issue is known etc.
Reply
It is the same issue, see trac ticket 11499.
Reply
I have a fix for this:
https://github.com/FernetMenta/xbmc/tree/mainline

Can anyone confirm that it works?
Reply
Cloning and building shortly... I'll let you know as soon as I can! Thanks for this.
Reply
Okay, pass... I don't know how to get this update, I'm afraid. I tried to just do a git clone of the link above, but kept getting an error:

Code:
xbmc@XBMCLive:~/setup$ git clone https://github.com/FernetMenta/xbmc/tree/mainline
Initialized empty Git repository in /home/xbmc/setup/mainline/.git/
fatal: https://github.com/FernetMenta/xbmc/tree/mainline/info/refs not found: did you run git update-server-info on the server?
xbmc@XBMCLive:~/setup$

So I cloned what I think is the main repository (https://github.com/FernetMenta/xbmc.git) but that doesn't bring down the updated code from what I can see (looking at the diffs and comparing with the code).

It's late, I'm tired, I've driven for 8 hours today... humour me...!
Reply
You need to checkout branch mainline:
git checkout mainline
Reply
My git crash-course continues! After much floundering around:

$ git clone https://github.com/FernetMenta/xbmc.git
$ git reset --hard

==> reports that I'm now on something that looks promising:

HEAD is now at 1d3830c vdpau: fix video corruption on h.264 streams, see trac 11499

$ git checkout mainline

==> reports that I'm already on mainline (which I suspected from the previous message).

A check of ./xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp shows that the new code is there as per this - so I'm good to go. Compiling now...
Reply
  • 1
  • 7
  • 8
  • 9
  • 10(current)
  • 11

Logout Mark Read Team Forum Stats Members Help
[LINUX] HD Video Corruption with pre-11.0 PVR (ffmpeg?) and VDPAU0