On Wed, Apr 13, 2016 at 01:54:25AM -0300, James Almer wrote: > Signed-off-by: James Almer <jamr...@gmail.com> > --- > I'm keeping the version code for the time being, unless people disagree. > Removing it if needed is trivial. > > libavformat/hashenc.c | 30 ++++++++++++++++++++++++++++++ > 1 file changed, 30 insertions(+) > > diff --git a/libavformat/hashenc.c b/libavformat/hashenc.c > index 614c815..e471789 100644 > --- a/libavformat/hashenc.c > +++ b/libavformat/hashenc.c > @@ -149,6 +149,33 @@ AVOutputFormat ff_md5_muxer = { > #endif > > #if CONFIG_FRAMEHASH_MUXER || CONFIG_FRAMEMD5_MUXER > +static void framehash_print_extradata(struct AVFormatContext *s) > +{ > + int i, header_printed = 0; > + > + for (i = 0; i < s->nb_streams; i++) { > + AVStream *st = s->streams[i]; > + AVCodecParameters *par = st->codecpar; > + if (par->extradata) { > + struct HashContext *c = s->priv_data; > + char buf[AV_HASH_MAX_SIZE*2+128]; > + int len; > + > + if (!header_printed) { > + avio_printf(s->pb, "#extradata#, > size, hash\n"); > + header_printed = 1; > + } > + av_hash_init(c->hash); > + av_hash_update(c->hash, par->extradata, par->extradata_size); > + snprintf(buf, sizeof(buf) - (AV_HASH_MAX_SIZE * 2 + 1), "%d, > %42d, ", i, par->extradata_size); > + len = strlen(buf); > + av_hash_final_hex(c->hash, buf + len, sizeof(buf) - len); > + av_strlcatf(buf, sizeof(buf), "\n"); > + avio_write(s->pb, buf, strlen(buf)); > + } > + } > +}
This breaks the syntax of framehash and anything using it the syntax prior to this is that theres one header followed by frames with fields described by that header and comments starting with # also comment generally had as 2nd field the stream number after that there would be multiple headers and lists also in practical terms this syntax is much harder to parse as lines no longer can be interpreted on their own but their position in the file in relation to other lines suddenly becomes required to be used to interpret them especially simple parsing with basic tools like grep and sed would suffer from this framecrc already lists the hash and size of extradata within the bounds of the framehash syntax, that should be reuseable [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Old school: Use the lowest level language in which you can solve the problem conveniently. New school: Use the highest level language in which the latest supercomputer can solve the problem without the user falling asleep waiting.
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel