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

Kurtnoise
4th November 2007, 17:03
@Clsid: ok, thanks. :)



Could someone compile a "test" version of ffdshow, containing the new Dolby E-AC3 and True-HD patches/decoders, from mplayer, like Kurtnoise13 did with his mplayer and ffmpeg builds?
not enough and can't be done for the moment...Clsid gave the answer just above.

clsid
4th November 2007, 17:23
I could add the EAC3 decoder to libavcodec. That's easy. Actually using it is a whole different case.

The problem is making ffdshow able to recognize EAC3. It must be able to see the difference between normal AC3 audio and EAC3. It should do so based on the information given by the source filter in the graph. To be precise, ffdshow selects the decoder based on the FourCC/AudioTag. If someone can tell me which tag is used by EAC3, then maybe there is a small chance that I can make it work.

cyberscott
4th November 2007, 18:15
OK, I bought long optical digital cable to connect to the AV-amp in the next room. I'll test as soon as I finish current stuff (AviSynth multiple line script problems).

:thanks:

honai
4th November 2007, 18:56
If someone can tell me which tag is used by EAC3, then maybe there is a small chance that I can make it work.

EAC3.

albain
6th November 2007, 08:26
Hi,

I have brought a few modifications to the AC3 encoding in revision 1595 : there was an issue with some HT receivers having no sound when "Maximize SPDIF compatibility" is unchecked.

So to people who had this issue : could you retest rev 1595 and untick the option (in codec section / AC3) ?

Otherwise, the new 7.1 matrix works for me in 5.1 but only when I select 3/0/2 mixing

albain
6th November 2007, 08:46
Raw video processing in WMP11 and Media Center is experimental and not very stable. Currently it does not work for me. I hope albain can fix it.

Hi haruhiko,

can you give me more details about your issue ?

Damien

haruhiko_yamagata
6th November 2007, 09:57
Hi haruhiko,

can you give me more details about your issue ?

DamienI'm sorry. It was my mistake as I wrote here (http://forum.doom9.org/showthread.php?p=1055072#post1055072).

haruhiko_yamagata
6th November 2007, 14:26
Hi,

I have brought a few modifications to the AC3 encoding in revision 1595 : there was an issue with some HT receivers having no sound when "Maximize SPDIF compatibility" is unchecked.

So to people who had this issue : could you retest rev 1595 and untick the option (in codec section / AC3) ?

Otherwise, the new 7.1 matrix works for me in 5.1 but only when I select 3/0/2 mixingI still need "Maximize SPDIF compatibility" checked. Otherwise no sound. Xp sp2.

haruhiko_yamagata
6th November 2007, 14:40
On Vista, if I choose Connect to: "DirectSound" and enable "Apply only to S/PDIF output", set Multichannel device: "SPDIF interface (SoundMAX Integrated Digital HD)", the player (MPC homecinema) freezes.
I don't know if this is ffdshow's problem or driver's problem. Can anybody reproduce?

albain
6th November 2007, 15:19
On Vista, if I choose Connect to: "DirectSound" and enable "Apply only to S/PDIF output", set Multichannel device: "SPDIF interface (SoundMAX Integrated Digital HD)", the player (MPC homecinema) freezes.
I don't know if this is ffdshow's problem or driver's problem. Can anybody reproduce?

This is due to the "Multichannel device" option : I didn't have the time to dig this around, but this option also causes me freezes when the device is not set to default.

Please try agin with "Maximize SPDIF compatibility" unchecked and Multichannel device set to default device

haruhiko_yamagata
6th November 2007, 15:23
Hi everyone, long time lurker, first time poster.
Thanks for all the hard work on ffdshow!

I have noticed that since the inclusion of 7.1 audio option, AC3 encoding no longer works via spdif using digital connection. It only outputs 2 channel PCM. This is regardless of of the speaker matrix chosen. Going back to builds prior to the 7.1 audio matrix addition, AC3 encoding works fine with digital out. Analog out works fine for the 7.1 matrix.I can't reproduce. Which version do you use? What does the OSD or Info (dialog Info & CPU page) say?

_xxl
6th November 2007, 19:45
New test build:
http://rapidshare.com/files/67886123/ffdshow_rev1595_20071106_xxl.zip.html
mulipleLinesScript patch by haruhiko_yamagata used.

wozio
6th November 2007, 20:44
The problem is making ffdshow able to recognize EAC3. It must be able to see the difference between normal AC3 audio and EAC3. It should do so based on the information given by the source filter in the graph. To be precise, ffdshow selects the decoder based on the FourCC/AudioTag. If someone can tell me which tag is used by EAC3, then maybe there is a small chance that I can make it work.

Here it is how haali connects to ffdshow using mkv with eac3:


- Connected to:

CLSID: {0F40E1E5-4F79-4988-B1A9-CC98794E6B55}
Filter: ffdshow Audio Decoder
Pin: In

- Connection media type:

Audio: Dolby AC3 48000Hz 6ch

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_DOLBY_AC3 {E06D802C-DB46-11CF-B4D1-00805F6CBBEA}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 0
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 18

WAVEFORMATEX:
wFormatTag: 0x0000
nChannels: 6
nSamplesPerSec: 48000
nAvgBytesPerSec: 0
nBlockAlign: 0
wBitsPerSample: 0
cbSize: 0 (extra bytes)

pbFormat:
0000: 00 00 06 00 80 bb 00 00 00 00 00 00 00 00 00 00 ....€»..........
0010: 00 00 ..

- Enumerated media type 0:

Set as the current media type

- Enumerated media type 1:

Audio: 0xeac3 48000Hz 6ch

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {0000EAC3-0000-0010-8000-00AA00389B71}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 0
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 18

WAVEFORMATEX:
wFormatTag: 0xeac3
nChannels: 6
nSamplesPerSec: 48000
nAvgBytesPerSec: 0
nBlockAlign: 0
wBitsPerSample: 0
cbSize: 0 (extra bytes)

pbFormat:
0000: c3 ea 06 00 80 bb 00 00 00 00 00 00 00 00 00 00 Ăę..€»..........
0010: 00 00 ..


Both ffdshow and ac3filter connects to it but freezes on first frame. As far as I remember haali reports the same when splitting evo file.

Regards
Piotr Wozniak

clsid
6th November 2007, 21:52
Two media types instead of just one. Weird.

This is too complex for me. I won't be wasting my time on something that I probably can't get working.

Maybe Haruhiko or one of the other skilled people here can adapt ffdshow to recognize it.

haruhiko_yamagata
7th November 2007, 00:13
New test build:
http://rapidshare.com/files/67886123/ffdshow_rev1595_20071106_xxl.zip.html
mulipleLinesScript patch by haruhiko_yamagata used.
Thank you.
I have written a patch to fix multiple lines AviSynth script problem.
Both upgrade and downgrade are supported without breaking the script. Export to registry, export to .ffpreset, save to .GRF in graphedit and ffavisynth.dll-ffdshow() options are supported. Please test.
Here's the patch (http://ffdshow-tryout.sourceforge.net/html/jp/tempimg/mulipleLinesScript.patch).

cyberscott
7th November 2007, 02:18
I can't reproduce. Which version do you use? What does the OSD or Info (dialog Info & CPU page) say?

OSD says...Input description 48000 Hz stereo 160 kbps MP3 (mp3lib)

Output: 48000 Hz 8 channels 16 bit integer
Output Speakers: L,R,C,LFE, SL, SR, side left, side right

I've used both clsid and xxl builds 1578 and 1589 generic, icl10 builds, with the same lack of AC3 encoding. (for testing purposes, I'm currently using ffdshow_rev1589_20071031_clsid_sse_icl10.exe

With spdif enabled in the codec page, output set to AC3 encoding, ffdshow only outputs 2 channel pcm via my digital out. I've tried connecting using direct sound or wave out, no change. If I go back and use an earlier build such as 1530, ac3 encoding works fine via digital out. And of course, using analog out, it works fine.

I am using Windows xp pro with the latest updates. My sound card is the Auzen Prelude 7.1

:thanks:

albain
7th November 2007, 08:53
OSD says...Input description 48000 Hz stereo 160 kbps MP3 (mp3lib)

Output: 48000 Hz 8 channels 16 bit integer
Output Speakers: L,R,C,LFE, SL, SR, side left, side right

I've used both clsid and xxl builds 1578 and 1589 generic, icl10 builds, with the same lack of AC3 encoding. (for testing purposes, I'm currently using ffdshow_rev1589_20071031_clsid_sse_icl10.exe

With spdif enabled in the codec page, output set to AC3 encoding, ffdshow only outputs 2 channel pcm via my digital out. I've tried connecting using direct sound or wave out, no change. If I go back and use an earlier build such as 1530, ac3 encoding works fine via digital out. And of course, using analog out, it works fine.

I am using Windows xp pro with the latest updates. My sound card is the Auzen Prelude 7.1

:thanks:

As far as I know liba52 is not able to encode more than 5+1 channels in AC3 (I am not sure about that but I remember such limits in the code).
If you select 3/0/2 mixing it should work
I also brought a few corrections to AC3 encoding on revision 1595

wozio
7th November 2007, 08:54
Two media types instead of just one. Weird.
Yes, weird. I will try ask haali about it. It should not be like that, normal AC3 should not be reported at all as far as I understand it.

Regards
Piotr Wozniak

haruhiko_yamagata
7th November 2007, 09:53
Output: 48000 Hz 8 channels 16 bit integer
Output Speakers: L,R,C,LFE, SL, SR, side left, side rightAs albain pointed, AC3 can't encode 8 channels. Automatic down-mixing is desirable though.

_xxl
7th November 2007, 11:21
As far as I know liba52 is not able to encode more than 5+1 channels in AC3
I think that libavcodec ac3enc is used not liba52 to encode.

Kado
7th November 2007, 12:25
I was thinking of translating ffdshow to Portuguese from Portugal but there's no English base file for me to start with, I've searched both the trunk and the installation folder but the files only say "English". Can some one provide something for me?

clsid
7th November 2007, 12:40
Translation tutorial:
http://forum.doom9.org/showthread.php?t=86030

