[FFmpeg-soc] [soc]: r532 - matroska/matroskaenc.c

Luca Barbato lu_zero at gentoo.org
Sat Jul 28 11:48:25 CEST 2007


Michael Niedermayer wrote:
> Hi
> 
> On Sat, Jul 28, 2007 at 02:47:11AM -0400, David Conrad wrote:
>> On Jul 25, 2007, at 8:48 PM, Michael Niedermayer wrote:
>>
>>> Hi
>>>
>>> On Thu, Jul 26, 2007 at 02:05:33AM +0200, conrad wrote:
>>>> Author: conrad
>>>> Date: Thu Jul 26 02:05:32 2007
>>>> New Revision: 532
>>>>
>>>> Log:
>>>> Write segment UID
>>> [...]
>>>> @@ -507,6 +510,9 @@ static int mkv_write_header(AVFormatCont
>>>>      MatroskaMuxContext *mkv = s->priv_data;
>>>>      ByteIOContext *pb = &s->pb;
>>>>      offset_t ebml_header, segment_info;
>>>> +    int i;
>>>> +
>>>> +    av_init_random(av_gettime(), &mkv->rand_state);
>>> leaks current time (=security risk ...)
>> What would be best way to seed the random number generator? All the  
>> other uses of av_init_random() use a constant, but the purpose of the  
>> segment UID is to be unique among segments, so that other files can  
>> refer to it. 
> 
> well, if so using the current time is not a good idea either, if 2
> people start encoding at the same time ...
> 
> 
>> Another idea might be to use a SHA-1 hash of the frame  
>> contents, but that seems like it would slow down muxing a fair bit.
> 
> i dont know a solution, finding a good and secure random number is hard
> you could use the sha1/crc of just the first frame, but that might be a 
> all black frame and thus has a fair chance of being identical between
> 2 movies (if used quantizer and other encoding options match)
> 

given a collision is always possible:

sum the avformat struct and the current time and feed everything to the
mersenne twister.

lu - too much simple?

-- 

Luca Barbato

Gentoo/linux Gentoo/PPC
http://dev.gentoo.org/~lu_zero



More information about the FFmpeg-soc mailing list