diff options
author | wm4 <wm4@nowhere> | 2018-09-07 15:12:24 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2019-09-19 20:37:04 +0200 |
commit | b9be20b529de8f47e795d9a869299548d8788528 (patch) | |
tree | 039e425a0a945a703b0ac8aee94b37308c7e74cc /demux/demux_raw.c | |
parent | 8a83430ae77602feb0db4f9cacc8d6d9f63534ce (diff) | |
download | mpv-b9be20b529de8f47e795d9a869299548d8788528.tar.bz2 mpv-b9be20b529de8f47e795d9a869299548d8788528.tar.xz |
demux: return packets directly from demuxer instead of using sh_stream
Preparation for other potential changes to separate demuxer cache/thread
and actual demuxers.
Most things are untested, but it seems to work somewhat.
Diffstat (limited to 'demux/demux_raw.c')
-rw-r--r-- | demux/demux_raw.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/demux/demux_raw.c b/demux/demux_raw.c index 90b071dd3d..52d3ee268e 100644 --- a/demux/demux_raw.c +++ b/demux/demux_raw.c @@ -269,17 +269,17 @@ static int demux_rawvideo_open(demuxer_t *demuxer, enum demux_check check) return generic_open(demuxer); } -static int raw_fill_buffer(demuxer_t *demuxer) +static bool raw_read_packet(struct demuxer *demuxer, struct demux_packet **pkt) { struct priv *p = demuxer->priv; if (demuxer->stream->eof) - return 0; + return false; struct demux_packet *dp = new_demux_packet(p->frame_size * p->read_frames); if (!dp) { MP_ERR(demuxer, "Can't read packet.\n"); - return 1; + return true; } dp->pos = stream_tell(demuxer->stream); @@ -287,9 +287,11 @@ static int raw_fill_buffer(demuxer_t *demuxer) int len = stream_read(demuxer->stream, dp->buffer, dp->len); demux_packet_shorten(dp, len); - demux_add_packet(p->sh, dp); - return 1; + dp->stream = p->sh->index; + *pkt = dp; + + return true; } static void raw_seek(demuxer_t *demuxer, double seek_pts, int flags) @@ -312,7 +314,7 @@ const demuxer_desc_t demuxer_desc_rawaudio = { .name = "rawaudio", .desc = "Uncompressed audio", .open = demux_rawaudio_open, - .fill_buffer = raw_fill_buffer, + .read_packet = raw_read_packet, .seek = raw_seek, }; @@ -320,6 +322,6 @@ const demuxer_desc_t demuxer_desc_rawvideo = { .name = "rawvideo", .desc = "Uncompressed video", .open = demux_rawvideo_open, - .fill_buffer = raw_fill_buffer, + .read_packet = raw_read_packet, .seek = raw_seek, }; |