Log in

View Full Version : ffdshow tryouts project: Discussion & Development


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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 [269] 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308

Kaotech
16th April 2011, 23:40
i've a bug with ffdshow audio processor.

i'm using Arcsoft audio decoder HD and ffdshow audio processor for bass mangement, Delay and volume. If i check "enable jitter correction", the audio track HD play fine, but when i change audio track during playback, the BluRay stop to play. If i uncheck "enable jitter correction, i haven't sound but i can change track without the video stop to play.

http://cinetips.com/images/smilies/icon_doute.gif

JEEB
17th April 2011, 01:08
As I didn't see any comments on this on this thread and as I saw nothing relating to this in the svn log, here I go.

I have no idea of your geopolitical location on the whole ffmpeg/libav ordeal, but michael seems to have merged(* (http://git.videolan.org/?p=ffmpeg.git;a=search;s=Oskar+Arvidsson;st=author)) irock's high bit depth (9-10bit) H.264 decoder(* (https://github.com/irock/FFmpeg/)).

Thus, as an advocate of 10bit H.264 usage, I have to tell you that you can hereby feel yourself being poked (as at least one of the major trees merged it).

Of course, just like H.264 -mt, high bit depth doesn't at the moment pass all of its FATE tests, which is why it's still being in the 'working on' phase on the libav side, currently in line after -mt for the related developers. But not like we haven't used -mt for a few years already ;) . Thus, I felt like a poke was more than a bit adequate.

Blight
17th April 2011, 11:52
Hi Everyone,
My brother works at Intel and took upon himself the task of adding support for SandyBridge (I7-2500K/I7-2600K series) non DXVA based hardware acceleration for H.264/MPEG2/VC-1 as well as hardware deinterlacing to FFDShow as an alternative option to LibAVCodec/ffmpeg-mt.

These CPUs will be filling the marketplace over the next few years and will enable cheap HTPC systems and lower battery use in mobile devices.

What he needs is your help in pointing out which ffdshow source code files he should access in order to integrate this support.
If anyone can help, please contact me.

CruNcher
17th April 2011, 16:12
Yeah though all these just supports Vista/7 (officially) not like other still support Nvidia/AMD(ATI) XP so 0 backward compatibility if you have such a system you are forced to Vista/7 to use the Media Capabilities, also one guy from Intel worked already closely with the MPC-HC team to implement support for the older GPUs not sure though if he still does for the newer HD2000/3000 inside Sandy Bridge, maybe that was also your brother ;)
Also you shouldn't call it Hardware acceleration its like Nvidia VPx and AMD UVD Hardware Decoding (fixed function)

Ger
17th April 2011, 22:28
@Ger - thanks!

fyi I believe everything is checked EXCEPT NV12 in this case...
Makes sense then. YV12 rejected by EVR and NV12 unchecked means RGB32 is next.


I am using EVR. Maybe I never noticed this propensity to select RGB32 in favour of YV12 with this setup in the past...
However, like I said, there is (at least) one 1280x720 (progressive video) file which DOES render with YV12 with this setup, hence my confusion...

Feel free to PM a sample link if you can. I can't tell you why it would happen, but I'm just curious to see if I can reproduce it.

perhaps there is some other aspect of the video attributes that EVR is considering?? Does the DISPLAY play any part in the negotiation? ATI drivers work in mysterious ways, or to put it another way, I don't know. ;)

Lastly, if RGB32 is the chosen output color space, doesn't that mean that an extra processor usage burden now exists since ffdshow has to perform the YV12 (input) to RGB32 (output) conversion in software?
I just tested and didn't see a noticeable difference on my 5 year old C2D, so I don't think that is something to worry about.

Snowknight26
18th April 2011, 01:04
Will fix that.

Fixed indeed, thanks.

clsid
18th April 2011, 13:28
Hi Everyone,
My brother works at Intel and took upon himself the task of adding support for SandyBridge (I7-2500K/I7-2600K series) non DXVA based hardware acceleration for H.264/MPEG2/VC-1 as well as hardware deinterlacing to FFDShow as an alternative option to LibAVCodec/ffmpeg-mt.

These CPUs will be filling the marketplace over the next few years and will enable cheap HTPC systems and lower battery use in mobile devices.

What he needs is your help in pointing out which ffdshow source code files he should access in order to integrate this support.
If anyone can help, please contact me.
With non-DXVA I assume it works similar to NVIDIA's CUVID (cuda) decoder? Thus allowing copying decoded data back to CPU memory?

Most relevant code is in /src/codecs/. The libmpeg2 or xvid4 files are probably a good starting point as an example.

Kaotech
19th April 2011, 18:51
i've a bug with ffdshow audio processor.

i'm using Arcsoft audio decoder HD and ffdshow audio processor for bass mangement, Delay and volume. If i check "enable jitter correction", the audio track HD play fine, but when i change audio track during playback, the BluRay stop to play. If i uncheck "enable jitter correction, i haven't sound but i can change track without the video stop to play.

http://cinetips.com/images/smilies/icon_doute.gif

Nobody knows the reason ?

Blight
19th April 2011, 23:58
clsid:
Yes, it should work similar to the 'NVIDIA's CUVID (cuda) decoder'.
The Intel hardware is capable of a good hardware deinterlacer and a lanczos 8-tap adaptive scaler, which may be interesting in low-end HTPC implementations.

CruNcher
20th April 2011, 00:35
clsid:
Yes, it should work similar to the 'NVIDIA's CUVID (cuda) decoder'.
The Intel hardware is capable of a good hardware deinterlacer and a lanczos 8-tap adaptive scaler, which may be interesting in low-end HTPC implementations.

Do you know of any indepth compares vs AMD/ATI and Nvidias Vector Adaptive Deinterlacing ?

hoborg
20th April 2011, 06:52
clsid:
Yes, it should work similar to the 'NVIDIA's CUVID (cuda) decoder'.
The Intel hardware is capable of a good hardware deinterlacer and a lanczos 8-tap adaptive scaler, which may be interesting in low-end HTPC implementations.

Hi.
Sound good, but I7-2500K/I7-2600K? Such powerfull CPU doesnot seems to be ideal for HTPC. i3-2100T should be the one :)

nevcairiel
20th April 2011, 07:00
There will be a i3-2105 "soon" which comes with the more powerful HD3000 iGPU, which might be worth getting if you want to go that route. I would however still miss madVR, and for that even the HD3000 is not fast enough.

ericgur
21st April 2011, 08:49
With non-DXVA I assume it works similar to NVIDIA's CUVID (cuda) decoder? Thus allowing copying decoded data back to CPU memory?

The 2000/3000 GPUs use dedicated HW (ASIC) for encoding/decoding and most of the video pre/post processing. So it's not using the cores for any significant work. It uses very little power and has a high throughput (should be ~5 real time HD streams) but this comes at the expense of programmability. Unlike previous generations of GPUs, this one (and future GPUs) shares the CPU's L3 cache and ring bus and both CPU cores and GPU cores use the same integrated memory controller. So there's no PCIe traffic when sending/receiving data to the GPU. Both the 2000 and the 3000 have the same video related HW with a different core count. Since the GPU cores aren't too busy with decoding and post processing, a modified ffdshow should work (perform decoding+deinterlacing)

Singularity
21st April 2011, 16:03
Hi,

I'm starting to think I may have found a bug with 25fps h264 in MP4s. Whenever one is played in either WMP11 or Tversity, ffdshow.ax produces a crash in the program. The same audio and video remuxed into an mkv is fine however.

I've tried a couple of different versions of MP4Splitter to make sure it wasn't that (it used to work fine, but I seem to remember an update for WMP11?), the only solution appears to be to use the beta7 version of ffdshow-tryouts from sourceforge. Both ffdshow_rev3356_20100411_clsid_icl10 and ffdshow_rev3721_20110107_clsid_icl10 produce the error.

My OS is XP SP3, any ideas?

Thanks
Singularity

clsid
21st April 2011, 17:15
Can you upload a sample file?

Please also try builds in between beta7 (=r3154) and r3356 to narrow it down further.

CruNcher
22nd April 2011, 05:10
The 2000/3000 GPUs use dedicated HW (ASIC) for encoding/decoding and most of the video pre/post processing. So it's not using the cores for any significant work. It uses very little power and has a high throughput (should be ~5 real time HD streams) but this comes at the expense of programmability. Unlike previous generations of GPUs, this one (and future GPUs) shares the CPU's L3 cache and ring bus and both CPU cores and GPU cores use the same integrated memory controller. So there's no PCIe traffic when sending/receiving data to the GPU. Both the 2000 and the 3000 have the same video related HW with a different core count. Since the GPU cores aren't too busy with decoding and post processing, a modified ffdshow should work (perform decoding+deinterlacing)

At least how i understand it the EUs (comparable term Shader) are where the load of the Post Pro goes too so here would the HD2000/3000 difference set in (Performance). The Same for other tasks such as 3D Rendering, Raytracing or Compute. The major difference is as you said the SOC approach away from the PCI-E which eliminates the whole transfer problem bottleneck.

Gleb Egorych
22nd April 2011, 09:28
Small bug: if libavcodec is choosed as MP2 decoder than in same cases it detects MP2 as MP3. Circumstance: DVB TS, Haali or LAV splitter. With MPC-HC splitter MP2 is detected correctly. ffdshow b3825.

ericgur
22nd April 2011, 20:33
At least how i understand it the EUs (comparable term Shader) are where the load of the Post Pro goes too so here would the HD2000/3000 difference set in (Performance). The Same for other tasks such as 3D Rendering, Raytracing or Compute. The major difference is as you said the SOC approach away from the PCI-E which eliminates the whole transfer problem bottleneck.

The EUs (execution units == cores) can be used for a variety of computing tasks, video processing is one of them. But in order to gain performance and save power, fixed function units are used to perform various tasks (decode, encode, sample, various video processing, transform and lighting, etc). The price for these fixed functions are silicon area and loss of generality. A good example is Lanczos4 scaling. The 3000 is borderline strong on doing it in shader code (MadVR) for (or to) full HD, but the dedicated HW should scale 4-5 (to/from) full HD streams simultaneously with very low EU utilization (they can do other things). The power it takes to use the dedicated HW scalers is very low (close to zero) and it allows the GPU to enter a lower power state faster (because the task finishes faster), saving even more power.

CruNcher
23rd April 2011, 01:06
Hmm so Deinterlacing and Scaling on HD2000/3000 are available also as Fixed function via Media SDK 2.0 ? did you looked @ the Quality of the Hardware implementation yet is it up to Nvidia/AMD(ATI) Quality, what about FRC ?. Seeing that they beat at least AMD(ATI) (about Nvidia im not so sure, i don't trust reviews here as most of them are application limited) in Encoding i guess they could have not so bad algos either for the PP :) Having those optional then available inside ffdshow would be a blast indeed especially combined with GPU Decode when possible, though Vista/7 would be a requirement for those then :)

ericgur
23rd April 2011, 09:06
Hmm so Deinterlacing and Scaling on HD2000/3000 are available also as Fixed function via Media SDK 2.0 ? did you looked @ the Quality of the Hardware implementation yet is it up to Nvidia/AMD(ATI) Quality, what about FRC ?. Seeing that they beat at least AMD(ATI) (about Nvidia im not so sure, i don't trust reviews here as most of them are application limited) in Encoding i guess they could have not so bad algos either for the PP :) Having those optional then available inside ffdshow would be a blast indeed especially combined with GPU Decode when possible, though Vista/7 would be a requirement for those then :)

The deinterlacer quality was much better than Nvidia/AMD last year, not sure about current generation. Decode and encode performance and quality were reviewed by Anandtech and were very good (Nvidia encode wasn't that good). I don't think FRC is done in dedicated HW, probably done in SW/shader. I'm not familiar with that. The other PP algorithms like denoise and sharpen were better quality than Nvidia/AMD last year as well (both fixed function). I don't have current quality comparisons. Unfortunately there isn't as very good benchmark for video quality. Only HQV 1 & 2 exist and they put a lot of weight on uncommon film cadences and very little on scaling and deinterlacing which are critical to image quality. HQV also makes a video processor and these tests show how good their (expensive) HW is…
The media SDK uses HW if it exists, there's a new version (3.0 beta) available which abstracts the memory surfaces for easier programming (didn't get to that yet).
OS support is Vista and up due to the different (and much better) driver model introduced in Vista. On a side note, XP drivers are harder to write and maintain as they are almost 100% in kernel mode (no visual studio for you ) while vista/7 drivers are almost 100% user mode. Anyway, do we still need XP these days on new computers? Windows 8 is out next year…

madshi
23rd April 2011, 09:32
The deinterlacer quality was much better than Nvidia/AMD last year, not sure about current generation.
Were you comparing to NVidia/AMD integrated solutions or to NVidia/AMD middle/high end dedicated solutions? Of course comparing to NVidia/AMD integrated solutions would be the fair thing to do, but it's still important to know what you compared to, because IIRC only the middle/high end dedicated solutions from NVidia/AMD do some kind of motion compensated deinterlacing, which seems to be of pretty high quality. Does Sandy Bridge also do motion compensated deinterlacing? That would be kinda surprising to me cause I think you'd probably need quite high memory bandwidth for that and integrated solutions can't compete with dedicated GDDR5 GPUs with wide bus widths, I'd expect? What deinterlacing technology does Sandy Bridge use (if you can comment on that)?

A technical question just for my interest: How does Intel count scaling taps? E.g. for Lanczos4 upscaling, does that mean 4 pixels input for 1 pixel output when scaling in one dimension? Or does it mean 8 pixels input for 1 pixel output? FWIW, madVR counts 4 taps upscaling = 8 pixels input. Basically madVR understands taps as max pixel distance.

Thanks! :)

CruNcher
23rd April 2011, 12:14
The deinterlacer quality was much better than Nvidia/AMD last year, not sure about current generation. Decode and encode performance and quality were reviewed by Anandtech and were very good (Nvidia encode wasn't that good). I don't think FRC is done in dedicated HW, probably done in SW/shader. I'm not familiar with that. The other PP algorithms like denoise and sharpen were better quality than Nvidia/AMD last year as well (both fixed function). I don't have current quality comparisons. Unfortunately there isn't as very good benchmark for video quality. Only HQV 1 & 2 exist and they put a lot of weight on uncommon film cadences and very little on scaling and deinterlacing which are critical to image quality. HQV also makes a video processor and these tests show how good their (expensive) HW is…
The media SDK uses HW if it exists, there's a new version (3.0 beta) available which abstracts the memory surfaces for easier programming (didn't get to that yet).
OS support is Vista and up due to the different (and much better) driver model introduced in Vista. On a side note, XP drivers are harder to write and maintain as they are almost 100% in kernel mode (no visual studio for you ) while vista/7 drivers are almost 100% user mode. Anyway, do we still need XP these days on new computers? Windows 8 is out next year…



I hope someday finally this Annandtech failure gets corrected so i do it again they didn't test Nvidias Encoder Quality they compared with Arcsofts Encoder and they use their own modified x264 with GPU support and bugs inside Mediaconverter 7 ;)
Also Toms Hardware Guide comparision was in that regard much better, still some issues as it's running also in the enclosed ISV frameworks but much better then Annandtechs also from the fact that the Reviewer released all the Final Encode samples if oyu interested http://forum.doom9.org/showpost.php?p=1477694&postcount=88 there is no comparision here yet to Nvidias Encoder :)

nevcairiel
23rd April 2011, 12:33
Quality-wise, no hardware encoder will ever beat x264. Its just a question of quality vs speed.

CruNcher
23rd April 2011, 12:40
Correct but Quicksync seems to be @ least able to stay on course with x264 @ its fastest setting and mabye even in the Range of subme 2 (@ much faster speed and lower power consumption compared to a SB itself using x264) (Nvidia pretty much dies @ subme 1 vs x264 with its Diamond Search).

OS support is Vista and up due to the different (and much better) driver model introduced in Vista. On a side note, XP drivers are harder to write and maintain as they are almost 100% in kernel mode (no visual studio for you ) while vista/7 drivers are almost 100% user mode. Anyway, do we still need XP these days on new computers? Windows 8 is out next year…

Also surely the reason why Intel isn't investing into XP anymore is clear not because Win XP runs out officially or because it would be harder to maintain (Nvidia and AMD also do it) that's partly a reason but the main reason is to transfer as fast as possible many users to Vista/7 with SB so they become potential customer of their Hollywood approved fast release Distribution chain utilizing their Hardware AES and the Protected Audio Video Path (PAVP) ;) As under Windows XP you can't assure the protection so low that Hollywood denied it and Vista/7 is the only OS where Microsoft and others invested a lot of time Kernel wise as you said to make sure the Dataflow is all the time not capture able or breakable (especially when additionally using a secured Hardware flow as PAVP) though with the HDCP master key out it seems rather odd to speak about "Protected" anymore, so all the investment here for 0 the whole chain collapsed with the master key leak ;)

