diff options
author | James Almer <jamrial@gmail.com> | 2016-04-14 20:49:35 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2016-04-14 20:59:08 -0300 |
commit | bb505cd5057ce926e81048e19bb96dbdcb6ae2cf (patch) | |
tree | 8acaa53538cf3b5c7a4589eda34a0d1d708a59d5 /libavformat/hashenc.c | |
parent | 21acc4db5fa3f11997b2a27f03e87eac4d69e088 (diff) | |
download | ffmpeg-bb505cd5057ce926e81048e19bb96dbdcb6ae2cf.tar.gz |
avformat/hashenc: simplify hash_write_trailer
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavformat/hashenc.c')
-rw-r--r-- | libavformat/hashenc.c | 28 |
1 files changed, 5 insertions, 23 deletions
diff --git a/libavformat/hashenc.c b/libavformat/hashenc.c index ced2f66e65..01b00b5bb7 100644 --- a/libavformat/hashenc.c +++ b/libavformat/hashenc.c @@ -34,25 +34,6 @@ struct HashContext { int format_version; }; -static void hash_finish(struct AVFormatContext *s, char *buf) -{ - struct HashContext *c = s->priv_data; - uint8_t hash[AV_HASH_MAX_SIZE]; - int i, offset = strlen(buf); - int len = av_hash_get_size(c->hash); - av_assert0(len > 0 && len <= sizeof(hash)); - av_hash_final(c->hash, hash); - for (i = 0; i < len; i++) { - snprintf(buf + offset, 3, "%02"PRIx8, hash[i]); - offset += 2; - } - buf[offset] = '\n'; - buf[offset+1] = 0; - - avio_write(s->pb, buf, strlen(buf)); - avio_flush(s->pb); -} - #define OFFSET(x) offsetof(struct HashContext, x) #define ENC AV_OPT_FLAG_ENCODING_PARAM #if CONFIG_HASH_MUXER || CONFIG_FRAMEHASH_MUXER @@ -92,11 +73,12 @@ static int hash_write_packet(struct AVFormatContext *s, AVPacket *pkt) static int hash_write_trailer(struct AVFormatContext *s) { struct HashContext *c = s->priv_data; - char buf[256]; - av_strlcpy(buf, av_hash_get_name(c->hash), sizeof(buf) - 200); - av_strlcat(buf, "=", sizeof(buf) - 200); + char buf[AV_HASH_MAX_SIZE*2+128]; + snprintf(buf, sizeof(buf) - 200, "%s=", av_hash_get_name(c->hash)); - hash_finish(s, buf); + av_hash_final_hex(c->hash, buf + strlen(buf), sizeof(buf) - strlen(buf)); + av_strlcatf(buf, sizeof(buf), "\n"); + avio_write(s->pb, buf, strlen(buf)); av_hash_freep(&c->hash); return 0; |