GNOME Bugzilla – Bug 690591
No decoder available for type 'audio/x-avi-unknown, codec_id=(int)65534'.
Last modified: 2013-01-14 16:04:20 UTC
Created attachment 232023 [details] sample file WAVEFORMATEXTENSIBLE 65534/0xFFFE http://msdn.microsoft.com/en-gb/library/windows/desktop/dd757714(v=vs.85).aspx http://www.videolan.org/developers/vlc/doc/doxygen/html/vlc__codecs_8h_source.html:424 is interesting, making it sound like anybody can dump their own proprietary id in there. however the spec on the MS states that it should only be used to extend the waveformat format, and has examples whereby the subformat enum ids match the corresponding waveformat ids directly. this seems more sensible http://code.google.com/p/sharpdx/source/browse/External/gccxml/share/gccxml-0.9/vc11/overrides/shared/mmreg.h?r=730c5ff598dc859822453a48e4d6805fe655d353 the above is a relevant (and fairly recent) window header. 8196/0x2000 references 'WAVE_FORMAT_DVM' / FAST Multimedia AG which 'everywhere else' on the web states is just A52/AC3. queue the attached patch which stops my troublesome file (sample attached) falling through to receive the 'audio/x-avi-unknown' type, and thus having no available decoder. no decoder = no sound cheers
Created attachment 232024 [details] [review] add waveformatextension ac3 support
I think the point of the WAVEFORMATEXTENSIBLE is to specify a non-default channel map. Your patch doesn't parse the channel map. I'll have a look at it.
commit d2c68e602d326af0ae55baa1d246e0b4816e218a Author: Pete Beardmore <pete.beardmore@msn.com> Date: Fri Dec 21 02:27:12 2012 +0000 riff: add waveformatextension ac3 support fixes #690591
i reworked the patch to be more generic given the comment on IRC i agree with the comment about channel maps. however, this patch purely serves to ensure a sensible default decoder is selected where bespoke mapping/rate changes haven't been made ..where wave_format_extensible more than likely shouldn't have been encoded into the header in the first place i.e. the sample file
Created attachment 232051 [details] [review] riff-add-waveformatextension-generic-support
Is this still necessary after Wim's latest change? commit ca456ec6f988c08086ee3969e902043332b4cf2f Author: Wim Taymans <wim.taymans@collabora.co.uk> Date: Fri Dec 21 14:03:32 2012 +0100 riff: add channel masks for all formats Add the channel masks for all the extensible formats Pass the number of channels instead of reading them from caps.
yes it is. Wim's code adds channel mask support which is a separate enhancement. without the modified patch, all waveextensibleformat subformat codec ids other than 0x1 0x3 0x6 0x7 0x2000 will fail to get a decoder. i think that these formats are highly uncommon but alas, the reason i did the original patch was because i had an oddball avi i've generated another patch that applies cleanly to master. in it i've also shifted the original AC-3 support case (0x2000) to the AC-3 spdif (0x0092) case to ensure that that also gets a default decoder. the AC-3 spdif case could be removed completely as it would fall through to the generic catch all support that this patch adds, however, it looks like that subformat case has been explicitly marked for further work by somebody so it should be left as a placeholder ..but in the mean time lets still ensure it gets a decoder instead of just failing please shout if you have any doubts on what i've done ..i certainly don't claim to be an expert in either C / gtk or gstreamer
Created attachment 232204 [details] [review] riff-add-waveformatextension-generic-support
commit 569f3a29ab1451a70b6cca2277afa072849c5cb2 Author: Pete Beardmore <pete.beardmore@msn.com> Date: Mon Dec 24 18:25:10 2012 +0000 riff: add waveformatextension generic support Fixes https://bugzilla.gnome.org/show_bug.cgi?id=690591