Didée
23rd April 2011, 21:39
... because IIRC only the middle/high end dedicated solutions from NVidia/AMD do some kind of motion compensated deinterlacing, which seems to be of pretty high quality. Does Sandy Bridge also do motion compensated deinterlacing?
Can't give proof, but I strongly doubt that they use any kind of active motion compensation. The naming is "vector adaptive", which I'd rather see in relation to "motion adaptive". (Motion adaptive analyses image data for significant change. If present, the deinterlacer kicks in. In the same spirit, I think that vector adaptive simply uses vector length data to decide where to deinterlace and where not.)

Or the other way round: if there would be any kind of active motion compensation, then the PR department would tout that in much boulder letters. ;)

madshi
23rd April 2011, 21:48
Can't give proof, but I strongly doubt that they use any kind of active motion compensation. The naming is "vector adaptive", which I'd rather see in relation to "motion adaptive". (Motion adaptive analyses image data for significant change. If present, the deinterlacer kicks in. In the same spirit, I think that vector adaptive simply uses vector length data to decide where to deinterlace and where not.)

Or the other way round: if there would be any kind of active motion compensation, then the PR department would tout that in much boulder letters. ;)
I originally doubted motion compensated deinterlacing very much, too. But if you look at the cheese slice test results, I can't really see how the results would be possible without at least a simple form of motion compensation. See here:

http://www.avsforum.com/avs-vb/showthread.php?t=1157287

ericgur
23rd April 2011, 21:56
Does Sandy Bridge also do motion compensated deinterlacing? That would be kinda surprising to me cause I think you'd probably need quite high memory bandwidth for that and integrated solutions can't compete with dedicated GDDR5 GPUs with wide bus widths, I'd expect? What deinterlacing technology does Sandy Bridge use (if you can comment on that)?

I can't comment on it. BTW, the HW encoder uses motion estimation so memory bandwidth isn't an issue...
Another thing, I've worked on deinterlacing a few years ago and it was very hard to find content that actually shows significant improvement when using motion compensation. The interlaced video suffers from severe aliasing because no vertical low-pass filter is performed prior to interlacing in order to keep the vertical resolution in still images (guessing). The aliasing makes the MC DI very hard to implement and rarely works properly as images move in sub pixels distances.

A technical question just for my interest: How does Intel count scaling taps? E.g. for Lanczos4 upscaling, does that mean 4 pixels input for 1 pixel output when scaling in one dimension? Or does it mean 8 pixels input for 1 pixel output? FWIW, madVR counts 4 taps upscaling = 8 pixels input. Basically madVR understands taps as max pixel distance.

Lanczos4 is a lowpass function like all classic scalers that uses 8 consecutive pixels as input (either horizontal or vertical) for both upscaling and downscaling. In downscaling the function is modified depending on the scale factor. For upscaling it's always the same coefficients no matter how much scaling is done. If someone is interested, I can explain the signal processing theory behind this.

madshi
23rd April 2011, 22:10
Another thing, I've worked on deinterlacing a few years ago and it was very hard to find content that actually shows significant improvement when using motion compensation.
Soccer might be a good test candidate.

The interlaced video suffers from severe aliasing because no vertical low-pass filter is performed prior to interlacing
Really? I thought it was common practise to apply vertical filtering!

Lanczos4 is a lowpass function like all classic scalers that uses 8 consecutive pixels as input (either horizontal or vertical) for both upscaling and downscaling. In downscaling the function is modified depending on the scale factor. For upscaling it's always the same coefficients no matter how much scaling is done. If someone is interested, I can explain the signal processing theory behind this.
Nah, thanks, I know the theory and practise. Just wanted to double check whether we're on the same page with counting taps, since companies like HQV etc sometimes don't use the scientific way of counting things, but rather the marketing way. Good to hear you're sticking to science.

ericgur
23rd April 2011, 22:12
Were you comparing to NVidia/AMD integrated solutions or to NVidia/AMD middle/high end dedicated solutions?

The quality was always compared to the strongest card. AMD and Nvidia, both have fixed functions that are the same across models.
Another thing is that vector adaptive deinterlacing is a meaningless marketing name and doesn't imply motion compensation. It MIGHT mean that vectors/blocks of pixels are evaluated as a block like motion estimation in an encoder works (which is pretty bad for DI). The thing is that when an encoder finds the wrong motion vector, you pay in bits, the file will get bigger because there's error correction. In DI you'll get severe artifacts.

