On Mon, Dec 01, 2014 at 11:41:41AM +0100, Benoit Fouet wrote: > --- > Tested against all the materials I have at hand. > There is an artifact showing for > https://raw.githubusercontent.com/maxcom/lorsource/master/src/test/resources/images/i_want_to_be_a_hero__apng_animated__by_tamalesyatole-d5ht8eu.png > which I don't really understand, as it seems the individual frames are correct > for our decoder, but the disposal that's done for other decoders (tested > firefox and chrome) is not the same for the end of the cape. > --- > libavcodec/pngdec.c | 93 > ++++++++++++++++++++++++++++++++++++++++------------- > 1 file changed, 71 insertions(+), 22 deletions(-) > > diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c > index 9e52d0b..2ca3dee 100644 > --- a/libavcodec/pngdec.c > +++ b/libavcodec/pngdec.c > @@ -23,6 +23,7 @@ > > #include "libavutil/bprint.h" > #include "libavutil/imgutils.h" > +#include "libavutil/thread.h" > #include "avcodec.h" > #include "bytestream.h" > #include "internal.h" > @@ -38,9 +39,16 @@ typedef struct PNGDecContext { > AVCodecContext *avctx; > > GetByteContext gb; > + ThreadFrame previous_picture; > ThreadFrame last_picture; > ThreadFrame picture; > > +#if CONFIG_APNG_DECODER > + AVMutex mutex; > + int frame_id; > + int *pframe_id; > +#endif
why do you need a mutex ? [...] > @@ -1193,13 +1218,26 @@ static int update_thread_context(AVCodecContext *dst, > const AVCodecContext *src) > { > PNGDecContext *psrc = src->priv_data; > PNGDecContext *pdst = dst->priv_data; > + int ret; > > if (dst == src) > return 0; > > +#if CONFIG_APNG_DECODER > + pdst->pframe_id = psrc->pframe_id; > + ff_mutex_destroy(&pdst->mutex); > + pdst->mutex = psrc->mutex; > +#endif this would destroy mutexes more often than init them i think [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Concerning the gods, I have no means of knowing whether they exist or not or of what sort they may be, because of the obscurity of the subject, and the brevity of human life -- Protagoras
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel