[Ffmpeg-devel] [PATCH] mjpeg decoder, mplayer mf://*.jpg

Reimar Döffinger Reimar.Doeffinger
Thu Jul 21 19:10:41 CEST 2005


Hi,
On Thu, Jul 21, 2005 at 01:03:08PM +0200, Michael Niedermayer wrote:
> well, it doesnt seem optimal, either the resting should happen after "case 
> SOI:" or where you put it, but not both

Hey, you are right. This is getting boring, can't you just be wrong
sometimes *g*
Well, I suggest the attached patch instead, it set restart_count to 0
every time restart_interval is set. Does that look better to you?

Greetings,
Reimar D?ffinger
-------------- next part --------------
Index: libavcodec/mjpeg.c
===================================================================
RCS file: /cvsroot/ffmpeg/ffmpeg/libavcodec/mjpeg.c,v
retrieving revision 1.111
diff -u -r1.111 mjpeg.c
--- libavcodec/mjpeg.c	17 Jul 2005 12:56:56 -0000	1.111
+++ libavcodec/mjpeg.c	21 Jul 2005 17:07:58 -0000
@@ -882,6 +882,7 @@
 {
     MJpegDecodeContext *s = avctx->priv_data;
     MpegEncContext s2;
+    memset(s, 0, sizeof(MJpegDecodeContext));
 
     s->avctx = avctx;
 
@@ -1573,6 +1574,7 @@
     if (get_bits(&s->gb, 16) != 4)
 	return -1;
     s->restart_interval = get_bits(&s->gb, 16);
+    s->restart_count = 0;
     dprintf("restart interval: %d\n", s->restart_interval);
 
     return 0;
@@ -1892,6 +1894,7 @@
                 switch(start_code) {
                 case SOI:
 		    s->restart_interval = 0;
+		    s->restart_count = 0;
                     /* nothing to do on SOI */
                     break;
                 case DQT:
@@ -2000,6 +2003,7 @@
 read_header:
     /* reset on every SOI */
     s->restart_interval = 0;
+    s->restart_count = 0;
     s->mjpb_skiptosod = 0;
 
     init_get_bits(&hgb, buf_ptr, /*buf_size*/(buf_end - buf_ptr)*8);



More information about the ffmpeg-devel mailing list