nevcairiel
23rd April 2011, 22:22
The deinterlacing is not done in the decoder core, at least on NVIDIA. I see obvious performance differences when deinterlacing between my GTX570 and my GTS450 (both a VP4 decoder). I've also seen references to the processing pipeline in chats between developers and NVIDIA techs, where they put all post-processing in the 3D engine, not in the decoder.

I also haven't found a video where the deinterlacing looks bad, it always looks really good - no artifacts, perfect smooth movement, even on hard scenes like diagonal lines, where you need something like vector adaptive deinterlacing for them to look good. See the chese slices test pattern (http://www.avsforum.com/avs-vb/showthread.php?t=1157287), which was originally designed to detect which deinterlacing algorithm is currently active on ATI cards - which shows obvious differences between vector adaptive, motion adaptive and bob/weave.

madshi
23rd April 2011, 22:23
Another thing is that vector adaptive deinterlacing is a meaningless marketing name and doesn't imply motion compensation. It MIGHT mean that vectors/blocks of pixels are evaluated as a block like motion estimation in an encoder works (which is pretty bad for DI). The thing is that when an encoder finds the wrong motion vector, you pay in bits, the file will get bigger because there's error correction. In DI you'll get severe artifacts.
Yeah, I fully agree. Still, the cheese slice test results with the recent generations of AMD and NVidia cards look very very good to me. Too good for simple "motion adaptive deinterlacing with edge diagonal processing à la DCDi", IMHO.

ericgur
24th April 2011, 08:05
Yeah, I fully agree. Still, the cheese slice test results with the recent generations of AMD and NVidia cards look very very good to me. Too good for simple "motion adaptive deinterlacing with edge diagonal processing à la DCDi", IMHO.

The MA DI as shown by the avsforum link (ATI) doesn't do DCDi (interpolation using edge direction) at all, it interpolates the missing moving pixel by a simple vertical interpolation. Then again, this is a synthetic clip that moves objects at integer distances. In real world video the objects can moves 2.3 pixels so this clip is useless because if your MC DI is tuned to this sort of clips they'll probably fail when movement isn't an integer. On many real world clips, the movement isn't just translation (x,y motion vector), it's a more complex affine (x,y,zoom,rotate) or even a full blown perspective transform. In most sports (basketball, football) the players movement is mostly affine, the court/field/distant audience is mostly translation. Affine motion vectors are very costly to calculate and I'm not aware of anyway doing it in realtime.

Too bad we have to deal with deinterlacing in 2011. Interlaced video should have died with analog video...

madshi
24th April 2011, 08:33
The MA DI as shown by the avsforum link (ATI) doesn't do DCDi (interpolation using edge direction) at all, it interpolates the missing moving pixel by a simple vertical interpolation.
Yes, agreed.

Then again, this is a synthetic clip that moves objects at integer distances. In real world video the objects can moves 2.3 pixels so this clip is useless because if your MC DI is tuned to this sort of clips they'll probably fail when movement isn't an integer.
Well, I haven't really done any tests on GPU deinterlacing quality myself yet. So I don't really know for sure how well it works on real life content. It was just one heck of a surprise to me when seeing those synthetic clip results because they do appear to suggest that AMD/NVidia are doing some sort of motion compensation. I simply didn't expect that.

On many real world clips, the movement isn't just translation (x,y motion vector), it's a more complex affine (x,y,zoom,rotate) or even a full blown perspective transform. In most sports (basketball, football) the players movement is mostly affine, the court/field/distant audience is mostly translation. Affine motion vectors are very costly to calculate and I'm not aware of anyway doing it in realtime.
Yeah, I know. Add to that lighting variations when objects are moving/transforming and things become even more difficult. It seems Optical Flow algorithms have been improving quite nicely recently, though. Maybe there's hope for the future. There's already one Optical Flow CUDA implementation running in realtime. It's probably not artifact free enough yet, though. I think a good Optical Flow + Warp algorithm could be the ticket for motion compensated deinterlacing, especially it you track motion over several consecutive frames to make sure all detected motion vectors are sound. Sometime in the future...

Too bad we have to deal with deinterlacing in 2011. Interlaced video should have died with analog video...
Agreed, especially considering that compression efficiency is noticeably higher with progressive content. So the bandwidth cost of going progressive would probably be rather small.

But even if we make the transition to progressive now, there's still lots of old natively interlaced content out there. So the need for deinterlacing isn't likely to go away anytime soon.

