Merge commit '2fd6e7d077f590e4d7195356f9baeb271f8b9ae2'
authorJames Almer <jamrial@gmail.com>
Wed, 8 Nov 2017 16:45:09 +0000 (13:45 -0300)
committerJames Almer <jamrial@gmail.com>
Wed, 8 Nov 2017 16:45:09 +0000 (13:45 -0300)
* commit '2fd6e7d077f590e4d7195356f9baeb271f8b9ae2':
  libavcodec/mjpeg_qsv: Add QSV MJPEG encoder

Merged-by: James Almer <jamrial@gmail.com>
1  2 
Changelog
configure
libavcodec/Makefile
libavcodec/allcodecs.c
libavcodec/qsv.c
libavcodec/qsvenc.c

diff --cc Changelog
+++ b/Changelog
@@@ -2,357 -2,36 +2,358 @@@ Entries are sorted chronologically fro
  releases are sorted from youngest to oldest.
  
  version <next>:
 -- Support for spherical videos
 -- Intel QSV-accelerated VP8 and VC-1 decoding
 -- VAAPI-accelerated VP8 and HEVC decoding
 -- VAAPI-accelerated deinterlacing
 -- config.log and other configuration files moved into avbuild/ directory
 -- VAAPI-accelerated MPEG-2 and VP8 encoding
 -- Apple Pixlet decoder
 +- Bitstream filters for editing metadata in H.264, HEVC and MPEG-2 streams
 +- Dropped support for OpenJPEG versions 2.0 and below. Using OpenJPEG now
 +  requires 2.1 (or later) and pkg-config.
 +- VDA dropped (use VideoToolbox instead)
 +- MagicYUV encoder
 +- Raw AMR-NB and AMR-WB demuxers
 +- TiVo ty/ty+ demuxer
