Browse code

vp9: use superframe split BSF

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.

wm4 authored on 2017/11/17 22:15:22
Showing 2 changed files
... ...
@@ -29,7 +29,7 @@
29 29
 
30 30
 #define LIBAVCODEC_VERSION_MAJOR  58
31 31
 #define LIBAVCODEC_VERSION_MINOR   6
32
-#define LIBAVCODEC_VERSION_MICRO 101
32
+#define LIBAVCODEC_VERSION_MICRO 102
33 33
 
34 34
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
35 35
                                                LIBAVCODEC_VERSION_MINOR, \
... ...
@@ -1795,6 +1795,7 @@ AVCodec ff_vp9_decoder = {
1795 1795
     .init_thread_copy      = ONLY_IF_THREADS_ENABLED(vp9_decode_init_thread_copy),
1796 1796
     .update_thread_context = ONLY_IF_THREADS_ENABLED(vp9_decode_update_thread_context),
1797 1797
     .profiles              = NULL_IF_CONFIG_SMALL(ff_vp9_profiles),
1798
+    .bsfs                  = "vp9_superframe_split",
1798 1799
     .hw_configs            = (const AVCodecHWConfigInternal*[]) {
1799 1800
 #if CONFIG_VP9_DXVA2_HWACCEL
1800 1801
                                HWACCEL_DXVA2(vp9),