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

martino
14th September 2008, 19:53
This is perhaps a bit slightly offtopic, however I'd like to know whether anyone has tried to run ffdshow in wine and managed to get huffyuv (yv12) vfw decoding working. It installed fine for me, but I can't change any of the dropdown boxes (yet the registry entries seem to be set on 1) which results in a "couldn't locate a decompressor for fourcc ffds in VDub. Any help would be greatly appreciated. Thanks.

yesgrey
14th September 2008, 21:36
I got a question about resampling in ffdshow audio.

I find libavcodec to sound better than libsamplerate.

but was ffdshow updated with the recent updates from March and July ?
http://www.mega-nerd.com/SRC/history.html

would that be doable ?

thanks,

No it wasn't. I have looked now in svn and it's the old code.
I will take a look to see if I could update the code. If I could, I will create the new files and then I will request here some help on how to do it in the svn...

nautilus7
14th September 2008, 21:41
clsid was against this update: http://forum.doom9.org/showthread.php?t=138534

pitch.fr
14th September 2008, 22:06
home about some crazy packing ? like .7z ?
or some optional component ?

I can pack the Resampler.dll from Reclock to 480k with Winrar, so the diff with the older version wouldn't be 800k ?!

rickardk
14th September 2008, 22:50
No it wasn't. I have looked now in svn and it's the old code.
I will take a look to see if I could update the code. If I could, I will create the new files and then I will request here some help on how to do it in the svn...

I hope he reconsider as their is a big diffrence in sq.

yesgrey
14th September 2008, 23:55
I have finished the look at the code and it seems to be a very easy thing to do. The difference in sound quality from the old to the new is very big, especially using the best mode. I hope clsid reconsiders the change. I understand his point of view, but only if the quality diference was small.
He could always test reclock with the new resampler and test for himself if the quality improvement justifies the change...

Liisachan
15th September 2008, 05:12
@pitch.fr
btw did you read this recent post of Inventive Software?
BTW, I think libmad MP3 decoding is partially broken in ffdshow. I'm on 2073 IIRC, and I have a 44100Hz 16-bit file in an AVI that was resampled from 48000Hz 16-bit in VirtualDub. It exhibits clicks and pops alongside the normal audio, but the built-in Windows DShow Decoder (Fraunhofer IIRC) plays it back without problems.

see? libmad is not really reliable, it's as broken as hell in mplayer too, and the worst part of this is there's practically no one, especially no original libmad developer, to fix any bug...

And this is ffdshow's default mp3 decoder...:confused:

tal.aloni
15th September 2008, 06:04
Hello Albain,
first, thanks for all of your your efforts.
I waited a while for a free E-AC3 Codec, and I'm glad it's finally here. (ffdshow is great in general)

Just making sure you know, I'm currently using rev 2124 beta3, and the channel mapping problem is still present in 5.1 sources. (libavcodec)

unfortunately, swapping channels isn't a real workaround.
(since other sources doesn't have the wrong input mapping in the first place)

Note:
1. the problem is gone when liba52 is doing the decoding.
2. the problem does not exit when utilizing libavcodec using eac3to.

I can provide some AC3 / E-AC3 samples if needed (dolby setup tests)

Thanks,
Tal Aloni

nautilus7
15th September 2008, 06:35
2. the problem does not exit when utilizing libavcodec using eac3to.

Wrong. Libav does outputs channels with incorrect order and eac3to does it's own remapping after the decoding.

It's a general problem of the libav decoder.

tal.aloni
15th September 2008, 07:16
Wrong. Libav does outputs channels with incorrect order and eac3to does it's own remapping after the decoding.

It's a general problem of the libav decoder.

Thanks for the clarification.

Tal Aloni

CiNcH
15th September 2008, 08:16
Hey guys, is someone into MP3 parsing/decoding? We have implemented MP3 support into our splitter. What we do is splitting the MP3 Elementary Stream into 2K IMediaSamples and send them downstream. Now ffdshow fails to reconstruct the MP3 frames on some VBR files and introduces hiccups. It works properly with the Fraunhofer MP3 decoder coming with MS Windows.
MPA Audio Decoder shows the same effect as certain things within the OpenSource community seem to have spread ;) .

We then implemented a frame parser into the splitter and send them downstream which works around the problem. But this introduces a major flaw into our design.

Conclusion is that ffdshow tries to rebuild frames but fails somewhere, the decoder itself seems to work properly. Is it possible that the padding field within the MP3 header is not evaluated? Padding bytes are especially common with 44.1 kHz files where the encoder sometimes "fails" to meet frame length.

If you like I could provide player + splitter + sample. Just tell me who is in charge of that and is willing to solve the issue. I would be more than happy to contribute.


BTW, I am currently working with Haruhiko Yamagata to solve the NALU/frame thing for H.264/VC-1. A parser is indeed missing in this case only supporting Haali and MPC splitters..

albain
15th September 2008, 10:35
Still no sound with: cine.premier.hd.astra.19e.05.feb.2008.ts.
Dca is crashing with: x264.dts.sample.mkv
http://rapidshare.com/files/144998756/samples.7z.html

Crashing problem was due to a bad linking. It is working now.

Concerning your no sound issue, this is quite a problem because on this AC3 2 channels stream the parser seems to clean all the stream before feeding the decoder...

albain
15th September 2008, 10:41
If I disable the parser for 2 channels stream, it is working. :confused: weird

The parser can parse only multichannel streams ? (at least for AC3)

EDIT : actually, the parser works great for some 2 channels AC3 streams (Test_LibavAC3.avi), but not for some others (cine.premier.hd.astra.19e.05.feb.2008.ts from xxl)

By the way it would be great to have the channel remapping code if available (I don't have any HT receiver to make this fix)

madshi
15th September 2008, 10:53
By the way it would be great to have the channel remapping code if available (I don't have any HT receiver to make this fix)
Here's what eac3to is doing:

procedure RemapAc3ChannelsLibav;
begin
case audioDetails.Channels of
3 : if audioDetails.ChannelStr = '3/0' then
source.AddChildUpStream(ChannelMapper('0,2,1,3,4,5'));
4 : if audioDetails.ChannelStr = '2/1.1' then
source.AddChildUpStream(ChannelMapper('0,1,3,2,4,5'))
else
if audioDetails.ChannelStr = '3/0.1' then
source.AddChildUpStream(ChannelMapper('0,2,1,3,4,5'))
else
if audioDetails.ChannelStr = '3/1' then
source.AddChildUpStream(ChannelMapper('0,2,1,3,4,5'));
5 : if audioDetails.ChannelStr = '2/2.1' then
source.AddChildUpStream(ChannelMapper('0,1,4,2,3,5'))
else
if audioDetails.ChannelStr = '3/1.1' then
source.AddChildUpStream(ChannelMapper('0,2,1,4,3,5'))
else
if audioDetails.ChannelStr = '5.0' then
source.AddChildUpStream(ChannelMapper('0,2,1,3,4,5'));
6 : source.AddChildUpStream(ChannelMapper('0,2,1,5,3,4'));
end;
end;

procedure RemapDtsChannelsLibav;
begin
case audioDetails.Channels of
3 : if audioDetails.ChannelStr = '3.0' then
source.AddChildUpStream(ChannelMapper('1,2,0,3,4,5'));
4 : if audioDetails.ChannelStr = '2/1.1' then
source.AddChildUpStream(ChannelMapper('0,1,3,2,4,5'))
else
if audioDetails.ChannelStr = '3.1' then
source.AddChildUpStream(ChannelMapper('1,2,0,3,4,5'))
else
if audioDetails.ChannelStr = '3/1' then
source.AddChildUpStream(ChannelMapper('1,2,0,3,4,5'));
5 : if audioDetails.ChannelStr = '2/2.1' then
source.AddChildUpStream(ChannelMapper('0,1,4,2,3,5'))
else
if audioDetails.ChannelStr = '3/1.1' then
source.AddChildUpStream(ChannelMapper('1,2,0,4,3,5'))
else
if audioDetails.ChannelStr = '5.0' then
source.AddChildUpStream(ChannelMapper('1,2,0,3,4,5'));
6 : if audioDetails.ChannelStr = '5.1' then
source.AddChildUpStream(ChannelMapper('1,2,0,5,3,4'))
else
source.AddChildUpStream(ChannelMapper('1,2,0,3,4,5'));
7 : source.AddChildUpStream(ChannelMapper('1,2,0,5,3,4'));
8 : source.AddChildUpStream(ChannelMapper('1,2,0,5,3,4'));
end;
end;
This is for a quite old libav build, but I guess it should still be correct for the latest build, too. Channel remapping for AC3 and E-AC3 should be identical.

nautilus7
15th September 2008, 11:16
Concerning your no sound issue, this is quite a problem because on this AC3 2 channels stream the parser seems to clean all the stream before feeding the decoder...
I demuxed the ac3 track from the "cine.premier.hd.astra.19e.05.feb.2008.ts" file with eac3to. The ac3 plays just fine.

I have to say that some of these samples that produce problems are "weird". I can't tell if this could be the problem here, but eac3to reports a delay of 7secs for this .ts file which sounds uncommon for a cut sample. :confused:

albain
15th September 2008, 11:22
Thank you madshi, I will try to implement your code

Concerning this sample, I agree that the sample may be weird, but the libavcodec parser seems be too buggy too : it wipes out too many bytes, whereas this file doesn't need to be parsed at all (works great if directly passed to the decoder)

albain
15th September 2008, 13:31
Crashing on the DTS file occurs in ff_imdct_half_sse function.

I had the same error a while ago and it was fixed by installing a previous version of binutils, but here it goes again

_xxl
15th September 2008, 13:37
Crashing on the DTS file occurs in ff_imdct_half_sse function.

I had the same error a while ago and it was fixed by installing a previous version of binutils, but here it goes again

I'm using previous version of binutils. Can you share your mingw environment?

albain
15th September 2008, 13:52
I'm using previous version of binutils. Can you share your mingw environment?

MSYS 1.0.11(0.46/3/2) 2007-01-12 12:05 i686 unknown; targ=MINGW32
Target: mingw32
Configured with: ../gcc-4.2.4/configure --prefix=/mingw --host=mingw32 --target=mingw32 --build=mingw32 --enable-languages=c,ada,c++,fortran,objc,obj-c++ --disable-nls --disable-win32-registry --enable-libgomp --disable-werror --enable-threads --disable-symvers --enable-cxx-flags=-fno-function-sections -fno-data-sections --enable-fully-dynamic-string --enable-sjlj-exceptions
Thread model: win32
gcc version 4.2.4 (TDM-1 for MinGW)
binutils-2.17.50-20060824-1

albain
15th September 2008, 14:01
The file also crash with mplayer (and also plays fine with no optimization) :
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders


MPlayer interrupted by signal 11 in module: init_audio_codec
- MPlayer crashed by bad usage of CPU/FPU/RAM.
Recompile MPlayer with --enable-debug and make a 'gdb' backtrace and
disassembly. Details in DOCS/HTML/en/bugreports_what.html#bugreports_crash.
- MPlayer crashed. This shouldn't happen.
It can be a bug in the MPlayer code _or_ in your drivers _or_ in your
gcc version. If you think it's MPlayer's fault, please read
DOCS/HTML/en/bugreports.html and follow the instructions there. We can't and
won't help unless you provide this information when reporting a possible bug

_xxl
15th September 2008, 14:01
binutils-2.17.50-20060824-1
I was using binutils-2.17.50-20070129-1.
Thanks!

albain
15th September 2008, 18:05
Here is a new build with I hope the wrong channels mapping fixed.

If this is not the case, please tell me the expected mapping, and the actual one.

http://rapidshare.com/files/145520560/ffdshow_rev2131_20080915_dbt_beta4.exe.html

Concerning the crashing on DTS, this is definetely a compilation problem (binutils/gcc version) or a ffmpeg bug.
I tried binutils 2.17 & 2.18, same problem.
Disabling mmx optimization solves the problem.

tal.aloni
15th September 2008, 21:19
Here is a new build with I hope the wrong channels mapping fixed.


Hey Albain,
I'm glad you're working on the problem,
I've tested you're latest build, but I still have problems with mappings:

5.1 channels:
Front Left Channel (1) > Front Left Speaker (1)
Front Right Channel (2) > Front Right Speaker (2)
Center Channel (3) > Surround Left (5)
LFE Channel (4) > Surround Right Speaker (6)
Surround Left Channel (5) > Center Speaker (3)
Surround Right Channel (6) > LFE Speaker (4)

Thanks a lot,
Tal Aloni

nautilus7
15th September 2008, 22:00
Yes, I confirm the above wrong mapping for both AC3 and E-AC3.

It was L,RS,C,R,LS,LFE
It is now L,R,LS,RS,C,LFE
It should be L,R,C,LFE,LS,RS

Inventive Software
16th September 2008, 09:57
Hey Albain,
I'm glad you're working on the problem,
I've tested you're latest build, but I still have problems with mappings:

5.1 channels:
Front Left Channel (1) > Front Left Speaker (1)
Front Right Channel (2) > Front Right Speaker (2)
Center Channel (3) > Surround Left (5)
LFE Channel (4) > Surround Right Speaker (6)
Surround Left Channel (5) > Center Speaker (3)
Surround Right Channel (6) > LFE Speaker (4)

Thanks a lot,
Tal Aloni

The mapping on the left is for WAV only, the one on the right is for AC-3.

nautilus7
16th September 2008, 23:45
What do you mean by this?

Every decoder should output the same channel order (this the "wav" channel order), or else we 'll have to change the speaker's configuration each time we listen to a different audio format. We don't care what is the order of the channels inside the tracks. We just need them to be decoded in the same order.

Zep
16th September 2008, 23:52
Hi I just installed ffdshow_rev2110_20080908_clsid.exe and I have a few questions about subtitles.


for ffdshow subs to work I have to

Subtitle-Vobsob-enabled correct? I ask because I can't get subs to work other wise and it seem redundant to have.
Subtitle-enabled then have to have also have Subtitle-Vobsob-enabled unless you can turn off vobsub and still get subs working. I need both enabled?


With both enabled because that is only way I can see subs I am unable to change the rendering in 2 areas no matter what I try. the areas being

Subtitle-text
Subtitle-font

nothing changes. I even apply then restart MPC after each change to make sure but still nothing changes. I tried other players and same thing happens. So I do no think it is a MPC thing but I'm not 100% sure.

I do not have the external vobsub older stand alone or the VSFilter.dll as I only want this handled by ffdshow.

Subtitles-Vobsub area everything does work there but I want to change font and text formats as well. Right now I am stuck with white only subs in Arial. Am I doing something wrong or missing a step?



Thanks

Anima123
17th September 2008, 04:38
When enable dolby decoder, it still affect with plain stereo audio, which could get unwanted sound if the stereo audio track already does rear channels delay when convert from original 5.1 track. I wonder if we can add an option to make it not affect when rear channels are not fed.

Note: I've got only stereo speaker setup, thus no need to change stereo track up to 5.1 channels.

Snowknight26
17th September 2008, 05:43
I only just recently noticed that ffdshow doesn't include any decoders for WMA lossless. Are there any decoders that can do it (I can only dream of libavcodec) that could perhaps be included in ffdshow?

ACrowley
17th September 2008, 08:18
I only just recently noticed that ffdshow doesn't include any decoders for WMA lossless. Are there any decoders that can do it (I can only dream of libavcodec) that could perhaps be included in ffdshow?

WMAudiodecoder DMO can handle WMA 9 lossless ,but not ffdshow/libavcodec
But you can process any Audio with ffdshowaudio processor "behind" WMAudioDecoder

Inventive Software
17th September 2008, 10:45
I only just recently noticed that ffdshow doesn't include any decoders for WMA lossless. Are there any decoders that can do it (I can only dream of libavcodec) that could perhaps be included in ffdshow?

Funny you should mention that, I posted something on the ffmpeg-devel mailing list asking much the same thing, and the response I got was "if you know or can get the bitstream specifications, we can implement it". MS has the source code licensing for $5000. :)

What do you mean by this?

Every decoder should output the same channel order (this the "wav" channel order), or else we 'll have to change the speaker's configuration each time we listen to a different audio format. We don't care what is the order of the channels inside the tracks. We just need them to be decoded in the same order.

I wasn't aware it worked like that. All I know is that LFE 4th as channel is WAV, 6th properly is Dolby Digital.

clsid
17th September 2008, 12:04
for ffdshow subs to work I have to

Subtitle-Vobsob-enabled correct? I ask because I can't get subs to work other wise and it seem redundant to have.
Subtitle-enabled then have to have also have Subtitle-Vobsob-enabled unless you can turn off vobsub and still get subs working. I need both enabled?


With both enabled because that is only way I can see subs I am unable to change the rendering in 2 areas no matter what I try. the areas being

Subtitle-text
Subtitle-font
There are different kinds of subtitles. Text based and image based (VobSubs). It is a separate option because vobsubs do not always work properly with ffdshow.

The text/font options only apply to text based subtitle formats (like SRT) and not to vobsubs.

pitch.fr
17th September 2008, 12:44
I hope he reconsider as their is a big diffrence in sq.
so what do you say CLSID ?
you can compare Reclock 1.7b4 and 1.809 to witness the huge quality improvement.

maybe using some 7z/RAR packing could fix the size issue ?

I can compress the new Reclock DLL to 400k with winRAR.

Thanks,

Snowknight26
17th September 2008, 18:52
Funny you should mention that, I posted something on the ffmpeg-devel mailing list asking much the same thing, and the response I got was "if you know or can get the bitstream specifications, we can implement it". MS has the source code licensing for $5000. :)

So I guess the foobar2000 devs must have coughed up that much sometime or another. :p

Zep
17th September 2008, 19:17
There are different kinds of subtitles. Text based and image based (VobSubs). It is a separate option because vobsubs do not always work properly with ffdshow.

The text/font options only apply to text based subtitle formats (like SRT) and not to vobsubs.

ok I am beginning to understand lol

Anyway, I see the 2 formats in the avi dir are

.idx
.sub

how do I go about changing font and font collor and font size then? I see in the .idx many things that look tweakable haha but surely there is a better way than to change this stuff?



thanks

clsid
17th September 2008, 19:29
.idx/.sub are VobSubs. You can't change the font.

pitch.fr
17th September 2008, 19:41
@clsid : should I take your silence as a "no" ?

albain
17th September 2008, 22:25
Finally, the channel order seems to be correct for AC3/EAC3/Vorbis/AAC multichannel streams using libavcodec

Here is a test build :
http://rapidshare.com/files/146146686/ffdshow_rev2131_20080915_dbt_beta5.exe.html

Anima123
18th September 2008, 01:40
AAC decoder still won't work with albain's beta5.

Zep
18th September 2008, 04:10
.idx/.sub are VobSubs. You can't change the font.

wow that sucks. I guess I am stuck installing the old external vobsub since at least I can change the font color and stretch/squish the font with that version.


thanks

rack04
18th September 2008, 04:23
AAC decoder still won't work with albain's beta5.

Works here.

Kurtnoise
18th September 2008, 07:13
.idx/.sub are VobSubs. You can't change the font.
you are wrong here...you can change the font and/or colors from vobsub files as well with SubtitleCreator.

AAC decoder still won't work with albain's beta5.
As I said earlier, the AAC decoder from lavc (libavcodec) supports only LC streams, not HE or PS for the moment.

Anima123
18th September 2008, 09:18
I've tried lc-aac audio wrapped in mp4 container but failed to play. Definitely not working for me. :(

nautilus7
18th September 2008, 10:49
Finally, the channel order seems to be correct for AC3/EAC3/Vorbis/AAC multichannel streams using libavcodec

Here is a test build :
http://rapidshare.com/files/146146686/ffdshow_rev2131_20080915_dbt_beta5.exe.htmlThanks it works with AC3 and E-AC3 which i tested.

The libav decoder still crashes with every DTS track i try.

clsid
18th September 2008, 11:27
you are wrong here...you can change the font and/or colors from vobsub files as well with SubtitleCreator.
Sure, everything is possible with enough effort. But it would require a conversion step to change the font.

_xxl
18th September 2008, 15:51
The libav decoder still crashes with every DTS track i try.
Has this been reported to ffmpeg dev team?

Kurtnoise
18th September 2008, 16:27
Sure, everything is possible with enough effort. But it would require a conversion step to change the font.
what do you mean by a conversion step ? Just load your file, choose a font/color and save. That's all...:)

clsid
18th September 2008, 16:27
I doubt that it is a bug in FFmpeg. Wasn't it a binutils bug? Just disable whatever function is crashing.

Kurtnoise
18th September 2008, 16:28
I've tried lc-aac audio wrapped in mp4 container but failed to play. Definitely not working for me. :(
I'll try to do some tests on my side...

Leak
18th September 2008, 16:43
what do you mean by a conversion step?
DVD subs (aka .idx/.sub) are bitmaps. If you want to change the font, you'll have to OCR all subtitle images, possibly re-position them and save them in some other format or create new subtitle images.

I think you'll agree that this is a wee bit more complicated than "just changing a setting"...

np: Soul 223 - Q (Soul Jazz Records Singles 2006-2007 (Disc 1))