Skip to content

Commit

Permalink
Update submodule and patchset
Browse files Browse the repository at this point in the history
Submodule ffmpeg f89949a..e4c1272

Update 0018, 0031, 0057, 0068, 0076 and 0077

Signed-off-by: Haihao Xiang <[email protected]>
  • Loading branch information
xhaihao authored and intel-media-ci committed Sep 9, 2022
1 parent bddd0f1 commit 6c0c22e
Show file tree
Hide file tree
Showing 7 changed files with 96 additions and 128 deletions.
2 changes: 1 addition & 1 deletion ffmpeg
Submodule ffmpeg updated 91 files
+1 −0 configure
+29 −16 doc/encoders.texi
+1 −0 doc/ffprobe.xsd
+2 −0 fftools/ffprobe.c
+20 −7 libavcodec/avcodec.h
+2 −5 libavcodec/cfhd.c
+0 −4 libavcodec/cfhd.h
+140 −304 libavcodec/cfhddata.c
+0 −12 libavcodec/decode.c
+9 −15 libavcodec/dv.c
+19 −77 libavcodec/dv.h
+62 −0 libavcodec/dv_internal.h
+5 −2 libavcodec/dv_tablegen.h
+3 −61 libavcodec/dvdata.c
+2 −1 libavcodec/dvdata.h
+46 −32 libavcodec/dvdec.c
+57 −29 libavcodec/dvenc.c
+0 −13 libavcodec/ffv1.c
+22 −1 libavcodec/ffv1dec.c
+1 −1 libavcodec/flac.h
+1 −1 libavcodec/flacdec.c
+0 −4 libavcodec/internal.h
+2 −2 libavcodec/libtheoraenc.c
+8 −8 libavcodec/mips/hevcdsp_mmi.c
+35 −12 libavcodec/pthread_frame.c
+14 −0 libavcodec/qsv.c
+2 −0 libavcodec/qsvdec.c
+4 −1 libavcodec/qsvenc.c
+4 −2 libavcodec/qsvenc.h
+1 −0 libavcodec/qsvenc_h264.c
+2 −0 libavcodec/qsvenc_hevc.c
+1 −0 libavcodec/qsvenc_vp9.c
+219 −365 libavcodec/wmaprodata.h
+30 −30 libavcodec/wmaprodec.c
+3 −11 libavcodec/wmavoice.c
+18 −5 libavcodec/x86/flacdsp.asm
+26 −15 libavcodec/x86/flacdsp_init.c
+10 −10 libavfilter/vf_scale.c
+1 −2 libavformat/Makefile
+87 −37 libavformat/dv.c
+1 −3 libavformat/dv.h
+19 −19 libavformat/dvenc.c
+6 −1 libavformat/imfdec.c
+7 −0 libavformat/internal.h
+14 −11 libavformat/matroskaenc.c
+6 −1 libavformat/mov.c
+5 −2 libavformat/mux.c
+1 −1 libavformat/version.h
+4 −0 libavformat/webm_chunk.c
+1 −1 libavutil/aarch64/tx_float_init.c
+25 −3 libavutil/fifo.h
+12 −0 libavutil/hwcontext_qsv.c
+3 −1 libavutil/slicethread.c
+13 −10 libavutil/tx.c
+7 −2 libavutil/tx_priv.h
+298 −47 libavutil/x86/tx_float.asm
+56 −1 libavutil/x86/tx_float_init.c
+144 −74 libswscale/input.c
+5 −0 libswscale/utils.c
+1 −1 libswscale/version.h
+14 −13 tests/checkasm/av_tx.c
+19 −0 tests/fate/matroska.mak
+1 −1 tests/ref/fate/concat-demuxer-extended-lavf-mxf
+1 −1 tests/ref/fate/concat-demuxer-extended-lavf-mxf_d10
+1 −1 tests/ref/fate/concat-demuxer-simple1-lavf-mxf
+1 −1 tests/ref/fate/concat-demuxer-simple1-lavf-mxf_d10
+1 −1 tests/ref/fate/concat-demuxer-simple2-lavf-ts
+1 −1 tests/ref/fate/ffprobe_compact
+1 −1 tests/ref/fate/ffprobe_csv
+1 −0 tests/ref/fate/ffprobe_default
+1 −0 tests/ref/fate/ffprobe_flat
+1 −0 tests/ref/fate/ffprobe_ini
+1 −0 tests/ref/fate/ffprobe_json
+1 −1 tests/ref/fate/ffprobe_xml
+1 −1 tests/ref/fate/ffprobe_xsd
+1 −1 tests/ref/fate/flv-demux
+1 −1 tests/ref/fate/gapless-mp3-side-data
+98 −0 tests/ref/fate/matroska-encoding-delay
+92 −0 tests/ref/fate/matroska-ogg-opus-remux
+103 −0 tests/ref/fate/matroska-opus-remux
+2 −0 tests/ref/fate/mxf-probe-applehdr10
+1 −0 tests/ref/fate/mxf-probe-d10
+2 −0 tests/ref/fate/mxf-probe-dv25
+1 −1 tests/ref/fate/oggopus-demux
+2 −2 tests/ref/fate/ts-demux
+1 −1 tests/ref/fate/ts-opus-demux
+2 −2 tests/ref/lavf/mkv
+2 −2 tests/ref/lavf/mkv_attachment
+1 −1 tests/ref/lavf/mxf_dv25
+22 −22 tests/ref/seek/lavf-mkv
+3 −0 tools/.gitignore
89 changes: 29 additions & 60 deletions patches/0018-lavcu-qsv-Add-decoding-support-for-444-8-10-bit.patch
Original file line number Diff line number Diff line change
@@ -1,63 +1,44 @@
From 42452f13d1bceb375b128c6c643ced783a2176e3 Mon Sep 17 00:00:00 2001
From 50f74dbe1b1ee4f78ab429e6e1e070168bf5d2f6 Mon Sep 17 00:00:00 2001
From: Linjie Fu <[email protected]>
Date: Mon, 18 May 2020 16:54:57 +0800
Subject: [PATCH 02/50] lavcu/qsv: Add decoding support for 444 8/10 bit
Subject: [PATCH 02/51] lavcu/qsv: Add decoding support for 444 8/10 bit

Add support for 0yuv/y410 in system memory

Signed-off-by: Linjie Fu <[email protected]>
Signed-off-by: Haihao Xiang <[email protected]>
---
libavcodec/qsv.c | 22 ++++++++++++++++++++++
libavcodec/qsvdec.c | 4 ++++
libavutil/hwcontext_qsv.c | 13 +++++++++++++
3 files changed, 39 insertions(+)
libavcodec/qsv.c | 8 ++++++++
libavcodec/qsvdec.c | 2 ++
libavutil/hwcontext_qsv.c | 5 +++++
3 files changed, 15 insertions(+)

diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c
index 3449789a2c..44334f574f 100644
index 51aac16695..c00dcd9b11 100644
--- a/libavcodec/qsv.c
+++ b/libavcodec/qsv.c
@@ -210,7 +210,9 @@ enum AVPixelFormat ff_qsv_map_fourcc(uint32_t fourcc)
case MFX_FOURCC_RGB4: return AV_PIX_FMT_BGRA;
#if CONFIG_VAAPI
@@ -212,6 +212,7 @@ enum AVPixelFormat ff_qsv_map_fourcc(uint32_t fourcc)
case MFX_FOURCC_YUY2: return AV_PIX_FMT_YUYV422;
+ case MFX_FOURCC_AYUV: return AV_PIX_FMT_VUYX;
case MFX_FOURCC_Y210: return AV_PIX_FMT_Y210;
case MFX_FOURCC_AYUV: return AV_PIX_FMT_VUYX;
+ case MFX_FOURCC_Y410: return AV_PIX_FMT_XV30;
#endif
}
return AV_PIX_FMT_NONE;
@@ -239,10 +241,18 @@ int ff_qsv_map_pixfmt(enum AVPixelFormat format, uint32_t *fourcc)
case AV_PIX_FMT_YUYV422:
*fourcc = MFX_FOURCC_YUY2;
return AV_PIX_FMT_YUYV422;
+ case AV_PIX_FMT_VUYX:
+ case AV_PIX_FMT_YUV444P:
+ *fourcc = MFX_FOURCC_AYUV;
+ return AV_PIX_FMT_VUYX;
case AV_PIX_FMT_YUV422P10:
case AV_PIX_FMT_Y210:
*fourcc = MFX_FOURCC_Y210;
return AV_PIX_FMT_Y210;
@@ -247,6 +248,9 @@ int ff_qsv_map_pixfmt(enum AVPixelFormat format, uint32_t *fourcc)
case AV_PIX_FMT_VUYX:
*fourcc = MFX_FOURCC_AYUV;
return AV_PIX_FMT_VUYX;
+ case AV_PIX_FMT_XV30:
+ case AV_PIX_FMT_YUV444P10:
+ *fourcc = MFX_FOURCC_Y410;
+ return AV_PIX_FMT_XV30;
#endif
default:
return AVERROR(ENOSYS);
@@ -277,6 +287,18 @@ int ff_qsv_map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface)
surface->Data.U16 = (mfxU16 *)frame->data[0] + 1;
surface->Data.V16 = (mfxU16 *)frame->data[0] + 3;
@@ -291,6 +295,10 @@ int ff_qsv_map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface)
surface->Data.A = frame->data[0] + 3;
break;
+
+ case AV_PIX_FMT_VUYX:
+ surface->Data.V = frame->data[0];
+ surface->Data.U = frame->data[0] + 1;
+ surface->Data.Y = frame->data[0] + 2;
+ surface->Data.A = frame->data[0] + 3;
+ break;
+