Reimar
25th April 2011, 10:57
(Was about int vs. float output)
I don't know if/when I will have time, but I actually intended to change it to make it possible to select at runtime.
I just can't imagine that that should be hard to do, and it would be a lot more useful than just a configure option.

I finally sent patches for that to FFmpeg, hopefully we'll soon have this solved once and for all in FFmpeg.

madshi
25th April 2011, 11:48
Thanks! Justin has been active about this recently, too, btw (in libav, of course).

CruNcher
25th April 2011, 12:36
clsid, volt please add this subtype to the ffdshow audio decoder {AACE71A1-8259-4250-8583-49613AF31C93}

kc7bfi
25th April 2011, 21:18
I've downloaded the latest svn build for Windows 64bit machines. I can play h.264 video when I configure ffdshow to use libavcodec but I cannot play video when I select ffmpeg-mt. Is there something I need to do to enable windows to be able to play video using ffmpeg-mt?

Singularity
25th April 2011, 23:26
Hi again clsid,

Sorry for the delay, my Easter Holidays were spent lying down after I threw my back out.

Sample file:
http://www.megaupload.com/?d=KU5KJQVZ
Excuse the quality, but I resized it to what I usually use

The last official build (pre-compiled from sourceforge that is) that works is 3507 icl10, however, 3721 generic actually works. This makes no sense because it's the same code just compiled differently no? 3356 not working earlier was an error on my part, hopefully this whole bug isn't the same...

If you need a finer revision number than that I could grab the 30 day trial of the intel c compiler if you would like? This will however take me a bit to figure out.

Thanks
Singularity

clsid
26th April 2011, 19:26
I can reproduce the crash with a ICL10 build of the latest revision as well. Since the regular builds don't have this problem, I am not going to invest any time in trying to fix it. Try a recent ICL12 build to see if that also has the problem. I am switching to MSVC2010 and will probably stop making ICL10 builds.

J_Darnley
26th April 2011, 20:31
Apologies if this a repeated question. Do any builds have the new 10-bit H.264 decoder yet?

Nexin
27th April 2011, 17:07
Not been a big fan of ffdshow for many years, after been stung with early version upsetting the system. Never used the tryouts for same reason, though did find when it worked of use. However for past three months i have used ffdshow_tryouts. And for a while i didn't use it, selected ask me before ffdshow could be used as didn't need it.

Now i do need to use it again i'm having problems with it. Have since tried serveral versions and still no go. Have tried both generic or ICL varieties, neither install old version fixes it. Problem is any version of ffdshow doesn't seem to work any longer. And when it does, it doesn't fully work and crashes with xp crash popup saying ffdshow.ax as the fault.

I have tried with the setup with allow for any and all softwares to use ffdshow full access with no restrictions set. Even allowing unlimited uses, and still either nothing or same crashes. After i will uninstall and try another ffdshow version. I install another version with default setup accepted (with no changes) that includes 'clear old settings'. Gspot showing no codecs missing or any other problems.

Q. Is there some other settings that could be causing this or known softwares or other that can conflict ?


_

oddball
28th April 2011, 04:11
I've got a real issue with profiles and automatic preset loading. My problem is that some HDTV encodes start out with a DD2.0 stream during the intro then switch to DD5.1 which causes it to load a profile I have set for 2.0 stereo. However when it switches to DD5.1 it still stays on 2.0 stereo and I lose the voices in the center channel and surrounds etc obviously.

Is there any way to get ffdshow to detect channels during playback (and switching profiles automatically) rather than using the somewhat primitive method of loading only at startup? This is a real drag as I have to switch the profile manually. I've had to stop using ffdshow for 5.1 decoding because of this and forgo profiles and just use AC3Filter instead (Not my preferred method).

Mark_A_W
28th April 2011, 05:44
Can you edit the junk out of the streams? (VideoReDo is good.)

I'm surprised you have profile loading based on channel number working! I've tried and tried to get that to work - it just doesn't. However, I am using madFLAC as the decoder, and ffdshow as the processor, so maybe the fact that fddshow is not "decoding", rather getting 6 or 8 channels uncompressed, is screwing me.

