libweed 0.0.3

weed-compat.h

Go to the documentation of this file.
00001 /* WEED is free software; you can redistribute it and/or
00002    modify it under the terms of the GNU Lesser General Public
00003    License as published by the Free Software Foundation; either
00004    version 3 of the License, or (at your option) any later version.
00005 
00006    Weed is distributed in the hope that it will be useful,
00007    but WITHOUT ANY WARRANTY; without even the implied warranty of
00008    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00009    Lesser General Public License for more details.
00010 
00011    You should have received a copy of the GNU Lesser General Public
00012    License along with this source code; if not, write to the Free Software
00013    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
00014 
00015 
00016    Weed is developed by:
00017 
00018    Gabriel "Salsaman" Finch - http://lives.sourceforge.net
00019 
00020    mainly based on LiViDO, which is developed by:
00021 
00022 
00023    Niels Elburg - http://veejay.sf.net
00024 
00025    Gabriel "Salsaman" Finch - http://lives.sourceforge.net
00026 
00027    Denis "Jaromil" Rojo - http://freej.dyne.org
00028 
00029    Tom Schouten - http://zwizwa.fartit.com
00030 
00031    Andraz Tori - http://cvs.cinelerra.org
00032 
00033    reviewed with suggestions and contributions from:
00034 
00035    Silvano "Kysucix" Galliani - http://freej.dyne.org
00036 
00037    Kentaro Fukuchi - http://megaui.net/fukuchi
00038 
00039    Jun Iio - http://www.malib.net
00040 
00041    Carlo Prelz - http://www2.fluido.as:8080/
00042 
00043 */
00044 
00045 /* (C) Gabriel "Salsaman" Finch, 2005 - 2011 */
00046 
00047 #ifndef __WEED_COMPAT_H__
00048 #define __WEED_COMPAT_H__
00049 
00050 #ifdef __cplusplus
00051 extern "C"
00052 {
00053 #endif /* __cplusplus */
00054 
00055 #ifdef HAVE_AVCODEC
00056 
00057   // compatibility with libavcodec
00058 
00059 #include <libavcodec/avcodec.h>
00060 
00061 
00062 typedef struct AVCodecTag {
00063   int id;
00064   unsigned int tag;
00065 } AVCodecTag;
00066 
00067 #ifndef MKTAG
00068 #define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((d) << 24))
00069 #endif
00070 
00071 const AVCodecTag codec_bmp_tags[] = {
00072   { CODEC_ID_H264,         MKTAG('H', '2', '6', '4') },
00073   { CODEC_ID_H264,         MKTAG('h', '2', '6', '4') },
00074   { CODEC_ID_H264,         MKTAG('X', '2', '6', '4') },
00075   { CODEC_ID_H264,         MKTAG('x', '2', '6', '4') },
00076   { CODEC_ID_H264,         MKTAG('a', 'v', 'c', '1') },
00077   { CODEC_ID_H264,         MKTAG('V', 'S', 'S', 'H') },
00078   { CODEC_ID_H263,         MKTAG('H', '2', '6', '3') },
00079   { CODEC_ID_H263,         MKTAG('X', '2', '6', '3') },
00080   { CODEC_ID_H263,         MKTAG('T', '2', '6', '3') },
00081   { CODEC_ID_H263,         MKTAG('L', '2', '6', '3') },
00082   { CODEC_ID_H263,         MKTAG('V', 'X', '1', 'K') },
00083   { CODEC_ID_H263,         MKTAG('Z', 'y', 'G', 'o') },
00084   { CODEC_ID_H263P,        MKTAG('H', '2', '6', '3') },
00085   { CODEC_ID_H263I,        MKTAG('I', '2', '6', '3') }, /* intel h263 */
00086   { CODEC_ID_H261,         MKTAG('H', '2', '6', '1') },
00087   { CODEC_ID_H263P,        MKTAG('U', '2', '6', '3') },
00088   { CODEC_ID_H263P,        MKTAG('v', 'i', 'v', '1') },
00089   { CODEC_ID_MPEG4,        MKTAG('F', 'M', 'P', '4') },
00090   { CODEC_ID_MPEG4,        MKTAG('D', 'I', 'V', 'X') },
00091   { CODEC_ID_MPEG4,        MKTAG('D', 'X', '5', '0') },
00092   { CODEC_ID_MPEG4,        MKTAG('X', 'V', 'I', 'D') },
00093   { CODEC_ID_MPEG4,        MKTAG('M', 'P', '4', 'S') },
00094   { CODEC_ID_MPEG4,        MKTAG('M', '4', 'S', '2') },
00095   { CODEC_ID_MPEG4,        MKTAG( 4 ,  0 ,  0 ,  0 ) }, /* some broken avi use this */
00096   { CODEC_ID_MPEG4,        MKTAG('D', 'I', 'V', '1') },
00097   { CODEC_ID_MPEG4,        MKTAG('B', 'L', 'Z', '0') },
00098   { CODEC_ID_MPEG4,        MKTAG('m', 'p', '4', 'v') },
00099   { CODEC_ID_MPEG4,        MKTAG('U', 'M', 'P', '4') },
00100   { CODEC_ID_MPEG4,        MKTAG('W', 'V', '1', 'F') },
00101   { CODEC_ID_MPEG4,        MKTAG('S', 'E', 'D', 'G') },
00102   { CODEC_ID_MPEG4,        MKTAG('R', 'M', 'P', '4') },
00103   { CODEC_ID_MPEG4,        MKTAG('3', 'I', 'V', '2') },
00104   { CODEC_ID_MPEG4,        MKTAG('F', 'F', 'D', 'S') },
00105   { CODEC_ID_MPEG4,        MKTAG('F', 'V', 'F', 'W') },
00106   { CODEC_ID_MPEG4,        MKTAG('D', 'C', 'O', 'D') },
00107   { CODEC_ID_MPEG4,        MKTAG('M', 'V', 'X', 'M') },
00108   { CODEC_ID_MPEG4,        MKTAG('P', 'M', '4', 'V') },
00109   { CODEC_ID_MPEG4,        MKTAG('S', 'M', 'P', '4') },
00110   { CODEC_ID_MPEG4,        MKTAG('D', 'X', 'G', 'M') },
00111   { CODEC_ID_MPEG4,        MKTAG('V', 'I', 'D', 'M') },
00112   { CODEC_ID_MPEG4,        MKTAG('M', '4', 'T', '3') },
00113   { CODEC_ID_MPEG4,        MKTAG('G', 'E', 'O', 'X') },
00114   { CODEC_ID_MPEG4,        MKTAG('H', 'D', 'X', '4') }, /* flipped video */
00115   { CODEC_ID_MPEG4,        MKTAG('D', 'M', 'K', '2') },
00116   { CODEC_ID_MPEG4,        MKTAG('D', 'I', 'G', 'I') },
00117   { CODEC_ID_MPEG4,        MKTAG('I', 'N', 'M', 'C') },
00118   { CODEC_ID_MPEG4,        MKTAG('E', 'P', 'H', 'V') }, /* Ephv MPEG-4 */
00119   { CODEC_ID_MPEG4,        MKTAG('E', 'M', '4', 'A') },
00120   { CODEC_ID_MPEG4,        MKTAG('M', '4', 'C', 'C') }, /* Divio MPEG-4 */
00121   { CODEC_ID_MPEG4,        MKTAG('S', 'N', '4', '0') },
00122   { CODEC_ID_MPEG4,        MKTAG('V', 'S', 'P', 'X') },
00123   { CODEC_ID_MPEG4,        MKTAG('U', 'L', 'D', 'X') },
00124   { CODEC_ID_MPEG4,        MKTAG('G', 'E', 'O', 'V') },
00125   { CODEC_ID_MPEG4,        MKTAG('S', 'I', 'P', 'P') }, /* Samsung SHR-6040 */
00126   { CODEC_ID_MSMPEG4V3,    MKTAG('D', 'I', 'V', '3') }, /* default signature when using MSMPEG4 */
00127   { CODEC_ID_MSMPEG4V3,    MKTAG('M', 'P', '4', '3') },
00128   { CODEC_ID_MSMPEG4V3,    MKTAG('M', 'P', 'G', '3') },
00129   { CODEC_ID_MSMPEG4V3,    MKTAG('D', 'I', 'V', '5') },
00130   { CODEC_ID_MSMPEG4V3,    MKTAG('D', 'I', 'V', '6') },
00131   { CODEC_ID_MSMPEG4V3,    MKTAG('D', 'I', 'V', '4') },
00132   { CODEC_ID_MSMPEG4V3,    MKTAG('D', 'V', 'X', '3') },
00133   { CODEC_ID_MSMPEG4V3,    MKTAG('A', 'P', '4', '1') },
00134   { CODEC_ID_MSMPEG4V3,    MKTAG('C', 'O', 'L', '1') },
00135   { CODEC_ID_MSMPEG4V3,    MKTAG('C', 'O', 'L', '0') },
00136   { CODEC_ID_MSMPEG4V2,    MKTAG('M', 'P', '4', '2') },
00137   { CODEC_ID_MSMPEG4V2,    MKTAG('D', 'I', 'V', '2') },
00138   { CODEC_ID_MSMPEG4V1,    MKTAG('M', 'P', 'G', '4') },
00139   { CODEC_ID_MSMPEG4V1,    MKTAG('M', 'P', '4', '1') },
00140   { CODEC_ID_WMV1,         MKTAG('W', 'M', 'V', '1') },
00141   { CODEC_ID_WMV2,         MKTAG('W', 'M', 'V', '2') },
00142   { CODEC_ID_DVVIDEO,      MKTAG('d', 'v', 's', 'd') },
00143   { CODEC_ID_DVVIDEO,      MKTAG('d', 'v', 'h', 'd') },
00144   { CODEC_ID_DVVIDEO,      MKTAG('d', 'v', 'h', '1') },
00145   { CODEC_ID_DVVIDEO,      MKTAG('d', 'v', 's', 'l') },
00146   { CODEC_ID_DVVIDEO,      MKTAG('d', 'v', '2', '5') },
00147   { CODEC_ID_DVVIDEO,      MKTAG('d', 'v', '5', '0') },
00148   { CODEC_ID_DVVIDEO,      MKTAG('c', 'd', 'v', 'c') }, /* Canopus DV */
00149   { CODEC_ID_DVVIDEO,      MKTAG('C', 'D', 'V', 'H') }, /* Canopus DV */
00150   { CODEC_ID_DVVIDEO,      MKTAG('d', 'v', 'c', ' ') },
00151   { CODEC_ID_DVVIDEO,      MKTAG('d', 'v', 'c', 's') },
00152   { CODEC_ID_DVVIDEO,      MKTAG('d', 'v', 'h', '1') },
00153   { CODEC_ID_MPEG1VIDEO,   MKTAG('m', 'p', 'g', '1') },
00154   { CODEC_ID_MPEG1VIDEO,   MKTAG('m', 'p', 'g', '2') },
00155   { CODEC_ID_MPEG2VIDEO,   MKTAG('m', 'p', 'g', '2') },
00156   { CODEC_ID_MPEG2VIDEO,   MKTAG('M', 'P', 'E', 'G') },
00157   { CODEC_ID_MPEG1VIDEO,   MKTAG('P', 'I', 'M', '1') },
00158   { CODEC_ID_MPEG2VIDEO,   MKTAG('P', 'I', 'M', '2') },
00159   { CODEC_ID_MPEG1VIDEO,   MKTAG('V', 'C', 'R', '2') },
00160   { CODEC_ID_MPEG1VIDEO,   MKTAG( 1 ,  0 ,  0 ,  16) },
00161   { CODEC_ID_MPEG2VIDEO,   MKTAG( 2 ,  0 ,  0 ,  16) },
00162   { CODEC_ID_MPEG4,        MKTAG( 4 ,  0 ,  0 ,  16) },
00163   { CODEC_ID_MPEG2VIDEO,   MKTAG('D', 'V', 'R', ' ') },
00164   { CODEC_ID_MPEG2VIDEO,   MKTAG('M', 'M', 'E', 'S') },
00165   { CODEC_ID_MPEG2VIDEO,   MKTAG('L', 'M', 'P', '2') }, /* Lead MPEG2 in avi */
00166   { CODEC_ID_MPEG2VIDEO,   MKTAG('s', 'l', 'i', 'f') },
00167   { CODEC_ID_MPEG2VIDEO,   MKTAG('E', 'M', '2', 'V') },
00168   { CODEC_ID_MJPEG,        MKTAG('M', 'J', 'P', 'G') },
00169   { CODEC_ID_MJPEG,        MKTAG('L', 'J', 'P', 'G') },
00170   { CODEC_ID_MJPEG,        MKTAG('d', 'm', 'b', '1') },
00171   { CODEC_ID_MJPEG,        MKTAG('m', 'j', 'p', 'a') },
00172   { CODEC_ID_LJPEG,        MKTAG('L', 'J', 'P', 'G') },
00173   { CODEC_ID_MJPEG,        MKTAG('J', 'P', 'G', 'L') }, /* Pegasus lossless JPEG */
00174   { CODEC_ID_JPEGLS,       MKTAG('M', 'J', 'L', 'S') }, /* JPEG-LS custom FOURCC for avi - encoder */
00175   { CODEC_ID_MJPEG,        MKTAG('M', 'J', 'L', 'S') }, /* JPEG-LS custom FOURCC for avi - decoder */
00176   { CODEC_ID_MJPEG,        MKTAG('j', 'p', 'e', 'g') },
00177   { CODEC_ID_MJPEG,        MKTAG('I', 'J', 'P', 'G') },
00178   { CODEC_ID_MJPEG,        MKTAG('A', 'V', 'R', 'n') },
00179   { CODEC_ID_MJPEG,        MKTAG('A', 'C', 'D', 'V') },
00180   { CODEC_ID_MJPEG,        MKTAG('Q', 'I', 'V', 'G') },
00181   { CODEC_ID_MJPEG,        MKTAG('S', 'L', 'M', 'J') }, /* SL M-JPEG */
00182   { CODEC_ID_MJPEG,        MKTAG('C', 'J', 'P', 'G') }, /* Creative Webcam JPEG */
00183   { CODEC_ID_MJPEG,        MKTAG('I', 'J', 'L', 'V') }, /* Intel JPEG Library Video Codec */
00184   { CODEC_ID_MJPEG,        MKTAG('M', 'V', 'J', 'P') }, /* Midvid JPEG Video Codec */
00185   { CODEC_ID_MJPEG,        MKTAG('A', 'V', 'I', '1') },
00186   { CODEC_ID_MJPEG,        MKTAG('A', 'V', 'I', '2') },
00187   { CODEC_ID_MJPEG,        MKTAG('M', 'T', 'S', 'J') },
00188   { CODEC_ID_MJPEG,        MKTAG('Z', 'J', 'P', 'G') }, /* Paradigm Matrix M-JPEG Codec */
00189   { CODEC_ID_HUFFYUV,      MKTAG('H', 'F', 'Y', 'U') },
00190   { CODEC_ID_FFVHUFF,      MKTAG('F', 'F', 'V', 'H') },
00191   { CODEC_ID_CYUV,         MKTAG('C', 'Y', 'U', 'V') },
00192   { CODEC_ID_RAWVIDEO,     MKTAG( 0 ,  0 ,  0 ,  0 ) },
00193   { CODEC_ID_RAWVIDEO,     MKTAG( 3 ,  0 ,  0 ,  0 ) },
00194   { CODEC_ID_RAWVIDEO,     MKTAG('I', '4', '2', '0') },
00195   { CODEC_ID_RAWVIDEO,     MKTAG('Y', 'U', 'Y', '2') },
00196   { CODEC_ID_RAWVIDEO,     MKTAG('Y', '4', '2', '2') },
00197   { CODEC_ID_RAWVIDEO,     MKTAG('V', '4', '2', '2') },
00198   { CODEC_ID_RAWVIDEO,     MKTAG('Y', 'U', 'N', 'V') },
00199   { CODEC_ID_RAWVIDEO,     MKTAG('U', 'Y', 'N', 'V') },
00200   { CODEC_ID_RAWVIDEO,     MKTAG('U', 'Y', 'N', 'Y') },
00201   { CODEC_ID_RAWVIDEO,     MKTAG('u', 'y', 'v', '1') },
00202   { CODEC_ID_RAWVIDEO,     MKTAG('2', 'V', 'u', '1') },
00203   { CODEC_ID_RAWVIDEO,     MKTAG('2', 'v', 'u', 'y') },
00204   { CODEC_ID_RAWVIDEO,     MKTAG('P', '4', '2', '2') },
00205   { CODEC_ID_RAWVIDEO,     MKTAG('Y', 'V', '1', '2') },
00206   { CODEC_ID_RAWVIDEO,     MKTAG('U', 'Y', 'V', 'Y') },
00207   { CODEC_ID_RAWVIDEO,     MKTAG('V', 'Y', 'U', 'Y') },
00208   { CODEC_ID_RAWVIDEO,     MKTAG('I', 'Y', 'U', 'V') },
00209   { CODEC_ID_RAWVIDEO,     MKTAG('Y', '8', '0', '0') },
00210   { CODEC_ID_RAWVIDEO,     MKTAG('H', 'D', 'Y', 'C') },
00211   { CODEC_ID_RAWVIDEO,     MKTAG('Y', 'V', 'U', '9') },
00212   { CODEC_ID_RAWVIDEO,     MKTAG('V', 'D', 'T', 'Z') }, /* SoftLab-NSK VideoTizer */
00213   { CODEC_ID_FRWU,         MKTAG('F', 'R', 'W', 'U') },
00214   { CODEC_ID_R210,         MKTAG('r', '2', '1', '0') },
00215   { CODEC_ID_V210,         MKTAG('v', '2', '1', '0') },
00216   { CODEC_ID_INDEO3,       MKTAG('I', 'V', '3', '1') },
00217   { CODEC_ID_INDEO3,       MKTAG('I', 'V', '3', '2') },
00218   { CODEC_ID_INDEO4,       MKTAG('I', 'V', '4', '1') },
00219   { CODEC_ID_INDEO5,       MKTAG('I', 'V', '5', '0') },
00220   { CODEC_ID_VP3,          MKTAG('V', 'P', '3', '1') },
00221   { CODEC_ID_VP3,          MKTAG('V', 'P', '3', '0') },
00222   { CODEC_ID_VP5,          MKTAG('V', 'P', '5', '0') },
00223   { CODEC_ID_VP6,          MKTAG('V', 'P', '6', '0') },
00224   { CODEC_ID_VP6,          MKTAG('V', 'P', '6', '1') },
00225   { CODEC_ID_VP6,          MKTAG('V', 'P', '6', '2') },
00226   { CODEC_ID_VP6F,         MKTAG('V', 'P', '6', 'F') },
00227   { CODEC_ID_VP6F,         MKTAG('F', 'L', 'V', '4') },
00228   { CODEC_ID_ASV1,         MKTAG('A', 'S', 'V', '1') },
00229   { CODEC_ID_ASV2,         MKTAG('A', 'S', 'V', '2') },
00230   { CODEC_ID_VCR1,         MKTAG('V', 'C', 'R', '1') },
00231   { CODEC_ID_FFV1,         MKTAG('F', 'F', 'V', '1') },
00232   { CODEC_ID_XAN_WC4,      MKTAG('X', 'x', 'a', 'n') },
00233   { CODEC_ID_MIMIC,        MKTAG('L', 'M', '2', '0') },
00234   { CODEC_ID_MSRLE,        MKTAG('m', 'r', 'l', 'e') },
00235   { CODEC_ID_MSRLE,        MKTAG( 1 ,  0 ,  0 ,  0 ) },
00236   { CODEC_ID_MSRLE,        MKTAG( 2 ,  0 ,  0 ,  0 ) },
00237   { CODEC_ID_MSVIDEO1,     MKTAG('M', 'S', 'V', 'C') },
00238   { CODEC_ID_MSVIDEO1,     MKTAG('m', 's', 'v', 'c') },
00239   { CODEC_ID_MSVIDEO1,     MKTAG('C', 'R', 'A', 'M') },
00240   { CODEC_ID_MSVIDEO1,     MKTAG('c', 'r', 'a', 'm') },
00241   { CODEC_ID_MSVIDEO1,     MKTAG('W', 'H', 'A', 'M') },
00242   { CODEC_ID_MSVIDEO1,     MKTAG('w', 'h', 'a', 'm') },
00243   { CODEC_ID_CINEPAK,      MKTAG('c', 'v', 'i', 'd') },
00244   { CODEC_ID_TRUEMOTION1,  MKTAG('D', 'U', 'C', 'K') },
00245   { CODEC_ID_TRUEMOTION1,  MKTAG('P', 'V', 'E', 'Z') },
00246   { CODEC_ID_MSZH,         MKTAG('M', 'S', 'Z', 'H') },
00247   { CODEC_ID_ZLIB,         MKTAG('Z', 'L', 'I', 'B') },
00248   { CODEC_ID_SNOW,         MKTAG('S', 'N', 'O', 'W') },
00249   { CODEC_ID_4XM,          MKTAG('4', 'X', 'M', 'V') },
00250   { CODEC_ID_FLV1,         MKTAG('F', 'L', 'V', '1') },
00251   { CODEC_ID_FLASHSV,      MKTAG('F', 'S', 'V', '1') },
00252   { CODEC_ID_SVQ1,         MKTAG('s', 'v', 'q', '1') },
00253   { CODEC_ID_TSCC,         MKTAG('t', 's', 'c', 'c') },
00254   { CODEC_ID_ULTI,         MKTAG('U', 'L', 'T', 'I') },
00255   { CODEC_ID_VIXL,         MKTAG('V', 'I', 'X', 'L') },
00256   { CODEC_ID_QPEG,         MKTAG('Q', 'P', 'E', 'G') },
00257   { CODEC_ID_QPEG,         MKTAG('Q', '1', '.', '0') },
00258   { CODEC_ID_QPEG,         MKTAG('Q', '1', '.', '1') },
00259   { CODEC_ID_WMV3,         MKTAG('W', 'M', 'V', '3') },
00260   { CODEC_ID_VC1,          MKTAG('W', 'V', 'C', '1') },
00261   { CODEC_ID_VC1,          MKTAG('W', 'M', 'V', 'A') },
00262   { CODEC_ID_LOCO,         MKTAG('L', 'O', 'C', 'O') },
00263   { CODEC_ID_WNV1,         MKTAG('W', 'N', 'V', '1') },
00264   { CODEC_ID_AASC,         MKTAG('A', 'A', 'S', 'C') },
00265   { CODEC_ID_INDEO2,       MKTAG('R', 'T', '2', '1') },
00266   { CODEC_ID_FRAPS,        MKTAG('F', 'P', 'S', '1') },
00267   { CODEC_ID_THEORA,       MKTAG('t', 'h', 'e', 'o') },
00268   { CODEC_ID_TRUEMOTION2,  MKTAG('T', 'M', '2', '0') },
00269   { CODEC_ID_CSCD,         MKTAG('C', 'S', 'C', 'D') },
00270   { CODEC_ID_ZMBV,         MKTAG('Z', 'M', 'B', 'V') },
00271   { CODEC_ID_KMVC,         MKTAG('K', 'M', 'V', 'C') },
00272   { CODEC_ID_CAVS,         MKTAG('C', 'A', 'V', 'S') },
00273   { CODEC_ID_JPEG2000,     MKTAG('M', 'J', '2', 'C') },
00274   { CODEC_ID_VMNC,         MKTAG('V', 'M', 'n', 'c') },
00275   { CODEC_ID_TARGA,        MKTAG('t', 'g', 'a', ' ') },
00276   { CODEC_ID_PNG,          MKTAG('M', 'P', 'N', 'G') },
00277   { CODEC_ID_PNG,          MKTAG('P', 'N', 'G', '1') },
00278   { CODEC_ID_CLJR,         MKTAG('c', 'l', 'j', 'r') },
00279   { CODEC_ID_DIRAC,        MKTAG('d', 'r', 'a', 'c') },
00280   { CODEC_ID_RPZA,         MKTAG('a', 'z', 'p', 'r') },
00281   { CODEC_ID_RPZA,         MKTAG('R', 'P', 'Z', 'A') },
00282   { CODEC_ID_RPZA,         MKTAG('r', 'p', 'z', 'a') },
00283   { CODEC_ID_SP5X,         MKTAG('S', 'P', '5', '4') },
00284   { CODEC_ID_AURA,         MKTAG('A', 'U', 'R', 'A') },
00285   { CODEC_ID_AURA2,        MKTAG('A', 'U', 'R', '2') },
00286   { CODEC_ID_DPX,          MKTAG('d', 'p', 'x', ' ') },
00287   { CODEC_ID_KGV1,         MKTAG('K', 'G', 'V', '1') },
00288   { CODEC_ID_NONE,         0 }
00289 };
00290 
00291 
00292 #ifndef __WEED_PALETTES_H__
00293 #include <weed/weed-palettes.h>
00294 #endif
00295 
00296 int avi_pix_fmt_to_weed_palette(enum PixelFormat pix_fmt, int *clamped) {
00297   // clamped may be set to NULL if you are not interested in the value
00298 
00299   switch (pix_fmt) {
00300   case PIX_FMT_RGB24:
00301     return WEED_PALETTE_RGB24;
00302   case PIX_FMT_BGR24:
00303     return WEED_PALETTE_BGR24;
00304   case PIX_FMT_RGBA:
00305     return WEED_PALETTE_RGBA32;
00306   case PIX_FMT_BGRA:
00307     return WEED_PALETTE_BGRA32;
00308   case PIX_FMT_ARGB:
00309     return WEED_PALETTE_ARGB32;
00310   case PIX_FMT_YUV444P:
00311     return WEED_PALETTE_YUV444P;
00312   case PIX_FMT_YUV422P:
00313     return WEED_PALETTE_YUV422P;
00314   case PIX_FMT_YUV420P:
00315     return WEED_PALETTE_YUV420P;
00316   case PIX_FMT_YUYV422:
00317     return WEED_PALETTE_YUYV;
00318   case PIX_FMT_UYVY422:
00319     return WEED_PALETTE_UYVY;
00320   case PIX_FMT_UYYVYY411:
00321     return WEED_PALETTE_YUV411;
00322   case PIX_FMT_GRAY8:
00323   case PIX_FMT_Y400A:
00324     return WEED_PALETTE_A8;
00325   case PIX_FMT_MONOWHITE:
00326   case PIX_FMT_MONOBLACK:
00327     return WEED_PALETTE_A1;
00328   case PIX_FMT_YUVJ422P:
00329     if (clamped) *clamped=WEED_YUV_CLAMPING_UNCLAMPED;
00330     return WEED_PALETTE_YUV422P;
00331   case PIX_FMT_YUVJ444P:
00332     if (clamped) *clamped=WEED_YUV_CLAMPING_UNCLAMPED;
00333     return WEED_PALETTE_YUV444P;
00334   case PIX_FMT_YUVJ420P:
00335     if (clamped) *clamped=WEED_YUV_CLAMPING_UNCLAMPED;
00336     return WEED_PALETTE_YUV420P;
00337 
00338   default:
00339     return WEED_PALETTE_END;
00340   }
00341 }
00342 
00343 
00344 
00345 
00346 enum PixelFormat weed_palette_to_avi_pix_fmt(int pal, int *clamped) {
00347 
00348   switch (pal) {
00349   case WEED_PALETTE_RGB24:
00350     return PIX_FMT_RGB24;
00351   case WEED_PALETTE_BGR24:
00352     return PIX_FMT_BGR24;
00353   case WEED_PALETTE_RGBA32:
00354     return PIX_FMT_RGBA;
00355   case WEED_PALETTE_BGRA32:
00356     return PIX_FMT_BGRA;
00357   case WEED_PALETTE_ARGB32:
00358     return PIX_FMT_ARGB;
00359   case WEED_PALETTE_YUV444P:
00360     if (clamped && *clamped==WEED_YUV_CLAMPING_UNCLAMPED)
00361       return PIX_FMT_YUVJ444P;
00362     return PIX_FMT_YUV444P;
00363   case WEED_PALETTE_YUV422P:
00364     if (clamped && *clamped==WEED_YUV_CLAMPING_UNCLAMPED)
00365       return PIX_FMT_YUVJ422P;
00366     return PIX_FMT_YUV422P;
00367   case WEED_PALETTE_YUV420P:
00368     if (clamped && *clamped==WEED_YUV_CLAMPING_UNCLAMPED)
00369       return PIX_FMT_YUVJ420P;
00370     return PIX_FMT_YUV420P;
00371   case WEED_PALETTE_YUYV:
00372     return PIX_FMT_YUYV422;
00373   case WEED_PALETTE_UYVY:
00374     return PIX_FMT_UYVY422;
00375   case WEED_PALETTE_YUV411:
00376     return PIX_FMT_UYYVYY411;
00377 
00378   case WEED_PALETTE_A8:
00379     return PIX_FMT_GRAY8;
00380   case WEED_PALETTE_A1:
00381     return PIX_FMT_MONOBLACK;
00382 
00383   default:
00384     return PIX_FMT_NONE;
00385   }
00386 
00387   return PIX_FMT_NONE;
00388 
00389 }
00390 
00391 #endif
00392 
00393 #ifdef __cplusplus
00394 }
00395 #endif /* __cplusplus */
00396 
00397 #endif // #ifndef __WEED_COMPAT_H__
 All Data Structures Files Functions Variables Typedefs Defines