[FFmpeg-devel] Add waveformat extensible support in wav muxer (SoC qualification task)

zhentan feng spyfeng
Sat Mar 28 11:47:25 CET 2009


Hi

2009/3/28 Benjamin Larsson <banan at ludd.ltu.se>

> zhentan feng wrote:
>
>> Hi
>>
>> 2009/3/27 Benjamin Larsson <banan at ludd.ltu.se>
>>
>>
>>
>>> zhentan feng wrote:
>>>
>>>
>>>> Hi
>>>>
>>>> 2009/3/26 Benjamin Larsson <banan at ludd.ltu.se>
>>>>
>>>>
>>>>
>>>>> zhentan feng wrote:
>>>>>
>>>>>
>>>>>
>>>>>> Hi
>>>>>>
>>>>>> 2009/3/26 Michael Niedermayer <michaelni at gmx.at>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> On Thu, Mar 26, 2009 at 01:19:00AM +0800, zhentan feng wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> Here is patch for the small task of qualification tasks NO.30.
>>>>>>>> Based on the work of Benjamin Larsson, I generated the pathc as
>>>>>>>>
>>>>>>>>
>>>>>>> below.
>>>
>>>
>>>>      I think it must need further modifies.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> yes, iam not sure if this or benjamins patch was better
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> I downloaded the 6-channel wav file from:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>> http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples/Microsoft/6_Channel_ID.wav
>>>
>>>
>>>>  ( and other typr wav files can acess here :
>>>>>> http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples.html
>>>>>> )
>>>>>>
>>>>>> 1) then I run ./ffmpeg_g -i 6_Channel_ID.wav channel4.wav
>>>>>>
>>>>>> I get the error:
>>>>>> Resampling with input channels greater than 2 unsupported.
>>>>>>
>>>>>> so I run another command:
>>>>>> 2) ./output_example test.wav
>>>>>> ./ffmpeg_g -i test.wav -ac 4 ch4.wav
>>>>>>
>>>>>> and enc->channels is 4, however enc->channel_layout is 0.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Finally, I have 2 questions:
>>>>>>
>>>>>> 1) how to test the muxer works correctly?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> When the muxer works correctly it should be possible to transcode a wav
>>>>> file that contains the wavformatextensible header.
>>>>>
>>>>>  2) where to specify the enc->channel_layout?
>>>>>        It should be filled in by ffmpeg.c.
>>>>>
>>>>>
>>>>>
>>>> I debug the commandline:
>>>> ./ffmpeg_g -i test.wav -ac 4 4ch.wav
>>>>
>>>> and found that the enc->channel_layout value is assigned from the input
>>>>
>>>>
>>> file
>>>
>>>
>>>> channel_layout. In this case, it is 0.
>>>> and it seems that "-channel_layout" option doesn't work.
>>>>
>>>> 1) is it need to refresh the channel_layout value according to the
>>>>
>>>>
>>> channels
>>>
>>>
>>>> in ffmpeg.c or in put_wav_header()?
>>>> 2) any tools to examine the output file is correct?
>>>>
>>>> zhentan feng
>>>>
>>>>
>>> Hi, this is the latest version of my patch. This adds the maybe correct
>>> GUID values. To really test this you need to find a wav file with a
>>> corrrect dwChannelMask. And then make sure that the muxer puts the same
>>> mask to the transcoded file. The output file should also be playable in
>>> windows.
>>>
>>> [...]
>>>
>>>
>>
>>
>> 1) I download the 6 channels sample wav file form the follow link:
>>
>> http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples/Microsoft/6_Channel_ID.wav
>>
>> then acoording to the new patch, I run the command:
>> ./ffmpeg -i 6_Channel_ID.wav output_ch6.wav
>>
>> the program run normaly, here is the output result.
>>
>> Input #0, wav, from '6_Channel_ID.wav':
>>  Duration: 00:00:05.83, bitrate: 4233 kb/s
>>    Stream #0.0: Audio: pcm_s16le, 44100 Hz, 6 channels
>> (FL|FR|FC|LFE|BL|BR), s16, 4233 kb/s
>> Output #0, wav, to 'output_ch6.wav':
>>    Stream #0.0: Audio: pcm_s16le, 44100 Hz, 6 channels
>> (FL|FR|FC|LFE|BL|BR), s16, 4233 kb/s
>> Stream mapping:
>>  Stream #0.0 -> #0.0
>> Press [q] to stop encoding
>> size=    3017kB time=5.84 bitrate=4233.7kbits/s
>> video:0kB audio:3017kB global headers:0kB muxing overhead 0.002201%
>>
>> 2) The file 6_Channel_ID.wav can be palyed by windows mediaplayer, but the
>> output_ch6.wav can't.
>>
>> I compared the two wav files and found that 6_Channel_ID.wav has 60 more
>> bytes than output_ch6.wav
>> the 60 bytes are after WAVEFORMATEXTENSIBLE sturct,followed by the data.
>> Except for the 60 bytes, the two files are all the same.
>>
>> However, I noticed that the sample website says about 6_Channel_ID.wav
>> that
>> :"This file has a "cue " chunk with a count of zero cue points, followed
>> by
>> two empty cue point structures."
>>
>> my question is:
>> are the 60 bytes cue chunk? and how to handle this?
>>
>> zhentan feng
>> thanks
>>
>>
>
> Locate and look at the GUID in the original and the ffmpeg muxed file. They
> most likely differ.
>
> [..]
>

yes. it's the GUID problem.
thanks.
here is the new patch.

-- 
Best wishes~
-------------- next part --------------
A non-text attachment was scrubbed...
Name: wave_text_format_extensible_02.patch
Type: application/octet-stream
Size: 2028 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090328/a1e6c054/attachment.obj>



More information about the ffmpeg-devel mailing list