diff --git a/libmpdemux/demux_mov.c b/libmpdemux/demux_mov.c index 7ab60ea315..1ba42c7ad7 100644 --- a/libmpdemux/demux_mov.c +++ b/libmpdemux/demux_mov.c @@ -506,7 +506,7 @@ skip_chunk: free(priv); if ((flags==5) || (flags==7)) // reference & header sent - return DEMUXER_TYPE_MOV; + return DEMUXER_TYPE_PLAYLIST; if(flags==1) mp_msg(MSGT_DEMUX,MSGL_WARN,"MOV: missing data (mdat) chunk! Maybe broken file...\n"); diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index 8f9c0cf35a..505291a8e7 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -629,6 +629,8 @@ for (i = 0; (demuxer_desc = demuxer_list[i]); i++) { file_format = fformat; break; } else { + if (fformat == DEMUXER_TYPE_PLAYLIST) + return demuxer; // handled in mplayer.c // Format changed after check, recurse free_demuxer(demuxer); demuxer=demux_open_stream(stream, fformat, force, @@ -672,6 +674,8 @@ for (i = 0; (demuxer_desc = demuxer_list[i]); i++) { file_format = fformat; break; } else { + if (fformat == DEMUXER_TYPE_PLAYLIST) + return demuxer; // handled in mplayer.c // Format changed after check, recurse free_demuxer(demuxer); demuxer=demux_open_stream(stream, fformat, force,