[FFmpeg-devel] [PATCH] md5enc: don't reuse priv_class in two formats

Hendrik Leppkes h.leppkes at gmail.com
Mon May 13 23:36:53 CEST 2013


Apparently, this is not allowed and can trip up all sorts of things.
---
Fixes MSVC fate instances freezing with 100% CPU, for example.

 libavformat/md5enc.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/libavformat/md5enc.c b/libavformat/md5enc.c
index b88e6df..cb92c0c 100644
--- a/libavformat/md5enc.c
+++ b/libavformat/md5enc.c
@@ -58,7 +58,7 @@ static const AVOption hash_options[] = {
     { NULL },
 };
 
-static const AVClass hashenc_class = {
+static const AVClass md5enc_class = {
     .class_name = "hash encoder class",
     .item_name  = av_default_item_name,
     .option     = hash_options,
@@ -106,7 +106,7 @@ AVOutputFormat ff_md5_muxer = {
     .write_packet      = write_packet,
     .write_trailer     = write_trailer,
     .flags             = AVFMT_NOTIMESTAMPS,
-    .priv_class        = &hashenc_class,
+    .priv_class        = &md5enc_class,
 };
 #endif
 
@@ -140,6 +140,13 @@ static int framemd5_write_trailer(struct AVFormatContext *s)
     return 0;
 }
 
+static const AVClass framemd5_class = {
+    .class_name = "hash encoder class",
+    .item_name  = av_default_item_name,
+    .option     = hash_options,
+    .version    = LIBAVUTIL_VERSION_INT,
+};
+
 AVOutputFormat ff_framemd5_muxer = {
     .name              = "framemd5",
     .long_name         = NULL_IF_CONFIG_SMALL("Per-frame MD5 testing"),
@@ -151,6 +158,6 @@ AVOutputFormat ff_framemd5_muxer = {
     .write_trailer     = framemd5_write_trailer,
     .flags             = AVFMT_VARIABLE_FPS | AVFMT_TS_NONSTRICT |
                          AVFMT_TS_NEGATIVE,
-    .priv_class        = &hashenc_class,
+    .priv_class        = &framemd5_class,
 };
 #endif
-- 
1.8.1.msysgit.1



More information about the ffmpeg-devel mailing list