[LINUX] HD Video Corruption with pre-11.0 PVR (ffmpeg?) and VDPAU

  Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
FernetMenta Offline
Team-Kodi Developer
Posts: 3,556
Joined: Jul 2010
Reputation: 67
Location: Munich
Post: #46
Quote:I did wonder about trying to find the exact code version when the problem appeared, and then we'd at least know what commits were made to what modules. Might be a slow process, though...

This is quite a good idea and I don't think it would be a slow process. I guess you can narrow down the number of commits to look at to 5 with less than 10 build cycles. I would start with Dharma: git reset --hard e9e909922ed87c4f0bc9 sets the version to March 4th. If this version is ok go to the middle of this date and today, always divide by 2.
find quote
Prof Yaffle Offline
Donor
Posts: 1,188
Joined: Mar 2011
Reputation: 28
Location: UK - in the middlish (mostly).
Post: #47
I suspect I'll need to rebuild this image before I start this process, but that's doable. i'll try a total wipe of XBMC first and see if that helps.

Maybe I'm just having a bad day, though, but how does the git date coding work? I've wandered back through the commits and sort of see a pattern sometimes. Ideally, though, I'd be able to just generate that hex code (or some other reference) and take it from there.

I know the fault appeared in early April, so that will save some binary splitting of dates... I guess I'll nail it to a specific date within a few builds...
find quote
FernetMenta Offline
Team-Kodi Developer
Posts: 3,556
Joined: Jul 2010
Reputation: 67
Location: Munich
Post: #48
Prof Yaffle Wrote:Maybe I'm just having a bad day, though, but how does the git date coding work? I've wandered back through the commits and sort of see a pattern sometimes. Ideally, though, I'd be able to just generate that hex code (or some other reference) and take it from there.

I am away from my system and can't try but I think you can log out git hash and commit date with:
git log --pretty=format:%H %cd

Or use git log --grep to find specific ones.
find quote
Prof Yaffle Offline
Donor
Posts: 1,188
Joined: Mar 2011
Reputation: 28
Location: UK - in the middlish (mostly).
Post: #49
Thanks - then let the game begin. I see that git has a handy bisect option that should nail me down to the right few days in four binary splits or so, so let's see. I know that the shipping version of XBMC-Live is good, and i can mark the current code as bad, so that's only 16-18 weeks or so between.

I need to play a bit more with the commit numbering scheme (thanks for the pointers), I'm getting errors from git bisect when I try something from git log or the github history, so I'm evidently doing something wrong.

Once I get things working I'll open a post here as a diary/reference for anyone who may be interested.
find quote
TheSwissKnife Offline
Fan
Posts: 325
Joined: Sep 2010
Reputation: 17
Post: #50
I would suggest looking (and asking) about each commit when the ffmpeg release that is incorporated changed. It would seem to me to be very clearly related to that.
find quote
TheSwissKnife Offline
Fan
Posts: 325
Joined: Sep 2010
Reputation: 17
Post: #51
eg

https://github.com/xbmc/xbmc/blob/master...tion.patch
find quote
Prof Yaffle Offline
Donor
Posts: 1,188
Joined: Mar 2011
Reputation: 28
Location: UK - in the middlish (mostly).
Post: #52
Sorry, guys - been away a lot recently, plus I have to learn all about git. So bear with me!

Clean, default xbmc-live build

No changes except sudo dhclient for an IP address and installation of ftp. Default nvidia drivers, libvdpau, etc.

10.1 git:unknown (March 9 2011)

No corruption - PASS.
find quote
Prof Yaffle Offline
Donor
Posts: 1,188
Joined: Mar 2011
Reputation: 28
Location: UK - in the middlish (mostly).
Post: #53
Recent git build

I say "recent" although it was "current" when I pulled the code...

Pre-11.0 git:20110701-9d8f298

Corruption - FAIL
(This post was last modified: 2011-07-16 18:42 by Prof Yaffle.)
find quote
Simian Offline
Junior Member
Posts: 37
Joined: Feb 2011
Reputation: 0
Post: #54
Prof Yaffle Wrote:Recent git build

I say "recent" although it was "current" when I pulled the code...

Pre-11.0 git:20110701-9d8f298

Corruption - FAIL

Have you tried the latest code? I had no corruption on the unstable/natty as of thursday with iplayer. Could have been some difference in the video stream, I guess, but previously Top Gear had been a consistent 'offender.

Simon.
find quote
Prof Yaffle Offline
Donor
Posts: 1,188
Joined: Mar 2011
Reputation: 28
Location: UK - in the middlish (mostly).
Post: #55
Thanks for the thought, Simian... I've been locked onto the idea that this is bug that was introduced late March/early April, and it hadn't occurred that it had been fixed since in passing.

So, to ensure that we leave no turn unstoned:

Pre-11 GIT:20110716-9d59799

Corruption - FAIL

So it's not something that's gone away. Damn, you had my hopes up there that all I had to do was wait for Dushmaniac's next build and all would be resolved :-)
find quote
Prof Yaffle Offline
Donor
Posts: 1,188
Joined: Mar 2011
Reputation: 28
Location: UK - in the middlish (mostly).
Post: #56
Back to early April... Dushmanic publish odk18 on 08/April, so let's choose somewhere close to try to reduce the number of binary splits.

9th April build...

PRE-11.0 GIT:20110409-2dcb9d5

Corruption. FAIL.
find quote
Prof Yaffle Offline
Donor
Posts: 1,188
Joined: Mar 2011
Reputation: 28
Location: UK - in the middlish (mostly).
Post: #57
Binary split... 25th March.

Pre-11.0 GIT:20110325-5b8d49b

Corrupt. FAIL.
find quote
TheSwissKnife Offline
Fan
Posts: 325
Joined: Sep 2010
Reputation: 17
Post: #58
Try before Feb 02 when ffmpeg updated. BTW, I have noticed that the corruption shows parts of video frames from completely different streams played just before - so old vdpau video surfaces are being presented and thus decode is probably not giving the data to to vdpau properly.
find quote
Prof Yaffle Offline
Donor
Posts: 1,188
Joined: Mar 2011
Reputation: 28
Location: UK - in the middlish (mostly).
Post: #59
Okay, thanks, that helps guide it... I tried looking for ffmpeg commits, but realised that it could just as likely be dvdplayer or some other module. However, I'm getting fed up of recompiling vast tracts of code (be thankful for ccache...), so I'll take that leap of faith!

Anyway, I only just realised that I'm wasting time trying to find the error post-Dharma's release as I was (i.e. assuming it was working in early March since Dharma was released then). Dharma branched from Main in July of last year... I suspect the bug only appeared for me when Main was merged back into Dushmaniac's PVR build (possibly this commit).

So, having floundered around with a couple of later code releases to try to move closer to the early March Dharma release date (which is pointless - d'oh!), I've gone waaaay back in time to prove that point...

17/03/11 Pre-11.0 GIT:6a77cd2 FAIL

14/03/11 Pre-11.0 GIT:0cee457 FAIL

01/03/11 Pre-11.0 GIT:b3283ad FAIL


... so, let's head for when Dharma branched:

16/07/10 Pre-10.5 r31900 PASS

Right. Another reference point - I'll use your February tip to see if I can get closer without splitting between July 2010 and March 2011.
find quote
Prof Yaffle Offline
Donor
Posts: 1,188
Joined: Mar 2011
Reputation: 28
Location: UK - in the middlish (mostly).
Post: #60
@TheSwissKnife - well done, that man.

Going back to 02/02/11... immediately after a slew of ffmpeg commits:

Pre-11.0 GIT:a0ff26e FAIL

Immediately before those same commits:

Pre-11.0 GIT:3826d56 PASS

So, that's a list of only 20 or so commits in which the problem appeared... and I have a strong suspicion which one broke it, but I'll track that down over the next day or two.

What I do then is beyond me, but at least we'll know! Oo
find quote
Post Reply