View Full Version : ffdshow tryouts project: Discussion & Development
nautilus7
29th September 2008, 12:14
DRC is decoder related. It's not a value stored in the track like DN.
DTS-ES 6.1 is not possible with libavcodec, so ffdshow developers can't do anything about this.
ACrowley
29th September 2008, 16:17
DRC is decoder related. It's not a value stored in the track like DN.
DTS-ES 6.1 is not possible with libavcodec, so ffdshow developers can't do anything about this.
Dolby Digital has the Dynamic Range Compression Profile encoded into the track, ofcourse.
And a Decoder can enable it.
Thats what i mean..and the dts encoder has no DRC Profile Option
Theres no DRC Info stored in the Track for dts...thats what youre talking about ,right ?
avivahl
30th September 2008, 12:31
Any word on that embedded subtitles issue? I practically found the problematic line for you, I think. :)
Eragon4ever
30th September 2008, 12:39
Revision 2160 - Directory Listing
Modified Tue Sep 30 09:12:32 2008 UTC (2 hours, 24 minutes ago) by albain
Embedded subtitle file : fixed missing character at the end of line with non UTF8 encoding (thanks to avivahl)
Judging from that it's fixed.
avivahl
30th September 2008, 12:58
YAY! :D Thanks! :)
STaRGaZeR
30th September 2008, 14:31
I've found a problem when decoding Blu-ray 1080i files with 4ref frames, the video starts to stutter at some point in time (it may happen in 1 or 20 seg). No deinterlacing, just play the file. MPC's internal software decoder does exactly the same so I assume this is a ffmpeg bug?
Sample: http://www.megaupload.com/?d=TZ5WRSKX (73MB)
clsid
30th September 2008, 16:08
I have added a new build of FFplay to the opening post.
albain
30th September 2008, 18:29
For DTS-HD you need to remove the DTS-HD blocks before feeding the data to libavcodec/libavformat because even libavformat can't really handle DTS-HD yet. Check out my earlier comments. I've already posted detailed information in this thread about how to properly recognize and remove DTS-HD data blocks.
I will see with time if the integration of libavformat is necessary.
I am working on the integration of your algorithm to detect and strip off DTS-HD blocks from DTS streams.
It should work soon...
Atak_Snajpera
2nd October 2008, 00:48
I have a question. Will we see Yadif deinterlacer as another option under Deinterlacing section?
albain
2nd October 2008, 11:13
Hi,
I have built a new version following Madshi guidelines (thank you)
Here is the link:
http://rapidshare.com/files/150209996/ffdshow_rev2169_20081002_dbt_beta10.exe.html
New features :
Better DTS decoding
DTS-HD decoding (DTS-HD blocks are stripped off, not decoded as libavcodec does not support it yet but now the DTS-HD streams play correctly)
Next step : working on better AC3 and Dolby TrueHD decoding...
madshi
2nd October 2008, 11:19
I have built a new version following Madshi guidelines (thank you)
And thanks go back to you for improving ffdshow! :)
nautilus7
2nd October 2008, 11:58
All DTS(-HD) files I have play fine now. Thanks both!
Mercury_22
2nd October 2008, 12:15
Hi,
I have built a new version following Madshi guidelines (thank you)
Here is the link:
http://rapidshare.com/files/150209996/ffdshow_rev2169_20081002_dbt_beta10.exe.html
New features :
Better DTS decoding
DTS-HD decoding (DTS-HD blocks are stripped off, not decoded as libavcodec does not support it yet but now the DTS-HD streams play correctly)
Next step : working on better AC3 and Dolby TrueHD decoding...
Still no 64-bit ? :(:thanks::helpful:
tetsuo55
2nd October 2008, 12:27
How does the updated ac3/dts decoding compare to AC3filter?
Is it faster/slower?
Does it support more types of ac3/dts?
Basically, has it reached the point where i can ditch AC3filter and finally use only FFdshow for everything? :D
K1ngp1ng
2nd October 2008, 13:00
dts-hd decoding:
- runtime is wrong
- dtswav not working. sample: http://rapidshare.com/files/150231773/17_-_Harmony.7z.html
madshi
2nd October 2008, 15:10
dts-hd decoding:
- runtime is wrong
With raw DTS-HD files? It's (nearly) impossible to show a correct runtime because DTS-HD Master Audio is variable bitrate. Also the runtime is defined by the source filter and not by ffdshow.
STaRGaZeR
2nd October 2008, 15:13
With the lastest beta:
- DTS in WAV not working.
- This DTS sample doesn't work right: http://forum.doom9.org/showpost.php?p=1189485&postcount=4344
- And the usual high pitch sound playing DVDs. Playing the individual VOBs livab works flawlessly though.
avivahl
2nd October 2008, 15:53
I'm afraid to report that the patch for the "last letter missing in embedded non-UTF-8 subtitles" did not help. It's still missing. :( I used ffdshow-tryouts rev2168 from xvidvideo.ru...
EDIT: Alright... I looked more into this issue. It might not be a ffdshow bug at all (although the patch was still necessary after checking it over and over again). I muxed the non-UTF-8 subtitles into the mkv using mkvmerge GUI (which uses mkvmerge)... then, when I checked the new mkv file, I saw it has a UTF-8 text stream. So that means mkvmerge does the UTF-8 convertion automatically (:O)! Anyway, I demuxed the new stream from the new mkv, and then opened it using notepad. The stream is indeed UTF-8, but the last character is missing on every line. So that means it's a mkvmerge bug (with the encoding conversion! I'll look into their code and try to find the cause there.
EDIT2: I've submitted a mkvmerge bug: https://www.bunkus.org/bugzilla/show_bug.cgi?id=302
nautilus7
2nd October 2008, 16:50
With the lastest beta:
- This DTS sample doesn't work right: http://forum.doom9.org/showpost.php?p=1189485&postcount=4344
I have the same problem (sound plays very slow) with all my blu-ray samples. I originally thought it was due to the mpc-hc internal splitter, but it works with libdts. So it seems is an ffdshow problem. Weird is that DTS-HD into matroska works perfect.
albain
2nd October 2008, 18:50
Right, I will try to compare libdts parsing code with mine.
Anyone has a WAV sample with dts inside ?
nautilus7
2nd October 2008, 19:31
OK, thanks albain for your efforts. I 'll try to find you a dts wav sample later.
Mercury_22
2nd October 2008, 19:50
Right, I will try to compare libdts parsing code with mine.
Anyone has a WAV sample with dts inside ?
Look here http://www.diatonis.com/downloads_dts_ac3.html :)
STaRGaZeR
2nd October 2008, 20:08
Right, I will try to compare libdts parsing code with mine.
Anyone has a WAV sample with dts inside ?
It'll be interesting to compare both libdts and liba52, they play whatever you throw at them without a single problem.
Here you have a DTS in WAV sample:
http://www.megaupload.com/?d=0ASMH2BQ (34MB)
ACrowley
3rd October 2008, 08:24
I have the same problem (sound plays very slow) with all my blu-ray samples. I originally thought it was due to the mpc-hc internal splitter, but it works with libdts. So it seems is an ffdshow problem. Weird is that DTS-HD into matroska works perfect.
yes...same Problem here with m2ts Files with DTS HD.
DTS HD Files outside Container and in mkv are working perfect
decodes libavcodec the Full DTS HD or only the core ?
albain
3rd October 2008, 10:43
I think I fixed it. I did *not* studied the DTS in wav problem though.
You have to use a recent splitter : MPC internal splitter does not work well (slow playback) but Haali does. I tested it with the sample from URL http://forum.doom9.org/showpost.php?p=1189485&postcount=4344
New build :
FFDShow libavf branch beta 11 (http://www.megaupload.com/?d=M3HHCOA8)
However, I have troubles with TrueHD/MLP decoding, maybe due to the splitter.
Which player/splitter and file format should be used to be in the right conditions ?
STaRGaZeR
3rd October 2008, 11:02
But it's the same decision as before, Haali plays the file right and MPC don't, but libdts, PowerDVD, etc. all work with both. I'd always use Haali for (m2)ts files, but it just doesn't detect LPCM tracks present in Blu-ray so it's a no go.
BTW with beta11 I'm getting ffdshow.ax errors, and ffdshow won't load.
decodes libavcodec the Full DTS HD or only the core ?
Only the core for now, libavcodec limitation.
ACrowley
3rd October 2008, 11:45
ah, ok...
Sonic Audio Decoder can do DTS HD fully (5.1), but the Decoder cant be used in mkv container (dont know any Splitter that can conect to Sonic in mkv?)
Arcsoft Decodre can fully decode DTS HD, but the Speaker etc Settings cant be saved.
nautilus7
3rd October 2008, 12:18
But it's the same decision as before, Haali plays the file right and MPC don't, but libdts, PowerDVD, etc. all work with both.+1
And i'm using mpc-hc r814 (latest) here.
BTW with beta11 I'm getting ffdshow.ax errors, and ffdshow won't load.Same problem here. It seems beta11 is broken.
However, I have troubles with TrueHD/MLP decoding, maybe due to the splitter.
Which player/splitter and file format should be used to be in the right conditions ?
Well, haali and mkvmerge don't support truehd/mlp. That's a problem. I think only way is to use mpc-hc internal mpeg splitter, but i can't tell if it works correctly or not.
albain
3rd October 2008, 12:58
But it's the same decision as before, Haali plays the file right and MPC don't, but libdts, PowerDVD, etc. all work with both. I'd always use Haali for (m2)ts files, but it just doesn't detect LPCM tracks present in Blu-ray so it's a no go.
BTW with beta11 I'm getting ffdshow.ax errors, and ffdshow won't load.
Only the core for now, libavcodec limitation.
ok, my mistake...
After digging this around, I suspect a bug in ffmpeg : with MPC internal splitter, the DTS parser skips 1 block of 2, unlike libdts. So 50% of the blocks don't reach the audio renderer.
I don't know why it does that though, my internal parsing seems fine...
nautilus7
3rd October 2008, 13:08
But does this explain why libav works ok with haali splitter? Maybe the mpc-hc developers could help.
albain
3rd October 2008, 17:31
After looking on ffmpeg mailing list, they advise to use libavformat to create the correct audio frames.
But I don't want to waste time integrating libavformat into FFDShow if it gives the same results...
CiNcH
4th October 2008, 08:46
Which player/splitter and file format should be used to be in the right conditions ?
MPC MpegSplitter IMHO outputs the full ES for a BDMV TrueHD stream within m2ts, so AC3 and MLP interleaved.
Our DVBSource filter currently only extracts AC3 frames from a BDMV TrueHD stream.
chadamir
4th October 2008, 17:12
Would ffdshow be able to pass the bitstream of truhd or dts-hd (ma) via hdmi without PAP on say a 4xxx series radeon?
madshi
4th October 2008, 19:57
After looking on ffmpeg mailing list, they advise to use libavformat to create the correct audio frames.
Sure they do. But it's not necessary if you have your own splitters. My eac3to tool has no problems whatsoever with any of the libav audio decoders, although eac3to doesn't use libavformat. I've simply written my own splitters instead.
I think the main reason why the Haali splitter works and the internal MPC splitter is not is that the Haali splitter "collects" data and tries to send full frames to the output pin. In contrast I think the MPC internal splitter sends every small data bytes forward as soon as it gets them. So with the MPC internal splitter you'll likely get small packages of 100 bytes each (or something like that). In order to make your ffdshow branch work with that you need to buffer the data internally until you have enough data available for at least one audio frame.
albain
4th October 2008, 22:56
Sure they do. But it's not necessary if you have your own splitters. My eac3to tool has no problems whatsoever with any of the libav audio decoders, although eac3to doesn't use libavformat. I've simply written my own splitters instead.
I think the main reason why the Haali splitter works and the internal MPC splitter is not is that the Haali splitter "collects" data and tries to send full frames to the output pin. In contrast I think the MPC internal splitter sends every small data bytes forward as soon as it gets them. So with the MPC internal splitter you'll likely get small packages of 100 bytes each (or something like that). In order to make your ffdshow branch work with that you need to buffer the data internally until you have enough data available for at least one audio frame.
This is what I did (i.e collecting full blocks before feeding the parser then the decoder then the renderer) but that did not make it.
For an unknown reason the parser rejets 1 blocks of 2 on my sample.
From the other hand, I spent some time studying libavformat and it appears that it would be useless for audio formats : libavformat constructs frames from the buffer for the parser for video streams only whereas audio buffers are sent directly to the parser.
So libavformat seems to be useful only for developing a "FFDShow splitter" which is not his role for now
albain
5th October 2008, 11:50
The buffer given by mplayerc splitter is not the same as haali's on a DTS sample. The beginning is the same but not the end :
Haali's buffer :
7FFE8001FC3C3ED275E0D3A098C63189CE73980002DB6DB6DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF400000000000000000195755555533110CCA88733CA86242222222222399710ECA86666444666553E864422222222222355E864222222222222200000000000015CD34
MPC's buffer :
7FFE8001FC3C3ED275E0D3A098C63189CE73980002DB6DB6DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40000000000000000019597577533330EA8886353EC82222222222222399710CA8886646668685732A884222222222222353C8844222222222222000000000000154D4D
nautilus7
5th October 2008, 14:00
The dts sample you got this buffer is a DTS-HD sample in a container (and which)?
I did some tests and realized that haali media splitter outputs the core of the DTS-HD track on m2ts and evo files, while it outputs the complete DTS-HD stream in mkv files only. MPC-HC's splitter outputs the full DTS-HD info. So i tried the next graphs:
m2ts: haali (dts core) --> libav --> ok
m2ts: mpc (dts-hd) --> libav --> problem
m2ts: mpc (dts-hd) --> libdts --> ok
mkv: haali (dts-hd) --> libav --> ok
evo: haali (dts core) --> libav --> ok
ffdshow is beta 10 because beta 11 doesn't work at all.
madshi
5th October 2008, 16:53
The buffer given by mplayerc splitter is not the same as haali's on a DTS sample. The beginning is the same but not the end
I think that must be 2 different frames. I'd suggest doing this:
(1) In ffdshow dump all the DTS input data into a test file.
(2) Use eac3to (or any other working demuxer) to extract the raw DTS data from the source file.
(3) Compare the ffdshow dump to the eac3to dump.
Do that with both Haali and MPC splitter. That might help finding out what's going on.
albain
5th October 2008, 18:14
I made my tests with a regular DTS sample (no DTS-HD blocks in it).
This is Bhack_Hawk_Down_LPCM_problem_Sample.ts (don't remember from whom I got it).
I tested it with MPC and then with windows media player (that uses Haali splitter)
I made deeper analysis, and the DTS headers are fine in both cases.
This is clearly a ffmpeg bug which does not know how to handle the subframes in all cases. I won't go further in the anlysis
However libdts is okay to decode those.
albain
5th October 2008, 18:18
I think that must be 2 different frames. I'd suggest doing this:
(1) In ffdshow dump all the DTS input data into a test file.
(2) Use eac3to (or any other working demuxer) to extract the raw DTS data from the source file.
(3) Compare the ffdshow dump to the eac3to dump.
Do that with both Haali and MPC splitter. That might help finding out what's going on.
Maybe but this is just the first buffer FFDShow receives in both cases.
EDIT : I spoke too quickly, actually the parser acts as the same way for Haali and MPC.
albain
5th October 2008, 18:40
I may have good news, but this must be confirmed : the problem comes from the input splitter that gives wrong information about the number of channels and the bitrate.
Making my own DTS parsing and updating the libavcodec structure seems to fix the problem
madshi
5th October 2008, 21:24
That makes a lot of sense. In my experience you can't trust the media type information of the input pin for compressed audio sources. All you can reliably (?) get from the media type information is which codec is being used. The media type information is reliable only for PCM, I think. E.g. just today I created a 7.1 AAC test encoding with the new Nero AAC encoder. Then I played that file back with the Nero DirectShow Audio Decoder. The source filter reported 7 channels (instead of 8).
albain
8th October 2008, 11:35
I have made a new build that should (I hope) decode all DTS formats including DTS in wav when using libavcodec
Here is the link :
http://rapidshare.com/files/152004436/ffdshow_rev2186_20081008_dbt_beta12.exe.html
However I have troubles to make TrueHD/MLP decoding work :
when I strip off MLP/TrueHD blocks (and keep AC3 blocks) to make decode by the AC3 decoder
or when I strip off AC3 blocks (and keep MLP/TrueHD blocks) to make decode by the MLP decoder
this does not work.
I hope to find the solution soon
STaRGaZeR
8th October 2008, 13:35
Testing the lastest beta now, it works! All DTS files and DTS in WAV also! Perfect.
However, this lastest betas are incomplete or something? Opening a video with ffdshow = crash, Vorbis = doesn't load, TTA = freeze. But DTS works now :p
rack04
8th October 2008, 14:11
Testing the lastest beta now, it works! All DTS files and DTS in WAV also! Perfect.
However, this lastest betas are incomplete or something? Opening a video with ffdshow = crash, Vorbis = doesn't load, TTA = freeze. But DTS works now :p
I get a crash too with ffdshow video.
albain
8th October 2008, 14:40
It should not.
Here is an updated version (with the last updates from the trunk).
I recompiled it completely
Link :
http://rapidshare.com/files/152044555/ffdshow_rev2186_20081008_dbt_beta12.exe.html
MatMaul
8th October 2008, 15:25
I've tested the mpeg-1 audio decoder of libavcodec and found a bug, i.e., the mp3 stream showed as mp2 @ info&cpu.
same "problem" here
otherwise everything works fine for me :)
rack04
8th October 2008, 15:33
It should not.
Here is an updated version (with the last updates from the trunk).
I recompiled it completely
Link :
http://rapidshare.com/files/152044555/ffdshow_rev2186_20081008_dbt_beta12.exe.html
This build works. Thanks.
STaRGaZeR
8th October 2008, 15:37
Nice, now everything works like it should. If I find any bug I'll post it.
EDIT: It seems there are still some files that will show mp2 instead of mp3.
albain
8th October 2008, 16:54
Nice, now everything works like it should. If I find any bug I'll post it.
EDIT: It seems there are still some files that will show mp2 instead of mp3.
Indeed, there was a bug, fixed in revision 2192
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.