Commit ce1d2a95 authored by Justin Ruggles's avatar Justin Ruggles Committed by Benjamin Larsson

Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be

used with "-acodec copy" to either copy a flac file verbatim or extract
the raw flac from an ogg-flac file.

Originally committed as revision 5368 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 3644cb8f
......@@ -26,6 +26,20 @@ static int raw_write_header(struct AVFormatContext *s)
return 0;
}
static int flac_write_header(struct AVFormatContext *s)
{
static const uint8_t header[8] = {
0x66, 0x4C, 0x61, 0x43, 0x80, 0x00, 0x00, 0x22
};
uint8_t *streaminfo = s->streams[0]->codec->extradata;
int len = s->streams[0]->codec->extradata_size;
if(streaminfo != NULL && len > 0) {
put_buffer(&s->pb, header, 8);
put_buffer(&s->pb, streaminfo, len);
}
return 0;
}
static int raw_write_packet(struct AVFormatContext *s, AVPacket *pkt)
{
put_buffer(&s->pb, pkt->data, pkt->size);
......@@ -397,6 +411,21 @@ AVInputFormat flac_iformat = {
.extensions = "flac",
};
#ifdef CONFIG_MUXERS
AVOutputFormat flac_oformat = {
"flac",
"raw flac",
"audio/x-flac",
"flac",
0,
CODEC_ID_FLAC,
0,
flac_write_header,
raw_write_packet,
raw_write_trailer,
};
#endif //CONFIG_MUXERS
AVInputFormat ac3_iformat = {
"ac3",
"raw ac3",
......@@ -792,6 +821,7 @@ int raw_init(void)
av_register_input_format(&shorten_iformat);
av_register_input_format(&flac_iformat);
av_register_output_format(&flac_oformat);
av_register_input_format(&ac3_iformat);
av_register_output_format(&ac3_oformat);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment