[FFmpeg-devel] [PATCH 2/4] timecode: string representation can be negative.
Reimar Döffinger
Reimar.Doeffinger at gmx.de
Sat Jan 7 09:42:50 CET 2012
On 7 Jan 2012, at 04:14, Baptiste Coudurier <baptiste.coudurier at gmail.com> wrote:
> On 01/05/2012 12:03 PM, Clément Bœsch wrote:
>> From: Clément Bœsch <clement.boesch at smartjog.com>
>>
>> Timecode can be specified with a negative value in MOV...
>> ---
>> libavcodec/timecode.c | 7 +++++--
>> libavcodec/timecode.h | 3 ++-
>> libavcodec/version.h | 2 +-
>> 3 files changed, 8 insertions(+), 4 deletions(-)
>>
>> diff --git a/libavcodec/timecode.c b/libavcodec/timecode.c
>> index 420b276..a8b4242 100644
>> --- a/libavcodec/timecode.c
>> +++ b/libavcodec/timecode.c
>> @@ -83,7 +83,7 @@ char *avpriv_timecode_to_string(char *buf, const struct ff_timecode *tc, unsigne
>> {
>> int frame_num = tc->start + frame;
>> int fps = (tc->rate.num + tc->rate.den/2) / tc->rate.den;
>> - int hh, mm, ss, ff;
>> + int hh, mm, ss, ff, neg = 0;
>>
>> if (tc->drop)
>> frame_num = avpriv_framenum_to_drop_timecode(frame_num);
>> @@ -91,7 +91,10 @@ char *avpriv_timecode_to_string(char *buf, const struct ff_timecode *tc, unsigne
>> ss = frame_num / fps % 60;
>> mm = frame_num / (fps*60) % 60;
>> hh = frame_num / (fps*3600) % 24;
>> - snprintf(buf, sizeof("hh:mm:ss.ff"), "%02d:%02d:%02d%c%02d",
>> + if (ff < 0 || ss < 0 || mm < 0 || hh < 0)
>> + neg = 1, ff = -ff, ss = -ss, mm = -mm, hh = -hh;
>
> You only need to abs(frame_num) if frame_num < 0 and set neg, instead of
> abs all values.
>
> Except that patch is ok.
Actually I don't think it is reasonable to us the , operator here.
Just open a block and use ; - no need to risk causing confusion for saving a {}.
More information about the ffmpeg-devel
mailing list