Originally committed as revision 14531 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
| @@ -127,6 +127,7 @@ version <next> | |||||
| - Motion Pixels Video decoder | - Motion Pixels Video decoder | ||||
| - Motion Pixels MVI demuxer | - Motion Pixels MVI demuxer | ||||
| - removed animated GIF decoder/demuxer | - removed animated GIF decoder/demuxer | ||||
| - D-Cinema audio muxer | |||||
| version 0.4.9-pre1: | version 0.4.9-pre1: | ||||
| @@ -33,6 +33,7 @@ OBJS-$(CONFIG_BFI_DEMUXER) += bfi.o | |||||
| OBJS-$(CONFIG_C93_DEMUXER) += c93.o vocdec.o voc.o | OBJS-$(CONFIG_C93_DEMUXER) += c93.o vocdec.o voc.o | ||||
| OBJS-$(CONFIG_CRC_MUXER) += crcenc.o | OBJS-$(CONFIG_CRC_MUXER) += crcenc.o | ||||
| OBJS-$(CONFIG_DAUD_DEMUXER) += daud.o | OBJS-$(CONFIG_DAUD_DEMUXER) += daud.o | ||||
| OBJS-$(CONFIG_DAUD_MUXER) += daud.o | |||||
| OBJS-$(CONFIG_DIRAC_DEMUXER) += raw.o | OBJS-$(CONFIG_DIRAC_DEMUXER) += raw.o | ||||
| OBJS-$(CONFIG_DIRAC_MUXER) += raw.o | OBJS-$(CONFIG_DIRAC_MUXER) += raw.o | ||||
| OBJS-$(CONFIG_DSICIN_DEMUXER) += dsicin.o | OBJS-$(CONFIG_DSICIN_DEMUXER) += dsicin.o | ||||
| @@ -68,7 +68,7 @@ void av_register_all(void) | |||||
| REGISTER_DEMUXER (BFI, bfi); | REGISTER_DEMUXER (BFI, bfi); | ||||
| REGISTER_DEMUXER (C93, c93); | REGISTER_DEMUXER (C93, c93); | ||||
| REGISTER_MUXER (CRC, crc); | REGISTER_MUXER (CRC, crc); | ||||
| REGISTER_DEMUXER (DAUD, daud); | |||||
| REGISTER_MUXDEMUX (DAUD, daud); | |||||
| REGISTER_MUXDEMUX (DIRAC, dirac); | REGISTER_MUXDEMUX (DIRAC, dirac); | ||||
| REGISTER_DEMUXER (DSICIN, dsicin); | REGISTER_DEMUXER (DSICIN, dsicin); | ||||
| REGISTER_MUXDEMUX (DTS, dts); | REGISTER_MUXDEMUX (DTS, dts); | ||||
| @@ -47,6 +47,24 @@ static int daud_packet(AVFormatContext *s, AVPacket *pkt) { | |||||
| return ret; | return ret; | ||||
| } | } | ||||
| static int daud_write_header(struct AVFormatContext *s) | |||||
| { | |||||
| AVCodecContext *codec = s->streams[0]->codec; | |||||
| if (codec->channels!=6 || codec->sample_rate!=96000) | |||||
| return -1; | |||||
| return 0; | |||||
| } | |||||
| static int daud_write_packet(struct AVFormatContext *s, AVPacket *pkt) | |||||
| { | |||||
| put_be16(s->pb, pkt->size); | |||||
| put_be16(s->pb, 0x8010); // unknown | |||||
| put_buffer(s->pb, pkt->data, pkt->size); | |||||
| put_flush_packet(s->pb); | |||||
| return 0; | |||||
| } | |||||
| #if CONFIG_DAUD_DEMUXER | |||||
| AVInputFormat daud_demuxer = { | AVInputFormat daud_demuxer = { | ||||
| "daud", | "daud", | ||||
| NULL_IF_CONFIG_SMALL("D-Cinema audio format"), | NULL_IF_CONFIG_SMALL("D-Cinema audio format"), | ||||
| @@ -58,3 +76,20 @@ AVInputFormat daud_demuxer = { | |||||
| NULL, | NULL, | ||||
| .extensions = "302", | .extensions = "302", | ||||
| }; | }; | ||||
| #endif | |||||
| #ifdef CONFIG_DAUD_MUXER | |||||
| AVOutputFormat daud_muxer = | |||||
| { | |||||
| "daud", | |||||
| NULL_IF_CONFIG_SMALL("D-Cinema audio format"), | |||||
| NULL, | |||||
| "302", | |||||
| 0, | |||||
| CODEC_ID_PCM_S24DAUD, | |||||
| CODEC_ID_NONE, | |||||
| daud_write_header, | |||||
| daud_write_packet, | |||||
| .flags= AVFMT_NOTIMESTAMPS, | |||||
| }; | |||||
| #endif | |||||