From 880e3ef41311c036892e4e0688e58418505886a3 Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Sun, 12 Aug 2007 09:29:39 +0000
Subject: [PATCH] add support for old flac in ogg fixes
 samples.mplayerhq.hu/flac/Yesterday.ogg closes issue73

Originally committed as revision 10088 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavformat/ogg2.c         |  1 +
 libavformat/ogg2.h         |  1 +
 libavformat/oggparseflac.c | 16 ++++++++++++++++
 3 files changed, 18 insertions(+)

diff --git a/libavformat/ogg2.c b/libavformat/ogg2.c
index 3602f216756..2b4b1603b6d 100644
--- a/libavformat/ogg2.c
+++ b/libavformat/ogg2.c
@@ -41,6 +41,7 @@ static ogg_codec_t *ogg_codecs[] = {
     &vorbis_codec,
     &theora_codec,
     &flac_codec,
+    &old_flac_codec,
     &ogm_video_codec,
     &ogm_audio_codec,
     &ogm_old_codec,
diff --git a/libavformat/ogg2.h b/libavformat/ogg2.h
index 6b7c6b22ec7..12307878250 100644
--- a/libavformat/ogg2.h
+++ b/libavformat/ogg2.h
@@ -77,6 +77,7 @@ typedef struct ogg {
 extern ogg_codec_t vorbis_codec;
 extern ogg_codec_t theora_codec;
 extern ogg_codec_t flac_codec;
+extern ogg_codec_t old_flac_codec;
 extern ogg_codec_t ogm_video_codec;
 extern ogg_codec_t ogm_audio_codec;
 extern ogg_codec_t ogm_old_codec;
diff --git a/libavformat/oggparseflac.c b/libavformat/oggparseflac.c
index b2bdcd4dcd0..d8eff05b0fc 100644
--- a/libavformat/oggparseflac.c
+++ b/libavformat/oggparseflac.c
@@ -75,8 +75,24 @@ flac_header (AVFormatContext * s, int idx)
     return 1;
 }
 
+static int
+old_flac_header (AVFormatContext * s, int idx)
+{
+    AVStream *st = s->streams[idx];
+    st->codec->codec_type = CODEC_TYPE_AUDIO;
+    st->codec->codec_id = CODEC_ID_FLAC;
+
+    return 0;
+}
+
 ogg_codec_t flac_codec = {
     .magic = "\177FLAC",
     .magicsize = 5,
     .header = flac_header
 };
+
+ogg_codec_t old_flac_codec = {
+    .magic = "fLaC",
+    .magicsize = 4,
+    .header = old_flac_header
+};
-- 
GitLab