On 16.07.2017, at 14:31, Paras Chadha <paraschadh...@gmail.com> wrote: > +static int write_keyword_value(uint8_t **bytestream, const char * keyword, > int value) > +{ > + int len, ret; > + uint8_t * header = * bytestream; > + len = strlen(keyword); > + > + memcpy(header, keyword, len); > + memset(header + len, ' ', 8 - len); > + header[8] = '='; > + header[9] = ' '; > + header += 10; > + > + ret = snprintf(header, 70, "%d", value); > + memset(header + ret, ' ', 70 - ret);
You are unnecessarily complicating this. Start with memset(header, ' ', 80); and remove all the other memsets (also applies to code further down). Then only fix up the snprintf 0-termination character. > + memcpy(bytestream, "XTENSION= 'IMAGE '", 20); Not really sure it is better, so at your discretion, but there are 2 alternatives to doing this (the variable names are probably bad and just for demonstration): // explicit size dropping 0-termination static const image_ext_str[20] = "XTENSION= 'IMAGE '"; memcpy(bytestream, image_ext_str, sizeof(image_ext_str)); or: static const image_ext_str[] = "XTENSION= 'IMAGE '"; // -1 to drop 0-termination memcpy(bytestream, image_ext_str, sizeof(image_ext_str) - 1); The advantage is that it avoids the "magic" numbers which are easy to get wrong. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel