diff options
Diffstat (limited to 'stream')
-rw-r--r-- | stream/stream.c | 2 | ||||
-rw-r--r-- | stream/stream.h | 1 | ||||
-rw-r--r-- | stream/stream_avdevice.c | 49 |
3 files changed, 52 insertions, 0 deletions
diff --git a/stream/stream.c b/stream/stream.c index 722a21e57c..94a7c4cf6d 100644 --- a/stream/stream.c +++ b/stream/stream.c @@ -81,6 +81,7 @@ extern const stream_info_t stream_info_smb; extern const stream_info_t stream_info_null; extern const stream_info_t stream_info_mf; extern const stream_info_t stream_info_ffmpeg; +extern const stream_info_t stream_info_avdevice; extern const stream_info_t stream_info_file; extern const stream_info_t stream_info_ifo; extern const stream_info_t stream_info_dvd; @@ -94,6 +95,7 @@ static const stream_info_t* const auto_open_streams[] = { &stream_info_cdda, #endif &stream_info_ffmpeg, // use for rstp:// before http fallback + &stream_info_avdevice, #ifdef CONFIG_NETWORKING &stream_info_netstream, &stream_info_http1, diff --git a/stream/stream.h b/stream/stream.h index 87cb6c64db..28557e8c6e 100644 --- a/stream/stream.h +++ b/stream/stream.h @@ -53,6 +53,7 @@ #define STREAMTYPE_MF 18 #define STREAMTYPE_RADIO 19 #define STREAMTYPE_BLURAY 20 +#define STREAMTYPE_AVDEVICE 21 #define STREAM_BUFFER_SIZE 2048 #define STREAM_MAX_SECTOR_SIZE (8*1024) diff --git a/stream/stream_avdevice.c b/stream/stream_avdevice.c new file mode 100644 index 0000000000..e26d5a9060 --- /dev/null +++ b/stream/stream_avdevice.c @@ -0,0 +1,49 @@ +/* + * This file is part of mpv. + * + * mpv is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with mpv; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "config.h" + +#include "stream.h" +#include "demux/demux.h" + +static int fill_buffer(stream_t *s, char *buffer, int max_len) +{ + return -1; +} + +static int open_f(stream_t *stream, int mode, void *opts, int *file_format) +{ + if (mode != STREAM_READ) + return STREAM_ERROR; + + stream->fill_buffer = fill_buffer; + stream->type = STREAMTYPE_AVDEVICE; + + *file_format = DEMUXER_TYPE_LAVF; + return STREAM_OK; +} + +const stream_info_t stream_info_avdevice = { + .info = "FFmpeg libavdevice", + .name = "avdevice", + .author = "", + .comment = + "Force a libavformat/libavdevice demuxer with avdevice://demuxer:args", + .open = open_f, + .protocols = { "avdevice", "av", NULL }, +}; |