[FFmpeg-devel] [FFmpeg-cvslog] doc: document the addition of the AVProbeData.mime_type field and it' s implications

Andreas Cadhalpun andreas.cadhalpun at googlemail.com
Sun Sep 14 00:22:02 CEST 2014


On 13.09.2014 23:54, Clément Bœsch wrote:
> On Sat, Sep 13, 2014 at 11:38:56PM +0200, Andreas Cadhalpun wrote:
>> On 13.09.2014 15:25, Michael Niedermayer wrote:
>>> On Sat, Sep 13, 2014 at 08:24:39AM +0200, Clément Bœsch wrote:
>>>> On Sat, Sep 13, 2014 at 12:53:21AM +0200, Andreas Cadhalpun wrote:
>>>>> ffmpeg | branch: master | Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com> | Fri Sep 12 18:18:42 2014 +0200| [d5e802609a0046441798cdbd137c96e4aa912390] | committer: Michael Niedermayer
>>>>>
>>>>> doc: document the addition of the AVProbeData.mime_type field and it's implications
>>>>>
>>>>> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
>>>>> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
>>>>>
>>>>>> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d5e802609a0046441798cdbd137c96e4aa912390
>>>>> ---
>>>>>
>>>>>   RELEASE_NOTES  |    3 +++
>>>>>   doc/APIchanges |    3 +++
>>>>>   2 files changed, 6 insertions(+)
>>>>>
>>>>> diff --git a/RELEASE_NOTES b/RELEASE_NOTES
>>>>> index 113cc5e..14513a7 100644
>>>>> --- a/RELEASE_NOTES
>>>>> +++ b/RELEASE_NOTES
>>>>> @@ -54,6 +54,9 @@
>>>>>    │ ⚠  Behaviour changes       │
>>>>>    └────────────────────────────┘
>>>>>
>>>>> +  • IMPORTANT: The new field mime_type was added to AVProbeData.
>>>>> +    To avoid crashes, make sure to always initialize AVProbeData, e.g. use
>>>>> +    'AVProbeData pd = { 0 };' instead of 'AVProbeData pd;'.
>>>>
>>>> I don't think we should mix API and UI in this file. The second sentence
>>>> can be moved to doc/APIchanges, that's what this file is used for. We
>>>> mention doc/APIchanges in that RELEASE_NOTES: "Please refer to the
>>>> doc/APIChanges file for more information."
>>
>
>> Indeed, that is a good idea. But still the other sentence doesn't really fit
>> into the 'Behaviour changes' section, so I moved it to the 'API Information'
>> section, where it fits much better and is directly followed by the pointer
>> to doc/APIChanges.
>
> I disagree, there is no reason to make an exception for that.

It would be good to mention this explicitly in the RELEASE_NOTES, 
because otherwise it just says the API didn't change and then people 
will be surprised that their programs crash.

>> In the attached patch I also changed the text at the beginning to only claim
>> that the API is mostly compatible and minimal source changes might be
>> needed.
>>
>> Best regards,
>> Andreas
>
>>  From 8170dc6151199bda655b3726f4cd129abe7781e1 Mon Sep 17 00:00:00 2001
>> From: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
>> Date: Sat, 13 Sep 2014 23:34:09 +0200
>> Subject: [PATCH] doc: don't mix API and UI changes in the 'Behaviour changes'
>>   section of the RELEASE_NOTES
>>
>> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
>> ---
>>   RELEASE_NOTES  | 10 +++++-----
>>   doc/APIchanges |  2 ++
>>   2 files changed, 7 insertions(+), 5 deletions(-)
>>
>> diff --git a/RELEASE_NOTES b/RELEASE_NOTES
>> index 14513a7..6c26aff 100644
>> --- a/RELEASE_NOTES
>> +++ b/RELEASE_NOTES
>> @@ -3,8 +3,8 @@
>>    ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
>>
>
> You have utf-8 troubles, the diff won't apply. Try git-send-email maybe.

Have you tried saving the attachement? It seems the last one did work...

>>      The FFmpeg Project proudly presents FFmpeg <next> "FIXME", ...
>> -   FFmpeg 2.4 is API-, but not ABI-compatible with the previous major release.
>> -   This means that the code using our libraries needs to be rebuilt, but no
>> +   FFmpeg 2.4 is mostly API-, but not ABI-compatible with the previous major release.
>> +   This means that the code using our libraries needs to be rebuilt, but only minimal
>>      source changes should be required.
>
> Unrelated

In a way it's related, since this is about the AVProbeData.mime_type API 
change, and it is confusing to state that the API didn't change, when it 
did.
But I can send a separate patch for that, if that's preferred.

>>
>>      ??????????????????????????????????????????????????????????????????????????????????????????
>> @@ -22,6 +22,9 @@
>>          ??? libswresample  xx.yy.1zz
>>          ??? libpostproc    xx.yy.1zz
>
>>
>> +     IMPORTANT: The new field mime_type was added to AVProbeData, which can
>> +     cause crashes, if it is not initialized.
>> +
>
> No, please just drop it.

Why don't you want to mention this here?

>>        Please refer to the doc/APIChanges file for more information.
>>
>>    ??????????????????????????????????????????????????????????????????????????????????????????
>> @@ -54,9 +57,6 @@
>>    ??? ???  Behaviour changes       ???
>>    ??????????????????????????????????????????????????????????????????????????????????????????
>>
>> -  ??? IMPORTANT: The new field mime_type was added to AVProbeData.
>> -    To avoid crashes, make sure to always initialize AVProbeData, e.g. use
>> -    'AVProbeData pd = { 0 };' instead of 'AVProbeData pd;'.
>>     ??? dctdnoiz filter now uses a block size of 8x8 instead of 16x16 by default
>>     ??? -vismv option is deprecated in favor of the codecview filter
>>     ??? libmodplug is now detected through pkg-config
>> diff --git a/doc/APIchanges b/doc/APIchanges
>> index 90048a5..e3d402d 100644
>> --- a/doc/APIchanges
>> +++ b/doc/APIchanges
>> @@ -97,6 +97,8 @@ API changes, most recent first:
>>
>>   2014-07-29 - 80a3a66 / 3a19405 - lavf 56.01.100 / 56.01.0 - avformat.h
>>     Add mime_type field to AVProbeData.
>> +  To avoid crashes, make sure to always initialize AVProbeData, e.g. use
>> +
>
> I suggest the following:
>    Add mime_type field to AVProbeData, which now MUST be initialized in
>    order to avoid uninitialized reads of the mime_type pointer, likely
>    leading to crashes.
>    Typically, this means you will do 'AVProbeData pd = { 0 };' instead of
>    'AVProbeData pd;'.

This wording is fine.

> Maybe we will want to make a clear cut in the doc/APIChanges file to
> separate the releases, so this change will not be missed.

Yes, that might help.

Best regards,
Andreas



More information about the ffmpeg-devel mailing list