summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmpdemux/demux_audio.c1
-rw-r--r--libmpdemux/demux_lavf.c6
-rw-r--r--libmpdemux/demuxer.c3
3 files changed, 9 insertions, 1 deletions
diff --git a/libmpdemux/demux_audio.c b/libmpdemux/demux_audio.c
index f5c476d250..7f0bb5e55f 100644
--- a/libmpdemux/demux_audio.c
+++ b/libmpdemux/demux_audio.c
@@ -491,6 +491,7 @@ static int demux_audio_open(demuxer_t* demuxer) {
}
if (sh_audio->i_bps < 1) // guess value to prevent crash
sh_audio->i_bps = 64 * 1024;
+ sh_audio->needs_parsing = 1;
// get_flac_metadata (demuxer);
break;
}
diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c
index 09999d80b5..6d3e68d9c0 100644
--- a/libmpdemux/demux_lavf.c
+++ b/libmpdemux/demux_lavf.c
@@ -234,8 +234,12 @@ static const char * const preferred_internal[] = {
/* lavf Matroska demuxer doesn't support ordered chapters and fails
* for more files */
"matroska",
- /* seeking won't work in lavf FLAC demuxer until a parser is committed */
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(52, 99, 0)
+ /* Seeking doesn't work with lavf FLAC demuxer in FFmpeg versions
+ * without a FLAC parser. In principle this could use a runtime check to
+ * switch if a shared library is updated. */
"flac",
+#endif
/* lavf gives neither pts nor dts for some video frames in .rm */
"rm",
NULL
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c
index 51343f1595..af7f40c004 100644
--- a/libmpdemux/demuxer.c
+++ b/libmpdemux/demuxer.c
@@ -464,6 +464,9 @@ static void allocate_parser(AVCodecContext **avctx, AVCodecParserContext **parse
case 0x86:
codec_id = CODEC_ID_DTS;
break;
+ case MKTAG('f', 'L', 'a', 'C'):
+ codec_id = CODEC_ID_FLAC;
+ break;
case MKTAG('M', 'L', 'P', ' '):
codec_id = CODEC_ID_MLP;
break;