+ case AV_PIX_FMT_XV30:
+ surface->Data.U = frame->data[0];
+ break;
Expand All @@ -66,54 +47,42 @@ index 3449789a2c..44334f574f 100644
return AVERROR(ENOSYS);
}
diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c
index 0f0d719e23..6137f1e000 100644
index 0254a394bd..912d58965a 100644
--- a/libavcodec/qsvdec.c
+++ b/libavcodec/qsvdec.c
@@ -141,6 +141,8 @@ static int qsv_get_continuous_buffer(AVCodecContext *avctx, AVFrame *frame,
frame->linesize[0] = 2 * FFALIGN(avctx->width, 128);
@@ -142,6 +142,7 @@ static int qsv_get_continuous_buffer(AVCodecContext *avctx, AVFrame *frame,
break;
case AV_PIX_FMT_Y210:
case AV_PIX_FMT_VUYX:
+ case AV_PIX_FMT_XV30:
+ case AV_PIX_FMT_VUYX:
frame->linesize[0] = 4 * FFALIGN(avctx->width, 128);
break;
default:
@@ -1041,6 +1043,8 @@ const FFCodec ff_##x##_qsv_decoder = { \
AV_PIX_FMT_P010, \
@@ -1043,6 +1044,7 @@ const FFCodec ff_##x##_qsv_decoder = { \
AV_PIX_FMT_YUYV422, \
AV_PIX_FMT_Y210, \
+ AV_PIX_FMT_VUYX, \
AV_PIX_FMT_VUYX, \
+ AV_PIX_FMT_XV30, \
AV_PIX_FMT_QSV, \
AV_PIX_FMT_NONE }, \
.hw_configs = qsv_hw_configs, \
diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c
index e08a203082..66ff2212e4 100644
index 3234264e1c..853e549236 100644
--- a/libavutil/hwcontext_qsv.c
+++ b/libavutil/hwcontext_qsv.c
@@ -117,8 +117,12 @@ static const struct {
#if CONFIG_VAAPI
{ AV_PIX_FMT_YUYV422,
MFX_FOURCC_YUY2 },
+ { AV_PIX_FMT_VUYX,
+ MFX_FOURCC_AYUV },
{ AV_PIX_FMT_Y210,
MFX_FOURCC_Y210 },
@@ -123,6 +123,8 @@ static const struct {
// the SDK only delares support for AYUV
{ AV_PIX_FMT_VUYX,
MFX_FOURCC_AYUV },
+ { AV_PIX_FMT_XV30,
+ MFX_FOURCC_Y410 },
#endif
};

@@ -1502,6 +1506,15 @@ static int map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface)
surface->Data.U16 = (mfxU16 *)frame->data[0] + 1;
surface->Data.V16 = (mfxU16 *)frame->data[0] + 3;
@@ -1514,6 +1516,9 @@ static int map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface)
// use the value from the frame.
surface->Data.A = frame->data[0] + 3;
break;
+ case AV_PIX_FMT_VUYX:
+ surface->Data.V = frame->data[0];
+ surface->Data.U = frame->data[0] + 1;
+ surface->Data.Y = frame->data[0] + 2;
+ surface->Data.A = frame->data[0] + 3;
+ break;
+ case AV_PIX_FMT_XV30:
+ surface->Data.U = frame->data[0];
+ break;
Expand Down
24 changes: 12 additions & 12 deletions patches/0031-lavc-qsv-support-hevc-vp9-12bit.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 7f7c9c9d9dc9b762714d8d9f8fd4ff15eefe230f Mon Sep 17 00:00:00 2001
From d56c060b4e1d7b519720ab9d11923564402ccf2f Mon Sep 17 00:00:00 2001
From: Fei Wang <[email protected]>
Date: Thu, 28 May 2020 14:14:32 -0400
Subject: [PATCH 06/50] lavc/qsv: support hevc/vp9 12bit
Subject: [PATCH 07/51] lavc/qsv: support hevc/vp9 12bit

ffmpeg -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -v verbose -c:v hevc_qsv -i GENERAL_12b_420_RExt_Sony_1.bit -vf hwdownload,format=p012 -vsync passthrough -frames 25 -f md5 -y qsv_out.md5

Expand All @@ -20,12 +20,12 @@ ffmpeg -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -v verbose
2 files changed, 35 insertions(+)

diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c
index 44334f574f..bd0d689c27 100644
index c00dcd9b11..f1e47514c0 100644
--- a/libavcodec/qsv.c
+++ b/libavcodec/qsv.c
@@ -213,6 +213,11 @@ enum AVPixelFormat ff_qsv_map_fourcc(uint32_t fourcc)
case MFX_FOURCC_AYUV: return AV_PIX_FMT_VUYX;
case MFX_FOURCC_Y210: return AV_PIX_FMT_Y210;
case MFX_FOURCC_AYUV: return AV_PIX_FMT_VUYX;
case MFX_FOURCC_Y410: return AV_PIX_FMT_XV30;
+#if QSV_VERSION_ATLEAST(1, 31)
+ case MFX_FOURCC_P016: return AV_PIX_FMT_P012;
Expand All @@ -35,8 +35,8 @@ index 44334f574f..bd0d689c27 100644
#endif
}
return AV_PIX_FMT_NONE;
@@ -253,6 +258,20 @@ int ff_qsv_map_pixfmt(enum AVPixelFormat format, uint32_t *fourcc)
case AV_PIX_FMT_YUV444P10:
@@ -251,6 +256,20 @@ int ff_qsv_map_pixfmt(enum AVPixelFormat format, uint32_t *fourcc)
case AV_PIX_FMT_XV30:
*fourcc = MFX_FOURCC_Y410;
return AV_PIX_FMT_XV30;
+#if QSV_VERSION_ATLEAST(1, 31)
Expand All @@ -57,11 +57,11 @@ index 44334f574f..bd0d689c27 100644
default:
return AVERROR(ENOSYS);
diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c
index 66ff2212e4..480e89415c 100644
index 853e549236..f49d1c8006 100644
--- a/libavutil/hwcontext_qsv.c
+++ b/libavutil/hwcontext_qsv.c
@@ -123,6 +123,14 @@ static const struct {
MFX_FOURCC_Y210 },
@@ -125,6 +125,14 @@ static const struct {
MFX_FOURCC_AYUV },
{ AV_PIX_FMT_XV30,
MFX_FOURCC_Y410 },
+#if QSV_VERSION_ATLEAST(1, 31)
Expand All @@ -75,23 +75,23 @@ index 66ff2212e4..480e89415c 100644
#endif
};

@@ -1478,6 +1486,7 @@ static int map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface)
@@ -1480,6 +1488,7 @@ static int map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface)
switch (frame->format) {
case AV_PIX_FMT_NV12:
case AV_PIX_FMT_P010:
+ case AV_PIX_FMT_P012:
surface->Data.Y = frame->data[0];
surface->Data.UV = frame->data[1];
break;
@@ -1502,6 +1511,7 @@ static int map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface)
@@ -1504,6 +1513,7 @@ static int map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface)
break;

case AV_PIX_FMT_Y210:
+ case AV_PIX_FMT_Y212:
surface->Data.Y16 = (mfxU16 *)frame->data[0];
surface->Data.U16 = (mfxU16 *)frame->data[0] + 1;
surface->Data.V16 = (mfxU16 *)frame->data[0] + 3;
@@ -1515,6 +1525,12 @@ static int map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface)
@@ -1519,6 +1529,12 @@ static int map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface)
case AV_PIX_FMT_XV30:
surface->Data.U = frame->data[0];
break;
Expand Down
20 changes: 10 additions & 10 deletions patches/0057-qsv-remove-CONFIG_VAAPI.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 1a590755d9780a53234e0fc023e9d239f0b47d67 Mon Sep 17 00:00:00 2001
From 95f4fd513416a00873694b6a203afea805e7745c Mon Sep 17 00:00:00 2001
From: Tong Wu <[email protected]>
Date: Mon, 29 Nov 2021 15:12:12 +0800
Subject: [PATCH 30/50] qsv: remove CONFIG_VAAPI
Subject: [PATCH 31/51] qsv: remove CONFIG_VAAPI

