mirror of
https://github.com/mpv-player/mpv
synced 2024-12-23 23:32:26 +00:00
demux: add null demuxer
It's useless, but can be used for fancy --lavfi-complex nonsense.
This commit is contained in:
parent
3f60548df4
commit
9972847265
@ -708,7 +708,9 @@ PROTOCOLS
|
||||
Stitch together parts of multiple files and play them.
|
||||
|
||||
``null://``
|
||||
Simulate an empty file.
|
||||
Simulate an empty file. If opened for writing, it will discard all data.
|
||||
The ``null`` demuxer will specifically pass autoprobing if this protocol
|
||||
is used (while it's not automatically invoked for empty files).
|
||||
|
||||
``memory://data``
|
||||
Use the ``data`` part as source data.
|
||||
|
@ -3603,6 +3603,8 @@ Miscellaneous
|
||||
- ``--lavfi-complex='[aid1] asplit [t1] [ao] ; [t1] showvolume [t2] ; [vid1] [t2] overlay [vo]'``
|
||||
Play audio track 1, and overlay the measured volume for each speaker
|
||||
over video track 1.
|
||||
- ``null:// --lavfi-complex='life [vo]'``
|
||||
Conways' Life Game.
|
||||
|
||||
See the FFmpeg libavfilter documentation for details on the filter.
|
||||
|
||||
|
@ -53,6 +53,7 @@ extern const demuxer_desc_t demuxer_desc_playlist;
|
||||
extern const demuxer_desc_t demuxer_desc_disc;
|
||||
extern const demuxer_desc_t demuxer_desc_rar;
|
||||
extern const demuxer_desc_t demuxer_desc_libarchive;
|
||||
extern const demuxer_desc_t demuxer_desc_null;
|
||||
extern const demuxer_desc_t demuxer_desc_timeline;
|
||||
|
||||
/* Please do not add any new demuxers here. If you want to implement a new
|
||||
@ -76,6 +77,7 @@ const demuxer_desc_t *const demuxer_list[] = {
|
||||
&demuxer_desc_lavf,
|
||||
&demuxer_desc_mf,
|
||||
&demuxer_desc_playlist,
|
||||
&demuxer_desc_null,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
34
demux/demux_null.c
Normal file
34
demux/demux_null.c
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* This file is part of mpv.
|
||||
*
|
||||
* mpv is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* mpv is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with mpv. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "misc/bstr.h"
|
||||
#include "stream/stream.h"
|
||||
#include "demux.h"
|
||||
|
||||
static int try_open_file(struct demuxer *demux, enum demux_check check)
|
||||
{
|
||||
if (strcmp(demux->stream->info->name, "null") != 0 &&
|
||||
check != DEMUX_CHECK_REQUEST)
|
||||
return -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
const struct demuxer_desc demuxer_desc_null = {
|
||||
.name = "null",
|
||||
.desc = "null demuxer",
|
||||
.open = try_open_file,
|
||||
};
|
@ -175,6 +175,7 @@ def build(ctx):
|
||||
( "demux/demux_mf.c" ),
|
||||
( "demux/demux_mkv.c" ),
|
||||
( "demux/demux_mkv_timeline.c" ),
|
||||
( "demux/demux_null.c" ),
|
||||
( "demux/demux_playlist.c" ),
|
||||
( "demux/demux_raw.c" ),
|
||||
( "demux/demux_rar.c" ),
|
||||
|
Loading…
Reference in New Issue
Block a user