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
00030 const PixelFormatTag ff_raw_pix_fmt_tags[] = {
00031 { PIX_FMT_YUV420P, MKTAG('I', '4', '2', '0') },
00032 { PIX_FMT_YUV420P, MKTAG('I', 'Y', 'U', 'V') },
00033 { PIX_FMT_YUV420P, MKTAG('Y', 'V', '1', '2') },
00034 { PIX_FMT_YUV410P, MKTAG('Y', 'U', 'V', '9') },
00035 { PIX_FMT_YUV410P, MKTAG('Y', 'V', 'U', '9') },
00036 { PIX_FMT_YUV411P, MKTAG('Y', '4', '1', 'B') },
00037 { PIX_FMT_YUV422P, MKTAG('Y', '4', '2', 'B') },
00038 { PIX_FMT_YUV422P, MKTAG('P', '4', '2', '2') },
00039 { PIX_FMT_YUV422P, MKTAG('Y', 'V', '1', '6') },
00040
00041
00042 { PIX_FMT_YUVJ420P, MKTAG('I', '4', '2', '0') },
00043 { PIX_FMT_YUVJ420P, MKTAG('I', 'Y', 'U', 'V') },
00044 { PIX_FMT_YUVJ420P, MKTAG('Y', 'V', '1', '2') },
00045 { PIX_FMT_YUVJ422P, MKTAG('Y', '4', '2', 'B') },
00046 { PIX_FMT_YUVJ422P, MKTAG('P', '4', '2', '2') },
00047 { PIX_FMT_GRAY8, MKTAG('Y', '8', '0', '0') },
00048 { PIX_FMT_GRAY8, MKTAG('Y', '8', ' ', ' ') },
00049
00050 { PIX_FMT_YUYV422, MKTAG('Y', 'U', 'Y', '2') },
00051 { PIX_FMT_YUYV422, MKTAG('Y', '4', '2', '2') },
00052 { PIX_FMT_YUYV422, MKTAG('V', '4', '2', '2') },
00053 { PIX_FMT_YUYV422, MKTAG('V', 'Y', 'U', 'Y') },
00054 { PIX_FMT_YUYV422, MKTAG('Y', 'U', 'N', 'V') },
00055 { PIX_FMT_UYVY422, MKTAG('U', 'Y', 'V', 'Y') },
00056 { PIX_FMT_UYVY422, MKTAG('H', 'D', 'Y', 'C') },
00057 { PIX_FMT_UYVY422, MKTAG('U', 'Y', 'N', 'V') },
00058 { PIX_FMT_UYVY422, MKTAG('U', 'Y', 'N', 'Y') },
00059 { PIX_FMT_UYVY422, MKTAG('u', 'y', 'v', '1') },
00060 { PIX_FMT_UYVY422, MKTAG('2', 'V', 'u', '1') },
00061 { PIX_FMT_UYVY422, MKTAG('A', 'V', 'R', 'n') },
00062 { PIX_FMT_UYVY422, MKTAG('A', 'V', '1', 'x') },
00063 { PIX_FMT_UYVY422, MKTAG('A', 'V', 'u', 'p') },
00064 { PIX_FMT_UYVY422, MKTAG('V', 'D', 'T', 'Z') },
00065 { PIX_FMT_UYVY422, MKTAG('a', 'u', 'v', '2') },
00066 { PIX_FMT_UYVY422, MKTAG('c', 'y', 'u', 'v') },
00067 { PIX_FMT_UYYVYY411, MKTAG('Y', '4', '1', '1') },
00068 { PIX_FMT_GRAY8, MKTAG('G', 'R', 'E', 'Y') },
00069 { PIX_FMT_NV12, MKTAG('N', 'V', '1', '2') },
00070 { PIX_FMT_NV21, MKTAG('N', 'V', '2', '1') },
00071
00072
00073 { PIX_FMT_RGB555LE, MKTAG('R', 'G', 'B', 15) },
00074 { PIX_FMT_BGR555LE, MKTAG('B', 'G', 'R', 15) },
00075 { PIX_FMT_RGB565LE, MKTAG('R', 'G', 'B', 16) },
00076 { PIX_FMT_BGR565LE, MKTAG('B', 'G', 'R', 16) },
00077 { PIX_FMT_RGB555BE, MKTAG(15 , 'B', 'G', 'R') },
00078 { PIX_FMT_BGR555BE, MKTAG(15 , 'R', 'G', 'B') },
00079 { PIX_FMT_RGB565BE, MKTAG(16 , 'B', 'G', 'R') },
00080 { PIX_FMT_BGR565BE, MKTAG(16 , 'R', 'G', 'B') },
00081 { PIX_FMT_RGB444LE, MKTAG('R', 'G', 'B', 12) },
00082 { PIX_FMT_BGR444LE, MKTAG('B', 'G', 'R', 12) },
00083 { PIX_FMT_RGB444BE, MKTAG(12 , 'B', 'G', 'R') },
00084 { PIX_FMT_BGR444BE, MKTAG(12 , 'R', 'G', 'B') },
00085 { PIX_FMT_RGBA64LE, MKTAG('R', 'B', 'A', 64 ) },
00086 { PIX_FMT_BGRA64LE, MKTAG('B', 'R', 'A', 64 ) },
00087 { PIX_FMT_RGBA64BE, MKTAG(64 , 'R', 'B', 'A') },
00088 { PIX_FMT_BGRA64BE, MKTAG(64 , 'B', 'R', 'A') },
00089 { PIX_FMT_RGBA, MKTAG('R', 'G', 'B', 'A') },
00090 { PIX_FMT_RGB0, MKTAG('R', 'G', 'B', 0 ) },
00091 { PIX_FMT_BGRA, MKTAG('B', 'G', 'R', 'A') },
00092 { PIX_FMT_BGR0, MKTAG('B', 'G', 'R', 0 ) },
00093 { PIX_FMT_ABGR, MKTAG('A', 'B', 'G', 'R') },
00094 { PIX_FMT_0BGR, MKTAG( 0 , 'B', 'G', 'R') },
00095 { PIX_FMT_ARGB, MKTAG('A', 'R', 'G', 'B') },
00096 { PIX_FMT_0RGB, MKTAG( 0 , 'R', 'G', 'B') },
00097 { PIX_FMT_RGB24, MKTAG('R', 'G', 'B', 24 ) },
00098 { PIX_FMT_BGR24, MKTAG('B', 'G', 'R', 24 ) },
00099 { PIX_FMT_YUV411P, MKTAG('4', '1', '1', 'P') },
00100 { PIX_FMT_YUV422P, MKTAG('4', '2', '2', 'P') },
00101 { PIX_FMT_YUVJ422P, MKTAG('4', '2', '2', 'P') },
00102 { PIX_FMT_YUV440P, MKTAG('4', '4', '0', 'P') },
00103 { PIX_FMT_YUVJ440P, MKTAG('4', '4', '0', 'P') },
00104 { PIX_FMT_YUV444P, MKTAG('4', '4', '4', 'P') },
00105 { PIX_FMT_YUVJ444P, MKTAG('4', '4', '4', 'P') },
00106 { PIX_FMT_MONOWHITE,MKTAG('B', '1', 'W', '0') },
00107 { PIX_FMT_MONOBLACK,MKTAG('B', '0', 'W', '1') },
00108 { PIX_FMT_BGR8, MKTAG('B', 'G', 'R', 8 ) },
00109 { PIX_FMT_RGB8, MKTAG('R', 'G', 'B', 8 ) },
00110 { PIX_FMT_BGR4, MKTAG('B', 'G', 'R', 4 ) },
00111 { PIX_FMT_RGB4, MKTAG('R', 'G', 'B', 4 ) },
00112 { PIX_FMT_RGB4_BYTE,MKTAG('B', '4', 'B', 'Y') },
00113 { PIX_FMT_BGR4_BYTE,MKTAG('R', '4', 'B', 'Y') },
00114 { PIX_FMT_RGB48LE, MKTAG('R', 'G', 'B', 48 ) },
00115 { PIX_FMT_RGB48BE, MKTAG( 48, 'R', 'G', 'B') },
00116 { PIX_FMT_BGR48LE, MKTAG('B', 'G', 'R', 48 ) },
00117 { PIX_FMT_BGR48BE, MKTAG( 48, 'B', 'G', 'R') },
00118 { PIX_FMT_GRAY16LE, MKTAG('Y', '1', 0 , 16 ) },
00119 { PIX_FMT_GRAY16BE, MKTAG(16 , 0 , '1', 'Y') },
00120 { PIX_FMT_YUV420P10LE, MKTAG('Y', '3', 11 , 10 ) },
00121 { PIX_FMT_YUV420P10BE, MKTAG(10 , 11 , '3', 'Y') },
00122 { PIX_FMT_YUV422P10LE, MKTAG('Y', '3', 10 , 10 ) },
00123 { PIX_FMT_YUV422P10BE, MKTAG(10 , 10 , '3', 'Y') },
00124 { PIX_FMT_YUV444P10LE, MKTAG('Y', '3', 0 , 10 ) },
00125 { PIX_FMT_YUV444P10BE, MKTAG(10 , 0 , '3', 'Y') },
00126 { PIX_FMT_YUV420P16LE, MKTAG('Y', '3', 11 , 16 ) },
00127 { PIX_FMT_YUV420P16BE, MKTAG(16 , 11 , '3', 'Y') },
00128 { PIX_FMT_YUV422P16LE, MKTAG('Y', '3', 10 , 16 ) },
00129 { PIX_FMT_YUV422P16BE, MKTAG(16 , 10 , '3', 'Y') },
00130 { PIX_FMT_YUV444P16LE, MKTAG('Y', '3', 0 , 16 ) },
00131 { PIX_FMT_YUV444P16BE, MKTAG(16 , 0 , '3', 'Y') },
00132 { PIX_FMT_YUVA420P, MKTAG('Y', '4', 11 , 8 ) },
00133 { PIX_FMT_YUVA422P, MKTAG('Y', '4', 10 , 8 ) },
00134 { PIX_FMT_YUVA444P, MKTAG('Y', '4', 0 , 8 ) },
00135 { PIX_FMT_GRAY8A, MKTAG('Y', '2', 0 , 8 ) },
00136
00137
00138 { PIX_FMT_UYVY422, MKTAG('2', 'v', 'u', 'y') },
00139 { PIX_FMT_UYVY422, MKTAG('2', 'V', 'u', 'y') },
00140 { PIX_FMT_UYVY422, MKTAG('A', 'V', 'U', 'I') },
00141 { PIX_FMT_YUYV422, MKTAG('y', 'u', 'v', '2') },
00142 { PIX_FMT_YUYV422, MKTAG('y', 'u', 'v', 's') },
00143 { PIX_FMT_YUYV422, MKTAG('D', 'V', 'O', 'O') },
00144 { PIX_FMT_RGB555LE,MKTAG('L', '5', '5', '5') },
00145 { PIX_FMT_RGB565LE,MKTAG('L', '5', '6', '5') },
00146 { PIX_FMT_RGB565BE,MKTAG('B', '5', '6', '5') },
00147 { PIX_FMT_BGR24, MKTAG('2', '4', 'B', 'G') },
00148 { PIX_FMT_BGRA, MKTAG('B', 'G', 'R', 'A') },
00149 { PIX_FMT_RGBA, MKTAG('R', 'G', 'B', 'A') },
00150 { PIX_FMT_ABGR, MKTAG('A', 'B', 'G', 'R') },
00151 { PIX_FMT_GRAY16BE,MKTAG('b', '1', '6', 'g') },
00152 { PIX_FMT_RGB48BE, MKTAG('b', '4', '8', 'r') },
00153
00154
00155 { PIX_FMT_RGB565LE,MKTAG( 3 , 0 , 0 , 0 ) },
00156 { PIX_FMT_YUV444P, MKTAG('Y', 'V', '2', '4') },
00157
00158 { PIX_FMT_NONE, 0 },
00159 };
00160
00161 unsigned int avcodec_pix_fmt_to_codec_tag(enum PixelFormat fmt)
00162 {
00163 const PixelFormatTag *tags = ff_raw_pix_fmt_tags;
00164 while (tags->pix_fmt >= 0) {
00165 if (tags->pix_fmt == fmt)
00166 return tags->fourcc;
00167 tags++;
00168 }
00169 return 0;
00170 }