00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00027 #include "avcodec.h"
00028 #include "raw.h"
00029 #include "libavutil/common.h"
00030
00031 const PixelFormatTag ff_raw_pix_fmt_tags[] = {
00032 { AV_PIX_FMT_YUV420P, MKTAG('I', '4', '2', '0') },
00033 { AV_PIX_FMT_YUV420P, MKTAG('I', 'Y', 'U', 'V') },
00034 { AV_PIX_FMT_YUV420P, MKTAG('Y', 'V', '1', '2') },
00035 { AV_PIX_FMT_YUV410P, MKTAG('Y', 'U', 'V', '9') },
00036 { AV_PIX_FMT_YUV410P, MKTAG('Y', 'V', 'U', '9') },
00037 { AV_PIX_FMT_YUV411P, MKTAG('Y', '4', '1', 'B') },
00038 { AV_PIX_FMT_YUV422P, MKTAG('Y', '4', '2', 'B') },
00039 { AV_PIX_FMT_YUV422P, MKTAG('P', '4', '2', '2') },
00040 { AV_PIX_FMT_YUV422P, MKTAG('Y', 'V', '1', '6') },
00041
00042
00043 { AV_PIX_FMT_YUVJ420P, MKTAG('I', '4', '2', '0') },
00044 { AV_PIX_FMT_YUVJ420P, MKTAG('I', 'Y', 'U', 'V') },
00045 { AV_PIX_FMT_YUVJ420P, MKTAG('Y', 'V', '1', '2') },
00046 { AV_PIX_FMT_YUVJ422P, MKTAG('Y', '4', '2', 'B') },
00047 { AV_PIX_FMT_YUVJ422P, MKTAG('P', '4', '2', '2') },
00048 { AV_PIX_FMT_GRAY8, MKTAG('Y', '8', '0', '0') },
00049 { AV_PIX_FMT_GRAY8, MKTAG('Y', '8', ' ', ' ') },
00050
00051 { AV_PIX_FMT_YUYV422, MKTAG('Y', 'U', 'Y', '2') },
00052 { AV_PIX_FMT_YUYV422, MKTAG('Y', '4', '2', '2') },
00053 { AV_PIX_FMT_YUYV422, MKTAG('V', '4', '2', '2') },
00054 { AV_PIX_FMT_YUYV422, MKTAG('V', 'Y', 'U', 'Y') },
00055 { AV_PIX_FMT_YUYV422, MKTAG('Y', 'U', 'N', 'V') },
00056 { AV_PIX_FMT_UYVY422, MKTAG('U', 'Y', 'V', 'Y') },
00057 { AV_PIX_FMT_UYVY422, MKTAG('H', 'D', 'Y', 'C') },
00058 { AV_PIX_FMT_UYVY422, MKTAG('U', 'Y', 'N', 'V') },
00059 { AV_PIX_FMT_UYVY422, MKTAG('U', 'Y', 'N', 'Y') },
00060 { AV_PIX_FMT_UYVY422, MKTAG('u', 'y', 'v', '1') },
00061 { AV_PIX_FMT_UYVY422, MKTAG('2', 'V', 'u', '1') },
00062 { AV_PIX_FMT_UYVY422, MKTAG('A', 'V', 'R', 'n') },
00063 { AV_PIX_FMT_UYVY422, MKTAG('A', 'V', '1', 'x') },
00064 { AV_PIX_FMT_UYVY422, MKTAG('A', 'V', 'u', 'p') },
00065 { AV_PIX_FMT_UYVY422, MKTAG('V', 'D', 'T', 'Z') },
00066 { AV_PIX_FMT_UYVY422, MKTAG('a', 'u', 'v', '2') },
00067 { AV_PIX_FMT_UYVY422, MKTAG('c', 'y', 'u', 'v') },
00068 { AV_PIX_FMT_UYYVYY411, MKTAG('Y', '4', '1', '1') },
00069 { AV_PIX_FMT_GRAY8, MKTAG('G', 'R', 'E', 'Y') },
00070 { AV_PIX_FMT_NV12, MKTAG('N', 'V', '1', '2') },
00071 { AV_PIX_FMT_NV21, MKTAG('N', 'V', '2', '1') },
00072
00073
00074 { AV_PIX_FMT_RGB555LE, MKTAG('R', 'G', 'B', 15) },
00075 { AV_PIX_FMT_BGR555LE, MKTAG('B', 'G', 'R', 15) },
00076 { AV_PIX_FMT_RGB565LE, MKTAG('R', 'G', 'B', 16) },
00077 { AV_PIX_FMT_BGR565LE, MKTAG('B', 'G', 'R', 16) },
00078 { AV_PIX_FMT_RGB555BE, MKTAG(15 , 'B', 'G', 'R') },
00079 { AV_PIX_FMT_BGR555BE, MKTAG(15 , 'R', 'G', 'B') },
00080 { AV_PIX_FMT_RGB565BE, MKTAG(16 , 'B', 'G', 'R') },
00081 { AV_PIX_FMT_BGR565BE, MKTAG(16 , 'R', 'G', 'B') },
00082 { AV_PIX_FMT_RGB444LE, MKTAG('R', 'G', 'B', 12) },
00083 { AV_PIX_FMT_BGR444LE, MKTAG('B', 'G', 'R', 12) },
00084 { AV_PIX_FMT_RGB444BE, MKTAG(12 , 'B', 'G', 'R') },
00085 { AV_PIX_FMT_BGR444BE, MKTAG(12 , 'R', 'G', 'B') },
00086 { AV_PIX_FMT_RGBA64LE, MKTAG('R', 'B', 'A', 64 ) },
00087 { AV_PIX_FMT_BGRA64LE, MKTAG('B', 'R', 'A', 64 ) },
00088 { AV_PIX_FMT_RGBA64BE, MKTAG(64 , 'R', 'B', 'A') },
00089 { AV_PIX_FMT_BGRA64BE, MKTAG(64 , 'B', 'R', 'A') },
00090 { AV_PIX_FMT_RGBA, MKTAG('R', 'G', 'B', 'A') },
00091 { AV_PIX_FMT_RGB0, MKTAG('R', 'G', 'B', 0 ) },
00092 { AV_PIX_FMT_BGRA, MKTAG('B', 'G', 'R', 'A') },
00093 { AV_PIX_FMT_BGR0, MKTAG('B', 'G', 'R', 0 ) },
00094 { AV_PIX_FMT_ABGR, MKTAG('A', 'B', 'G', 'R') },
00095 { AV_PIX_FMT_0BGR, MKTAG( 0 , 'B', 'G', 'R') },
00096 { AV_PIX_FMT_ARGB, MKTAG('A', 'R', 'G', 'B') },
00097 { AV_PIX_FMT_0RGB, MKTAG( 0 , 'R', 'G', 'B') },
00098 { AV_PIX_FMT_RGB24, MKTAG('R', 'G', 'B', 24 ) },
00099 { AV_PIX_FMT_BGR24, MKTAG('B', 'G', 'R', 24 ) },
00100 { AV_PIX_FMT_YUV411P, MKTAG('4', '1', '1', 'P') },
00101 { AV_PIX_FMT_YUV422P, MKTAG('4', '2', '2', 'P') },
00102 { AV_PIX_FMT_YUVJ422P, MKTAG('4', '2', '2', 'P') },
00103 { AV_PIX_FMT_YUV440P, MKTAG('4', '4', '0', 'P') },
00104 { AV_PIX_FMT_YUVJ440P, MKTAG('4', '4', '0', 'P') },
00105 { AV_PIX_FMT_YUV444P, MKTAG('4', '4', '4', 'P') },
00106 { AV_PIX_FMT_YUVJ444P, MKTAG('4', '4', '4', 'P') },
00107 { AV_PIX_FMT_MONOWHITE,MKTAG('B', '1', 'W', '0') },
00108 { AV_PIX_FMT_MONOBLACK,MKTAG('B', '0', 'W', '1') },
00109 { AV_PIX_FMT_BGR8, MKTAG('B', 'G', 'R', 8 ) },
00110 { AV_PIX_FMT_RGB8, MKTAG('R', 'G', 'B', 8 ) },
00111 { AV_PIX_FMT_BGR4, MKTAG('B', 'G', 'R', 4 ) },
00112 { AV_PIX_FMT_RGB4, MKTAG('R', 'G', 'B', 4 ) },
00113 { AV_PIX_FMT_RGB4_BYTE,MKTAG('B', '4', 'B', 'Y') },
00114 { AV_PIX_FMT_BGR4_BYTE,MKTAG('R', '4', 'B', 'Y') },
00115 { AV_PIX_FMT_RGB48LE, MKTAG('R', 'G', 'B', 48 ) },
00116 { AV_PIX_FMT_RGB48BE, MKTAG( 48, 'R', 'G', 'B') },
00117 { AV_PIX_FMT_BGR48LE, MKTAG('B', 'G', 'R', 48 ) },
00118 { AV_PIX_FMT_BGR48BE, MKTAG( 48, 'B', 'G', 'R') },
00119 { AV_PIX_FMT_GRAY16LE, MKTAG('Y', '1', 0 , 16 ) },
00120 { AV_PIX_FMT_GRAY16BE, MKTAG(16 , 0 , '1', 'Y') },
00121 { AV_PIX_FMT_YUV420P10LE, MKTAG('Y', '3', 11 , 10 ) },
00122 { AV_PIX_FMT_YUV420P10BE, MKTAG(10 , 11 , '3', 'Y') },
00123 { AV_PIX_FMT_YUV422P10LE, MKTAG('Y', '3', 10 , 10 ) },
00124 { AV_PIX_FMT_YUV422P10BE, MKTAG(10 , 10 , '3', 'Y') },
00125 { AV_PIX_FMT_YUV444P10LE, MKTAG('Y', '3', 0 , 10 ) },
00126 { AV_PIX_FMT_YUV444P10BE, MKTAG(10 , 0 , '3', 'Y') },
00127 { AV_PIX_FMT_YUV420P12LE, MKTAG('Y', '3', 11 , 12 ) },
00128 { AV_PIX_FMT_YUV420P12BE, MKTAG(12 , 11 , '3', 'Y') },
00129 { AV_PIX_FMT_YUV422P12LE, MKTAG('Y', '3', 10 , 12 ) },
00130 { AV_PIX_FMT_YUV422P12BE, MKTAG(12 , 10 , '3', 'Y') },
00131 { AV_PIX_FMT_YUV444P12LE, MKTAG('Y', '3', 0 , 12 ) },
00132 { AV_PIX_FMT_YUV444P12BE, MKTAG(12 , 0 , '3', 'Y') },
00133 { AV_PIX_FMT_YUV420P14LE, MKTAG('Y', '3', 11 , 14 ) },
00134 { AV_PIX_FMT_YUV420P14BE, MKTAG(14 , 11 , '3', 'Y') },
00135 { AV_PIX_FMT_YUV422P14LE, MKTAG('Y', '3', 10 , 14 ) },
00136 { AV_PIX_FMT_YUV422P14BE, MKTAG(14 , 10 , '3', 'Y') },
00137 { AV_PIX_FMT_YUV444P14LE, MKTAG('Y', '3', 0 , 14 ) },
00138 { AV_PIX_FMT_YUV444P14BE, MKTAG(14 , 0 , '3', 'Y') },
00139 { AV_PIX_FMT_YUV420P16LE, MKTAG('Y', '3', 11 , 16 ) },
00140 { AV_PIX_FMT_YUV420P16BE, MKTAG(16 , 11 , '3', 'Y') },
00141 { AV_PIX_FMT_YUV422P16LE, MKTAG('Y', '3', 10 , 16 ) },
00142 { AV_PIX_FMT_YUV422P16BE, MKTAG(16 , 10 , '3', 'Y') },
00143 { AV_PIX_FMT_YUV444P16LE, MKTAG('Y', '3', 0 , 16 ) },
00144 { AV_PIX_FMT_YUV444P16BE, MKTAG(16 , 0 , '3', 'Y') },
00145 { AV_PIX_FMT_YUVA420P, MKTAG('Y', '4', 11 , 8 ) },
00146 { AV_PIX_FMT_YUVA422P, MKTAG('Y', '4', 10 , 8 ) },
00147 { AV_PIX_FMT_YUVA444P, MKTAG('Y', '4', 0 , 8 ) },
00148 { AV_PIX_FMT_GRAY8A, MKTAG('Y', '2', 0 , 8 ) },
00149
00150 { AV_PIX_FMT_YUVA420P9LE, MKTAG('Y', '4', 11 , 9 ) },
00151 { AV_PIX_FMT_YUVA420P9BE, MKTAG( 9 , 11 , '4', 'Y') },
00152 { AV_PIX_FMT_YUVA422P9LE, MKTAG('Y', '4', 10 , 9 ) },
00153 { AV_PIX_FMT_YUVA422P9BE, MKTAG( 9 , 10 , '4', 'Y') },
00154 { AV_PIX_FMT_YUVA444P9LE, MKTAG('Y', '4', 0 , 9 ) },
00155 { AV_PIX_FMT_YUVA444P9BE, MKTAG( 9 , 0 , '4', 'Y') },
00156 { AV_PIX_FMT_YUVA420P10LE, MKTAG('Y', '4', 11 , 10 ) },
00157 { AV_PIX_FMT_YUVA420P10BE, MKTAG(10 , 11 , '4', 'Y') },
00158 { AV_PIX_FMT_YUVA422P10LE, MKTAG('Y', '4', 10 , 10 ) },
00159 { AV_PIX_FMT_YUVA422P10BE, MKTAG(10 , 10 , '4', 'Y') },
00160 { AV_PIX_FMT_YUVA444P10LE, MKTAG('Y', '4', 0 , 10 ) },
00161 { AV_PIX_FMT_YUVA444P10BE, MKTAG(10 , 0 , '4', 'Y') },
00162 { AV_PIX_FMT_YUVA420P16LE, MKTAG('Y', '4', 11 , 16 ) },
00163 { AV_PIX_FMT_YUVA420P16BE, MKTAG(16 , 11 , '4', 'Y') },
00164 { AV_PIX_FMT_YUVA422P16LE, MKTAG('Y', '4', 10 , 16 ) },
00165 { AV_PIX_FMT_YUVA422P16BE, MKTAG(16 , 10 , '4', 'Y') },
00166 { AV_PIX_FMT_YUVA444P16LE, MKTAG('Y', '4', 0 , 16 ) },
00167 { AV_PIX_FMT_YUVA444P16BE, MKTAG(16 , 0 , '4', 'Y') },
00168
00169
00170 { AV_PIX_FMT_YUV420P, MKTAG('R', '4', '2', '0') },
00171 { AV_PIX_FMT_YUV411P, MKTAG('R', '4', '1', '1') },
00172 { AV_PIX_FMT_UYVY422, MKTAG('2', 'v', 'u', 'y') },
00173 { AV_PIX_FMT_UYVY422, MKTAG('2', 'V', 'u', 'y') },
00174 { AV_PIX_FMT_UYVY422, MKTAG('A', 'V', 'U', 'I') },
00175 { AV_PIX_FMT_UYVY422, MKTAG('b', 'x', 'y', 'v') },
00176 { AV_PIX_FMT_YUYV422, MKTAG('y', 'u', 'v', '2') },
00177 { AV_PIX_FMT_YUYV422, MKTAG('y', 'u', 'v', 's') },
00178 { AV_PIX_FMT_YUYV422, MKTAG('D', 'V', 'O', 'O') },
00179 { AV_PIX_FMT_RGB555LE,MKTAG('L', '5', '5', '5') },
00180 { AV_PIX_FMT_RGB565LE,MKTAG('L', '5', '6', '5') },
00181 { AV_PIX_FMT_RGB565BE,MKTAG('B', '5', '6', '5') },
00182 { AV_PIX_FMT_BGR24, MKTAG('2', '4', 'B', 'G') },
00183 { AV_PIX_FMT_BGR24, MKTAG('b', 'x', 'b', 'g') },
00184 { AV_PIX_FMT_BGRA, MKTAG('B', 'G', 'R', 'A') },
00185 { AV_PIX_FMT_RGBA, MKTAG('R', 'G', 'B', 'A') },
00186 { AV_PIX_FMT_RGB24, MKTAG('b', 'x', 'r', 'g') },
00187 { AV_PIX_FMT_ABGR, MKTAG('A', 'B', 'G', 'R') },
00188 { AV_PIX_FMT_GRAY16BE,MKTAG('b', '1', '6', 'g') },
00189 { AV_PIX_FMT_RGB48BE, MKTAG('b', '4', '8', 'r') },
00190
00191
00192 { AV_PIX_FMT_RGB565LE,MKTAG( 3 , 0 , 0 , 0 ) },
00193 { AV_PIX_FMT_YUV444P, MKTAG('Y', 'V', '2', '4') },
00194 { AV_PIX_FMT_YUYV422, MKTAG('Y', 'V', 'Y', 'U') },
00195
00196 { AV_PIX_FMT_NONE, 0 },
00197 };
00198
00199 unsigned int avcodec_pix_fmt_to_codec_tag(enum AVPixelFormat fmt)
00200 {
00201 const PixelFormatTag *tags = ff_raw_pix_fmt_tags;
00202 while (tags->pix_fmt >= 0) {
00203 if (tags->pix_fmt == fmt)
00204 return tags->fourcc;
00205 tags++;
00206 }
00207 return 0;
00208 }