On Thu, Apr 16, 2015 at 10:40:14PM +0000, Urvang Joshi wrote: > On Thu, Apr 16, 2015 at 3:09 PM James Almer <jamr...@gmail.com> wrote: > > > On 16/04/15 4:18 PM, Urvang Joshi wrote: > > > Hi, > > > Here's the patch without whitespace changes. > > > > > > Thanks, > > > Urvang > > > > This patch doesn't apply cleanly. Looks like something weird with the > > indentation still. > > Was this patch handmade? It says the hash for libwebpenc.c is 95d56ac > > (same as git head), > > but the contents of the patch don't match. > > > > Sorry, I should have mentioned that it was created with > "--ignore-all-space" option, so using the same option when applying the > patch would have worked. > > But to avoid any confusion, here's the re-created patch, that should apply > cleanly with just 'git am'. > > > > > > After fixing the conflicts and compiling the patch seems to work, but the > > resulting > > animated webp files are smaller than those using the native muxer using > > the default > > encoding and muxing settings. > > Is this because the muxing done by libwebpmux is different, or are the > > quality defaults > > changed in any way when using this codepath? If the former then that's > > pretty good, but > > if the latter then it should probably be fixed. > > > > Short answer: muxing done by libwebpmux is different, so it's expected that > it generates smaller WebP files. > > Detailed answer: > The native muxer is naive, and it always uses X offset and Y offset of 0 > for all frames. This means the full width x height of all frames are > encoded.
> libwebpmux muxer is smart on the other hand: for example, it only encodes > the part of the frame which has changed from previous frame. > This and other optimizations result in smaller WebP files. can you show some PSNR vs filesize information ? > > Thanks, > Urvang > > > > _______________________________________________ > > ffmpeg-devel mailing list > > ffmpeg-devel@ffmpeg.org > > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > > configure | 5 ++ > libavcodec/libwebpenc.c | 93 > +++++++++++++++++++++++++++++++++++++++++++----- > libavformat/webpenc.c | 44 ++++++++++++++++++++++ why are there changes to libavformat in a patch changing an encoder? [...] > index ee110de..0162eff 100644 > --- a/libavformat/webpenc.c > +++ b/libavformat/webpenc.c > @@ -22,12 +22,25 @@ > #include "libavutil/intreadwrite.h" > #include "libavutil/opt.h" > #include "avformat.h" > +#include "config.h" > #include "internal.h" > > +#if CONFIG_LIBWEBP > +#include <webp/encode.h> > +#if HAVE_WEBP_MUX_H > +#include <webp/mux.h> > +#if (WEBP_MUX_ABI_VERSION >= 0x0105) > +#define USE_WEBP_ANIMENCODER > +#endif > +#endif > +#endif > + > typedef struct WebpContext{ > AVClass *class; > int frame_count; > +#ifndef USE_WEBP_ANIMENCODER > AVPacket last_pkt; > +#endif > int loop; > } WebpContext; > > @@ -44,13 +57,40 @@ static int webp_write_header(AVFormatContext *s) > av_log(s, AV_LOG_ERROR, "Only WebP is supported\n"); > return AVERROR(EINVAL); > } > - avpriv_set_pts_info(st, 24, 1, 1000); > > +#ifndef USE_WEBP_ANIMENCODER > + avpriv_set_pts_info(st, 24, 1, 1000); > avio_write(s->pb, "RIFF\0\0\0\0WEBP", 12); > +#endif > + > + return 0; > +} this removes the timebase setting, that looks wrong also please make sure -vcodec copy does if it works before the patch, still work afterwards [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Republics decline into democracies and democracies degenerate into despotisms. -- Aristotle
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel