Mercurial > libavformat.hg
changeset 870:16df90bf46fd libavformat
per frame crc support
author | michael |
---|---|
date | Sat, 05 Nov 2005 00:10:22 +0000 |
parents | 8ff4e8ef8124 |
children | 3637f3d43e55 |
files | crc.c |
diffstat | 1 files changed, 26 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/crc.c Fri Nov 04 23:50:11 2005 +0000 +++ b/crc.c Sat Nov 05 00:10:22 2005 +0000 @@ -83,7 +83,18 @@ CRCState *crc = s->priv_data; char buf[64]; - snprintf(buf, sizeof(buf), "CRC=%08x\n", crc->crcval); + snprintf(buf, sizeof(buf), "CRC=0x%08x\n", crc->crcval); + put_buffer(&s->pb, buf, strlen(buf)); + put_flush_packet(&s->pb); + return 0; +} + +static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt) +{ + uint32_t crc = update_adler32(0, pkt->data, pkt->size); + char buf[256]; + + snprintf(buf, sizeof(buf), "%d, %Ld, %d, 0x%08x\n", pkt->stream_index, pkt->dts, pkt->size, crc); put_buffer(&s->pb, buf, strlen(buf)); put_flush_packet(&s->pb); return 0; @@ -102,8 +113,22 @@ crc_write_trailer, }; +static AVOutputFormat framecrc_format = { + "framecrc", + "framecrc testing format", + NULL, + "", + 0, + CODEC_ID_PCM_S16LE, + CODEC_ID_RAWVIDEO, + NULL, + framecrc_write_packet, + NULL, +}; + int crc_init(void) { av_register_output_format(&crc_format); + av_register_output_format(&framecrc_format); return 0; }