]> git.sesse.net Git - ffmpeg/commitdiff
vp9: use superframe split BSF
authorwm4 <nfxjfg@googlemail.com>
Fri, 17 Nov 2017 13:15:22 +0000 (14:15 +0100)
committerwm4 <nfxjfg@googlemail.com>
Wed, 29 Nov 2017 16:18:12 +0000 (17:18 +0100)
webm usually has invisible superframes merged with normal frames.
(vpxenc muxes them in this form, which is evidence enough that this is
the standard webm packet format. It's rather unclear whether ffmpeg is
even allowed to remux them with split packets.)

The vp9 decoder needs them to be in separate packets for multithreading
to work. Add the BSF to the decoder, so the conversion happens
automatically.

This contains the important part of fa1749dd34c55fb9, which
was apparently skipped in commit d417e95af76. This restores Libav API
compatibility.

libavcodec/version.h
libavcodec/vp9.c

index 55bb5c5e01f6f998ffa46f364c20a886304fc1ac..d67b689142f70b0a11878ed3089a899506c8e264 100644 (file)
@@ -29,7 +29,7 @@
 
 #define LIBAVCODEC_VERSION_MAJOR  58
 #define LIBAVCODEC_VERSION_MINOR   6
-#define LIBAVCODEC_VERSION_MICRO 101
+#define LIBAVCODEC_VERSION_MICRO 102
 
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
                                                LIBAVCODEC_VERSION_MINOR, \
index 1ea2869c4c1389c7a6e4c0d358fa1c194048691d..6241f01de11751ccac2bbf9ffce202bb79e21243 100644 (file)
@@ -1795,6 +1795,7 @@ AVCodec ff_vp9_decoder = {
     .init_thread_copy      = ONLY_IF_THREADS_ENABLED(vp9_decode_init_thread_copy),
     .update_thread_context = ONLY_IF_THREADS_ENABLED(vp9_decode_update_thread_context),
     .profiles              = NULL_IF_CONFIG_SMALL(ff_vp9_profiles),
+    .bsfs                  = "vp9_superframe_split",
     .hw_configs            = (const AVCodecHWConfigInternal*[]) {
 #if CONFIG_VP9_DXVA2_HWACCEL
                                HWACCEL_DXVA2(vp9),