View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
aufkrawall
19th January 2012, 19:14
Will it be possible to use QuickSync to accelerate decoding of 4k video also with Sandy Bridge? Or just with Ivy Bridge?
CruNcher
19th January 2012, 19:26
most probably only with Ivy Bridge even if it would be possible with SB i doubt Intel would disable the Software Restriction because of certain implications
It's rare when Restrictions are disabled last time i remember it was for the Sony PSP when UMD wasn't as commercial successful as Sony imagined it so they finally removed the resolution limit from 640 to the full capable full SD (UMD) for any Stream (though before hackers circumvented this already it was a little adventurous workaround anyways creating a own file format hehe), also after many users where unhappy that they couldn't playback their Apple Quicktime Movs and only being restricted to Sonys .mp4 they reacted after the protest was heavy enough to hurt their sales ;)
So don't hope for it especially for 64bit it's not easy anymore manipulating a driver anymore or you endup in a F8 session every time (though for how long this will still work is also not clear) ;)
With Secureboot on ARM (though also different ARM Firmware protection schemes are already broken) and upcoming devices it will be even much harder and devices fully under control of who developed them those will be hard times. and only the smartest of the smartest low level geniuses that know up to the Bios (Uefi,TPM) level with cryptography experience will survive (and i don't speak about the new .Net or Java zombie Generation growing up or better been grown up ;) ), though this started already with (Pay TV, though companies weren't low level getting sued is still the nice way if you make something public, they even killed genius people in the past to protect their protection schemes and systems) moved to the Xbox,PSP,PS3 and moved on to Smartphones and its continuing to the Desktop PC.
Of course we will benefit in Security from it but also Device Restrictions will get secured with it more and more and Open Source will get threatened by it even if everyone says we will allow it it is a major problem in this new future, it will tough also open up new interesting ways see Intels Chip Research you buy only 1 Chip and later you enable what you need with a code and get more performance for extra money this will also have a major impact on the Economy itself as yields get better it will help to avoid to much production costs developing a line of 30 different chips instead their will be only 1 chip where you decide what you want to pay for extra you can virtualy build your own chip deciding if you need VC-1,H.264,Mpeg-2 whatever any instruction (SSE, AVX) could be restricted Cores Mhz you name it it could be done in the future, and evaluation wise it is already being done by Intel) :)
So everything will be on the Chip allready only 1 production line 1 time the cost but due to the restrictions it will allow to create a tremendous efficient Ecosystem, of course there need to be evaluated how do these products will look like and how do you market certain features to costumers (will there be base configs,do i need certain instructions and for what, where does it help me in my current usage ect) but all this is currently researched on as we speak ;)
aufkrawall
19th January 2012, 19:31
most probably only with Ivy Bridge even if it would be possible with SB i doubt Intel would disable the Software Restriction because of certain implications
Maybe just a patched version of the ffdshow QuickSync decoder would be needed. :)
Since it's open source I don't see any legal conflicts.
CruNcher
19th January 2012, 20:30
Nope also Egur can only do what others allow him todo ;)
Zachs
20th January 2012, 00:07
Sounds like you have a Creative card. In that case you can get back equalization and a bunch of other features by installing the unofficial drivers by Daniel_K.
Actually it's Realtek crap that comes with the mobo.
I've looked around but Realtek said EQ is no longer supported under Win7.
ranpha
20th January 2012, 00:57
Actually it's Realtek crap that comes with the mobo.
I've looked around but Realtek said EQ is no longer supported under Win7.
There is an EQ in Realtek drivers in Windows 7. Your hardware probably doesn't support it?
CruNcher
20th January 2012, 01:51
There is an EQ in Realtek drivers in Windows 7. Your hardware probably doesn't support it?
yep though its made for the avg joe so you are first greeted with the user friendly GUI which is basically the choice of some presets (there are more in the drop down menu) on the side of that dropdown is a little Equalizer button pushing that makes the EQ visible.
http://img854.imageshack.us/img854/6421/realtekeq.png
Pat357
20th January 2012, 02:39
raw h264 streams play fine for me, they just don't allow seeking, like all raw streams.
Those streams are only intermediates between encodes/muxings, and i don't think its that crucial to be able to seek in them. :p:(
I could use some advise concerning playback from raw .264/h264/x264 streams. Please give me good tip guys.
This is wat I have : playback from raw h264 streams using Lav-filter + lav video gives me a black screen in MPC-HC.
(File async, lav-spiltter, lav-audio and lav-video as "prefered", all internal stuff disabled)
I also created a graph in Graphstudio like :
asyn file -> lav-splitter-> lav-video -> EVR. Very simple and should work, but it doesn't, again the same black screen.
The info about the source (fps, higth, width, ratio,..) is properly passed from the source -> lav-splitter -> lav video -> evr.
Oh, I have enabled "raw video" in the lavsplitter tab after the lavfilter installation, not during installation.
I'm starting pulling out my hair because every time I create a raw .x264, I want to have a look at it before I start muxing the rest, and I bump against this issue.
If I put a .x264 that gives only a black screen in a container (MKV, MP4, whatever) it plays normal ! So the stream itself is OK, I guess.
If I replace lav-splitter with for ex. AVsplitter, Sonic HD demuxer or any other capable splitter, everything plays fine (still using Lav-video !).
The problem I have seems somehow related to Lav-spliiter, maybe in combination with something else.
All Lav-filters have their original merit (80000, 80004) and no other filter has a higher merrit in Dshow. (others or all below lav-video/audio).
How can it be that a raw x264 file does not play, but as soon as I put it in a container (which doesn't matter, mkv, mp4,..are all ok) it plays perfect !
It seems that something (filter with a lower merit) is highjacking all extensions for raw x264 files....
Your advise please.
System : Lav-filters 0.44, MPC-HC v3970, Nvidia gtx-570, Intel 970 @ 3.6 , Win 7 prof x64 (all updates).
mindbomb
20th January 2012, 03:05
i have a question.
I'm playing around with dxva copy back and rgb 32 output in lav video.
I'm noticing that interlaced video is being deinterlaced. How is this happening? I don't have yadif enabled. Is lav video doing it or can evr cp deinterlace rgb32 video?
goldie
20th January 2012, 06:26
@mindbomb
You can check whether it's deinterlaced in renderer or not by temporarily switch renderer from EVR to VMR or something else (overlay?).
Then check if there is a another deinterlaced-feature-enabled filter in your directshow filter chain (mayde is ffdshow).
ryrynz
20th January 2012, 06:56
ffdshow Quick Sync
http://img31.imageshack.us/img31/2531/ffdshowj.jpg
LAV Quick Sync
http://img860.imageshack.us/img860/485/lavki.jpg
Oh yeahh, grats Nev.
goldie
20th January 2012, 08:07
@ryrynz
Where can get the Decoder Performance Test tool?
wanezhiling
20th January 2012, 08:36
http://code.google.com/p/graph-studio-next/downloads/list
view -> Decoder Performance Test
goldie
20th January 2012, 09:02
http://code.google.com/p/graph-studio-next/downloads/list
view -> Decoder Performance Test
:thanks:
NikosD
20th January 2012, 09:10
@Nevcariel
For Intel's hardware only (QuickSync):
1) Have you managed to implement a DXVA VC1_VLD mode ?
2) Have you managed to implement DXVA VC-1 interlaced mode in either VC1_VLD or VC1_IDCT ?
3) Have you managed to accelerate H.264 in L5.1 and ReF>8 ?
nevcairiel
20th January 2012, 09:21
@Nevcariel
For Intel's hardware only (QuickSync):
1) Have you managed to implement a DXVA VC1_VLD mode ?
2) Have you managed to implement DXVA VC-1 interlaced mode in either VC1_VLD or VC1_IDCT ?
3) Have you managed to accelerate H.264 in L5.1 and ReF>8 ?
With the QuickSync decoder, yes to all (only VLD is supported for everything, no partial accelerations)
With pure DXVA, VC-1 does not work at all, and i didn't check such H264 files.
I generally recommend to use the QuickSync decoder, anyhow. :)
NikosD
20th January 2012, 09:31
I was referring to pure DXVA, I know that QS decoder with the help of Intel's MSDK can do all.
If you try H.264 with Ref>7 maybe lower, you will see that they are falling back to software mode.
UPDATE:
Are you ready for a pure DXVA mode for all hardware (ATI, Nvidia, Intel) soon ?
nevcairiel
20th January 2012, 09:34
Eric is planning to add a direct mode to the QuickSync decoder as well, which means it could run without the copying overhead and still be able to play everything. Because of that, i do not plan to spend a whole lot of time trying to get Intels special DXVA mode working.
I'm not sure yet when i'll get to finish pure DXVA2 otherwise, or if i should release the current state before that. Time is running a bit thin right now.
Thunderbolt8
20th January 2012, 09:48
when I use lav video decoder with dvxa2 (test3 build), then my picture stays black, theres only sound and subtitles to be seen. as soon as I untick dxva2, its fine again. how come?
nevcairiel
20th January 2012, 11:30
when I use lav video decoder with dvxa2 (test3 build), then my picture stays black, theres only sound and subtitles to be seen. as soon as I untick dxva2, its fine again. how come?
Its possible that your card doesn't support that specific file.
Do other DXVA decoders work on that?
A MediaInfo of that file may be helpful.
My code doesn't do any card-specific compat checks right now, it only checks for general compatibility (so only high profile, etc).
With recent drivers, do ATI/AMD still need checks on older cards regarding level and ref-frames? Do i need to implement this?
goldie
20th January 2012, 11:38
I have do some test with LAV Filter test3 build on my laptop.
LAV Filters - None (software) mode
301 .. 313 fps
http://i.imgur.com/R9u3C.png
LAV Filters - Intel QuickSync mode
231 .. 233 fps
http://i.imgur.com/WGJPI.png
LAV Filters - DXVA (copy-back) mode
123 .. 124 fps
http://i.imgur.com/QtN7l.png
The software mode on my laptop is fastest but it made the fan too loud, so I prefer the hardware acceleration mode.
And I'm very interesting that DXVA is slower than Intel QuickSync, thanks for nev and egurs' great work. :)
But the Intel QuickSync on my laptop has problem that decoded frames are out of order, result in unusable.
It may can be fixed by update graphic driver (I saw some dicussions about this problem in previous threads here), but I have to wait for laptop manufacture release since latest Intel official driver said it could not be installed please intall the one from manufacture instead; consequently, I now have to stick at DXVA mode for usually video playback. :(
System info:
Chipsset: Intel HM67
CPU spec: Intel Core i7-2640M 4MB-L3cache 2.8GHz (Turbo 3.5GHz)
GPU spec: Intel HD 3000
GPU driver version: 8.15.10.2418
Memory info: Dual-channel DDR3-1333 8GB
nevcairiel
20th January 2012, 11:57
120 fps is still fast enough to play any current content, so don't sweat it. :p
NikosD
20th January 2012, 12:05
With recent drivers, do ATI/AMD still need checks on older cards regarding level and ref-frames? Do i need to implement this?
HD 5000 series and above can play everything, in general, you don't need to implement any checks for ReF or Level.
HD 3000 series and below, can't play anything beyond BluRay spec, last time I tested.
HD 4000 series, most of them use UVD2.2 like HD 5000 and a few use UVD2.0, but the "hardware/drivers" should be able to play everything or almost everything.
ATI says that UVD2.2 inside HD 4000 series is a little different than UVD2.2 inside HD 5000 series, but who really knows.
Don't waste your time with those kind of checks.
when I use lav video decoder with dvxa2 (test3 build), then my picture stays black, theres only sound and subtitles to be seen. as soon as I untick dxva2, its fine again. how come?
Can you upload somewhere the sample in order to test it with my 5750 ?
chewi
20th January 2012, 13:27
Hello!
Great thanks to the authors for LAV Filters. If you allow, I have a suggestion/wish: the possibility of simultaneous playback of two subtitle' streams (sewn in mkv) by LAV-splitter. My family and me usually watch foreign films without the voice translation - using the original track and translated subtitles (it really helps in learning foreign language). But often, when the voice translation is not very good or not very clear pronunciation — really need to be able to display simultaneously 2 subs (translated and original).
Is it possible to add this functionality to LAV splitter?
Thanks in advance.
nevcairiel
20th January 2012, 13:50
That wouldn't be all that useful, they would show in the same spot and overlap each other.
CruNcher
20th January 2012, 14:36
I could use some advise concerning playback from raw .264/h264/x264 streams. Please give me good tip guys.
This is wat I have : playback from raw h264 streams using Lav-filter + lav video gives me a black screen in MPC-HC.
(File async, lav-spiltter, lav-audio and lav-video as "prefered", all internal stuff disabled)
I also created a graph in Graphstudio like :
asyn file -> lav-splitter-> lav-video -> EVR. Very simple and should work, but it doesn't, again the same black screen.
The info about the source (fps, higth, width, ratio,..) is properly passed from the source -> lav-splitter -> lav video -> evr.
Oh, I have enabled "raw video" in the lavsplitter tab after the lavfilter installation, not during installation.
I'm starting pulling out my hair because every time I create a raw .x264, I want to have a look at it before I start muxing the rest, and I bump against this issue.
If I put a .x264 that gives only a black screen in a container (MKV, MP4, whatever) it plays normal ! So the stream itself is OK, I guess.
If I replace lav-splitter with for ex. AVsplitter, Sonic HD demuxer or any other capable splitter, everything plays fine (still using Lav-video !).
The problem I have seems somehow related to Lav-spliiter, maybe in combination with something else.
All Lav-filters have their original merit (80000, 80004) and no other filter has a higher merrit in Dshow. (others or all below lav-video/audio).
How can it be that a raw x264 file does not play, but as soon as I put it in a container (which doesn't matter, mkv, mp4,..are all ok) it plays perfect !
It seems that something (filter with a lower merit) is highjacking all extensions for raw x264 files....
Your advise please.
System : Lav-filters 0.44, MPC-HC v3970, Nvidia gtx-570, Intel 970 @ 3.6 , Win 7 prof x64 (all updates).
yep same here lot of bitstreams are just black those work with Av Splitter, so the only solution so far would be combining Lav and AV splitter by managing it the way that Lav Splitter doesn't handle raw and Av Splitter only handles raw, so you go in Av Splitter in the advanced options disable everything except rawvideo and for Lav Splitter you disable rawvideo (which by default should be disabled anyways) voila ;)
chewi
20th January 2012, 15:42
That wouldn't be all that useful, they would show in the same spot and overlap each other.
Why only "in the same spot"? One sub - at the top, another - at the bottom of the screen; this way I mean.
ajp_anton
20th January 2012, 16:19
HD 3000 series and below, can't play anything beyond BluRay spec, last time I tested.I've played 16-ref 1080p with DXVA (MPC-HC) on my integrated HD3300.
NikosD
20th January 2012, 16:49
Drivers ?
OS ?
I have a lot of 16 ReF H.264 1080p files and a 3650 I could try.
wanezhiling
20th January 2012, 16:50
Drivers ?
OS ?
I have a lot of 16 ReF H.264 1080p files and a 3650 I could try.
http://forum.doom9.org/showthread.php?t=163652
Try to set DXVA to "skip all checks" in MPC
NikosD
20th January 2012, 17:06
No, we aren't talking about HD 4000 series.
We are talking about HD 3000 series.
It's UVD2.x vs UVD+.
wanezhiling
20th January 2012, 17:23
I mean maybe you can try this way on your HD3650.:)
HeadlessCow
20th January 2012, 17:27
Why only "in the same spot"? One sub - at the top, another - at the bottom of the screen; this way I mean.
Because subtitles contain positioning.
nevcairiel
20th January 2012, 17:28
Because subtitles contain positioning.
Exactly, i cannot control the positioning of the subtitles.
Paladin77
20th January 2012, 17:30
I mean maybe you can try this way on your HD3650.:)
I am interested to know as well as DXVA2 copyback shows available but is unusable and painfully slow on the 3430 system. slow copy back I guess
NikosD
20th January 2012, 17:53
I've played 16-ref 1080p with DXVA (MPC-HC) on my integrated HD3300.
I am interested to know as well as DXVA2 copyback shows available but is unusable and painfully slow on the 3430 system. slow copy back I guess
I mean maybe you can try this way on your HD3650.:)
I have done a lot of tests with Windows Xp - Catalyst 11.2 - Radeon 3650, you can find here. (http://forum.doom9.org/showthread.php?t=159486) Look at the second system results.
That's why I asked ajp_anton about drivers version and OS.
Maybe after almost a year of my last try with 3650, I could try again under Win 7 system with latest Catalysts 11.12
Thunderbolt8
20th January 2012, 18:36
Its possible that your card doesn't support that specific file.
Do other DXVA decoders work on that?
A MediaInfo of that file may be helpful.
My code doesn't do any card-specific compat checks right now, it only checks for general compatibility (so only high profile, etc).
With recent drivers, do ATI/AMD still need checks on older cards regarding level and ref-frames? Do i need to implement this?I tested one AVC and a VC-1 file, it was the same in both cases.
still using ATI drivers 11.5, dunno whether its recommend to update with my rather old card or which version is supposed to be best for the 4770
STaRGaZeR
20th January 2012, 18:40
I am interested to know as well as DXVA2 copyback shows available but is unusable and painfully slow on the 3430 system. slow copy back I guess
Expected behavior, its Merom core doesn't support SSE 4.1. Maybe it's a good idea to change copy back as not available on CPUs older than Penryn, since it'll be painfully slow otherwise.
I wonder about the speed on AMD CPUs. But since SSE 4.1 is only available on Bulldozer, I think I already know the answer :rolleyes:
nevcairiel
20th January 2012, 18:51
On my Sandy Bridge, i didn't really see any big differences between a default memcpy and the sse4 copy function, but i guess it all depends on the CPU/GPU combination.
I'll do the pure dxva at some point in the future. I will however mmost likely release one new version before then
mindbomb
20th January 2012, 19:34
on my amd e350, i couldn't use motion adaptive deinterlacing with 1080i30 video with dxva copyback.
with pure dxva, i could, but all the dxva decoders i have used thus far are terrible, so it is a small price to pay to use just regular adaptive deinterlacing.
Pillars of Creation
20th January 2012, 20:32
I've got a question regarding LAV splitter:
General
Format : Matroska
Format version : Version 2
File size : 2.29 GiB
Duration : 54mn 50s
Overall bit rate : 5 980 Kbps
Encoded date : UTC 2012-01-19 18:23:05
Writing application : mkvmerge v5.1.0 ('And so it goes') built on Nov 28 2011 23:58:28
Writing library : libebml v1.2.3 + libmatroska v1.3.0
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 5 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 54mn 50s
Bit rate : 5 120 Kbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate : 25.000 fps
Original frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.222
Stream size : 2.00 GiB (87%)
Writing library : x264 core 68 r1195 5d75a9b
Encoding settings : cabac=1 / ref=5 / deblock=1:0:0 / analyse=0x3:0x133 / me=umh / subme=7 / psy_rd=1.0:0.0 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / chroma_qp_offset=-2 / threads=12 / nr=0 / decimate=1 / mbaff=0 / bframes=3 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=1 / wpredb=1 / keyint=250 / keyint_min=25 / scenecut=40 / rc=2pass / bitrate=5120 / ratetol=1.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / pb_ratio=1.30 / aq=1:1.00
Default : Yes
Forced : No
Audio #1
ID : 2
Format : AC-3
Format/Info : Audio Coding 3
Mode extension : CM (complete main)
Codec ID : A_AC3
Duration : 54mn 50s
Bit rate mode : Constant
Bit rate : 192 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Compression mode : Lossy
Stream size : 75.3 MiB (3%)
Language : German
Default : Yes
Forced : No
Audio #2
ID : 3
Format : AC-3
Format/Info : Audio Coding 3
Mode extension : CM (complete main)
Codec ID : A_AC3
Duration : 54mn 50s
Bit rate mode : Constant
Bit rate : 448 Kbps
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Compression mode : Lossy
Stream size : 176 MiB (7%)
Language : English
Default : No
Forced : No
Which frame rate gets transported to the decoder?
Frame rate : 25.000 fps
or
Original frame rate : 23.976 fps
Splitter displays 23.976 but 25 fps is correct...
nevcairiel
20th January 2012, 20:42
The frame rate is never guaranteed to be accurate.
Usually it would take the container frame rate, however Matroska does not have a container frame rate, so it trys other sources, probably the H264 timing info in its headers.
The frame rate value reported is meaningless, how fast the video is played is defined by its timestamps, and nothing else.
Andy o
20th January 2012, 20:57
So I got around to testing DXVA2 copy back (with your "test3" build posted a few pages back), and it's working fine apparently for VC-1 and H.264, but is it supposed to be working yet for MPEG-2, specifically 1080i in wtv container? It's not getting enabled here.
Pillars of Creation
20th January 2012, 21:03
The frame rate is never guaranteed to be accurate.
Usually it would take the container frame rate, however Matroska does not have a container frame rate, so it trys other sources, probably the H264 timing info in its headers.
The frame rate value reported is meaningless, how fast the video is played is defined by its timestamps, and nothing else.
Thanks for your fast respond.
Nevertheless with lav splitter the video file is played with 23.97x fps and droppes frames and jiggles
Without lav splitter (using standard mpc-hc splitter) the same video file is played with 25 fps and without jiggles. vlc (internal splitter) also plays the video file smooth (displays also 25 fps).
What am I doing wrong? :(
nevcairiel
20th January 2012, 21:11
So I got around to testing DXVA2 copy back (with your "test3" build posted a few pages back), and it's working fine apparently for VC-1 and H.264, but is it supposed to be working yet for MPEG-2, specifically 1080i in wtv container? It's not getting enabled here.
If you're running on your 5770 from your signature, then no. Only 6xxx and above have an enabled MPEG2 decoder, afaik.
The 5000 cards were advertised to have it, but apparently it never worked.
What am I doing wrong? :(
If you're running a refresh rate switcher, it might get it wrong if it only relys on that information. Its not reliable, it never was and never will be (specifically if the container has no fps field)
Andy o
20th January 2012, 21:16
Ah, thanks never knew that about mpeg 2.
Pillars of Creation
20th January 2012, 21:20
If you're running a refresh rate switcher, it might get it wrong if it only relys on that information. Its not reliable, it never was and never will be.
Yes you are right. I usually use madVR to switch my refresh rate. I tried mpc-hc (latest beta) refresh rate switcher but got the same problem.
Thanks for your help.
nevcairiel
20th January 2012, 21:24
With madVR, you can override the choosen refresh rate by putting a refresh rate token into the filename, like "filename.25p.mkv"
wanezhiling
20th January 2012, 21:28
5xxx is still MPEG2_IDCT...
Only UVD3.0 and above support MPEG2_VLD just like Nvidia VP3/4/5.:rolleyes:
Pillars of Creation
20th January 2012, 21:38
With madVR, you can override the choosen refresh rate by putting a refresh rate token into the filename, like "filename.25p.mkv"
Thank you again, it works.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.