On Sun, Aug 02, 2015 at 03:31:07PM +0300, Ivan Uskov wrote: > Hello All, > > The attached patch adds QSV-based mjpeg video decoder. > Please review. > > > -- > Best regards, > Ivan mailto:ivan.us...@nablet.com
> Changelog | 1 > configure | 4 ++ > libavcodec/Makefile | 1 > libavcodec/allcodecs.c | 2 + > libavcodec/qsv.c | 10 ++++- > libavcodec/qsvdec_mjpeg.c | 88 > ++++++++++++++++++++++++++++++++++++++++++++++ > libavcodec/version.h | 4 +- > 7 files changed, 107 insertions(+), 3 deletions(-) > bb73d75e397cda2dc536765bdeb6dde07cf59458 > 0001-QSV-MJPEG-video-decoder-has-been-added.patch > From a9fef261b1498a8945c1f81e08f226ead4e176fd Mon Sep 17 00:00:00 2001 > From: Ivan Uskov <ivan.us...@nablet.com> > Date: Sun, 2 Aug 2015 08:19:28 -0400 > Subject: [PATCH] QSV MJPEG video decoder has been added. > > --- > Changelog | 1 + > configure | 4 +++ > libavcodec/Makefile | 1 + > libavcodec/allcodecs.c | 2 ++ > libavcodec/qsv.c | 10 +++++- > libavcodec/qsvdec_mjpeg.c | 88 > +++++++++++++++++++++++++++++++++++++++++++++++ > libavcodec/version.h | 4 +-- > 7 files changed, 107 insertions(+), 3 deletions(-) > create mode 100644 libavcodec/qsvdec_mjpeg.c > > diff --git a/Changelog b/Changelog > index f41d837..0002281 100644 > --- a/Changelog > +++ b/Changelog > @@ -17,6 +17,7 @@ version <next>: > - 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 > +- Intel QSV-accelerated MJPEG video decoding > - libkvazaar HEVC encoder > - erosion, dilation, deflate and inflate video filters > - Dynamic Audio Normalizer as dynaudnorm filter > diff --git a/configure b/configure > index f3550a0..6f5d3c8 100755 > --- a/configure > +++ b/configure > @@ -2254,6 +2254,8 @@ mimic_decoder_select="blockdsp bswapdsp hpeldsp idctdsp" > mjpeg_decoder_select="blockdsp hpeldsp exif idctdsp jpegtables" > mjpeg_encoder_select="aandcttables jpegtables mpegvideoenc" > mjpegb_decoder_select="mjpeg_decoder" > +mjpeg_qsv_decoder_deps="libmfx" > +mjpeg_qsv_decoder_select="qsvdec mjpeg_qsv_hwaccel" > mlp_decoder_select="mlp_parser" > motionpixels_decoder_select="bswapdsp" > mp1_decoder_select="mpegaudio" > @@ -2417,6 +2419,8 @@ hevc_dxva2_hwaccel_select="hevc_decoder" > hevc_qsv_hwaccel_deps="libmfx" > hevc_vdpau_hwaccel_deps="vdpau VdpPictureInfoHEVC" > hevc_vdpau_hwaccel_select="hevc_decoder" > +mjpeg_qsv_hwaccel_deps="libmfx" > +mjpeg_qsv_hwaccel_select="qsvdec_mjpeg" > mpeg_vdpau_decoder_deps="vdpau" > mpeg_vdpau_decoder_select="mpeg2video_decoder" > mpeg_xvmc_hwaccel_deps="xvmc" > diff --git a/libavcodec/Makefile b/libavcodec/Makefile > index 7cf2403..00cfca7 100644 > --- a/libavcodec/Makefile > +++ b/libavcodec/Makefile > @@ -338,6 +338,7 @@ OBJS-$(CONFIG_MIMIC_DECODER) += mimic.o > OBJS-$(CONFIG_MJPEG_DECODER) += mjpegdec.o > OBJS-$(CONFIG_MJPEG_ENCODER) += mjpegenc.o mjpegenc_common.o > OBJS-$(CONFIG_MJPEGB_DECODER) += mjpegbdec.o > +OBJS-$(CONFIG_MJPEG_QSV_DECODER) += qsvdec_mjpeg.o > OBJS-$(CONFIG_MLP_DECODER) += mlpdec.o mlpdsp.o > OBJS-$(CONFIG_MMVIDEO_DECODER) += mmvideo.o > OBJS-$(CONFIG_MOTIONPIXELS_DECODER) += motionpixels.o > diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c > index 417f824..6177933 100644 > --- a/libavcodec/allcodecs.c > +++ b/libavcodec/allcodecs.c > @@ -88,6 +88,7 @@ void avcodec_register_all(void) > REGISTER_HWACCEL(HEVC_DXVA2, hevc_dxva2); > REGISTER_HWACCEL(HEVC_QSV, hevc_qsv); > REGISTER_HWACCEL(HEVC_VDPAU, hevc_vdpau); > + REGISTER_HWACCEL(MJPEG_QSV, mjpeg_qsv); > REGISTER_HWACCEL(MPEG1_XVMC, mpeg1_xvmc); > REGISTER_HWACCEL(MPEG1_VDPAU, mpeg1_vdpau); > REGISTER_HWACCEL(MPEG2_XVMC, mpeg2_xvmc); > @@ -213,6 +214,7 @@ void avcodec_register_all(void) > REGISTER_DECODER(MIMIC, mimic); > REGISTER_ENCDEC (MJPEG, mjpeg); > REGISTER_DECODER(MJPEGB, mjpegb); > + REGISTER_DECODER(MJPEG_QSV, mjpeg_qsv); > REGISTER_DECODER(MMVIDEO, mmvideo); > REGISTER_DECODER(MOTIONPIXELS, motionpixels); > #if FF_API_XVMC > diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c > index 4c8e6b0..0f5c9ce 100644 > --- a/libavcodec/qsv.c > +++ b/libavcodec/qsv.c > @@ -20,7 +20,6 @@ > > #include <mfx/mfxvideo.h> > #include <mfx/mfxplugin.h> > - > #include <stdio.h> > #include <string.h> > > @@ -30,6 +29,11 @@ > #include "avcodec.h" > #include "qsv_internal.h" > > +#if QSV_VERSION_ATLEAST(1, 3) > +#include <mfx/mfxjpeg.h> > +#endif this seems not working CC libavcodec/qsv.o libavcodec/qsv.c:33:25: fatal error: mfx/mfxjpeg.h: No such file or directory #include <mfx/mfxjpeg.h> ^ compilation terminated. common.mak:57: recipe for target 'libavcodec/qsv.o' failed make: *** [libavcodec/qsv.o] Error 1 /usr/local/include/mfx/mfxvideo.h:#define MFX_VERSION_MAJOR 1 /usr/local/include/mfx/mfxvideo.h:#define MFX_VERSION_MINOR 10 /usr/local/include/mfxvideo.h:#define MFX_VERSION_MAJOR 1 /usr/local/include/mfxvideo.h:#define MFX_VERSION_MINOR 10 it appears the file was not in mfx_dispatch previously so a check in confgure might be needed [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB The real ebay dictionary, page 3 "Rare item" - "Common item with rare defect or maybe just a lie" "Professional" - "'Toy' made in china, not functional except as doorstop" "Experts will know" - "The seller hopes you are not an expert"
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel