annotate raw.c @ 11694:5e8fdcac294e libavcodec

Add support to the Y411 codec tag, corresponding to the rawvideo pixel format uyyvyy411. The codec tag is referenced in fourcc.org.
author stefano
date Sun, 09 May 2010 22:56:04 +0000
parents 7dd2a45249a9
children 2912f70b4e71
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1139
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
1 /*
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
2 * Raw Video Codec
8629
04423b2f6e0b cosmetics: Remove pointless period after copyright statement non-sentences.
diego
parents: 8256
diff changeset
3 * Copyright (c) 2001 Fabrice Bellard
1139
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
4 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3777
diff changeset
5 * This file is part of FFmpeg.
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3777
diff changeset
6 *
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3777
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
1139
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
9 * License as published by the Free Software Foundation; either
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3777
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
1139
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
11 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3777
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
1139
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
15 * Lesser General Public License for more details.
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
16 *
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3777
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
3036
0b546eab515d Update licensing information: The FSF changed postal address.
diego
parents: 2979
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
1139
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
20 */
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2863
diff changeset
21
1139
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
22 /**
11644
7dd2a45249a9 Remove explicit filename from Doxygen @file commands.
diego
parents: 11622
diff changeset
23 * @file
1139
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
24 * Raw Video Codec
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
25 */
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2863
diff changeset
26
1139
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
27 #include "avcodec.h"
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents: 4872
diff changeset
28 #include "raw.h"
1139
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
29
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents: 4872
diff changeset
30 const PixelFormatTag ff_raw_pixelFormatTags[] = {
1231
b88dfc4bbf8c * introducing new public interface in imgconvert.c
romansh
parents: 1195
diff changeset
31 { PIX_FMT_YUV420P, MKTAG('I', '4', '2', '0') }, /* Planar formats */
b88dfc4bbf8c * introducing new public interface in imgconvert.c
romansh
parents: 1195
diff changeset
32 { PIX_FMT_YUV420P, MKTAG('I', 'Y', 'U', 'V') },
3587
d4ab276e5987 Add YV12 support, patch by Steve Lhomme % steve P lhomme A free P fr %
gpoirier
parents: 3306
diff changeset
33 { PIX_FMT_YUV420P, MKTAG('Y', 'V', '1', '2') },
1231
b88dfc4bbf8c * introducing new public interface in imgconvert.c
romansh
parents: 1195
diff changeset
34 { PIX_FMT_YUV410P, MKTAG('Y', 'U', 'V', '9') },
9712
1cc354a5242c Support YVU9 AVI 4cc.
michael
parents: 9335
diff changeset
35 { PIX_FMT_YUV410P, MKTAG('Y', 'V', 'U', '9') },
1231
b88dfc4bbf8c * introducing new public interface in imgconvert.c
romansh
parents: 1195
diff changeset
36 { PIX_FMT_YUV411P, MKTAG('Y', '4', '1', 'B') },
b88dfc4bbf8c * introducing new public interface in imgconvert.c
romansh
parents: 1195
diff changeset
37 { PIX_FMT_YUV422P, MKTAG('Y', '4', '2', 'B') },
10457
11b8940a3a75 add some raw codec fourccs, fixes:
compn
parents: 9845
diff changeset
38 { PIX_FMT_YUV422P, MKTAG('P', '4', '2', '2') },
1231
b88dfc4bbf8c * introducing new public interface in imgconvert.c
romansh
parents: 1195
diff changeset
39 { PIX_FMT_GRAY8, MKTAG('Y', '8', '0', '0') },
b88dfc4bbf8c * introducing new public interface in imgconvert.c
romansh
parents: 1195
diff changeset
40 { PIX_FMT_GRAY8, MKTAG(' ', ' ', 'Y', '8') },
b88dfc4bbf8c * introducing new public interface in imgconvert.c
romansh
parents: 1195
diff changeset
41
b88dfc4bbf8c * introducing new public interface in imgconvert.c
romansh
parents: 1195
diff changeset
42
4494
ce643a22f049 Replace deprecated PIX_FMT names by the newer variants.
diego
parents: 4170
diff changeset
43 { PIX_FMT_YUYV422, MKTAG('Y', 'U', 'Y', '2') }, /* Packed formats */
ce643a22f049 Replace deprecated PIX_FMT names by the newer variants.
diego
parents: 4170
diff changeset
44 { PIX_FMT_YUYV422, MKTAG('Y', '4', '2', '2') },
10457
11b8940a3a75 add some raw codec fourccs, fixes:
compn
parents: 9845
diff changeset
45 { PIX_FMT_YUYV422, MKTAG('V', '4', '2', '2') },
10486
b2524430a456 map VYUY fourcc to rawcodec
compn
parents: 10457
diff changeset
46 { PIX_FMT_YUYV422, MKTAG('V', 'Y', 'U', 'Y') },
10457
11b8940a3a75 add some raw codec fourccs, fixes:
compn
parents: 9845
diff changeset
47 { PIX_FMT_YUYV422, MKTAG('Y', 'U', 'N', 'V') },
2142
caacb3f9ee51 Add UYVY support to libavcodec/raw.c patch by ("Todd.Kirby" <doubleshot at pacbell dot net>)
michael
parents: 2133
diff changeset
48 { PIX_FMT_UYVY422, MKTAG('U', 'Y', 'V', 'Y') },
5695
6b8daf48b82f HDYC fourcc, sample hdyc/Test2.avi
bcoudurier
parents: 5264
diff changeset
49 { PIX_FMT_UYVY422, MKTAG('H', 'D', 'Y', 'C') },
10457
11b8940a3a75 add some raw codec fourccs, fixes:
compn
parents: 9845
diff changeset
50 { PIX_FMT_UYVY422, MKTAG('U', 'Y', 'N', 'V') },
11b8940a3a75 add some raw codec fourccs, fixes:
compn
parents: 9845
diff changeset
51 { PIX_FMT_UYVY422, MKTAG('U', 'Y', 'N', 'Y') },
11b8940a3a75 add some raw codec fourccs, fixes:
compn
parents: 9845
diff changeset
52 { PIX_FMT_UYVY422, MKTAG('u', 'y', 'v', '1') },
11b8940a3a75 add some raw codec fourccs, fixes:
compn
parents: 9845
diff changeset
53 { PIX_FMT_UYVY422, MKTAG('2', 'V', 'u', '1') },
10880
1184d065c26a Do not assign codec_tag to pix_fmt in rawdec.c, but in raw.c
cehoyos
parents: 10490
diff changeset
54 { PIX_FMT_UYVY422, MKTAG('A', 'V', 'R', 'n') }, /* Avid AVI Codec 1:1 */
10884
867740c94988 Support decoding Avid 1:1x codec, (partially) fixes issue1684.
cehoyos
parents: 10880
diff changeset
55 { PIX_FMT_UYVY422, MKTAG('A', 'V', '1', 'x') }, /* Avid 1:1x */
10885
e3e466b6bc5e Support decoding of Avid uncompressed mov files, fixes issue 1685.
cehoyos
parents: 10884
diff changeset
56 { PIX_FMT_UYVY422, MKTAG('A', 'V', 'u', 'p') },
10898
71fccf5aa7e3 Support decoding of SoftLab-NSK VideoTizer.
cehoyos
parents: 10888
diff changeset
57 { PIX_FMT_UYVY422, MKTAG('V', 'D', 'T', 'Z') }, /* SoftLab-NSK VideoTizer */
11694
5e8fdcac294e Add support to the Y411 codec tag, corresponding to the rawvideo pixel
stefano
parents: 11644
diff changeset
58 { PIX_FMT_UYYVYY411, MKTAG('Y', '4', '1', '1') },
1231
b88dfc4bbf8c * introducing new public interface in imgconvert.c
romansh
parents: 1195
diff changeset
59 { PIX_FMT_GRAY8, MKTAG('G', 'R', 'E', 'Y') },
11622
5531833d63f4 Change ff_raw_pixelFormatTags RGB entries (RGB555, BGR555, RGB565,
stefano
parents: 10898
diff changeset
60 { PIX_FMT_RGB555LE, MKTAG('R', 'G', 'B', 15) },
5531833d63f4 Change ff_raw_pixelFormatTags RGB entries (RGB555, BGR555, RGB565,
stefano
parents: 10898
diff changeset
61 { PIX_FMT_BGR555LE, MKTAG('B', 'G', 'R', 15) },
5531833d63f4 Change ff_raw_pixelFormatTags RGB entries (RGB555, BGR555, RGB565,
stefano
parents: 10898
diff changeset
62 { PIX_FMT_RGB565LE, MKTAG('R', 'G', 'B', 16) },
5531833d63f4 Change ff_raw_pixelFormatTags RGB entries (RGB555, BGR555, RGB565,
stefano
parents: 10898
diff changeset
63 { PIX_FMT_BGR565LE, MKTAG('B', 'G', 'R', 16) },
5531833d63f4 Change ff_raw_pixelFormatTags RGB entries (RGB555, BGR555, RGB565,
stefano
parents: 10898
diff changeset
64 { PIX_FMT_RGB565LE, MKTAG( 3 , 0 , 0 , 0) },
1231
b88dfc4bbf8c * introducing new public interface in imgconvert.c
romansh
parents: 1195
diff changeset
65
3306
78963e63a45c add quicktime uncompressed 8bit 4:2:2 support
bcoudurier
parents: 3160
diff changeset
66 /* quicktime */
78963e63a45c add quicktime uncompressed 8bit 4:2:2 support
bcoudurier
parents: 3160
diff changeset
67 { PIX_FMT_UYVY422, MKTAG('2', 'v', 'u', 'y') },
10888
427070f45916 Support 2Vuy in mov, fixes issue 1690.
cehoyos
parents: 10885
diff changeset
68 { PIX_FMT_UYVY422, MKTAG('2', 'V', 'u', 'y') },
4619
9358bf66a1d0 partial avid meridien uncompressed support
bcoudurier
parents: 4611
diff changeset
69 { PIX_FMT_UYVY422, MKTAG('A', 'V', 'U', 'I') }, /* FIXME merge both fields */
9335
c7396480f8e3 Map MOV fourcc YUV2 correctly to PIX_FMT_YUYV422.
cehoyos
parents: 8718
diff changeset
70 { PIX_FMT_YUYV422, MKTAG('y', 'u', 'v', '2') },
10490
27750570f2d4 add yuvs fourcc to raw.c and isom.c, fixes samples/mov/yuvs.mov
compn
parents: 10486
diff changeset
71 { PIX_FMT_YUYV422, MKTAG('y', 'u', 'v', 's') },
8256
765685da1483 partial WRAW fourcc support, might need image flipping
bcoudurier
parents: 8023
diff changeset
72 { PIX_FMT_PAL8, MKTAG('W', 'R', 'A', 'W') },
3306
78963e63a45c add quicktime uncompressed 8bit 4:2:2 support
bcoudurier
parents: 3160
diff changeset
73
8023
76f6a08c9fe6 Fix some icc warnings by using enum PixelFormat instead of int where appropriate.
cehoyos
parents: 5695
diff changeset
74 { PIX_FMT_NONE, 0 },
1139
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
75 };
6842feb093c1 rawvideo patch by (Fred Rothganger <rothgang at uiuc dot edu>)
michaelni
parents:
diff changeset
76
2341
d9c9b42767da fix image stream copy
michael
parents: 2166
diff changeset
77 unsigned int avcodec_pix_fmt_to_codec_tag(enum PixelFormat fmt)
1231
b88dfc4bbf8c * introducing new public interface in imgconvert.c
romansh
parents: 1195
diff changeset
78 {
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents: 4872
diff changeset
79 const PixelFormatTag * tags = ff_raw_pixelFormatTags;
1231
b88dfc4bbf8c * introducing new public interface in imgconvert.c
romansh
parents: 1195
diff changeset
80 while (tags->pix_fmt >= 0) {
b88dfc4bbf8c * introducing new public interface in imgconvert.c
romansh
parents: 1195
diff changeset
81 if (tags->pix_fmt == fmt)
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
82 return tags->fourcc;
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
83 tags++;
1231
b88dfc4bbf8c * introducing new public interface in imgconvert.c
romansh
parents: 1195
diff changeset
84 }
b88dfc4bbf8c * introducing new public interface in imgconvert.c
romansh
parents: 1195
diff changeset
85 return 0;
b88dfc4bbf8c * introducing new public interface in imgconvert.c
romansh
parents: 1195
diff changeset
86 }