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

David Conrad umovimus at gmail.com
Fri Aug 10 04:14:06 CEST 2007


On Aug 9, 2007, at 9:35 PM, Aurelien Jacobs wrote:

> On Fri, 10 Aug 2007 01:37:20 +0200 (CEST)
> conrad <subversion at mplayerhq.hu> wrote:
>
>> Author: conrad
>> Date: Fri Aug 10 01:37:19 2007
>> New Revision: 662
>>
>> Log:
>> Use a MD5 hash of some frames to write the segment uid
>>
>>
>> Modified:
>>    matroska/matroskaenc.c
>>
>> Modified: matroska/matroskaenc.c
>> ===================================================================== 
>> =========
>> --- matroska/matroskaenc.c	(original)
>> +++ matroska/matroskaenc.c	Fri Aug 10 01:37:19 2007
>> @@ -61,6 +63,8 @@ typedef struct MatroskaMuxContext {
>>      mkv_seekhead    *main_seekhead;
>>      mkv_seekhead    *cluster_seekhead;
>>      mkv_cues        *cues;
>> +
>> +    struct AVMD5    *md5_ctx;
>>  } MatroskaMuxContext;
>>
>>  static void put_ebml_id(ByteIOContext *pb, unsigned int id)
>> @@ -547,6 +551,9 @@ static int mkv_write_header(AVFormatCont
>>      ByteIOContext *pb = &s->pb;
>>      offset_t ebml_header, segment_info;
>>
>> +    mkv->md5_ctx = av_mallocz(av_md5_size);
>> +    av_md5_init(mkv->md5_ctx);
>> +
>>      ebml_header = start_ebml_master(pb, EBML_ID_HEADER);
>>      put_ebml_uint   (pb, EBML_ID_EBMLVERSION        ,           1);
>>
>> [...]
>>
>>      end_ebml_master(pb, mkv->segment);
>> +    av_free(mkv->md5_ctx);
>>      return 0;
>>  }
>
> Here, using a pointer along with av_malloc/av_free seems pointless.
> You should probably put the struct AVMD5 directly into
> MatroskaMuxContext (instead of a pointer), and remove the
> av_malloc/av_free.

Unfortunately I don't think this is possible because the AVMD5 struct  
definition is private to md5.c.



More information about the FFmpeg-soc mailing list