Log in

View Full Version : LAV Filters - DirectShow Media Splitter and Decoders


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 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508

Mercury_22
29th March 2011, 18:42
You need to grab it manually (also, need to grab my modified version):

http://git.1f0.de/gitweb?p=libbluray.git;a=summary
Ok :thanks:

Edit: can you please update the README.txt with this info

nevcairiel
29th March 2011, 19:22
Not much of an update, but i just wanted to let you know that i tested seamless playback on some other discs, and it seems to work just peachy!
Also, i fixed the problem that caused some languages to not show up. =)

I still get a headache from title switching though.

I could release 0.20 without title switching though, that means when you open the index.bdmv with LAV Splitter, it just plays the longest title, which is probably fine for many of the discs out there.
The way i wanted to do title switching initially won't work anymore anyway, so the player will need to be updated to support it, FYI.
What i wanted to do was just list the titles in the stream selector, however with BluRays and their 30 subtitle tracks, thats really not manageable. Plus, MPC-HC crashes when that list reaches a certain amount...
I can probably devise some way to add only the really long titles in there (say anything over 20 minutes, should catch most TV shows as well - or make that value configurable), but preferably i would not add any titles in there at all, and focus on a specific interface to provide titles (in MPC-HC in Navigate -> Jump To probably - i think thats where DVD titles go)

bjd
29th March 2011, 19:26
I still get a headache from title switching though.

Sure that won't be a long term issue for a man of your talents :)

Mercury_22
29th March 2011, 20:06
It seems that the lav splitter still has some problems (with interlaced files :confused:). Here is a sample (http://www.multiupload.com/7J62LD1D0I) which is playing OK with MPC-HC's internal MPEG splitter but with lav splitter it's very "shaky" (almost unwatchable)

SamuriHL
29th March 2011, 20:17
Not much of an update, but i just wanted to let you know that i tested seamless playback on some other discs, and it seems to work just peachy!
Also, i fixed the problem that caused some languages to not show up. =)

I still get a headache from title switching though.

I could release 0.20 without title switching though, that means when you open the index.bdmv with LAV Splitter, it just plays the longest title, which is probably fine for many of the discs out there.
The way i wanted to do title switching initially won't work anymore anyway, so the player will need to be updated to support it, FYI.
What i wanted to do was just list the titles in the stream selector, however with BluRays and their 30 subtitle tracks, thats really not manageable. Plus, MPC-HC crashes when that list reaches a certain amount...
I can probably devise some way to add only the really long titles in there (say anything over 20 minutes, should catch most TV shows as well - or make that value configurable), but preferably i would not add any titles in there at all, and focus on a specific interface to provide titles (in MPC-HC in Navigate -> Jump To probably - i think thats where DVD titles go)

Manually opening the mpls file works, though, right? If so...pretty please? :)

bjd
29th March 2011, 20:46
I could release 0.20 without title switching though, that means when you open the index.bdmv with LAV Splitter, it just plays the longest title

Sounds good to me.

nevcairiel
29th March 2011, 20:49
Manually opening the mpls file works, though, right? If so...pretty please? :)

No, only opening the .bdmv works.
MPC-HC has some funny magic that deals with mpls files and doesnt let a DirectShow splitter get to them, although i could probably turn that off when the mpeg splitter is turned off.
Also, with 100 mpls files, how would you know which one to use anyway.

SamuriHL
29th March 2011, 20:52
No, only opening the .bdmv works.
MPC-HC has some funny magic that deals with mpls files and doesnt let a DirectShow splitter get to them, although i could probably turn that off when the mpeg splitter is turned off.
Also, with 100 mpls files, how would you know which one to use anyway.

Magic. ;) eac3to scanning. :)

nevcairiel
29th March 2011, 20:58
It seems that the lav splitter still has some problems (with interlaced files :confused:). Here is a sample (http://www.multiupload.com/7J62LD1D0I) which is playing OK with MPC-HC's internal MPEG splitter but with lav splitter it's very "shaky" (almost unwatchable)

Plays fine for me, both with EVR-CP (frame time correction on) and madVR.

One thing i did recently notice was that EVR-CP usually needs Frame Time Correction for alot of movies, while madVR just works, this also depends on the decoder being used. I don't know how EVR-CP manages to mess up that badly, though.

I can offer an option to disable the timestamp correction in LAV Splitter, then it'll output the exact same timestamps as the MPC-HC splitter, untouched from the file - but thats not always what you really want.

Matching_Mole
29th March 2011, 20:59
Also, with 100 mpls files, how would you know which one to use anyway.

Using BDinfo, you can know what the differents mpls "contains" and so help to know what mpls I want to play. Not the better way but currently Bdinfo help a lot.

SamuriHL
29th March 2011, 21:03
Using BDinfo, you can know what the differents mpls "contains" and so help to know what mpls I want to play. Not the better way but currently Bdinfo help a lot.

That's the graphical way, sure. Same idea as scanning with eac3to to get the biggest playlists.

nevcairiel
29th March 2011, 21:11
I can offer an option to disable the timestamp correction in LAV Splitter, then it'll output the exact same timestamps as the MPC-HC splitter, untouched from the file - but thats not always what you really want.

Actually, i lied. Offering such an option wouldn't be good. A vital part of that code is that it parses the packages and re-assembles them to form full frames (especially in MPEG-TS the frames are split across packages all the time), and some decoders just do not like getting half frames.

I suggest turning on Frame Time Correction (which is a hacky solution in a even hackier renderer), or get a good renderer like madVR.

Mercury_22
29th March 2011, 21:34
Plays fine for me, both with EVR-CP (frame time correction on) and madVR.

One thing i did recently notice was that EVR-CP usually needs Frame Time Correction for alot of movies, while madVR just works, this also depends on the decoder being used. I don't know how EVR-CP manages to mess up that badly, though.

I can offer an option too disable the timestamp correction in LAV Splitter, then it'll output the exact same timestamps as the MPC-HC splitter, untouched from the file - but thats not always what you really want.

You're right when enabling frame time correction with EVR-CP it's playing fine :thanks:
Also if it's not too much can you look at VC-1 settings cause I cant play any VC-1 (i) with nero decoder (which it's playing fine with MPC-HC's internal mpeg splitter) no matter what setting I choose in LAVSplitter = black screen or freeze video while sound it's playing.

nevcairiel
30th March 2011, 06:51
Also if it's not too much can you look at VC-1 settings cause I cant play any VC-1 (i) with nero decoder (which it's playing fine with MPC-HC's internal mpeg splitter) no matter what setting I choose in LAVSplitter = black screen or freeze video while sound it's playing.
Try disabling the "Enable VC-1 Timestamp Correction" checkbox on the splitters config.

Mercury_22
30th March 2011, 08:46
Try disabling the "Enable VC-1 Timestamp Correction" checkbox on the splitters config.
As I've mention above I've tried all 3 settings including "disable" Also for VC-1 Progressive it seem to work although sometime it shows a green screen then normal image then again green and so on...

nevcairiel
30th March 2011, 09:05
Then the nero decoder is not supported.

With that option disabled, it outputs exactly the same as the MPC-HC splitter.

Mercury_22
30th March 2011, 09:34
Then the nero decoder is not supported.

With that option disabled, it outputs exactly the same as the MPC-HC splitter.

Strange since with MPC-HC's splitter it's working very nice (both VC-1 i & p with 10-bit RGB and no "Enable frame time correction" needed)

Anyway thanks for trying :thanks:

jj666
30th March 2011, 12:20
I have rather a strange issue. All of my files are remuxes from original BD -> .TS with HD audio and PGS subtitles (via EAC3TO/TSMUXER).
Previously, was using an ancient version of Haali splitter in combination with AC3FILTER to bitstream TrueHD and DTS-HD cores to my receiver via Coax.

Now using the LAV splitter, and LAV decoders for both audio and video (CUDA). Obviously the LAV audio decoder doesn't currently bitstream audio, but it's currently decoding fine.

I tried to use FFSHOW audio decoder to bitstream the audio (assuming that it would be able to pass the core and bitstream that to the receiver). Unfortunately, with DTS-HD, FFDSHOW claims that it's receiving a 96hz DTS 7.1 channel track (when in reality its a 48hz DTS 5.1 channel track), this then borks MPC-HC and it doesn't play at all.

Assume that splitting the core audio from HD-audio in the current version isn't implemented? Is that something that could be implemented in the future? If not, it's not a big issue, as the LAV decoder is working and I'm not generally doing much playback on the PC.

Thanks very much for your work on the filters etc, it's allowed me to clean up the system and finally remove the Haali splitter :-)

Cheers,

-jj-

nevcairiel
30th March 2011, 12:23
The splitter will always send the full DTS-HD to the decoder. Why ffdshow gets confused by that, i cannot say. It should manage itself to split the core out of it and bitstream that, although i did read recently that they broke DTS Core bitstreaming out of DTS-HD some time back.

I will offer bitstreaming myself sooner or later, so if decoding works for you and you can be patient ..

jj666
30th March 2011, 12:53
Thanks for your feedback - patience is no problem, like mentioned, I'm not using the PC for much playback anyway (PCH C-200 media player here) and the decoding is working 100% anyway.

Let us know if you decide to accept some form of donations (the CUDA stuff is really great!) in the future.

Cheers,

-jj-

god_md5
30th March 2011, 13:17
hello , i have test some japan ts file have Memory leak(use all the memory),than hang .
and the other ts with dvbsub subtitle is not work well.
dvb with sub
http://www.mediafire.com/?hvs7d05u3voxzpn
but it not have mpc-hc black screen problem

mindbomb
30th March 2011, 13:33
I have rather a strange issue. All of my files are remuxes from original BD -> .TS with HD audio and PGS subtitles (via EAC3TO/TSMUXER).
Previously, was using an ancient version of Haali splitter in combination with AC3FILTER to bitstream TrueHD and DTS-HD cores to my receiver via Coax.

Now using the LAV splitter, and LAV decoders for both audio and video (CUDA). Obviously the LAV audio decoder doesn't currently bitstream audio, but it's currently decoding fine.

I tried to use FFSHOW audio decoder to bitstream the audio (assuming that it would be able to pass the core and bitstream that to the receiver). Unfortunately, with DTS-HD, FFDSHOW claims that it's receiving a 96hz DTS 7.1 channel track (when in reality its a 48hz DTS 5.1 channel track), this then borks MPC-HC and it doesn't play at all.

Assume that splitting the core audio from HD-audio in the current version isn't implemented? Is that something that could be implemented in the future? If not, it's not a big issue, as the LAV decoder is working and I'm not generally doing much playback on the PC.

Thanks very much for your work on the filters etc, it's allowed me to clean up the system and finally remove the Haali splitter :-)

Cheers,

-jj-

you can try the mpc hc internal DTS decoder. set it to spdif.

josey_wells
30th March 2011, 22:13
I tried to use FFSHOW audio decoder to bitstream the audio (assuming that it would be able to pass the core and bitstream that to the receiver). Unfortunately, with DTS-HD, FFDSHOW claims that it's receiving a 96hz DTS 7.1 channel track (when in reality its a 48hz DTS 5.1 channel track), this then borks MPC-HC and it doesn't play at all.

I had this exact same problem. The latest LAV 0.19 and ffdshow from http://www.xvidvideo.ru/ fixed the problem.

jj666
30th March 2011, 23:10
Thanks for the tips guys, much appreciated :-)

Cheers,

-jj-

PaxRoma
31st March 2011, 06:49
I can not seem to get LAVfilter to register. It says dllregister server succeeded but nothing happens. Still cannot play MKV in WMP

Mercury_22
31st March 2011, 09:16
I can not seem to get LAVfilter to register. It says dllregister server succeeded but nothing happens. Still cannot play MKV in WMP

Maybe this is the solution :)
...
Binaries built by me currently require the VC++2010 Runtime (download 32-bit (http://www.microsoft.com/downloads/details.aspx?FamilyID=a7b7a05e-6de6-4d3a-a423-37bf0912db84) & 64-bit (http://www.microsoft.com/downloads/details.aspx?FamilyID=bd512d9e-43c8-4655-81bf-9350143d5867))
...
OR newer Microsoft Visual C++ 2010 SP1 Redistributable Package (x86) (http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c32f406a-f8fc-4164-b6eb-5328b8578f03) & Microsoft Visual C++ 2008 SP1 Redistributable Package (x64) (http://www.microsoft.com/downloads/en/details.aspx?FamilyID=BA9257CA-337F-4B40-8C14-157CFDFFEE4E)
or increase the merit or remove (if exist) Haali's

CruNcher
31st March 2011, 19:41
Is the Audio decoder using for every format supported libavcodec and has it 32 bit support like ffdshow and mpc-hc internal filter ?
also using libavformat for the mp4/mov part will it by default support everything it would in mplayer or did you removed fourccs by purpose ? like for example mjpg a/b or PNG support inside .mov :) ?

nevcairiel
31st March 2011, 21:47
If you use LAV Splitter and LAV Audio together, it can decode everything that libavcodec supports. I also added 32-bit float support for AAC, AC3, DTS and MP3. Additionally it should also be possible to add it to Vorbis when i feel like doing it.

The demuxer, in theory, supports everything libavformat supports. If some specific file does not play properly or does not connect to some decoder, it probably needs its DirectShow media type fixed. My sample collection is not infinite, there will always be files that need fixes.

NanoBot
1st April 2011, 00:43
Should the LAVF Splitter already be able to open raw flac files ? It works fine together with ffdshow as flac decoder when I am opening mastroska files containing flac audio tracks. But when I am trying to open a raw flac file I get "cannot render the file" within MPC-HC.

mindbomb
1st April 2011, 04:11
no, it doesnt appear to be a flac source filter.

Ger
1st April 2011, 07:04
Works in Graphstudio, so it's probably just not registered for audio-only types (yet). I think Nev mentioned something about that once, but I've forgotten the details.

nevcairiel
1st April 2011, 16:31
no, it doesnt appear to be a flac source filter.


It can be, though!
Do flac ES files have a typical byte marker to detect them?
Thats usually a problem with those elementary stream files..

Edit:
It appears they do, can someone with such a file confirm that the first 4 bytes say "fLaC"?

Ger
1st April 2011, 17:32
Checked three files. All start with "fLaC".

madshi
1st April 2011, 17:39
http://flac.sourceforge.net/format.html#stream

nevcairiel
1st April 2011, 19:48
Thanks, i found that too. I was actually looking into adding support for alot more raw audio streams, but not all seem to have an accurate byte marker, so i'll probably hook them up based on extensions. While i'm at it, i'll probably do it for all file types. With MPC-HC, that doesn't really change any behaviour, as extension hookups are not directly prioritized, for other players it could however mean that LAV Splitter gets the priority .. not that it bothers me. =)

madshi
1st April 2011, 20:01
Hopefully you won't overwrite madFlac, though?

nevcairiel
1st April 2011, 20:03
With any sane player, it should come down to what the user configured, or if anything, merit. Now i dunno what the merit of the madFlac source filter is, but LAV Splitter is pretty high.

Edit:
I checked, and the merit of madFlac Source is pretty low (just MERIT_NORMAL), so unless the user configures something, LAV Splitter would be used instead.

Edit2:
It actually looks like you _ONLY_ do extension hookups? no byte markers?
Then it will be overwritten, unless i feel like developing some fancy installer first that could deal with all of this.

madshi
1st April 2011, 20:17
It should be possible somehow to continue using madFlac. If "prefering" madFlac in MPC-HC does the trick, that should be good enough.

nevcairiel
1st April 2011, 20:18
Only you can tell me if it actually registers for the byte markers - i didn't see it in the registry. Of course people can still use the decoder in any case.

Every extension can only have one source filter, while the byte markers are really alot more flexible and every source filter can let DirectShow know that it supports this marker and the merits decide. Thats why i really preferred them until now, and containers typically are easy to detect .. not so much all raw streams.

madshi
1st April 2011, 20:28
So if people install the LAV Splitter first and madFlac after that, madFlac "wins", because madFlac will overwrite the extension registration? I think that would be good enough. There just needs to be a way to use the LAV Splitter and madFlac at the same time. And yes, madFlac must be "allowed" to work as a source filter, too.

I don't think I register for "byte markers", didn't even know that I could... :) But then I've written madFlac quite a while ago, so I don't remember all the dirty details.

