Log in

View Full Version : DGAVCDecNV 1.0.13: GPU decoding on Nvidia


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27

Clumpco
2nd December 2008, 18:06
When it happened the server was idling. I turned if off and the problem stopped. However it does not seem to happen if I haven't been encoding, only after the server has been used. I will do some testing this evening and try to define the exact circumstances.

Spot on Neuron2! It only actually starts pausing if some frame serving/encoding goes on while using the NVidia mpeg decoderboth (It doesn't do it if indexing). If you stop encoding, the pauses continue and only shutting down the server or the decoder clears it.

SO not a bug after all. However it might be an idea to test if the NVidia mpeg encoder is being used when frame serving starts and issuing a warning?

I suspect that the blue screen might be linked to me having run
both together and not having stopped/restarted the server before doing another encode.

h164ts_cutter problem looks as if it's linked to the Cyberlink h264 decoder being broken - removing it now.

Cheers

Guest
2nd December 2008, 18:28
dgavcdecnv can support deinterlace - MBAFF or not ?? Your question is unclear so I'll make some statements and hope to answer you.

DGAVCDecNV can decode MBAFF correctly.

DGAVCDecNV can deinterlace via Nvidia PureVideo.

You can alternatively deinterlace using any Avisynth deinterlacer in your Avisynth script.

If I've missed your point, please clarify it.

ultratoto14
2nd December 2008, 19:24
Hi neuron2, any news on MPEG2 and VC1 support ?

Guest
2nd December 2008, 19:57
Hi neuron2, any news on MPEG2 and VC1 support ? http://forum.doom9.org/showthread.php?t=142961

Guest
2nd December 2008, 20:34
* Fix bug in demuxing of DTS audio tracks.

* Fix problem with random access.

http://neuron2.net/dgavcdecnv/dgavcdecnv.html

ultratoto14
2nd December 2008, 23:25
Great, i follow this thread and do not see the other, will try it as soon as i get a source. Thanks for your work.

leeperry
4th December 2008, 13:19
I don't have any plans to write a DirectShow filter. But you could write one based on my open source code for the CUVID server and client.
that's too bad....coz if you wanna go shareware I believe there's far more $$$ to make from a DXVA decoder that's compatible w/ ffdshow & any video renderer/player, than w/ some Avisynth plugin for encoders.

plus I see you're also working on VC1, that would be a nice combo.

CoreAVC isn't gonna support CUDA before a long while, and their CoreVC1 vaporware isn't gonna show up anytime soon either.

you're the code guru and the ffdshow coders are registered users of this forum, maybe a simple option could make your server compatible w/ ffdshow using an AVS call ?

CruNcher
4th December 2008, 13:37
indeed a direct implementation via the Ncuvid API inside ffdshow would rock so selecting Nvidia in the Dropdown instead of libavcodec and then adding Nvidias De-Interlacer to the De-Interlacing Options ;)
Leeperry there are already a lot of DXVA Decoder available MPC- Video Decoder, Cyberlink , Intervideo (Corel), Arcsoft, Elecard (DivX) currently

video_magic
4th December 2008, 13:46
Perhaps I will appear as a fool, perhaps not.

Many of these experts, including Neuron2, have given of their time whether it be coding-knowledge, contributions in code, or general advice to newbies - so the majority of us - recipients of their kindness in sharing, should probably be thankful.

If you are going to file bug-reports, spend a little extra time before posting, prepare - post usefully.

Be thankful if you haven't paid nor contributed. Complaints or wishes? - ask and give details rather than just complain.

leeperry
4th December 2008, 14:11
Leeperry there are already a lot of DXVA Decoder available MPC- Video Decoder, Cyberlink , Intervideo (Corel), Arcsoft, Elecard (DivX) currently
well yeah, I'm the one who translated the official MPC HC website from french to english, I know that ;)

but they only work in NV12 and/or VMR9/EVR(on Vista), and you can't add ffdshow post-processing...and on ATI cards you get that lousy red blockiness(the drivers are unable to do progressively upsampled chroma RGB32).

so adding support for neuron2's code in ffdshow would allow post-processing in combination w/ DXVA...in any video renderer/player you want....be it MCE/WMP/KMP in EVR(on XP)/VMR7/HR/Mplayer OGL renderers.

that'd be a major leap for HTPC's I think.

CruNcher
4th December 2008, 14:24
that's why i said a direct implementation would rock (that wouldn't be DXVA) it would give GPU supported editing possibilities via Dshow :)
you can't get the frames via DXVA only direct via Ncuvid :)

leeperry
4th December 2008, 14:31
that's why i said a direct implementation would rock (that wouldn't be DXVA) it would give GPU supported editing possibilities via Dshow :)
you can't get the frames via DXVA only direct via Ncuvid :)
yeah OK, I meant "GPU accelerated" not "DXVA" then ;)

Guest
4th December 2008, 14:36
It's worth thinking about, I suppose.

CruNcher
4th December 2008, 14:41
@leeperry
the era of "GPU acceleration" is over we are in the era of complete Bitstream Video Decoding on consumer PC systems now, as long as you only work via Ncuvid there is practically 0 cpu utilization :)

leeperry
4th December 2008, 16:45
It's worth thinking about, I suppose.
well that would finally be true "no b/s" GPU decoding :eek:

no more NV12 only/VMR9 only/"no ffdshow PP for you coz you've been a naughty boy" :D

plus CoreAVC would be pointless, as most ppl who are using it at this point don't wanna go DXVA because it's L4.1/NV12 only

I'd be happy to register for it, and many ppl too(especially on AVS/HCFR) :thanks:

vucloutr
4th December 2008, 17:01
Hi, I got a problem with DGAVCDecNV.
Actually I wanted to compare the decoding quality of DGAVCDecNV to DGAVCDec.
Thereby I stunbled onto something I didn't expect.

With AvsP I just loaded the appropiate .dll and used AVCsource().

from "Die Welle" Blu-ray
DGAVCDec .............. DGAVCDecNV .............. DGAVCDecNV "reverted"
http://thumbnails5.imagebam.com/1959/61a4b719587848.gif (http://www.imagebam.com/image/61a4b719587848) http://thumbnails7.imagebam.com/1959/1f368019587849.gif (http://www.imagebam.com/image/1f368019587849) http://thumbnails11.imagebam.com/1959/311d1f19589481.gif (http://www.imagebam.com/image/311d1f19589481)

from "Hellboy" Blu-ray
DGAVCDec .............. DGAVCDecNV .............. DGAVCDecNV "reverted"
http://thumbnails5.imagebam.com/1960/68aa1919590367.gif (http://www.imagebam.com/image/68aa1919590367) http://thumbnails8.imagebam.com/1960/304f3319590369.gif (http://www.imagebam.com/image/304f3319590369) http://thumbnails6.imagebam.com/1960/1918a319590370.gif (http://www.imagebam.com/image/1918a319590370)

DGAVCDec seems to be correct, the actual picture of the frame decoded with DGAVCDecNV is slighty offset and stretched.
I had the impression as if it was decoded to 1920x1088 and then cut at the bottom to 1920x1080.
To "revert" that I added 8 lines at the bottom of the frame (->1920x1088) and resized it back to 1920x1080
et voilą the result was the same as the frame DGAVCDec decoded.

Setup:
DGAVCDec 1.0.6, DGAVCDecNV 1.0.6, Windows Server 2008 x64, 8800GTS512 180.48whql driver.
It's the same with DGAVCIndexNV, also 1.0.8 and DGVC1Dec/IndexNV.
I know of another user (Vista x64, 8800GT 512MB, 177.35) with the same problem.

Prolly a Nvidia bug?

if needed: "Die Welle" 20MB .m2ts sample (http://www.uploadbigfiles.net/download.php?file=882sample.m2ts) created with DGSplit. (P4$5VV0RD: --- )

marc99
4th December 2008, 18:49
well that would finally be true "no b/s" GPU decoding :eek:

no more NV12 only/VMR9 only/"no ffdshow PP for you coz you've been a naughty boy" :D

plus CoreAVC would be pointless, as most ppl who are using it at this point don't wanna go DXVA because it's L4.1/NV12 only

I'd be happy to register for it, and many ppl too(especially on AVS/HCFR) :thanks:

Now NVidia decoder support L5 level (13 reference frames in 1080p).

litkaj
5th December 2008, 14:53
To "revert" that I added 8 lines at the bottom of the frame (->1920x1088) and resized it back to 1920x1080
et voilą the result was the same as the frame DGAVCDec decoded.

If you've resized then that's not going to be the same output as DGAVCDec. Same resolution, yes, same output, no.

I was going to buy this to support the author (even though most of the stuff I encode is MPEG2 1080i -> H.264 720p), but the lack of a demo and this glitch has me worried that for the occasional encode where I do want to use it, that I won't be able to. Can anyone else verify that this bug exists?

Guest
5th December 2008, 15:14
Be patient, please. I fix bugs when they are reported but I've just finished fixing some stuff on DGAVCDec. Now I can work on this.

litkaj
5th December 2008, 15:38
Be patient, please. I fix bugs when they are reported but I've just finished fixing some stuff on DGAVCDec. Now I can work on this.

So you've duplicated it then? If so, that was my only concern.

I read through close to 40 pages of this thread and hadn't seen anyone else complain of that issue. I was wondering if it was something that only affected a few people.

Guest
5th December 2008, 16:13
No, I have not duplicated it. I am still investigating.

Initially, I opened the sample in DGAVCIndex and DGAVCIndexNV and did Save BMP. The two BMPs were binary exactly the same. Now I am checking the DGAVCDecode(NV) output...

Guest
5th December 2008, 17:14
Hi, I got a problem with DGAVCDecNV.
Actually I wanted to compare the decoding quality of DGAVCDecNV to DGAVCDec.
Thereby I stumbled onto something I didn't expect. Using DGAVCDec 1.0.7 and DGAVCDecNV 1.0.8, I am unable to duplicate your issue.

Test 1:
Open your sample stream in DGAVCIndex and then do Save BMP. Repeat with DGAVCIndexNV. The resulting BMPs are bitwise identical.

Test 2:
Serve the video via basic script using DGAVCDecode.dll to VirtualDub. Copy frame to clipboard and then save it using Paint. Repeat for DGAVCDecodeNV.dll. The resulting BMPs are bitwise identical.

Earlier versions of DGAVCDecNV did not handle cropping rectangles properly. Please retest with the version given above. Also, be sure to update the CUVID server and nvcuvid.dll with the ones in the zip file.

Renzz
5th December 2008, 17:16
Spotted a minor issue in the documentation - the parameter "Deinterlace" to AVCSource is no longer a bool but an int (in DGAVCDecodeNVManual.html).

vucloutr
5th December 2008, 17:31
strange though.

here with DGAVCIndex 1.0.7 + DGAVCIndexNV 1.0.8

http://www.imagebam.com/image/a3983b20099687

Guest
5th December 2008, 17:49
I can't see the image because of my firewall. Can you say it in words? Also, how are you making the image? Is it from the same sample you uploaded? Did you try my two tests above?

rack04
5th December 2008, 19:33
I have noticed a discrepancy in the description of the detected audio streams from the audio demux and the audio section of the information panel.

The source file is "Hellboy 2" Blu-ray m2ts.

Notice in the audio demux listbox stream 1100 is labeled as "L+R" and in the audio section of the information panel it is labeled as "C+L+R+SL+SR 48 1536"

http://i11.photobucket.com/albums/a199/rack04/DG1.jpg

http://i11.photobucket.com/albums/a199/rack04/DG2.jpg

BTW, is it possible to give these appropriate names, i.e. DTS Master Audio, TrueHD?

vucloutr
5th December 2008, 20:04
Well, I just redownloaded dgavcdecnv108.zip and suddenly, magically everything is fine. :eek: (i've almost gone nuts at this point..)

So I just looked up the two different "dgavcdecnv108.zip" files.
You updated the nvcuvid.dll right? I had downloaded dgavcdecnv108.zip before you reuploaded it with the updated nvcuvid.dll.
Seemingly the bug was in the old nvcuvid.dll:

DGAVCIndexNV 1.0.8 to the left with new nvcuvid.dll, to the right with old nvcuvid.dll
http://hdimage.org/images/qd45srs44yz37n83tw87_finally_thumb.png (http://hdimage.org/viewer.php?file=qd45srs44yz37n83tw87_finally.png)

dunno what to say finally.. hm..
problem solved, thanks anyway. :)

Guest
5th December 2008, 20:24
The source file is "Hellboy 2" Blu-ray m2ts. May I please have a sample that will allow me to duplicate your issue?

Guest
6th December 2008, 00:50
Spotted a minor issue in the documentation - the parameter "Deinterlace" to AVCSource is no longer a bool but an int (in DGAVCDecodeNVManual.html). Thanks. I'll fix it right now.

rack04
6th December 2008, 03:16
May I please have a sample that will allow me to duplicate your issue?

Is a 10 mb sample cut using dgsplit sufficient?

http://www.megaupload.com/?d=RVSRQ0VK

Guest
6th December 2008, 04:30
problem solved, thanks anyway. I don't get the "anyway" part.

Guest
6th December 2008, 04:40
Is a 10 mb sample cut using dgsplit sufficient? Obviously not! I can't duplicate the issue, because when I do a preview that stream doesn't show up.

Please give me enough to actually duplicate your issue. Thank you.

rack04
6th December 2008, 15:21
Obviously not! I can't duplicate the issue, because when I do a preview that stream doesn't show up.

Please give me enough to actually duplicate your issue. Thank you.

Well the video showed for me. Anyways I'll work on it and get back to you.

Guest
6th December 2008, 16:11
Well the video showed for me. Anyways I'll work on it and get back to you. I did not say the video does not display!

Your report is that a DTS stream shows up different in the Audio Demux menu and the Information display. But when I preview, the DTS stream never shows up in the Information display. The sample is too small and doesn't include the start of that audio stream.

rack04
6th December 2008, 23:49
I did not say the video does not display!

Your report is that a DTS stream shows up different in the Audio Demux menu and the Information display. But when I preview, the DTS stream never shows up in the Information display. The sample is too small and doesn't include the start of that audio stream.

Does this serve you any better?

http://www.megaupload.com/?d=QOFWY2M6

Guest
7th December 2008, 01:01
Well, sort of.

Um, are you even trying to duplicate the issue with the streams you give me? Because again, pid 1100 doesn't show up in the Info dialog. But that in itself is a problem, though it is not the same one you reported. I'll work on that and if you give me a stream that lets me duplicate your reported issue, I can work on that too.

rack04
7th December 2008, 01:15
Well, sort of.

Um, are you even trying to duplicate the issue with the streams you give me? Because again, pid 1100 doesn't show up in the Info dialog. But that in itself is a problem, though it is not the same one you reported. I'll work on that and if you give me a stream that lets me duplicate your reported issue, I can work on that too.

No, I'm purposely submitting files that doesn't exhibit the bug that I reported. :confused: Come on!

Each file that I have uploaded shows the 1100 stream as DTS L+R in the Audio Demux and C+L+R+SL+SR 48 1536 in the information panel.

Guest
7th December 2008, 01:45
What version of DGAVCDecNV are you using?

I've tried again with 1.0.8 and if I "Preview" I don't see the stream in the Info dialog. If I "Save Project" I see it and it doesn't match the Audio/Demux screen. So I can duplicate your issue. Don't get mad at me, I specifically said "preview", and you never mentioned that you were Saving Project.

rack04
7th December 2008, 01:57
What version of DGAVCDecNV are you using?

I've tried again with 1.0.8 and if I "Preview" I don't see the stream in the Info dialog. If I "Save Project" I see it and it doesn't match the Audio/Demux screen. So I can duplicate your issue. Don't get mad at me, I specifically said "preview", and you never mentioned that you were Saving Project.

I'm using 1.0.8. Yes, I was saving project. I only mentioned the "bug" because using eac3to I knew that the first audio stream was DTS-HD (MA) 7.1 and DGAVCIndexNV was reporting DTS 2.0.

Guest
7th December 2008, 02:25
OK, thank you. Investigating...

Clumpco
7th December 2008, 10:03
Hmm I am still having problems here, but I do not know if it DGAVC or MeGui that is at fault (or me?).
The CUVIDServer becomes unresponsive and encoding stops.
This happened when I was encoding two vids at once (by mistake, but I left it running to see what happpened).
The first pass on video1 terminated OK but the second pass stalled immediately (not even a % finished).
The first pass on video2 carried on but then hung 1 hour later at 97%.

The CUVID server icon became unresponsive and had to be killed.
MeGui managed to shut itself down when asked.
x264 was still in the process list.
A reboot was required to get the CUVID server running again.

I have also managed to hang the server by doing this:
Start Megui, load an avs, close the video screen because it was the wrong avs, load another avs.
This seems to hang megui and the server.

(using latest DGAVCNV version)

TIA

Audionut
7th December 2008, 11:11
Start Megui, load an avs, close the video screen because it was the wrong avs, load another avs.
This seems to hang megui and the server.

That's a Megui problem. I'm having the same issue regardless of source.

Clumpco
7th December 2008, 11:19
That's a Megui problem.
I suspected as much.
Thanks fir the confirmation.

Guest
7th December 2008, 15:04
This happened when I was encoding two vids at once Don't do that.

Clumpco
7th December 2008, 16:37
Don't do that.
Yes, I have seen the result :-(
Great if you want to watch two programmes at once.

Guest
7th December 2008, 20:25
DGAVCDecNV is not for watching.

HymnToLife
8th December 2008, 14:26
My results for a 1920x1080 PAFF stream from the Hauppauge HD PVR with display disabled are:

Frame rate: 46 fps
CPU utilization: 2%

My machine is Intel E8500 dual core @ 3.8GHz on ASUS Rampage Formula. Graphics card is eVGA 8500GT.

Just so I can compare my results, how did you calculate this? By opening an AVS with only the AVCSource() line in VDub (AVC stream from a Blu-Ray) and running a "video analysis pass", I get ~40fps (Athlon 64 FX-62 dual core @ 2,8 GHz, GeForce 8600GT, Vista x64).

I guess it makes sense since we have about the same graphics card that we get about the same results though your CPU is much better than mine. However, CPU usage gets very high too. Is there a way to make sur it is actually using the GPU?

And by the way, loading the AVS in a player works perfectly well for watching, and should be more widely supported that loaging the M2TS directly (and would allow for some light filtering in AVS too).

Guest
8th December 2008, 14:36
Just so I can compare my results, how did you calculate this? Preview in DGAVCIndexNV with the Disable Display option enabled. The FPS shows at the bottom of the Info dialog.

However, CPU usage gets very high too. Try it again with the method above.

Is there a way to make sure it is actually using the GPU? There is no code in there to use anything else!

Clumpco
8th December 2008, 14:53
DGAVCDecNV is not for watching.

Donald, please credit me with a little more intelligence than that.

If you run two parallel encodes in MeGui, both using DGAVCDecNV as a frame server, you get a mixture of bands from both files. Hence my quip about it being useful if you want to watch two at once.

However, and on a more serious note, I have noticed that running h264ts_cutter at the same time as your frameserver results in artefacts in the cut .ts. This I find astonishing because AFAIK h264ts_cutter only does any rendering except while you are searching through the video for cut points. But there must be a link because h264ts_cutter will also cause a BSOD in some cases (which it never does if your frameserver isn't working).

It would also appear that playing any video while frameserving can have catastrophic results.

Is it possible to index another .ts while frameserving to x264? I suspect not either.

Your code should have some check of whether there is already an instance serving frames when it is called.

All this makes capturing/encoding a very linear process and reduces the benefit of the high framerates obtained.
I cannot capture from a sat card while indexing/encoding.
I cannot index another file while encoding or capturing.
I cannot edit a .ts while indexing/encoding.

HymnToLife
9th December 2008, 22:58
Reporting since I don't think it's normal: if I have this:

AVCSource("tokikake.dga")
Trim(42972, 43000)

and open it in VDub or feed it to x264, I have blocking (http://itsuki.fkraiem.org/stuff/tokikake_blocking.jpg), but not if I remove the Trim() and just seek to the frame. Blocking also does not happen if I use DGAVCDec (non-NV) and, even more funny, adding an FFT3DGPU() to my script gets rid of the blocking as well but only if it is placed before Trim().

Source sample needed?