summaryrefslogtreecommitdiffstats
path: root/demux
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-07-11 19:17:05 +0200
committerwm4 <wm4@nowhere>2013-07-11 19:17:05 +0200
commitfa74be880c27b350615f62dd4a0d6a32be56c60e (patch)
tree6d6041693f2066cea40f20d68f914331d0905ad9 /demux
parent11383696dbfdcd54c3d4637ee027e0fddd420f87 (diff)
downloadmpv-fa74be880c27b350615f62dd4a0d6a32be56c60e.tar.bz2
mpv-fa74be880c27b350615f62dd4a0d6a32be56c60e.tar.xz
tv: add hack in preparation of demux_stream removal
Currently, all demuxer fill_buffer functions have a demux_stream parameter. We want to remove that, but the TV code still depends on it. Add a hack to remove that dependency. The problem with the TV code is that reading video and audio frames blocks, so in order to avoid a deadlock, you should read either of them only if the decoder actually requests new data.
Diffstat (limited to 'demux')
-rw-r--r--demux/demux.c7
-rw-r--r--demux/demux.h1
2 files changed, 8 insertions, 0 deletions
diff --git a/demux/demux.c b/demux/demux.c
index 16adfeb795..df68d4ead7 100644
--- a/demux/demux.c
+++ b/demux/demux.c
@@ -559,6 +559,13 @@ bool demux_has_packet(struct sh_stream *sh)
return ds && ds->head;
}
+// Same as demux_has_packet, but to be called internally by demuxers, as
+// opposed to the user of the demuxer.
+bool demuxer_stream_has_packets_queued(struct demuxer *d, struct sh_stream *stream)
+{
+ return demux_has_packet(stream);
+}
+
// ====================================================================
void demuxer_help(void)
diff --git a/demux/demux.h b/demux/demux.h
index fade7533e9..4d4d861b7d 100644
--- a/demux/demux.h
+++ b/demux/demux.h
@@ -317,6 +317,7 @@ struct sh_stream *demuxer_stream_by_demuxer_id(struct demuxer *d,
enum stream_type t, int id);
bool demuxer_stream_is_selected(struct demuxer *d, struct sh_stream *stream);
+bool demuxer_stream_has_packets_queued(struct demuxer *d, struct sh_stream *stream);
void demux_packet_list_sort(struct demux_packet **pkts, int num_pkts);
void demux_packet_list_seek(struct demux_packet **pkts, int num_pkts,