timecode: set a fixed buffer size of 16B for tc string.

This commit is contained in:
Clément Bœsch 2012-01-11 17:51:57 +01:00 committed by Clément Bœsch
parent 0644cabd7a
commit 98aafc5bbf
3 changed files with 4 additions and 4 deletions

View File

@ -91,7 +91,7 @@ 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",
snprintf(buf, 16, "%02d:%02d:%02d%c%02d",
hh, mm, ss, tc->drop ? ';' : ':', ff);
return buf;
}

View File

@ -67,8 +67,8 @@ uint32_t avpriv_framenum_to_smpte_timecode(unsigned frame, int fps, int drop);
* @param tc Timecode struct pointer
* @param frame Frame id (timecode frame is computed with tc->start+frame)
* @return a pointer to the buf parameter
* @note buf must have enough space to store the timecode representation
* (sizeof("hh:mm:ss.ff"))
* @note buf must have enough space to store the timecode representation: 16
* bytes is the minimum required size.
*/
char *avpriv_timecode_to_string(char *buf, const struct ff_timecode *tc, unsigned frame);

View File

@ -731,7 +731,7 @@ static int draw_text(AVFilterContext *ctx, AVFilterBufferRef *picref,
#if CONFIG_AVCODEC
if (dtext->tc.str) {
char tcbuf[sizeof("hh:mm:ss.ff")];
char tcbuf[16];
avpriv_timecode_to_string(tcbuf, &dtext->tc, dtext->frame_id++);
buf = av_asprintf("%s%s", dtext->text, tcbuf);
}