[FFmpeg-devel] [PATCH] dnxhd parser and raw de/muxer

Baptiste Coudurier baptiste.coudurier
Fri Oct 24 04:13:17 CEST 2008


Michael Niedermayer wrote:
> On Fri, Sep 19, 2008 at 04:52:59PM -0700, Baptiste Coudurier wrote:
>> Hi Stuart,
>>
>> Stuart Cunningham wrote:
>>> On Mon, 2008-09-15 at 20:40 +0200, Michael Niedermayer wrote:
>>>> On Mon, Sep 15, 2008 at 10:58:06AM -0700, Baptiste Coudurier wrote:
>>>>> Hi,
>>>>>
>>>>> Michael Niedermayer wrote:
>>>>>> On Mon, Sep 08, 2008 at 02:54:14PM -0700, Baptiste Coudurier wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> $subject, to use dnxhd raw essences.
>>>>>> [...]
>>>>>>> Index: libavformat/raw.c
>>>>>>> ===================================================================
>>>>>>> --- libavformat/raw.c	(revision 15275)
>>>>>>> +++ libavformat/raw.c	(working copy)
>>>>>>> @@ -487,6 +487,15 @@
>>>>>>>  }
>>>>>>>  #endif
>>>>>>>  
>>>>>>> +static int dnxhd_probe(AVProbeData *p)
>>>>>>> +{
>>>>>>> +    static const uint8_t header[] = {0x00,0x00,0x02,0x80,0x01};
>>>>>>> +    if (!memcmp(p->buf, header, 5))
>>>>>>> +        return AVPROBE_SCORE_MAX;
>>>>>>> +    else
>>>>>>> +        return 0;
>>>>>>> +}
>>>>>> Can more than that be used for a more reliable probe?
>>>>>> I mean yes its 5 bytes but they are all 0 except 3 bits, thus this might
>>>>>> be more common in real files than expected in random data.
>>> [...]
>>>>> Besides, after these 5 bytes, I'd need to go far to fetch interesting
>>>>> data like cid, Im not sure.
>>>> well its not that important, we can always leave it until someone actually
>>>> finds some misdetection. I wasnt aware that these 5 bytes where the only
>>>> easy checkable thing ...
>>>>
>>> There's the 32bit end-of-frame marker 0x600DC0DE but that's probably not
>>> helpful here, but might be useful in the dnxhd_find_frame_end() function
>>> of libavcodec/dnxhd_parser.c (also part of the patch).
>>>
>> Indeed, it needs special case for the first frame however, let's try
>> this way first and if any error happens, I'll cook something up.
>>
>> Parser updated.
>>
>> -- 
>> Baptiste COUDURIER                              GnuPG Key Id: 0x5C1ABAAA
>> Smartjog USA Inc.                                http://www.smartjog.com
>> Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
> 
> [...]
>> Index: libavcodec/parser.c
>> ===================================================================
>> --- libavcodec/parser.c	(revision 15351)
>> +++ libavcodec/parser.c	(working copy)
>> @@ -274,6 +274,7 @@
>>      /* store overread bytes */
>>      for(;next < 0; next++){
>>          pc->state = (pc->state<<8) | pc->buffer[pc->last_index + next];
>> +        pc->state64 = (pc->state64<<8) | pc->buffer[pc->last_index + next];
>>          pc->overread++;
>>      }
>>  
>> Index: libavcodec/parser.h
>> ===================================================================
>> --- libavcodec/parser.h	(revision 15351)
>> +++ libavcodec/parser.h	(working copy)
>> @@ -34,6 +34,7 @@
>>      int frame_start_found;
>>      int overread;               ///< the number of bytes which where irreversibly read from the next frame
>>      int overread_index;         ///< the index into ParseContext.buffer of the overread bytes
>> +    uint64_t state64;           ///< contains the last 8 bytes in MSB order
>>  } ParseContext;
>>  
>>  struct MpegEncContext;
> 
> ok, but seperate commit please
> 
> rest looks ok as well

Applied separately.

-- 
Baptiste COUDURIER                              GnuPG Key Id: 0x5C1ABAAA
Smartjog USA Inc.                                http://www.smartjog.com
Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA




More information about the ffmpeg-devel mailing list