Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > New and alternative a/v containers

Reply
 
Thread Tools Search this Thread Display Modes
Old 20th November 2011, 19:50   #7161  |  Link
e-t172
Registered User
 
Join Date: Jan 2008
Posts: 589
I'm trying to open a raw RGB24-in-AVI file (FourCC: "DIB") in LAV Splitter. The file plays correctly using the Microsoft AVI/WAV File Source and with VLC. LAV Splitter opens it but I can't connect it to anything (apart from ffdshow video in raw mode, but it crashes when I start playback). LAV Splitter exposes the {00000000-0000-0010-8000-00AA00389B71} subtype in its output pin and nothing else, whereas Microsoft AVI/WAV File Source exposes MEDIASUBTYPE_RGB24, which seems much more appropriate. Is this normal?
e-t172 is offline   Reply With Quote
Old 20th November 2011, 19:59   #7162  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 10,344
Quote:
Originally Posted by e-t172 View Post
I'm trying to open a raw RGB24-in-AVI file (FourCC: "DIB") in LAV Splitter. The file plays correctly using the Microsoft AVI/WAV File Source and with VLC. LAV Splitter opens it but I can't connect it to anything (apart from ffdshow video in raw mode, but it crashes when I start playback). LAV Splitter exposes the {00000000-0000-0010-8000-00AA00389B71} subtype in its output pin and nothing else, whereas Microsoft AVI/WAV File Source exposes MEDIASUBTYPE_RGB24, which seems much more appropriate. Is this normal?
Try with this?
http://files.1f0.de/lavf/LAVFilters-...0-g6692e18.zip
__________________
LAV Filters - open source ffmpeg based media splitter and decoders
nevcairiel is offline   Reply With Quote
Old 20th November 2011, 20:16   #7163  |  Link
e-t172
Registered User
 
Join Date: Jan 2008
Posts: 589
Problem solved, thanks!
e-t172 is offline   Reply With Quote
Old 20th November 2011, 21:38   #7164  |  Link
MokrySedeS
I am the one who knocks
 
MokrySedeS's Avatar
 
Join Date: Aug 2009
Posts: 104
I have a problem with Lav Video Decoder, with "Use Stream Aspect Ratio" option to be exact. Here are 3 sample files of x264 anamorphic encodes for you to reproduce the issue.
One of them plays at correct AR only with this option disabled, another one only with it being enabled and the last one plays correct either way.
I guess that it's a bug and hope that it will be fixed :-)
MokrySedeS is offline   Reply With Quote
Old 20th November 2011, 22:17   #7165  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 10,344
Quote:
Originally Posted by MokrySedeS View Post
I have a problem with Lav Video Decoder, with "Use Stream Aspect Ratio" option to be exact. Here are 3 sample files of x264 anamorphic encodes for you to reproduce the issue.
One of them plays at correct AR only with this option disabled, another one only with it being enabled and the last one plays correct either way.
I guess that it's a bug and hope that it will be fixed :-)
The only file that even display different behavior here is "Use.Stream.AR.Disabled.mkv", which i assume is supposed to run at 16:9. The problem with such files is that the AR is only properly flagged in the container, with a wrong AR in the bitstream. Sadly, this is quite common for MKV H264 files, and there is no easy fix.
One option would be to ignore the stream AR for files in MKV, however this is not always a good solution, as you could remux live tv into MKV, which could then change AR mid stream...

The other two files decode properly no matter what the option is set to.
"Use.Stream.AR.Enabled&Disabled.mkv" decodes at 16:9 with a target rectangle of 640x362, and "Use.Stream.AR.Enabled.mp4" decodes at 2.35:1 with a target rectangle of 1018x432
This of course depends on what splitter you use, because if "Use Stream Aspect Ratio" is off, the AR as defined by the splitter is used instead. I tested everything with LAV Splitter, of course.

Use.Stream.AR.Disabled.mkv is just a bad encode, while the other two work fine for me.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders
nevcairiel is offline   Reply With Quote
Old 20th November 2011, 22:46   #7166  |  Link
MokrySedeS
I am the one who knocks
 
MokrySedeS's Avatar
 
Join Date: Aug 2009
Posts: 104
My bad, I wasn't using Lav Splitter for mp4
MokrySedeS is offline   Reply With Quote
Old 21st November 2011, 00:04   #7167  |  Link
mindbomb
Registered User
 
Join Date: Aug 2010
Posts: 576
i have this problem with a handful of files, where lav splitter can't seek through them
this one was muxed with haali, but the other files were muxed with mkvmerge.
I can't make a sample of it, so I'm posting the whole thing, in 2 zip pieces ( it is relatively small, lucky enough)

http://www.megaupload.com/?d=TT2YF81F
http://www.megaupload.com/?d=WWGJ44ZP
mindbomb is offline   Reply With Quote
Old 21st November 2011, 08:08   #7168  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 10,344
1.6G is relatively small for you?
I'll see about download those later.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders

Last edited by nevcairiel; 21st November 2011 at 08:22.
nevcairiel is offline   Reply With Quote
Old 21st November 2011, 10:20   #7169  |  Link
Xaurus
Registered User
 
Join Date: Jun 2011
Posts: 288
nev,

I have a few files here with double english audio tracks, one is marked "default" (says madvr trayicon) and is only 2.0 AAC, the other one is 5.1 AC3.

Now, lav audio selects the 2.0 by default - is there a way to override this?
__________________
SETUP: Win 10/MPC-HC/LAV/MadVR
HARDWARE: Fractal Design Node 804 | Xeon E3-1260L v5 | Supermicro X11SSZ-TLN4F | Samsung 2x8GB DDR4 ECC | Samsung 850 EVO 1TB | MSI GTX 1650 Super | EVGA G2 750
Xaurus is offline   Reply With Quote
Old 21st November 2011, 10:24   #7170  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 10,344
Quote:
Originally Posted by Xaurus View Post
I have a few files here with double english audio tracks, one is marked "default" (says madvr trayicon) and is only 2.0 AAC, the other one is 5.1 AC3.

Now, lav audio selects the 2.0 by default - is there a way to override this?
A "default" flag overrides any other decisions based on audio stream quality.
So, no, there is not.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders
nevcairiel is offline   Reply With Quote
Old 21st November 2011, 10:29   #7171  |  Link
Xaurus
Registered User
 
Join Date: Jun 2011
Posts: 288
Quote:
Originally Posted by nevcairiel View Post
A "default" flag overrides any other decisions based on audio stream quality.
So, no, there is not.
Hmm would it be possible to add an "if_then" function, something like "if there exist several audio tracks of the same language and the higher channel track is not flagged as default, select this track anyway", as an option in control panel.

Just a thought.
__________________
SETUP: Win 10/MPC-HC/LAV/MadVR
HARDWARE: Fractal Design Node 804 | Xeon E3-1260L v5 | Supermicro X11SSZ-TLN4F | Samsung 2x8GB DDR4 ECC | Samsung 850 EVO 1TB | MSI GTX 1650 Super | EVGA G2 750
Xaurus is offline   Reply With Quote
Old 21st November 2011, 10:59   #7172  |  Link
CruNcher
Registered User
 
CruNcher's Avatar
 
Join Date: Apr 2002
Location: Germany
Posts: 4,926
Nev lav Splitter is somehow crashing MPC-HC (test builds) with Mainconcepts Mpeg-2 Decoder (SDK 9 DXVA) when drag and drop loading is involved while still playing back (tested so far only the .ts parsing part) doesn't happen with MPC-HC parser (and heavy drag and dropping)

Its easy reproducible with this simple order

1. Prefer Mainconcept Mpeg-2 Decoder
2. Prefer Lav Splitter
3. Load Mpeg2 ts
4. Start Playback
5. Drag and Drop same Mpeg-2 ts

Result: MPC-HC Window doesn't respond anymore and finally the program doesn't react anymore window appears.

Working:

1. Prefer Mainconcept Mpeg-2 Decoder
2. Select Internal .ts Parser
3. Load Mpeg-2 ts
4. Start Playback
5. Drag and Drop same Mpeg-2 ts

Result: MPC-HC cleanly closes the playing stream and opens the drag and drop one without issues
__________________
all my compares are riddles so please try to decipher them yourselves :)

It is about Time

Join the Revolution NOW before it is to Late !

http://forum.doom9.org/showthread.php?t=168004

Last edited by CruNcher; 21st November 2011 at 11:17.
CruNcher is offline   Reply With Quote
Old 21st November 2011, 11:01   #7173  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 10,344
Quote:
Originally Posted by CruNcher View Post
Nev lav Splitter is somehow crashing Mainconcepts Mpeg-2 Decoder in MPC-HC when drag and drop loading is involved while still playing back (tested so far only the .ts parsing part) doesn't happen with MPC-HC parser
A crash is *always* the fault of the code actually crashing. No code should ever be able to crash just from some external input, or its just bad code.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders
nevcairiel is offline   Reply With Quote
Old 21st November 2011, 11:25   #7174  |  Link
CruNcher
Registered User
 
CruNcher's Avatar
 
Join Date: Apr 2002
Location: Germany
Posts: 4,926
Not sure what actually crashes what in the end just stops responding and its just the reaction to the task i try in different scenarios (Decoder) lav splitter is 0.39-47

tried Cyberlink DXVA as decoder it doesn't crash with MPC-HC in this task order with Lav Splitter i would say it's ultimate hard now to pinpoint who is doing it wrong on which side (MPC-HC, Lav Splitter or Mainconcept)

Gonna also try non MPC-HC test builds (as they have known init and clean close issues)

With the trunk MPC-HC builds the not responding (Lav Splitter + Mainconcept Mpeg2 Decoder SDK 9) doesn't happen with the Drag and Drop operation but with File->Close it shows the same symptoms as Drag and Drop in the test builds and again using the Internal Parser no problems

Also still lavsplitter-freeze.mp4 is still in 0.39-47 the Internal Parser still doesn't freeze

PS: tried also 0.39-50 same 2 issues that Internal parsers show no issues with, and also used another ffmpeg based splitter (av splitter 1.1.8.14 that as well doesn't show crash issues with Mainconcept and the Drag and Drop load while playing back test though it shows the same freeze issue with the mp4 and mov streams)
__________________
all my compares are riddles so please try to decipher them yourselves :)

It is about Time

Join the Revolution NOW before it is to Late !

http://forum.doom9.org/showthread.php?t=168004

Last edited by CruNcher; 21st November 2011 at 12:29.
CruNcher is offline   Reply With Quote
Old 21st November 2011, 12:09   #7175  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 10,344
Quote:
Originally Posted by mindbomb View Post
i have this problem with a handful of files, where lav splitter can't seek through them
this one was muxed with haali, but the other files were muxed with mkvmerge.
It looks like the files are lacking Cue points (or ffmpeg fails at finding/parsing them), which ffmpeg sadly relys on for seeking.
The MKV spec says they are not required for seeking, but they do make it a whole lot easier.

It would be great to fix that in ffmpeg so that seeking without Cue points works, not sure when/if i'll have time for that, though.

Edit:
On second thought, it seems the Metaseek/Seekhead block is missing, which could certainly cause it to just not find the Cue data.
ffmpegs matroska parser is really rather limited.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders

Last edited by nevcairiel; 21st November 2011 at 12:30.
nevcairiel is offline   Reply With Quote
Old 21st November 2011, 12:54   #7176  |  Link
CruNcher
Registered User
 
CruNcher's Avatar
 
Join Date: Apr 2002
Location: Germany
Posts: 4,926
Btw AV splitter has Programm Stream support, something really lacking in Lav Splitter compared to Potplayer parser, Mpc-hc splitter and now Av Splitter as well (though it can't instantly switch needs to restart the selected stream, its more crashy than potplayers parser, and it has a ton of black screen *.ts issues that are fixed in lav splitter (first by Video Stream Parsing later without))
__________________
all my compares are riddles so please try to decipher them yourselves :)

It is about Time

Join the Revolution NOW before it is to Late !

http://forum.doom9.org/showthread.php?t=168004

Last edited by CruNcher; 21st November 2011 at 13:17.
CruNcher is offline   Reply With Quote
Old 21st November 2011, 12:54   #7177  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,140
Quote:
Originally Posted by nevcairiel View Post
A crash is *always* the fault of the code actually crashing. No code should ever be able to crash just from some external input, or its just bad code.
Oh well, I don't 100% agree here. E.g. imagine you send an uncompressed video frame downstream with incorrect width/height information. This could result in the downstream filter reading over the bounds of the allocated IMediaSample buffer, resulting in an access violation. In this situation the crash would be your fault, IMHO. Or imagine the pitch you're using is smaller than the pitch the downstream filter is expecting. If the pitch you're using is too small, once again a potential access violation would be your fault.

Of course I'm not saying that any of this is happening between LAV Splitter <-> Mainconcept Mpeg-2 Decoder. After all in these cases you're sending bitstream and there's not so much that can go wrong there (no width, height, pitch involved etc). So I would say that it's very likely that the crash is the fault of the Mainconcept Mpeg-2 Decoder.
madshi is offline   Reply With Quote
Old 21st November 2011, 13:00   #7178  |  Link
Weirdo
Registered User
 
Join Date: Aug 2005
Posts: 231
Hi nevcairiel, do you think it'd be possible to add audio/speaker delay settings separately for each channel to LAV Audio? It'd be of great help to us with crappy audio card drivers not giving the option. The only way I can do it now is to use ffdshow and its delay setting.
Weirdo is offline   Reply With Quote
Old 21st November 2011, 13:11   #7179  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 10,344
Quote:
Originally Posted by madshi View Post
Oh well, I don't 100% agree here. E.g. imagine you send an uncompressed video frame downstream with incorrect width/height information. This could result in the downstream filter reading over the bounds of the allocated IMediaSample buffer, resulting in an access violation. In this situation the crash would be your fault, IMHO. Or imagine the pitch you're using is smaller than the pitch the downstream filter is expecting. If the pitch you're using is too small, once again a potential access violation would be your fault.
IMHO, the consumer of the data should do some basic validations, like checking the size of the buffer. It would already catch alot problems and avoid crashes.
I at least validate that the renderer provides a buffer big enough for what i think should be the stride, and if it doesnt fit, i just refuse instead of crashing. Granted, this only applys to your examples - but you get the point.

Quote:
Originally Posted by Weirdo View Post
Hi nevcairiel, do you think it'd be possible to add audio/speaker delay settings separately for each channel to LAV Audio? It'd be of great help to us with crappy audio card drivers not giving the option. The only way I can do it now is to use ffdshow and its delay setting.
Not going to happen, sorry.
Global delay is easy, per channel delay is exponentially more complicated.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders

Last edited by nevcairiel; 21st November 2011 at 13:15.
nevcairiel is offline   Reply With Quote
Old 21st November 2011, 13:50   #7180  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,140
Quote:
Originally Posted by nevcairiel View Post
IMHO, the consumer of the data should do some basic validations, like checking the size of the buffer. It would already catch alot problems and avoid crashes.
I at least validate that the renderer provides a buffer big enough for what i think should be the stride, and if it doesnt fit, i just refuse instead of crashing. Granted, this only applys to your examples - but you get the point.
You're right in that a few security checks definitely don't harm. But I still don't agree that a crash is always the fault of the code actually crashing. You could argue that if the code is crashing then it is obviously missing a necessary security check. But that's like saying that if you shoot me then it's my own fault for not wearing a bullet proof vest. Or if memset crashes when being called with "memset(buffer, 0, tooLarge)" then it's the fault of memset that there's a crash, and not the fault of the code calling memset. That is a weird way of seeing things, IMHO.
madshi is offline   Reply With Quote
Reply

Tags
decoders, directshow, filters, splitter

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 20:02.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.