[FFmpeg-devel] [PATCH 1/2] add YUVJ411P
Michael Niedermayer
michaelni at gmx.at
Mon May 20 15:34:04 CEST 2013
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
---
libavcodec/utils.c | 1 +
libavutil/pixdesc.c | 12 ++++++++++++
libavutil/pixfmt.h | 1 +
libswscale/utils.c | 4 ++++
tests/ref/fate/filter-pixdesc | 1 +
tests/ref/fate/filter-pixfmts-copy | 1 +
tests/ref/fate/filter-pixfmts-field | 1 +
tests/ref/fate/filter-pixfmts-hflip | 1 +
tests/ref/fate/filter-pixfmts-il | 1 +
tests/ref/fate/filter-pixfmts-null | 1 +
tests/ref/fate/filter-pixfmts-pad | 1 +
tests/ref/fate/filter-pixfmts-scale | 1 +
tests/ref/fate/filter-pixfmts-swapuv | 1 +
tests/ref/fate/filter-pixfmts-vflip | 1 +
14 files changed, 28 insertions(+)
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index c6442bb..aa6d800 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -263,6 +263,7 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height,
h_align = 16 * 2; // interlaced needs 2 macroblocks height
break;
case AV_PIX_FMT_YUV411P:
+ case AV_PIX_FMT_YUVJ411P:
case AV_PIX_FMT_UYYVYY411:
w_align = 32;
h_align = 8;
diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
index 8ec6c53..17f7e27 100644
--- a/libavutil/pixdesc.c
+++ b/libavutil/pixdesc.c
@@ -225,6 +225,18 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
},
.flags = AV_PIX_FMT_FLAG_PLANAR,
},
+ [AV_PIX_FMT_YUVJ411P] = {
+ .name = "yuvj411p",
+ .nb_components = 3,
+ .log2_chroma_w = 2,
+ .log2_chroma_h = 0,
+ .comp = {
+ { 0, 0, 1, 0, 7 }, /* Y */
+ { 1, 0, 1, 0, 7 }, /* U */
+ { 2, 0, 1, 0, 7 }, /* V */
+ },
+ .flags = AV_PIX_FMT_FLAG_PLANAR,
+ },
[AV_PIX_FMT_GRAY8] = {
.name = "gray",
.nb_components = 1,
diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h
index 1760ab1..b063251 100644
--- a/libavutil/pixfmt.h
+++ b/libavutil/pixfmt.h
@@ -237,6 +237,7 @@ enum AVPixelFormat {
AV_PIX_FMT_GBRAP, ///< planar GBRA 4:4:4:4 32bpp
AV_PIX_FMT_GBRAP16BE, ///< planar GBRA 4:4:4:4 64bpp, big-endian
AV_PIX_FMT_GBRAP16LE, ///< planar GBRA 4:4:4:4 64bpp, little-endian
+ AV_PIX_FMT_YUVJ411P, ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples)
AV_PIX_FMT_NB, ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions
#if FF_API_PIX_FMT
diff --git a/libswscale/utils.c b/libswscale/utils.c
index 6bcd226..6324bc8 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -91,6 +91,7 @@ static const FormatEntry format_entries[AV_PIX_FMT_NB] = {
[AV_PIX_FMT_MONOBLACK] = { 1, 1 },
[AV_PIX_FMT_PAL8] = { 1, 0 },
[AV_PIX_FMT_YUVJ420P] = { 1, 1 },
+ [AV_PIX_FMT_YUVJ411P] = { 1, 1 },
[AV_PIX_FMT_YUVJ422P] = { 1, 1 },
[AV_PIX_FMT_YUVJ444P] = { 1, 1 },
[AV_PIX_FMT_UYVY422] = { 1, 1 },
@@ -999,6 +1000,9 @@ static int handle_jpeg(enum AVPixelFormat *format)
case AV_PIX_FMT_YUVJ420P:
*format = AV_PIX_FMT_YUV420P;
return 1;
+ case AV_PIX_FMT_YUVJ411P:
+ *format = AV_PIX_FMT_YUV411P;
+ return 1;
case AV_PIX_FMT_YUVJ422P:
*format = AV_PIX_FMT_YUV422P;
return 1;
diff --git a/tests/ref/fate/filter-pixdesc b/tests/ref/fate/filter-pixdesc
index d0d2890..c5d9d82 100644
--- a/tests/ref/fate/filter-pixdesc
+++ b/tests/ref/fate/filter-pixdesc
@@ -105,6 +105,7 @@ yuva444p16be 52a9591ec0d5059e49b1b2803f8582aa
yuva444p16le a9272ac197e4a4195662ce90f533976c
yuva444p9be f72f646ef07cdab613420585aba041ac
yuva444p9le 6d431b0a27bf4f86ea44ef5f14247a01
+yuvj411p 037accc8e48ac9928a580cddf444f129
yuvj420p 73661456012f20cda81207b14bb0c0a5
yuvj422p aa97862b57f47c5a6506156e9aaf129a
yuvj440p ff8b9884a49d546b035f5d2ac1e673df
diff --git a/tests/ref/fate/filter-pixfmts-copy b/tests/ref/fate/filter-pixfmts-copy
index 284ba78..7883b10 100644
--- a/tests/ref/fate/filter-pixfmts-copy
+++ b/tests/ref/fate/filter-pixfmts-copy
@@ -108,6 +108,7 @@ yuva444p16be 52a9591ec0d5059e49b1b2803f8582aa
yuva444p16le a9272ac197e4a4195662ce90f533976c
yuva444p9be f72f646ef07cdab613420585aba041ac
yuva444p9le 6d431b0a27bf4f86ea44ef5f14247a01
+yuvj411p 037accc8e48ac9928a580cddf444f129
yuvj420p 73661456012f20cda81207b14bb0c0a5
yuvj422p aa97862b57f47c5a6506156e9aaf129a
yuvj440p ff8b9884a49d546b035f5d2ac1e673df
diff --git a/tests/ref/fate/filter-pixfmts-field b/tests/ref/fate/filter-pixfmts-field
index a1b6c53..edf7abd 100644
--- a/tests/ref/fate/filter-pixfmts-field
+++ b/tests/ref/fate/filter-pixfmts-field
@@ -108,6 +108,7 @@ yuva444p16be ac5c17adeb0ef6730a0de1dbd1d14a1a
yuva444p16le 41f1a82eb686d7191bdb00206f723247
yuva444p9be 413d01385a8b008031b2ab3ef0b9eff4
yuva444p9le 33ede0bd20bfd85489d266ac81d035d6
+yuvj411p dbcc5e7ef64335ad30b8b9717bfa63d9
yuvj420p 762dc6a157d0bee72da3e3d852668aef
yuvj422p 8cec955c1c62b00b6798361ef82962b7
yuvj440p 7b469444994d8b52766ee461bcb795ea
diff --git a/tests/ref/fate/filter-pixfmts-hflip b/tests/ref/fate/filter-pixfmts-hflip
index 83dc3f4..a4036d4 100644
--- a/tests/ref/fate/filter-pixfmts-hflip
+++ b/tests/ref/fate/filter-pixfmts-hflip
@@ -105,6 +105,7 @@ yuva444p16be 2dd545e4ddb0f134322eee1c1de4c2ff
yuva444p16le 1e144cc9ea16429c1655c67e2f12f5c9
yuva444p9be e37fa0743bf720fbe31605714d7f7ad6
yuva444p9le 9bd4083c1384a55e91f02630161dc4c3
+yuvj411p 042671398bc17a5f52aa9d791b361c5c
yuvj420p 86370b945c5d19d809ee92386d476a53
yuvj422p d3bda08bd4b92a256a8ec8432c4767d1
yuvj440p dbae7083c82f20a38fc55e6f8bc374bc
diff --git a/tests/ref/fate/filter-pixfmts-il b/tests/ref/fate/filter-pixfmts-il
index b45ad53..8057ea8 100644
--- a/tests/ref/fate/filter-pixfmts-il
+++ b/tests/ref/fate/filter-pixfmts-il
@@ -107,6 +107,7 @@ yuva444p16be 45ec67a0828aedf18f1ed54fcfb0ff83
yuva444p16le 7b8e5963f19e6fe7fd409b34af014489
yuva444p9be 6d2905a9e61ce4ff5b3d7b972a7333eb
yuva444p9le e2ffdb1d867a1b78f3bd38d600b17193
+yuvj411p 840bb5fc87ba0d3101d5c25b3f480923
yuvj420p d1a8d9cf6b4035ac5d6439ab2754b09d
yuvj422p d20df6138cdf62d7f3b93eb1277827d6
yuvj440p 17a24a86f279febaebb66d65509088e8
diff --git a/tests/ref/fate/filter-pixfmts-null b/tests/ref/fate/filter-pixfmts-null
index 284ba78..7883b10 100644
--- a/tests/ref/fate/filter-pixfmts-null
+++ b/tests/ref/fate/filter-pixfmts-null
@@ -108,6 +108,7 @@ yuva444p16be 52a9591ec0d5059e49b1b2803f8582aa
yuva444p16le a9272ac197e4a4195662ce90f533976c
yuva444p9be f72f646ef07cdab613420585aba041ac
yuva444p9le 6d431b0a27bf4f86ea44ef5f14247a01
+yuvj411p 037accc8e48ac9928a580cddf444f129
yuvj420p 73661456012f20cda81207b14bb0c0a5
yuvj422p aa97862b57f47c5a6506156e9aaf129a
yuvj440p ff8b9884a49d546b035f5d2ac1e673df
diff --git a/tests/ref/fate/filter-pixfmts-pad b/tests/ref/fate/filter-pixfmts-pad
index f8f8dd4..78858d2 100644
--- a/tests/ref/fate/filter-pixfmts-pad
+++ b/tests/ref/fate/filter-pixfmts-pad
@@ -20,6 +20,7 @@ yuv444p 248bdf9747d5c3718580dc2279e2e273
yuva420p b5bdefbb0c5b302b6d18ee4df7c1d7c7
yuva422p 8b56b36d9eb3c382d2a5a695107e759d
yuva444p 389cf95e98bf24684a42d5d67b913e16
+yuvj411p 5f10066e6a85d4785064ccdbb7259775
yuvj420p d182ac937d312e4894c1bc548883bf1c
yuvj422p 26ac91b5daf6f2f1f3c22be489e994a3
yuvj440p 63e2b94f81e0a6f2868055a4c8258b63
diff --git a/tests/ref/fate/filter-pixfmts-scale b/tests/ref/fate/filter-pixfmts-scale
index dd3e9fa..3079a74 100644
--- a/tests/ref/fate/filter-pixfmts-scale
+++ b/tests/ref/fate/filter-pixfmts-scale
@@ -108,6 +108,7 @@ yuva444p16be 36a8797545163c24fc0d73f669c3108c
yuva444p16le c017c229aacb832a12c2297fb080a7a0
yuva444p9be 8bfb5decfc8b71478b090a5b48c316c3
yuva444p9le 2c7bfb90f7db9faab6862537801e1143
+yuvj411p 4e37fb8600e001c387bc67cd8cf8ce33
yuvj420p 31386dce60a2dcc493da5d0ed9d880df
yuvj422p 492452e50a3fe66724840cad29be4098
yuvj440p 7632893e81d3f4f3ace3755f97479897
diff --git a/tests/ref/fate/filter-pixfmts-swapuv b/tests/ref/fate/filter-pixfmts-swapuv
index 2474171..7bc3e3d 100644
--- a/tests/ref/fate/filter-pixfmts-swapuv
+++ b/tests/ref/fate/filter-pixfmts-swapuv
@@ -55,6 +55,7 @@ yuva444p16be 5722e1a5b09b3808e5bbd9a7db1add49
yuva444p16le 342725e837355d66019ec05ffa5b6c4c
yuva444p9be bcea6ad30ced293dbba9d7a6780d52ec
yuva444p9le bbd56cf86dadd7db8625d3679c6acc45
+yuvj411p 8c6457a0ec6d796884e88f88ae17c9e3
yuvj420p 06d3226d86dbd01cd359d8a1507d0e6b
yuvj422p 8f87a2f4261297545b53b3f237c5bf1a
yuvj440p 92c7d84f41d703878ae53911d03d23c9
diff --git a/tests/ref/fate/filter-pixfmts-vflip b/tests/ref/fate/filter-pixfmts-vflip
index 1c2c8e6..2b7545a 100644
--- a/tests/ref/fate/filter-pixfmts-vflip
+++ b/tests/ref/fate/filter-pixfmts-vflip
@@ -108,6 +108,7 @@ yuva444p16be 4699a802e8ea3e74e968122980c0b0b0
yuva444p16le 6f54a8cff38c54a235b92a0f1314e0aa
yuva444p9be 7472bb4b0c774d5d741035086d5e4330
yuva444p9le ae11ddd5a3e8d69a36989f6f2a8897a1
+yuvj411p be518349f35aa67e048b854ff2da60c4
yuvj420p 200b0332de9944e76c94d2e0699a5a2d
yuvj422p a19a89ef145305cf224ef5aa247d075a
yuvj440p 4240c9348d28af5f3edd0e642002bd2c
--
1.7.9.5
More information about the ffmpeg-devel
mailing list