haruhiko_yamagata
7th November 2007, 12:58
@albain
Please read this thread (https://sourceforge.net/forum/message.php?msg_id=4610600).
Do you have any reason to use LPCM16 when AC3 output is enabled && Encode only multichannel stream is checked && nchannels<6?
PCM16/24/32 are more stable format for my system. I would be better if fail over format were configurable.

Leak
7th November 2007, 13:01
I was thinking of translating ffdshow to Portuguese from Portugal but there's no English base file for me to start with, I've searched both the trunk and the installation folder but the files only say "English". Can some one provide something for me?
Using regedit, navigate to HKEY_CURRENT_USER\Software\GNU and set the DWORD translateMode in each of the subkeys (ffdshow, ffdshow_audio, ffdshow_enc etc.) to 1.

Now switch your language to Portuguese (copy the file for the English "translation", ffdshow.1033.en, to ffdshow.2070.pt (I think that's the correct name) first if needed) then right click on any control to translate it's text.

You can edit the resulting file and add anything that's still missing afterwards. :)

Don't forget to switch translateMode back to 0 afterwards, as it'll prevent controls from being disabled and makes control groups look a bit weird... ;)

EDIT: Yeah, basically what clsid said... :D

Kado
7th November 2007, 13:08
Thanks for the tips.

albain
7th November 2007, 14:08
@albain
Please read this thread (https://sourceforge.net/forum/message.php?msg_id=4610600).
Do you have any reason to use LPCM16 when AC3 output is enabled && Encode only multichannel stream is checked && nchannels<6?
PCM16/24/32 are more stable format for my system. I would be better if fail over format were configurable.

I don't use this feature but I developped it from a feature request
From what I remember, the need was not to encode the stream in AC3 if this is a PCM non multichannel stream.
The argument was that AC3 is a compressed format and alters the quality of the source so it should be used only when necessary (i.e when the source is multichannel).
So the algorithm is the following : if "encode only multichannel stream" checked AND input channels < 6 then switch back to LPCM16

From what I understand, beta 3 and previous versions of ffdshow worked correctly but with the most recent versions of ffdshow there are some crash

Maybe this is due to the fact that there is a change of output format (AC3 to LPCM16) during the graph processing

haruhiko_yamagata
7th November 2007, 14:39
I don't use this feature but I developped it from a feature request
From what I remember, the need was not to encode the stream in AC3 if this is a PCM non multichannel stream.
The argument was that AC3 is a compressed format and alters the quality of the source so it should be used only when necessary (i.e when the source is multichannel).
So the algorithm is the following : if "encode only multichannel stream" checked AND input channels < 6 then switch back to LPCM16

From what I understand, beta 3 and previous versions of ffdshow worked correctly but with the most recent versions of ffdshow there are some crash

Maybe this is due to the fact that there is a change of output format (AC3 to LPCM16) during the graph processingThank you for explanation.
LPCM and PCM are differently accepted by the audio renderer.
The audio renderer does not accept LPCM at all.

wozio
7th November 2007, 15:27
Regarding EAC3 decoding in ffdshow. As posted here (http://forum.doom9.org/showthread.php?p=1062873#post1062873) there is problem with connecting to EAC3 media type since it is reported as plain AC3. I asked haali about this:

Why splitter enumerates AC3 as first media type on output pin? Shouldn't be only EAC3 since that kind of stream is in mkv? Could you please clarify it?

Existing eac3 decoders (sonic, etc.) don't use or support a special media type for eac3. The 0xeac3 waveformat that I use is purely for my enjoyment and is not used by any software afaik.

So how decoders know that stream is eac3? Now ffdshow or ac3filter connects as to ac3 and hangs.

I suppose they just check the bsid in frame headers and can decode each frame with either decoder.

Maybe this will help integrating EAC3 decoding into ffdshow.

I would really like to have EAC3 deocding in ffdshow...

Regards
Piotr Wozniak

wozio
7th November 2007, 15:36
One more thing: since EAC3 should be backward compatible with AC3, so existing AC3 decoders are capable of decoding AC3 stream embeded in EAC3, then maybe it is good place to start just to ignore EAC3 samples and decode only AC3 ones...

Regards
Piotr Wozniak

sysKin
7th November 2007, 15:46
Heyhey,

I've been having an annoying issue with ffdshow for quite some time - it adds black borders to everything it displays. The borders are 6 pixels on right/left and 4 pixels on top/bottom, and are completely black (zero luma, I haven't checked chroma).

From what I can see the borders don't come from cropping the video but from *resizing* it down. This is particularly a problem with interlaced stuff.

Anyone knows what I can do about it? Is it known? Any workarounds?

Thanks

madshi
7th November 2007, 15:51
One more thing: since EAC3 should be backward compatible with AC3, so existing AC3 decoders are capable of decoding AC3 stream embeded in EAC3, then maybe it is good place to start just to ignore EAC3 samples and decode only AC3 ones...
There are no AC3 samples in an E-AC3 stream. E-AC3 is not backwards compatible.

Liisachan
7th November 2007, 16:54
If someone can tell me which tag is used by EAC3, then maybe there is a small chance that I can make it work. I personally don't need this EAC-3 thing, but

- Waveformatex, FormatTag = 0x2000
- [There may or may not be junk bytes after the header*]
- 0b 77 <--syncword (AC3 header) // look for them
- 3 bytes to skip
- this byte <-- here // (byte>>3)==8 for standard ac3, ==16 for enhanced one

Or, you may want to get it straight from horse's mouth :)
http://www.atsc.org/standards/a_52b.pdf

*You might have to scan more than 1 chunks, because in the worst situation, at least in theory, you can't find the syncword at all in the 1st chunk, for example when a simple-minded muxer zero'ed it out trying to set audio delay that way.

SeeMoreDigital
7th November 2007, 17:24
There are no AC3 samples in an E-AC3 stream. E-AC3 is not backwards compatible.What a shame....

Seems like a missed opportunity for the E-AC3 decoder filter not to support regular AC3 streams too :(

khagaroth
7th November 2007, 19:53
I was thinking of translating ffdshow to Portuguese from Portugal but there's no English base file for me to start with, I've searched both the trunk and the installation folder but the files only say "English". Can some one provide something for me?

A file with all the translatable strings would be really nice. I know about the translation mode and it is nice for initial translation (I'm just finishing Czech translation, should be ready this weekend), but it's almost unusable for tracking down changes between versions. GUI strings don't get updated/changed that frequently, but if they do, it's a pita to to find out what actually changed.

madshi
7th November 2007, 22:19
FWIW, I've managed to decode an E-AC3 sample with ffmpeg and it works ok, but there are 2 problems:

(1) Decoding seems to be always 16bit? Not sure, at least that's what I got without changing any options. But maybe it's possible to force 24bit decoding somewhere somehow. I'm a beginner with using libavcodec.

(2) The ffmpeg decoded E-AC3 file plays slightly distorted. The same E-AC3 sample file is not distorted when decoding with Nero's E-AC3 decoder.

So as far as I can see, ffmpeg's E-AC3 decoding support is not ready to go yet. I also tried getting the TrueHD/MLP decoder to work, but failed. It did extract one audio frame sometimes but then stopped working.

I think we need to have some patience. And I think ffdshow doesn't need to hurry with adding E-AC3 and TrueHD/MLP support. The decoders first need to become stable.

yesgrey
7th November 2007, 23:08
I was thinking of translating ffdshow to Portuguese from Portugal but there's no English base file for me to start with, I've searched both the trunk and the installation folder but the files only say "English". Can some one provide something for me?

Kado, would you like some help?

Kado
7th November 2007, 23:44
I have translated the audio decoder dialog already, maybe I missed some stuff. That translation system may impose some difficulties like khagaroth said but hey, that's the one we've got right now... Thanks for the help guys. You may see some real Portuguese translation soon! :)

foxyshadis
8th November 2007, 01:20
What a shame....

Seems like a missed opportunity for the E-AC3 decoder filter not to support regular AC3 streams too :(

AC3's more complex than DTS, so building another lossy format around an AC3 core would be much harder than just boosting the bitrate. (Not that I think it's a bad idea. AAC would still be a better idea, hrmph.) DTS is practically just ADPCM, you can add and peel bits from it the way vorbis was originally designed to.

TrueHD is lossless AC3, on the other hand, similar to the Wavpack hybrid concept.

Inventive Software
8th November 2007, 03:13
TrueHD is lossless AC3, on the other hand, similar to the Wavpack hybrid concept.

Technically, that's incorrect. TrueHD is based on MLP, and happens to have an AC3 track in it that can be used when there's no support for MLP decoding. It's like having an MKA (Matroska Audio) with FLAC and AAC audio files. Just a small clarification before the wrong info goes out. ;)

foxyshadis
8th November 2007, 03:28
Oh really? Huh, odd that they wouldn't just have them as separate tracks then, must be a marketing thing.

cyberscott
8th November 2007, 03:59
As far as I know liba52 is not able to encode more than 5+1 channels in AC3 (I am not sure about that but I remember such limits in the code).
If you select 3/0/2 mixing it should work
I also brought a few corrections to AC3 encoding on revision 1595

I did try xxl's revision 1595 and low and behold, ac3 encoding works again! :) I did roll back to the other builds that included the 7.1 audio matrix and did set them to 5.1 channels and below and I still could not get ac3 encoding, only 2 channel PCM via spdif.

Whatever modifications/corrections you did in revision 1595 for AC3 worked for me. :)

:thanks:

wozio
8th November 2007, 08:22
I think we need to have some patience. And I think ffdshow doesn't need to hurry with adding E-AC3 and TrueHD/MLP support. The decoders first need to become stable.

Maybe avoiding hanging when EAC3 received is good idea to implement until decoders will be stable. Now ffdshow always connect to EAC3 stream and hangs what is a bit annoying, better would be to just no sound at all with some indication in info panel.

madshi
8th November 2007, 09:08
Oh really? Huh, odd that they wouldn't just have them as separate tracks then, must be a marketing thing.
I think they're doing it this way to make things easier for the end user. The end user only sees one track "English" which he chooses. Now the Blu-Ray player can decide itself whether to playback the AC3 or the TrueHD track, depending on which decoders it has inside. I think this approach makes sense.

Btw, the AC3/TrueHD mixed tracks are only found on Blu-Ray. On HD DVD TrueHD tracks don't have any AC3 frames mixed in.

yesgrey
8th November 2007, 12:03
You may see some real Portuguese translation soon! :)

The portuguese from Brazil is also real portuguese. Slightly different from the Portugal one, just that.

Kado
8th November 2007, 15:19
The Portuguese from Brazil is also real Portuguese. Slightly different from the Portugal one, just that.

When I read something in Brazilian Portuguese something just seems wrong, maybe it's like American English and British English.
Example:
Windows "log of" message
EN: "Windows is logging of."
PT-BR:"Windows está fazendo log of"
PT-PT:"Windows está a terminar a sessao"

If I was Brazilian and couldn't understand English I would not understand that PT-BR message. If you can understand Portuguese you'll understand what I mean.

Sorry for the off topic stuff.

Rash
8th November 2007, 16:26
Kado, people here just prefer the english technical terms associated with computers. It is really not because we crave for foreign words, but mostly because we are used to them. So we have verbs (with full conjugation) like:

downloadar (fazer download, baixar)
logar (fazer log on)
deletar (apagar, remover)
resetar (zerar, reiniciar)
rebootar (reiniciar o PC)

And so on. Sorry for the offtopic. ;)

Kado
8th November 2007, 19:25
I'm full aware of those terms because I use them myself but I don't think they should be used regarding the translation of ffdshow when you are making the translation accessible to everyone and not just to the more pc expert (like us who are browsing and posting in these forums), it's just my opinion. Anyway eventually the translation will be completed and you guys can give an opinion about it... or not! ;)

P.S.=> Looks like there are more Portuguese speaking people here than I imagined after all!:) Fiquem bem!

Adub
8th November 2007, 19:50
Just letting you guys know, the ffavisynth.avsi placed in my plugins folder during the install seems to crash my Avisynth everytime I try to open, say, a d2v file.

yesgrey
8th November 2007, 21:29
Kado, I understand you. I'm also portuguese. The use of foreign words is also a current practice with us. Maybe the brazillian use it a bit more, but we also use it sometimes... For instance the verb "zipar". Don't tell me you never used it?:)

Just tell us when you're translation is ready and I will be very pleased in giving you my opinion/suggestions. I only don't promise to use it, because I prefer the english terms.

Delerue
9th November 2007, 09:07
If I was Brazilian and couldn't understand English I would not understand that PT-BR message. If you can understand Portuguese you'll understand what I mean.

Like Rash and yesgrey3 said, brazilian people can full understand that translation (both indeed). I'm a brazilian guy, and I can guarantee you. ;)