mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-18 21:45:10 +00:00
avformat/hashenc: simplify hash_write_trailer
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
21acc4db5f
commit
bb505cd505
@ -34,25 +34,6 @@ struct HashContext {
|
|||||||
int format_version;
|
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 OFFSET(x) offsetof(struct HashContext, x)
|
||||||
#define ENC AV_OPT_FLAG_ENCODING_PARAM
|
#define ENC AV_OPT_FLAG_ENCODING_PARAM
|
||||||
#if CONFIG_HASH_MUXER || CONFIG_FRAMEHASH_MUXER
|
#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)
|
static int hash_write_trailer(struct AVFormatContext *s)
|
||||||
{
|
{
|
||||||
struct HashContext *c = s->priv_data;
|
struct HashContext *c = s->priv_data;
|
||||||
char buf[256];
|
char buf[AV_HASH_MAX_SIZE*2+128];
|
||||||
av_strlcpy(buf, av_hash_get_name(c->hash), sizeof(buf) - 200);
|
snprintf(buf, sizeof(buf) - 200, "%s=", av_hash_get_name(c->hash));
|
||||||
av_strlcat(buf, "=", sizeof(buf) - 200);
|
|
||||||
|
|
||||||
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);
|
av_hash_freep(&c->hash);
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user