• 1
  • 5
  • 6
  • 7(current)
  • 8
  • 9
  • 14
[PATCH] Hardware deinterlacing for both software and DXVA2 decoded material
#91
isidrogar Wrote:Thanks for your comments!

If anybody is having unresponsive/freeze/locking problems during live TV viewing, at the end of DXVA2 decoded videos or during exit here is an updated installer.

I have modified the way Direct3D rendering surfaces are managed in CDecoder and CProcessor in order to avoid some problems of accessing to already relased pointers.

Downloaded the latest one. For some reason, I can't pause by pressing the pause button on the xbox 360 controller using event client. Installed the official nightly build and it works fine.

The previous version on page 8 also had a bug, which won't let you get addons for videos. Everything shows up blank on the get addons page.
Reply
#92
jacky89 Wrote:Downloaded the latest one. For some reason, I can't pause by pressing the pause button on the xbox 360 controller using event client. Installed the official nightly build and it works fine.

The previous version on page 8 also had a bug, which won't let you get addons for videos. Everything shows up blank on the get addons page.

Which commit version of nightly build working fine did you installed?
Reply
#93
isidrogar Wrote:Which commit version of nightly build working fine did you installed?

The nightly build working fine I installed was the June 26 version i downloaded yesterday.
Reply
#94
You cannot pause live tv. It's been disabled in pvr versions for now... It's not a bug. Isidrogar, the installer you uploaded fixed my ffmpeg green blocky playback and works great with dxva deinterlace, however... Xbmc was highly unstable and crashed constantly. But I think the is just dushmaniacs branch being unstable ATM. it was not usuable at all, I had to uninstall it.

I used your 'updated installer' and xbmc still froze every time I stopped a live tv feed.
Not to mention, xbmc took extremely long to boot, the live tv menu takes extremely long initially also.

Cheers,
Loggio.
Reply
#95
Yes, I also have some issues with PVR. Looking at the log it shows some crashes for CPVRManager code. It seems dushmaniac's branch is not ready for consumption yet Sad.

I will post other installer with only last head master code from xbmc's repository.

Anyway it was a nice try for having everything desired...Smile
Reply
#96
@isidrogar
I'm using the combination of these DXVA patches (except the PVR stuff and the VC-1 stuff) and I'm getting frequent "freezes" after +/- 1 hour of playback, regardless of codec (SD MPEG2, DVD, H.264...) Could it be a memory leak in the dxva code? I don't see anything special in my log (see http://pastebin.com/b6Ajvav2 )

EDIT: just to clarify, by "freeze" I mean really xbmc totally freezing playback and becoming unresponsive to the point that I need to bring up Task Manager to kill xbmc.exe
Reply
#97
This is the promised installer with the same patches that the previous one but without PVR branch.

@Voyager-xbmc:
I can't see anything special in your log related to your problem with video processing but I can see some audio problems. Only for making sure we try the same binaries, can you try this new installer and give me some feedback?

Anyone else is havig problems with "freeze" after long playback time?
Reply
#98
isidrogar Wrote:can you try this new installer and give me some feedback?
I'm going to be out for a week now (without htpc access) but I'll try as soon as I can...

EDIT: meanwhile, I've checked the source code in your branch (especially DXVA.cpp and DVDPlayerVideo.cpp) and my code is (almost) identical - except that I've rebased to the latest master code, but my problems started several days ago. So I doubt that it's a binary or code problem. I'm wondering if there's not some kind of deadlock involved. I have seen a few commits lately trying to fix these kinds of issues... As I'm out I'd like to ask those who are trying out this build, to watch out for xbmc lockups and report it.
Reply
#99
I made a quick test using my dxvarenderer branch which is essentially isidrogar's patch with some code reshuffle. Played a DVD iso for 1 hours, free memory was ~2745k when starting XBMC and went to ~2891k after playing for an hour, so does not look like there is a memory leak.

However there is a bug in isidrogar's code that can lead to XBMC freezes during video playback/end of playback. There is no check in CProcessor::Render() to see if the surface buffer contains the frame (or its backward references). See line 1382.
Reply
I'm trying to understand this github business and hope someone could spend a few words explaining something to me Smile

I have the main XBMC branch up and running in VS 2010, but I have made some other changes to the code on my local version, concerning 24P and audio delays and also want to keep my MySQL version so I won't mess up my ATV2.

I would also love the deinterlacing patch in my version, so I need to merge isidrogars with my own. I thought I should write this in Git Bash: "git pull git://github.com/isidrogar/xbmc.git" but that doesn't work.

How do I succesfully merge the two, keeping all the changes?
Reply
a11599 Wrote:I made a quick test using my dxvarenderer branch which is essentially isidrogar's patch with some code reshuffle. Played a DVD iso for 1 hours, free memory was ~2745k when starting XBMC and went to ~2891k after playing for an hour, so does not look like there is a memory leak.

However there is a bug in isidrogar's code that can lead to XBMC freezes during video playback/end of playback. There is no check in CProcessor::Render() to see if the surface buffer contains the frame (or its backward references). See line 1382.

Hi a11599,

I suppose you are talking about the long check after the "or" in this line:

if ((time > m_time) || (time - (m_caps.NumBackwardRefSamples + m_caps.NumForwardRefSamples) * 2 <= m_time - m_size * 2))
{ ... }

This is not a bug. My code intentionally hasn't this check because I think isn't needed:

In case you play a DVD which starts with a still frame not detected properly in DVDVideoDecoder you will have a black screen render (the "black screen" issue discussed previously in this thread). For this case the "Add" method assures the surface buffer has no NULL pointers and you can present the image properly.

In other cases if Render() method tries to present a frame not included in surface array the only issue is the line which calculates index start frame will not select the correct one, but will never go out of bounds (note the operator modulus m_size) nor NULL surfaces (because they are always filled) so in worst case you only could get an invalid VideoProcessBlt() related to presentation time (screen not refreshed, the same behavior as if you return after the check in your code).

In conclusion, include or not the check only has sense for debug purposes but has nothing to do with freezes or similar. Maybe I'm wrong and I'm missing something so in case correct me, but if there is a bug probably will be in other side.
Reply
djon Wrote:I'm trying to understand this github business and hope someone could spend a few words explaining something to me Smile

I have the main XBMC branch up and running in VS 2010, but I have made some other changes to the code on my local version, concerning 24P and audio delays and also want to keep my MySQL version so I won't mess up my ATV2.

I would also love the deinterlacing patch in my version, so I need to merge isidrogars with my own. I thought I should write this in Git Bash: "git pull git://github.com/isidrogar/xbmc.git" but that doesn't work.

How do I succesfully merge the two, keeping all the changes?

Hi djon,

Could you explain more when you say "pull doesn't work"? Which error is shown?

Maybe could be better for you to apply the patch over your code.
Reply
Yes I don't think git merging is for me yet, so applying a patch sounds nice..except I have no idea how to either :-) As far as I can tell that is not done with git but with trac or tortoise svn or something? Can you quickly explain to me what to do?

Pretty much the only version I'm not just using your compiled version is that the build from June 26th has a bug concerning MySQL and clean library.
Reply
@isidrogar:
Yes that is the check. Your explanation is right, however it's exactly the blt which fails here. I discovered this when testing background video play using an ISO on a network share. When the blt was trying to render a non-existing frame (or a frame which did not had all the required references) XBMC GUI either froze immediately or at the end of playback. Maybe this is only with some hardware/driver combinations but nevertheless if it failed here it could fail elsewhere. Smile
Reply
I installed TortoiseGit, right click the XBMC folder, select "Apply Patch Serial", add the .diff file and I get this error:

"C:\Users\djon\Downloads\deinterlacing_for_software_and_dxva2_playback_v3.diff"
Patch does not have a valid e-mail address.

What am I doing wrong?
Reply
  • 1
  • 5
  • 6
  • 7(current)
  • 8
  • 9
  • 14

Logout Mark Read Team Forum Stats Members Help
[PATCH] Hardware deinterlacing for both software and DXVA2 decoded material0