summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMåns Rullgård <mans@mansr.com>2006-02-08 00:51:55 +0000
committerMåns Rullgård <mans@mansr.com>2006-02-08 00:51:55 +0000
commitfda885c70312715184a8b8a00c88f854c5e71021 (patch)
treef677dd4acab6a03bb87301bbff530c160af93b33
parentda46276ff8b1aefbc83917b34c19a676699f5b0b (diff)
read/write adts aac
Originally committed as revision 4955 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavformat/raw.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/libavformat/raw.c b/libavformat/raw.c
index 7628b237c5..fc01dbbb5a 100644
--- a/libavformat/raw.c
+++ b/libavformat/raw.c
@@ -256,6 +256,23 @@ static int dts_read_header(AVFormatContext *s,
return 0;
}
+/* aac read */
+static int aac_read_header(AVFormatContext *s,
+ AVFormatParameters *ap)
+{
+ AVStream *st;
+
+ st = av_new_stream(s, 0);
+ if (!st)
+ return AVERROR_NOMEM;
+
+ st->codec->codec_type = CODEC_TYPE_AUDIO;
+ st->codec->codec_id = CODEC_ID_AAC;
+ st->need_parsing = 1;
+ /* the parameters will be extracted from the compressed bitstream */
+ return 0;
+}
+
/* mpeg1/h263 input */
static int video_read_header(AVFormatContext *s,
AVFormatParameters *ap)
@@ -389,6 +406,32 @@ AVInputFormat dts_iformat = {
.extensions = "dts",
};
+AVInputFormat aac_iformat = {
+ "aac",
+ "ADTS AAC",
+ 0,
+ NULL,
+ aac_read_header,
+ raw_read_partial_packet,
+ raw_read_close,
+ .extensions = "aac",
+};
+
+#ifdef CONFIG_MUXERS
+AVOutputFormat aac_oformat = {
+ "aac",
+ "ADTS AAC",
+ "audio/aac",
+ "aac",
+ 0,
+ CODEC_ID_AAC,
+ 0,
+ raw_write_header,
+ raw_write_packet,
+ raw_write_trailer,
+};
+#endif
+
AVInputFormat h261_iformat = {
"h261",
"raw h261",
@@ -739,6 +782,9 @@ int raw_init(void)
av_register_input_format(&ac3_iformat);
av_register_output_format(&ac3_oformat);
+ av_register_input_format(&aac_iformat);
+ av_register_output_format(&aac_oformat);
+
av_register_input_format(&dts_iformat);
av_register_input_format(&h261_iformat);