1 /* 2 * CAF common code 3 * Copyright (c) 2007 Justin Ruggles 4 * 5 * This file is part of FFmpeg. 6 * 7 * FFmpeg is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public 9 * License as published by the Free Software Foundation; either 10 * version 2.1 of the License, or (at your option) any later version. 11 * 12 * FFmpeg is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with FFmpeg; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 */ 21 22 /** 23 * @file 24 * CAF common code 25 */ 26 27 #include "avformat.h" 28 #include "internal.h" 29 #include "caf.h" 30 31 /** 32 * Known codec tags for CAF 33 */ 34 const AVCodecTag ff_codec_caf_tags[] = { 35 { AV_CODEC_ID_AAC, MKTAG('a','a','c',' ') }, 36 { AV_CODEC_ID_AAC, MKTAG('a','a','c','l') }, 37 { AV_CODEC_ID_AC3, MKTAG('a','c','-','3') }, 38 { AV_CODEC_ID_ADPCM_IMA_QT, MKTAG('i','m','a','4') }, 39 { AV_CODEC_ID_ADPCM_IMA_WAV, MKTAG('m','s', 0, 17 ) }, 40 { AV_CODEC_ID_ADPCM_MS, MKTAG('m','s', 0, 2 ) }, 41 { AV_CODEC_ID_ALAC, MKTAG('a','l','a','c') }, 42 { AV_CODEC_ID_AMR_NB, MKTAG('s','a','m','r') }, 43 /* FIXME: use DV demuxer, as done in MOV */ 44 /*{ AV_CODEC_ID_DVAUDIO, MKTAG('v','d','v','a') },*/ 45 /*{ AV_CODEC_ID_DVAUDIO, MKTAG('d','v','c','a') },*/ 46 { AV_CODEC_ID_GSM, MKTAG('a','g','s','m') }, 47 { AV_CODEC_ID_GSM_MS, MKTAG('m','s', 0, '1') }, 48 { AV_CODEC_ID_ILBC, MKTAG('i','l','b','c') }, 49 { AV_CODEC_ID_MACE3, MKTAG('M','A','C','3') }, 50 { AV_CODEC_ID_MACE6, MKTAG('M','A','C','6') }, 51 { AV_CODEC_ID_MP1, MKTAG('.','m','p','1') }, 52 { AV_CODEC_ID_MP2, MKTAG('.','m','p','2') }, 53 { AV_CODEC_ID_MP3, MKTAG('.','m','p','3') }, 54 { AV_CODEC_ID_MP3, MKTAG('m','s', 0 ,'U') }, 55 { AV_CODEC_ID_OPUS, MKTAG('o','p','u','s') }, 56 { AV_CODEC_ID_PCM_ALAW, MKTAG('a','l','a','w') }, 57 { AV_CODEC_ID_PCM_MULAW, MKTAG('u','l','a','w') }, 58 { AV_CODEC_ID_QCELP, MKTAG('Q','c','l','p') }, 59 { AV_CODEC_ID_QDM2, MKTAG('Q','D','M','2') }, 60 { AV_CODEC_ID_QDMC, MKTAG('Q','D','M','C') }, 61 /* currently unsupported codecs */ 62 /*{ AC-3 over S/PDIF MKTAG('c','a','c','3') },*/ 63 /*{ MPEG4CELP MKTAG('c','e','l','p') },*/ 64 /*{ MPEG4HVXC MKTAG('h','v','x','c') },*/ 65 /*{ MPEG4TwinVQ MKTAG('t','w','v','q') },*/ 66 67 { AV_CODEC_ID_PCM_S8, MKTAG('l','p','c','m') }, 68 { AV_CODEC_ID_PCM_S16LE, MKTAG('l','p','c','m') }, 69 { AV_CODEC_ID_PCM_S16BE, MKTAG('l','p','c','m') }, 70 { AV_CODEC_ID_PCM_S24LE, MKTAG('l','p','c','m') }, 71 { AV_CODEC_ID_PCM_S24BE, MKTAG('l','p','c','m') }, 72 { AV_CODEC_ID_PCM_S32LE, MKTAG('l','p','c','m') }, 73 { AV_CODEC_ID_PCM_S32BE, MKTAG('l','p','c','m') }, 74 { AV_CODEC_ID_PCM_F32LE, MKTAG('l','p','c','m') }, 75 { AV_CODEC_ID_PCM_F32BE, MKTAG('l','p','c','m') }, 76 { AV_CODEC_ID_PCM_F64LE, MKTAG('l','p','c','m') }, 77 { AV_CODEC_ID_PCM_F64BE, MKTAG('l','p','c','m') }, 78 { AV_CODEC_ID_NONE, 0 }, 79 }; 80 81 const AVCodecTag *const ff_caf_codec_tags_list[] = { ff_codec_caf_tags, NULL }; 82