++- Intel QSV-accelerated MJPEG encoding
 +
 +
 +version 3.4:
 +- deflicker video filter
 +- doubleweave video filter
 +- lumakey video filter
 +- pixscope video filter
 +- oscilloscope video filter
 +- config.log and other configuration files moved into ffbuild/ directory
 +- update cuvid/nvenc headers to Video Codec SDK 8.0.14
 +- afir audio filter
 +- scale_cuda CUDA based video scale filter
 +- librsvg support for svg rasterization
 +- crossfeed audio filter
 +- spec compliant VP9 muxing support in MP4
 +- remove the libnut muxer/demuxer wrappers
 +- remove the libschroedinger encoder/decoder wrappers
 +- surround audio filter
 +- sofalizer filter switched to libmysofa
 +- Gremlin Digital Video demuxer and decoder
 +- headphone audio filter
 +- superequalizer audio filter
 +- roberts video filter
  - The x86 assembler default switched from yasm to nasm, pass
    --x86asmexe=yasm to configure to restore the old behavior.
 -- Cineform HD decoder
 -- VP9 superframe split/merge bitstream filters
 +- additional frame format support for Interplay MVE movies
 +- support for decoding through D3D11VA in ffmpeg
 +- limiter video filter
 +- libvmaf video filter
 +- Dolby E decoder and SMPTE 337M demuxer
 +- unpremultiply video filter
 +- tlut2 video filter
 +- floodfill video filter
 +- pseudocolor video filter
 +- raw G.726 muxer and demuxer, left- and right-justified
 +- NewTek NDI input/output device
 +- Some video filters with several inputs now use a common set of options:
 +  blend, libvmaf, lut3d, overlay, psnr, ssim.
 +  They must always be used by name.
 +- FITS demuxer and decoder
 +- FITS muxer and encoder
 +- add --disable-autodetect build switch
 +- drop deprecated qtkit input device (use avfoundation instead)
 +- despill video filter
 +- haas audio filter
 +- SUP/PGS subtitle muxer
 +- convolve video filter
 +- VP9 tile threading support
 +- KMS screen grabber
 +- CUDA thumbnail filter
 +- V4L2 mem2mem HW assisted codecs
 +- Rockchip MPP hardware decoding
 +- vmafmotion video filter
 +- use MIME type "G726" for little-endian G.726, "AAL2-G726" for big-endian G.726
 +
 +
 +version 3.3:
 +- CrystalHD decoder moved to new decode API
 +- add internal ebur128 library, remove external libebur128 dependency
 +- Pro-MPEG CoP #3-R2 FEC protocol
 +- premultiply video filter
 +- Support for spherical videos
 +- configure now fails if autodetect-libraries are requested but not found
 +- PSD Decoder
 +- 16.8 floating point pcm decoder
 +- 24.0 floating point pcm decoder
 +- Apple Pixlet decoder
 +- QDMC audio decoder
 +- NewTek SpeedHQ decoder
 +- MIDI Sample Dump Standard demuxer
 +- readeia608 filter
 +- Sample Dump eXchange demuxer
 +- abitscope multimedia filter
 +- Scenarist Closed Captions demuxer and muxer
 +- threshold filter
 +- midequalizer filter
 +- Optimal Huffman tables for (M)JPEG encoding
 +- VAAPI-accelerated MPEG-2 and VP8 encoding
  - FM Screen Capture Codec decoder
 -- ClearVideo decoder (I-frames only)
 -- support for decoding through D3D11VA in avconv
 -- Cinepak encoder
 -- Intel QSV-accelerated MJPEG encoding
 +- native Opus encoder
 +- ScreenPressor decoder
 +- incomplete ClearVideo decoder
 +- Intel QSV video scaling and deinterlacing filters
 +- Support MOV with multiple sample description tables
 +- XPM decoder
 +- Removed the legacy X11 screen grabber, use XCB instead
 +- MPEG-7 Video Signature filter
 +- Removed asyncts filter (use af_aresample instead)
 +- Intel QSV-accelerated VP8 video decoding
 +- VAAPI-accelerated deinterlacing
  
  
 -version 12:
 -- aliases and defaults for Ogg subtypes (opus, spx)
 -- HEVC/H.265 RTP payload format (draft v6) packetizer and depacketizer
 -- avplay now exits by default at the end of playback
 -- XCB-based screen-grabber
 -- creating DASH compatible fragmented MP4, MPEG-DASH segmenting muxer
 -- H.261 RTP payload format (RFC 4587) depacketizer and experimental packetizer
 +version 3.2:
 +- libopenmpt demuxer
 +- tee protocol
 +- Changed metadata print option to accept general urls
 +- Alias muxer for Ogg Video (.ogv)
 +- VP8 in Ogg muxing
 +- curves filter doesn't automatically insert points at x=0 and x=1 anymore
 +- 16-bit support in curves filter and selectivecolor filter
 +- OpenH264 decoder wrapper
 +- MediaCodec H.264/HEVC/MPEG-4/VP8/VP9 hwaccel
 +- True Audio (TTA) muxer
 +- crystalizer audio filter
 +- acrusher audio filter
 +- bitplanenoise video filter
 +- floating point support in als decoder
 +- fifo muxer
 +- maskedclamp filter
 +- hysteresis filter
 +- lut2 filter
 +- yuvtestsrc filter
 +- CUDA CUVID H.263/VP8/VP9/10 bit HEVC (Dithered) Decoding
 +- vaguedenoiser filter
 +- added threads option per filter instance
 +- weave filter
 +- gblur filter
 +- avgblur filter
 +- sobel and prewitt filter
 +- MediaCodec HEVC/MPEG-4/VP8/VP9 decoding
 +- Meridian Lossless Packing (MLP) / TrueHD encoder
 +- Non-Local Means (nlmeans) denoising filter
 +- sdl2 output device and ffplay support
 +- sdl1 output device and sdl1 support removed
 +- extended mov edit list support
 +- libfaac encoder removed
 +- Matroska muxer now writes CRC32 elements by default in all Level 1 elements
 +- sidedata video and asidedata audio filter
 +- Changed mapping of rtp MIME type G726 to codec g726le.
 +- spec compliant VAAPI/DXVA2 VC-1 decoding of slices in frame-coded images
 +
 +
 +version 3.1:
 +- DXVA2-accelerated HEVC Main10 decoding
 +- fieldhint filter
 +- loop video filter and aloop audio filter
 +- Bob Weaver deinterlacing filter
 +- firequalizer filter
 +- datascope filter
 +- bench and abench filters
 +- ciescope filter
 +- protocol blacklisting API
 +- MediaCodec H264 decoding
 +- VC-2 HQ RTP payload format (draft v1) depacketizer and packetizer
 +- VP9 RTP payload format (draft v2) packetizer
 +- AudioToolbox audio decoders
 +- AudioToolbox audio encoders
 +- coreimage filter (GPU based image filtering on OSX)
 +- libdcadec removed
 +- bitstream filter for extracting DTS core
 +- ADPCM IMA DAT4 decoder
 +- musx demuxer
 +- aix demuxer
 +- remap filter
 +- hash and framehash muxers
 +- colorspace filter
 +- hdcd filter
 +- readvitc filter
 +- VAAPI-accelerated format conversion and scaling
 +- libnpp/CUDA-accelerated format conversion and scaling
 +- Duck TrueMotion 2.0 Real Time decoder
 +- Wideband Single-bit Data (WSD) demuxer
 +- VAAPI-accelerated H.264/HEVC/MJPEG encoding
 +- DTS Express (LBR) decoder
 +- Generic OpenMAX IL encoder with support for Raspberry Pi
 +- IFF ANIM demuxer & decoder
 +- Direct Stream Transfer (DST) decoder
 +- loudnorm filter
 +- MTAF demuxer and decoder
 +- MagicYUV decoder
 +- OpenExr improvements (tile data and B44/B44A support)
 +- BitJazz SheerVideo decoder
 +- CUDA CUVID H264/HEVC decoder
 +- 10-bit depth support in native utvideo decoder
 +- libutvideo wrapper removed
 +- YUY2 Lossless Codec decoder
 +- VideoToolbox H.264 encoder
 +
 +
 +version 3.0:
 +- Common Encryption (CENC) MP4 encoding and decoding support
 +- DXV decoding
 +- extrastereo filter
 +- ocr filter
 +- alimiter filter
 +- stereowiden filter
 +- stereotools filter
 +- rubberband filter
 +- tremolo filter
 +- agate filter
 +- chromakey filter
 +- maskedmerge filter
 +- Screenpresso SPV1 decoding
 +- chromaprint fingerprinting muxer
 +- ffplay dynamic volume control
 +- displace filter
 +- selectivecolor filter
 +- extensive native AAC encoder improvements and removal of experimental flag
 +- ADPCM PSX decoder
 +- 3dostr, dcstr, fsb, genh, vag, xvag, ads, msf, svag & vpk demuxer
 +- zscale filter
 +- wve demuxer
 +- zero-copy Intel QSV transcoding in ffmpeg
 +- shuffleframes filter
 +- SDX2 DPCM decoder
 +- vibrato filter
 +- innoHeim/Rsupport Screen Capture Codec decoder
 +- ADPCM AICA decoder
 +- Interplay ACM demuxer and audio decoder
 +- XMA1 & XMA2 decoder
 +- realtime filter
 +- anoisesrc audio filter source
 +- IVR demuxer
 +- compensationdelay filter
 +- acompressor filter
 +- support encoding 16-bit RLE SGI images
 +- apulsator filter
 +- sidechaingate audio filter
 +- mipsdspr1 option has been renamed to mipsdsp
 +- aemphasis filter
 +- mips32r5 option has been removed
 +- mips64r6 option has been removed
 +- DXVA2-accelerated VP9 decoding
 +- SOFAlizer: virtual binaural acoustics filter
 +- VAAPI VP9 hwaccel
 +- audio high-order multiband parametric equalizer
 +- automatic bitstream filtering
 +- showspectrumpic filter
 +- libstagefright support removed
 +- spectrumsynth filter
 +- ahistogram filter
 +- only seek with the right mouse button in ffplay
 +- toggle full screen when double-clicking with the left mouse button in ffplay
 +- afftfilt filter
 +- convolution filter
 +- libquvi support removed
 +- support for dvaudio in wav and avi
 +- libaacplus and libvo-aacenc support removed
 +- Cineform HD decoder
 +- new DCA decoder with full support for DTS-HD extensions
 +- significant performance improvements in Windows Television (WTV) demuxer
 +- nnedi deinterlacer
 +- streamselect video and astreamselect audio filter
 +- swaprect filter
 +- metadata video and ametadata audio filter
 +- SMPTE VC-2 HQ profile support for the Dirac decoder
 +- SMPTE VC-2 native encoder supporting the HQ profile
 +
 +
 +version 2.8:
 +- colorkey video filter
 +- BFSTM/BCSTM demuxer
 +- little-endian ADPCM_THP decoder
 +- Hap decoder and encoder
 +- DirectDraw Surface image/texture decoder
 +- ssim filter
 +- optional new ASF demuxer
 +- showvolume filter
 +- Many improvements to the JPEG 2000 decoder
 +- Go2Meeting decoding support
 +- adrawgraph audio and drawgraph video filter
 +- removegrain video filter
 +- Intel QSV-accelerated MPEG-2 video and HEVC encoding
 +- Intel QSV-accelerated MPEG-2 video and HEVC decoding
 +- Intel QSV-accelerated VC-1 video decoding
 +- libkvazaar HEVC encoder
 +- erosion, dilation, deflate and inflate video filters
 +- Dynamic Audio Normalizer as dynaudnorm filter
 +- Reverse video and areverse audio filter
 +- Random filter
 +- deband filter
 +- AAC fixed-point decoding
 +- sidechaincompress audio filter
 +- bitstream filter for converting HEVC from MP4 to Annex B
 +- acrossfade audio filter
 +- allyuv and allrgb video sources
 +- atadenoise video filter
 +- OS X VideoToolbox support
 +- aphasemeter filter
 +- showfreqs filter
 +- vectorscope filter
 +- waveform filter
 +- hstack and vstack filter
 +- Support DNx100 (1440x1080@8)
 +- VAAPI hevc hwaccel
 +- VDPAU hevc hwaccel
 +- framerate filter
 +- Switched default encoders for webm to VP9 and Opus
 +- Removed experimental flag from the JPEG 2000 encoder
 +
 +
 +version 2.7:
 +- FFT video filter
 +- TDSC decoder
 +- DTS lossless extension (XLL) decoding (not lossless, disabled by default)
 +- showwavespic filter
 +- DTS decoding through libdcadec
 +- Drop support for nvenc API before 5.0
 +- nvenc HEVC encoder
 +- Detelecine filter
 +- Intel QSV-accelerated H.264 encoding
 +- MMAL-accelerated H.264 decoding
 +- basic APNG encoder and muxer with default extension "apng"
 +- unpack DivX-style packed B-frames in MPEG-4 bitstream filter
 +- WebM Live Chunk Muxer
 +- nvenc level and tier options
 +- chorus filter
 +- Canopus HQ/HQA decoder
 +- Automatically rotate videos based on metadata in ffmpeg
 +- improved Quickdraw compatibility
 +- VP9 high bit-depth and extended colorspaces decoding support
 +- WebPAnimEncoder API when available for encoding and muxing WebP
 +- Direct3D11-accelerated decoding
 +- Support Secure Transport
 +- Multipart JPEG demuxer
 +
 +
 +version 2.6:
 +- nvenc encoder
 +- 10bit spp filter
 +- colorlevels filter
 +- RIFX format for *.wav files
  - RTP/mpegts muxer
 -- VP8 in Ogg demuxing
 +- non continuous cache protocol support
 +- tblend filter
 +- cropdetect support for non 8bpp, absolute (if limit >= 1) and relative (if limit < 1.0) threshold
 +- Camellia symmetric block cipher
  - OpenH264 encoder wrapper
 +- VOC seeking support
 +- Closed caption Decoder
 +- fspp, uspp, pp7 MPlayer postprocessing filters ported to native filters
 +- showpalette filter
 +- Twofish symmetric block cipher
  - Support DNx100 (960x720@8)
 -- Direct3D11-accelerated decoding
 +- eq2 filter ported from libmpcodecs as eq filter
 +- removed libmpcodecs
 +- Changed default DNxHD colour range in QuickTime .mov derivatives to mpeg range
 +- ported softpulldown filter from libmpcodecs as repeatfields filter
 +- dcshift filter
 +- RTP depacketizer for loss tolerant payload format for MP3 audio (RFC 5219)
 +- RTP depacketizer for AC3 payload format (RFC 4184)
 +- palettegen and paletteuse filters
 +- VP9 RTP payload format (draft 0) experimental depacketizer
 +- RTP depacketizer for DV (RFC 6469)
  - DXVA2-accelerated HEVC decoding
  - AAC ELD 480 decoding
  - Intel QSV-accelerated H.264 decoding
diff --cc configure
+++ b/configure
@@@ -2801,69 -2272,33 +2801,71 @@@ h264_nvenc_encoder_deps="nvenc
  h264_omx_encoder_deps="omx"
  h264_qsv_decoder_select="h264_mp4toannexb_bsf h264_parser qsvdec h264_qsv_hwaccel"
  h264_qsv_encoder_select="qsvenc"
 +h264_rkmpp_decoder_deps="rkmpp"
 +h264_rkmpp_decoder_select="h264_mp4toannexb_bsf"
  h264_vaapi_encoder_deps="VAEncPictureParameterBufferH264"
 -h264_vaapi_encoder_select="vaapi_encode golomb"
 +h264_vaapi_encoder_select="cbs_h264 vaapi_encode"
 +h264_v4l2m2m_decoder_deps="v4l2_m2m h264_v4l2_m2m"
 +h264_v4l2m2m_encoder_deps="v4l2_m2m h264_v4l2_m2m"
 +hevc_cuvid_decoder_deps="cuda cuvid"
 +hevc_cuvid_decoder_select="hevc_mp4toannexb_bsf"
 +hevc_mediacodec_decoder_deps="mediacodec"
 +hevc_mediacodec_decoder_select="hevc_mp4toannexb_bsf hevc_parser"
  hevc_nvenc_encoder_deps="nvenc"
 -hevc_qsv_decoder_select="hevc_mp4toannexb_bsf hevc_parser hevc_qsv_hwaccel qsvdec"
 -hevc_qsv_encoder_select="hevc_ps qsvenc"
 +hevc_qsv_decoder_select="hevc_mp4toannexb_bsf hevc_parser qsvdec hevc_qsv_hwaccel"
 +hevc_qsv_encoder_select="hevcparse qsvenc"
 +hevc_rkmpp_decoder_deps="rkmpp"
 +hevc_rkmpp_decoder_select="hevc_mp4toannexb_bsf"
  hevc_vaapi_encoder_deps="VAEncPictureParameterBufferHEVC"
 -hevc_vaapi_encoder_select="vaapi_encode golomb"
 +hevc_vaapi_encoder_select="cbs_h265 vaapi_encode"
 +hevc_v4l2m2m_decoder_deps="v4l2_m2m hevc_v4l2_m2m"
 +hevc_v4l2m2m_encoder_deps="v4l2_m2m hevc_v4l2_m2m"
 +mjpeg_cuvid_decoder_deps="cuda cuvid"
+ mjpeg_qsv_encoder_deps="libmfx"
+ mjpeg_qsv_encoder_select="qsvenc"
  mjpeg_vaapi_encoder_deps="VAEncPictureParameterBufferJPEG"
  mjpeg_vaapi_encoder_select="vaapi_encode jpegtables"
 +mpeg1_cuvid_decoder_deps="cuda cuvid"
 +mpeg1_v4l2m2m_decoder_deps="v4l2_m2m mpeg1_v4l2_m2m"
 +mpeg2_crystalhd_decoder_select="crystalhd"
 +mpeg2_cuvid_decoder_deps="cuda cuvid"
  mpeg2_mmal_decoder_deps="mmal"
 -mpeg2_qsv_decoder_select="qsvdec mpeg2_qsv_hwaccel mpegvideo_parser"
 +mpeg2_mediacodec_decoder_deps="mediacodec"
 +mpeg2_qsv_decoder_select="qsvdec mpeg2_qsv_hwaccel"
  mpeg2_qsv_encoder_select="qsvenc"
  mpeg2_vaapi_encoder_deps="VAEncPictureParameterBufferMPEG2"
 -mpeg2_vaapi_encoder_select="vaapi_encode"
 +mpeg2_vaapi_encoder_select="cbs_mpeg2 vaapi_encode"
 +mpeg2_v4l2m2m_decoder_deps="v4l2_m2m mpeg2_v4l2_m2m"
 +mpeg4_crystalhd_decoder_select="crystalhd"
 +mpeg4_cuvid_decoder_deps="cuda cuvid"
 +mpeg4_mediacodec_decoder_deps="mediacodec"
 +mpeg4_mmal_decoder_deps="mmal"
  mpeg4_omx_encoder_deps="omx"
 +mpeg4_v4l2m2m_decoder_deps="v4l2_m2m mpeg4_v4l2_m2m"
 +mpeg4_v4l2m2m_encoder_deps="v4l2_m2m mpeg4_v4l2_m2m"
 +msmpeg4_crystalhd_decoder_select="crystalhd"
 +nvenc_h264_encoder_select="h264_nvenc_encoder"
 +nvenc_hevc_encoder_select="hevc_nvenc_encoder"
 +vc1_crystalhd_decoder_select="crystalhd"
 +vc1_cuvid_decoder_deps="cuda cuvid"
  vc1_mmal_decoder_deps="mmal"
  vc1_qsv_decoder_select="qsvdec vc1_qsv_hwaccel vc1_parser"
 +vc1_v4l2m2m_decoder_deps="v4l2_m2m vc1_v4l2_m2m"
 +vp8_cuvid_decoder_deps="cuda cuvid"
 +vp8_mediacodec_decoder_deps="mediacodec"
  vp8_qsv_decoder_select="qsvdec vp8_qsv_hwaccel vp8_parser"
 +vp8_rkmpp_decoder_deps="rkmpp"
  vp8_vaapi_encoder_deps="VAEncPictureParameterBufferVP8"
  vp8_vaapi_encoder_select="vaapi_encode"
 +vp8_v4l2m2m_decoder_deps="v4l2_m2m vp8_v4l2_m2m"
 +vp8_v4l2m2m_encoder_deps="v4l2_m2m vp8_v4l2_m2m"
 +vp9_cuvid_decoder_deps="cuda cuvid"
 +vp9_mediacodec_decoder_deps="mediacodec"
 +vp9_rkmpp_decoder_deps="rkmpp"
  vp9_vaapi_encoder_deps="VAEncPictureParameterBufferVP9"
  vp9_vaapi_encoder_select="vaapi_encode"
 -
 -nvenc_h264_encoder_select="h264_nvenc_encoder"
 -nvenc_hevc_encoder_select="hevc_nvenc_encoder"
 +vp9_v4l2m2m_decoder_deps="v4l2_m2m vp9_v4l2_m2m"
 +wmv3_crystalhd_decoder_select="crystalhd"
  
  # parsers
  aac_parser_select="adts_header"
@@@ -404,19 -315,15 +404,20 @@@ OBJS-$(CONFIG_MAGICYUV_ENCODER)        
  OBJS-$(CONFIG_MDEC_DECODER)            += mdec.o mpeg12.o mpeg12data.o
  OBJS-$(CONFIG_METASOUND_DECODER)       += metasound.o metasound_data.o \
                                            twinvq.o
 +OBJS-$(CONFIG_MICRODVD_DECODER)        += microdvddec.o ass.o
  OBJS-$(CONFIG_MIMIC_DECODER)           += mimic.o
  OBJS-$(CONFIG_MJPEG_DECODER)           += mjpegdec.o
 -OBJS-$(CONFIG_MJPEG_ENCODER)           += mjpegenc.o mjpegenc_common.o
 +OBJS-$(CONFIG_MJPEG_ENCODER)           += mjpegenc.o mjpegenc_common.o \
 +                                          mjpegenc_huffman.o
  OBJS-$(CONFIG_MJPEGB_DECODER)          += mjpegbdec.o
+ OBJS-$(CONFIG_MJPEG_QSV_ENCODER)       += qsvenc_jpeg.o
  OBJS-$(CONFIG_MJPEG_VAAPI_ENCODER)     += vaapi_encode_mjpeg.o
  OBJS-$(CONFIG_MLP_DECODER)             += mlpdec.o mlpdsp.o
 +OBJS-$(CONFIG_MLP_ENCODER)             += mlpenc.o mlp.o
  OBJS-$(CONFIG_MMVIDEO_DECODER)         += mmvideo.o
  OBJS-$(CONFIG_MOTIONPIXELS_DECODER)    += motionpixels.o
 +OBJS-$(CONFIG_MOVTEXT_DECODER)         += movtextdec.o ass.o
 +OBJS-$(CONFIG_MOVTEXT_ENCODER)         += movtextenc.o ass_split.o
  OBJS-$(CONFIG_MP1_DECODER)             += mpegaudiodec_fixed.o
  OBJS-$(CONFIG_MP1FLOAT_DECODER)        += mpegaudiodec_float.o
  OBJS-$(CONFIG_MP2_DECODER)             += mpegaudiodec_fixed.o
@@@ -653,38 -504,21 +653,39 @@@ static void register_all(void
      REGISTER_ENCODER(H264_NVENC,        h264_nvenc);
      REGISTER_ENCODER(H264_OMX,          h264_omx);
      REGISTER_ENCODER(H264_QSV,          h264_qsv);
 +    REGISTER_ENCODER(H264_V4L2M2M,      h264_v4l2m2m);
      REGISTER_ENCODER(H264_VAAPI,        h264_vaapi);
 -    REGISTER_ENCODER(LIBKVAZAAR,        libkvazaar);
 +    REGISTER_ENCODER(H264_VIDEOTOOLBOX, h264_videotoolbox);
 +#if FF_API_NVENC_OLD_NAME
 +    REGISTER_ENCODER(NVENC,             nvenc);
 +    REGISTER_ENCODER(NVENC_H264,        nvenc_h264);
 +    REGISTER_ENCODER(NVENC_HEVC,        nvenc_hevc);
 +#endif
 +    REGISTER_DECODER(HEVC_CUVID,        hevc_cuvid);
 +    REGISTER_DECODER(HEVC_MEDIACODEC,   hevc_mediacodec);
      REGISTER_ENCODER(HEVC_NVENC,        hevc_nvenc);
      REGISTER_ENCODER(HEVC_QSV,          hevc_qsv);
 +    REGISTER_ENCODER(HEVC_V4L2M2M,      hevc_v4l2m2m);
      REGISTER_ENCODER(HEVC_VAAPI,        hevc_vaapi);
 +    REGISTER_ENCODER(LIBKVAZAAR,        libkvazaar);
 +    REGISTER_DECODER(MJPEG_CUVID,       mjpeg_cuvid);
+     REGISTER_ENCODER(MJPEG_QSV,         mjpeg_qsv);
      REGISTER_ENCODER(MJPEG_VAAPI,       mjpeg_vaapi);
 +    REGISTER_DECODER(MPEG1_CUVID,       mpeg1_cuvid);
 +    REGISTER_DECODER(MPEG2_CUVID,       mpeg2_cuvid);
      REGISTER_ENCODER(MPEG2_QSV,         mpeg2_qsv);
      REGISTER_ENCODER(MPEG2_VAAPI,       mpeg2_vaapi);
 -    REGISTER_ENCODER(MPEG4_OMX,         mpeg4_omx);
 -#if FF_API_NVENC_OLD_NAME
 -    REGISTER_ENCODER(NVENC_H264,        nvenc_h264);
 -    REGISTER_ENCODER(NVENC_HEVC,        nvenc_hevc);
 -#endif
 +    REGISTER_DECODER(MPEG4_CUVID,       mpeg4_cuvid);
 +    REGISTER_DECODER(MPEG4_MEDIACODEC,  mpeg4_mediacodec);
 +    REGISTER_ENCODER(MPEG4_V4L2M2M,     mpeg4_v4l2m2m);
 +    REGISTER_DECODER(VC1_CUVID,         vc1_cuvid);
 +    REGISTER_DECODER(VP8_CUVID,         vp8_cuvid);
 +    REGISTER_DECODER(VP8_MEDIACODEC,    vp8_mediacodec);
 +    REGISTER_DECODER(VP8_QSV,           vp8_qsv);
 +    REGISTER_ENCODER(VP8_V4L2M2M,       vp8_v4l2m2m);
      REGISTER_ENCODER(VP8_VAAPI,         vp8_vaapi);
 +    REGISTER_DECODER(VP9_CUVID,         vp9_cuvid);
 +    REGISTER_DECODER(VP9_MEDIACODEC,    vp9_mediacodec);
      REGISTER_ENCODER(VP9_VAAPI,         vp9_vaapi);
  
      /* parsers */
Simple merge
Simple merge