[FFmpeg-devel] [PATCH] asf-format doesn't work as stream for XBox360

Patric Stout patric
Mon Oct 15 01:36:58 CEST 2007


Michael Niedermayer schreef:
> On Mon, Oct 15, 2007 at 12:09:13AM +0200, Patric Stout wrote:
>   
>> Michael Niedermayer schreef:
>>     
>>> On Sun, Oct 14, 2007 at 11:35:38PM +0200, Patric Stout wrote:
>>>   
>>>       
>>>> Hi all,
>>>>
>>>> As I was trying to get ffmpeg to do some on-demand streaming of WMV2 to
>>>> my XBox360, I noticed it was always rejected. When I converted the file
>>>> to a wmv first, and tried to playback that file, it went okay. So it
>>>> made me wonder why that was. After a short search, I found out that my
>>>> XBox doesn't like the fact that in the asf-container it is told the
>>>> filelength is 0 (which, when writing to a file, is later replaced by the
>>>> real number, but of course this can't be done on a stream).
>>>>
>>>> Now this is done on several places, but only one places my XBox cares
>>>> about. So, I made a small patch that fills in a huge value by default
>>>> (which normally gets overwritten later on by the real value), which
>>>> makes streaming to my XBox via ffmpeg work perfectly. Attached is that
>>>> patch. I hope it is useful for more people. Now I can finally watch
>>>> movies on my XBox via an on-demand stream from my Linux computer.. too
>>>> bad you can't encode HR movies in WMV2 format, but that is an other story ;)
>>>>     
>>>>         
>>> do wmvs which are generated and streamed by the official tools also contain
>>> a -1 in there? 
>>>
>>>   
>>>       
>> First of, the value (uint64)-1 failed. It in fact are 12 F's, not 16.
>> The reason for this is unknown for me, but I settled with the first
>> value that did work.
>>     
>
> this doesnt sound correct at all ...
> have you tried to set some different values for the flags instead of changing
> the data size?
>
> and you did try -f asf_stream ?
>   
You are right, it doesn't sound correct. I all of a sudden understood
why the value -1 didn't work. The data_chunk_size is a SIGNED integer,
and read as such.. and negative values of course don't work as length
value. So if we fill in the biggest positive value of an int64_t, it
works perfectly too. And this value does make sense. Attached is the
patch with the correct value.

I tried to change all the other fields that showed up on the diff
between a streamed wmv and a stored wmv, no other field did anything for
the good. This is the only field that makes it to work, or breaks it. So
I am pretty sure this is what the Xbox expects.

asf_stream doesn't work at all. The format isn't recognized by the Xbox.
I learnt not the ask why.


With kind regards,

Patric Stout

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: asf-fix.patch
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20071015/f4feef47/attachment.asc>



More information about the ffmpeg-devel mailing list