Make 8-bit, 10-bit, 12-bit YUV 4:2:2 video sources as well as YUV 4:4:4
video sources supported by d3d11va and dxva2 just like what VAAPI does.
Expand All @@ -13,7 +13,7 @@ Sign-off-by: Tong Wu <[email protected]>
2 files changed, 8 deletions(-)

diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c
index bd0d689c27..6edc029122 100644
index f1e47514c0..ec7b5c2ddd 100644
--- a/libavcodec/qsv.c
+++ b/libavcodec/qsv.c
@@ -208,7 +208,6 @@ enum AVPixelFormat ff_qsv_map_fourcc(uint32_t fourcc)
Expand All @@ -22,8 +22,8 @@ index bd0d689c27..6edc029122 100644
case MFX_FOURCC_RGB4: return AV_PIX_FMT_BGRA;
-#if CONFIG_VAAPI
case MFX_FOURCC_YUY2: return AV_PIX_FMT_YUYV422;
case MFX_FOURCC_AYUV: return AV_PIX_FMT_VUYX;
case MFX_FOURCC_Y210: return AV_PIX_FMT_Y210;
case MFX_FOURCC_AYUV: return AV_PIX_FMT_VUYX;
@@ -217,7 +216,6 @@ enum AVPixelFormat ff_qsv_map_fourcc(uint32_t fourcc)
case MFX_FOURCC_P016: return AV_PIX_FMT_P012;
case MFX_FOURCC_Y216: return AV_PIX_FMT_Y212;
Expand All @@ -40,7 +40,7 @@ index bd0d689c27..6edc029122 100644
case AV_PIX_FMT_YUV422P:
case AV_PIX_FMT_YUYV422:
*fourcc = MFX_FOURCC_YUY2;
@@ -271,7 +268,6 @@ int ff_qsv_map_pixfmt(enum AVPixelFormat format, uint32_t *fourcc)
@@ -269,7 +266,6 @@ int ff_qsv_map_pixfmt(enum AVPixelFormat format, uint32_t *fourcc)
case AV_PIX_FMT_XV36:
*fourcc = MFX_FOURCC_Y416;
return AV_PIX_FMT_XV36;
Expand All @@ -49,7 +49,7 @@ index bd0d689c27..6edc029122 100644
default:
return AVERROR(ENOSYS);
diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c
index f17a31ceba..ec45db7e1f 100644
index 740b690ae6..17b9702241 100644
--- a/libavutil/hwcontext_qsv.c
+++ b/libavutil/hwcontext_qsv.c
@@ -114,7 +114,6 @@ static const struct {
Expand All @@ -59,24 +59,24 @@ index f17a31ceba..ec45db7e1f 100644
-#if CONFIG_VAAPI
{ AV_PIX_FMT_YUYV422,
MFX_FOURCC_YUY2 },
{ AV_PIX_FMT_VUYX,
@@ -131,7 +130,6 @@ static const struct {
{ AV_PIX_FMT_Y210,
@@ -133,7 +132,6 @@ static const struct {
{ AV_PIX_FMT_XV36,
MFX_FOURCC_Y416 },
#endif
-#endif
};

extern int ff_qsv_get_surface_base_handle(mfxFrameSurface1 *surf,
@@ -1503,7 +1501,6 @@ static int map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface)
@@ -1505,7 +1503,6 @@ static int map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface)
surface->Data.R = frame->data[0] + 2;
surface->Data.A = frame->data[0] + 3;
break;
-#if CONFIG_VAAPI
case AV_PIX_FMT_YUYV422:
surface->Data.Y = frame->data[0];
surface->Data.U = frame->data[0] + 1;
@@ -1531,7 +1528,6 @@ static int map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface)
@@ -1535,7 +1532,6 @@ static int map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface)
surface->Data.V = frame->data[0] + 2;
surface->Data.A = frame->data[0] + 3;
break;
Expand Down
Loading

0 comments on commit 6c0c22e

Please sign in to comment.