hoborg
28th April 2011, 11:17
Hi.
Anbody here managing FFDshow DXVA decoder?
I found that this MKV (VC-1) sample (https://rapidshare.com/files/459398345/test.mkv) play extreme sturreting while plaback using FFDShow DXVA + LAVF .24 splitter/audio decoder.
Normal FFDshow wmv9 decoder (or PDVD11 decoder in DXVA mode) play it perfectly.

EDIT:
The problem doesn't happend with MPC-HC DXVA decoder, so must be FFDShow DXVA decoder issue.

oddball
28th April 2011, 20:20
I've given up on audio profiles. It's very hit or miss. For some reason when I decode with the internal decoder I get 2.1 output on a profile I setup on 5.1 inputs. But if I let AC3Filter do the decoding it correctly recognises 5.1 to 5.1. Bug?

Anyhow I have now found the DPLII decoding option for 2.0 sources which is what I was trying to do really and just output everything in 5.1 now. Thanks for adding that devs. I would however like to see a DPLII Music mode option. But it's not a big deal if it's not added.

Nexin
29th April 2011, 09:11
Not been a big fan of ffdshow for many years, after been stung with early version upsetting the system. Never used the tryouts for same reason, though did find when it worked of use. However for past three months i have used ffdshow_tryouts. And for a while i didn't use it, selected ask me before ffdshow could be used as didn't need it.

Now i do need to use it again i'm having problems with it. Have since tried serveral versions and still no go. Have tried both generic or ICL varieties, neither install old version fixes it. Problem is any version of ffdshow doesn't seem to work any longer. And when it does, it doesn't fully work and crashes with xp crash popup saying ffdshow.ax as the fault.

I have tried with the setup with allow for any and all softwares to use ffdshow full access with no restrictions set. Even allowing unlimited uses, and still either nothing or same crashes. After i will uninstall and try another ffdshow version. I install another version with default setup accepted (with no changes) that includes 'clear old settings'. Gspot showing no codecs missing or any other problems.

Q. Is there some other settings that could be causing this or known softwares or other that can conflict ?


_

Ok sorted it, seems many if not all splitters and have tried many are rubbish for mkv (halli, gabest and many more free and commecial).

The LAVSplitter (http://forum.doom9.org/showthread.php?t=156191) works without fail and ffdshow is available for any media to use not just mkv.

I re-read what i wrote first and noted i didn't include mkv. It was there but i remeber editing before posting and must have removed that paragraph. Obvious reason for no replies to it.

Problem though why are so many splitters rubbish for mkv. Mkvs from lots of different dates past and present. Shame ffdshow hasn't a fully qualified splitter included. Maybe it could use also the LAVSplitter (http://forum.doom9.org/showthread.php?t=156191) . I read MPC-HC will have it, though i prefer to use MPlayer with older ui since is the nearest perfect player over all others i have used.

FFDShow devs please consider, really consider inclusion of LAVSplitter (http://forum.doom9.org/showthread.php?t=156191) even now include as is. Ok i know is far from release standard but is working. If included in each beta version then no one can complain, but will have easier time of playing much more media with it. Ok if they don't like so what they can easily disable it by deselection. As nevcairiel says LAVSplitter (http://forum.doom9.org/showthread.php?t=156191) is a multi-format media splitter that uses libavformat (the demuxing library from ffmpeg) to demux all sorts of media files.

Thanks goes out to nevcairiel and to Ti-BEN from the XBMC DSPlayer team for developing LAVSplitter (http://forum.doom9.org/showthread.php?t=156191) . I know this is far from release standard, yet it is working and really is testing and using atm with the v0.23 installer version.

clsid
29th April 2011, 13:44
Nothing will be included. If you want an all-in-one pack, get a codec pack. There aren't ones yet that use LAVSplitter, but there will be soon.


@devs,
Can anyone that knows a bit about the audio parser have a look at this bug report? The problem has already been narrowed down to a specific revision.
https://sourceforge.net/tracker/?func=detail&aid=3294017&group_id=173941&atid=867360

Nexin
29th April 2011, 14:02
There aren't ones yet that use LAVSplitter, but there will be soon.

Looking forward to using it :)


update: nevcairiel has said there would be problems if they were combined (http://forum.doom9.org/showthread.php?p=1496625#post1496625)

adam777
29th April 2011, 16:19
Hello all,
Just a small heads up - last few builds crash for me upon launching a movie in MPC-HC (3052).
Crash happens with rev3829 and rev3831 (both MSVC2010), rev3828 works fine.
Adam.

clsid
29th April 2011, 17:05
Adam, can you upload a sample file?