nevcairiel
1st April 2011, 20:31
Yes, registering it after LAV Splitter would work.

madshi
1st April 2011, 20:39
Ok, that's good enough for me. Of course before you automatically register (= overwrite) *hundreds* of new extensions it might make sense to write some kind of installer... ;) You can't know for sure that LAV Splitter will match (or beat) every existing DirectShow source filter out there. So maybe it would make sense to cherry pick extensions for now. Just my 2 cents, of course.

v0lt
3rd April 2011, 08:31
@nevcairiel
http://www.multiupload.com/PYBILYB30E
MPC-HC 1.5.2.3010 + LAVFSplitter 0.19 + Microsoft DTV-DVD Video Decoder = wrong speed of video
(internal, ffdshow and ArcSoft decoders are buggy with this video stream)

PS: I do not have enough CPU power to play in VLC media player, but sync is better in VLC.

CruNcher
3rd April 2011, 09:11
Wow v0lt that stream crashed Cyberlinks Decoder to be exactly it caused a crash in the sse3 part :P
AppName: mpc-hc.exe AppVer: 1.5.2.2994 ModName: 264dsse3.dll
something is strange with that stream DXVA mode is giving all kind of nice effects with different Decoder :P
Though currently Halli parse it
Hmm i could swear it uses either intra refresh or a very low keyframe cycle at least visual error wise (it pulses between errors) it looks like it and 6 slices
The internal MPC-HC parser doesn't detect the Video stream @ all ;)

nevcairiel
3rd April 2011, 09:16
Broken streams are just that, broken.

CruNcher
3rd April 2011, 09:39
Not sure if the stream is broken Haali + CoreAVC (CPU) decode it perfect, also via Nvcuvid no problems
Complete Lav Cuvid Framework has also no issues + Haali Splitter
It would make sense if v0lt used DXVA with Microsofts decoder that it's yet another DXVA problem though its different then what you visually see from the to much reference decoding problem

Cyberlin DXVA Decoder + Lav Splitter + Lav Audio + VMR7 windowed = Frame Freeze audio plays ;)
CoreAVC DXVA + Arcsoft Demuxer + Lav Audio + VMR7 windowed = Black Screen audio plays
Cyberlink DXVA + Arcsoft Demuxer + Lav Audio + VMR7/9 windowed/Renderless = Perfect
Cyberlink DXVA + Haali Splitter + Lav Audio + VMR7/9 windowed/Renderless = Crash in Cyberlinks Decoder
CoreAVC DXVA + Haali Splitter + LAV Audio + VMR7/9 windowed/Renderless = Playbacks Video and Audio but with some Visual Errors (slice borders and intra refresh visible)
CoreAVC DXVA + MPC-HC Splitter + LAV Audio + VMR7/9 windowed/Renderless = Audio Plays Video Stream PID not found

I love these Transport Stream Parser issues, especialy in combination with DXVA they can give funny results ;)

So in v0lt case most probably the problem is indeed Lav Splitter in combination with Microsofts Decoder and DXVA, though Cyberlinks Demuxer 2.0 and Arcsofts MPEG Demuxer are more robust they work different (they seem to work directly @ the bitstream level for TS streams and take only some information into account so they can cope welll with corrupt streams, which for Satellite transmission you have no other chance for) then MPC-HC or Gabest Lav Splitter it could be that the muxed ts file here is corrupt ;)

So the CoreAVC DXVA + Haali Splitter result is not bad, especialy as you lose most controll with Arcsoft and Cyberlinks Demuxer in MPC-HC :)

v0lt
3rd April 2011, 10:20
Broken streams are just that, broken.
Maybe, but MediaInfo shows this:
Video
ID : 4113 (0x1011)
Menu ID : 1 (0x1)
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.0
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Duration : 1mn 58s
Bit rate : 11.6 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 25.000 fps
Resolution : 8 bits
Colorimetry : 4:2:0
Scan type : MBAFF
Bits/(Pixel*Frame) : 0.224
Stream size : 164 MiB (81%)
Color primaries : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177
Transfer characteristics : BT.709-5, BT.1361
Matrix coefficients : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177
Here we see 25 fps. But LAVFSplitter shows AvgTimePerFrame = 1778. This is equivalent to 5624 fps :)
(25 fps -> AvgTimePerFrame = 400000)

CruNcher
3rd April 2011, 10:43
Was this directly a sat transmission or transcoded could be maybe a Ateme Stream ?

v0lt
3rd April 2011, 11:13
Was this directly a sat transmission or transcoded could be maybe a Ateme Stream ?
I do not know.

Hilary.0000.ts (http://www.multiupload.com/MNHNZJKDOP)
LAV Splitter not play. But WMP is playing.

CruNcher
3rd April 2011, 11:48
The CoreAVC issue seems to be a Render bug on Nvidia Hardware via DXVA on their side, almost any .m2ts stream borks visually out with CoreAVC DXVA and VP2

A new Playback feeling ;)

http://img43.imageshack.us/img43/2044/sliceborders.png