libquvi is dead. Signed-off-by: Lou Logan <l...@lrcd.com> --- TODO: Changelog Bump minor
Relevant post: <https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2015-April/172088.html> If a user still wants this they can locally maintain it. --- configure | 4 -- doc/demuxers.texi | 12 ---- libavformat/Makefile | 1 - libavformat/allformats.c | 1 - libavformat/libquvi.c | 153 ----------------------------------------------- 5 files changed, 171 deletions(-) delete mode 100644 libavformat/libquvi.c diff --git a/configure b/configure index e2bd3de..b97ea7c 100755 --- a/configure +++ b/configure @@ -232,7 +232,6 @@ External library support: --enable-libopenjpeg enable JPEG 2000 de/encoding via OpenJPEG [no] --enable-libopus enable Opus de/encoding via libopus [no] --enable-libpulse enable Pulseaudio input via libpulse [no] - --enable-libquvi enable quvi input via libquvi [no] --enable-librtmp enable RTMP[E] support via librtmp [no] --enable-libschroedinger enable Dirac de/encoding via libschroedinger [no] --enable-libshine enable fixed-point MP3 encoding via libshine [no] @@ -1383,7 +1382,6 @@ EXTERNAL_LIBRARY_LIST=" libopenjpeg libopus libpulse - libquvi librtmp libschroedinger libshine @@ -2424,7 +2422,6 @@ libopenjpeg_encoder_deps="libopenjpeg" libopus_decoder_deps="libopus" libopus_encoder_deps="libopus" libopus_encoder_select="audio_frame_queue" -libquvi_demuxer_deps="libquvi" libschroedinger_decoder_deps="libschroedinger" libschroedinger_encoder_deps="libschroedinger" libshine_encoder_deps="libshine" @@ -5051,7 +5048,6 @@ enabled libopenjpeg && { check_lib openjpeg.h opj_version -lopenmj2 -DOPJ_ die "ERROR: libopenjpeg not found"; } enabled libopus && require_pkg_config opus opus_multistream.h opus_multistream_decoder_create enabled libpulse && require_pkg_config libpulse pulse/pulseaudio.h pa_context_new -enabled libquvi && require_pkg_config libquvi quvi/quvi.h quvi_init enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket enabled libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init enabled libshine && require_pkg_config shine shine/layer3.h shine_encode_buffer diff --git a/doc/demuxers.texi b/doc/demuxers.texi index 3f7c45e..3bf217c 100644 --- a/doc/demuxers.texi +++ b/doc/demuxers.texi @@ -182,18 +182,6 @@ track. Track indexes start at 0. The demuxer exports the number of tracks as For very large files, the @option{max_size} option may have to be adjusted. -@section libquvi - -Play media from Internet services using the quvi project. - -The demuxer accepts a @option{format} option to request a specific quality. It -is by default set to @var{best}. - -See @url{http://quvi.sourceforge.net/} for more information. - -FFmpeg needs to be built with @code{--enable-libquvi} for this demuxer to be -enabled. - @section gif Animated GIF demuxer. diff --git a/libavformat/Makefile b/libavformat/Makefile index 8d9a770..dfc9b7b 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -483,7 +483,6 @@ OBJS-$(CONFIG_LIBGME_DEMUXER) += libgme.o OBJS-$(CONFIG_LIBMODPLUG_DEMUXER) += libmodplug.o OBJS-$(CONFIG_LIBNUT_DEMUXER) += libnut.o OBJS-$(CONFIG_LIBNUT_MUXER) += libnut.o -OBJS-$(CONFIG_LIBQUVI_DEMUXER) += libquvi.o OBJS-$(CONFIG_LIBRTMP) += librtmp.o OBJS-$(CONFIG_LIBSSH_PROTOCOL) += libssh.o OBJS-$(CONFIG_LIBSMBCLIENT_PROTOCOL) += libsmbclient.o diff --git a/libavformat/allformats.c b/libavformat/allformats.c index e6a9d01..ae422f6 100644 --- a/libavformat/allformats.c +++ b/libavformat/allformats.c @@ -385,7 +385,6 @@ void av_register_all(void) REGISTER_DEMUXER (LIBGME, libgme); REGISTER_DEMUXER (LIBMODPLUG, libmodplug); REGISTER_MUXDEMUX(LIBNUT, libnut); - REGISTER_DEMUXER (LIBQUVI, libquvi); REGISTER_PROTOCOL(LIBRTMP, librtmp); REGISTER_PROTOCOL(LIBRTMPE, librtmpe); REGISTER_PROTOCOL(LIBRTMPS, librtmps); diff --git a/libavformat/libquvi.c b/libavformat/libquvi.c deleted file mode 100644 index 7c5f7a2..0000000 --- a/libavformat/libquvi.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright (c) 2013 Clément Bœsch - * - * This file is part of FFmpeg. - * - * FFmpeg 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. - * - * FFmpeg 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 FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include <quvi/quvi.h> - -#include "libavformat/avformat.h" -#include "libavformat/internal.h" -#include "libavutil/avassert.h" -#include "libavutil/opt.h" - -typedef struct { - const AVClass *class; - char *format; - AVFormatContext *fmtctx; -} LibQuviContext; - -#define OFFSET(x) offsetof(LibQuviContext, x) -#define FLAGS AV_OPT_FLAG_DECODING_PARAM -static const AVOption libquvi_options[] = { - { "format", "request specific format", OFFSET(format), AV_OPT_TYPE_STRING, {.str="best"}, .flags = FLAGS }, - { NULL } -}; - -static const AVClass libquvi_context_class = { - .class_name = "libquvi", - .item_name = av_default_item_name, - .option = libquvi_options, - .version = LIBAVUTIL_VERSION_INT, -}; - -static int libquvi_close(AVFormatContext *s) -{ - LibQuviContext *qc = s->priv_data; - if (qc->fmtctx) - avformat_close_input(&qc->fmtctx); - return 0; -} - -static int libquvi_read_header(AVFormatContext *s) -{ - int i, ret; - quvi_t q; - quvi_media_t m; - QUVIcode rc; - LibQuviContext *qc = s->priv_data; - char *media_url, *pagetitle; - - rc = quvi_init(&q); - if (rc != QUVI_OK) - goto quvi_fail; - - quvi_setopt(q, QUVIOPT_FORMAT, qc->format); - - rc = quvi_parse(q, s->filename, &m); - if (rc != QUVI_OK) - goto quvi_fail; - - rc = quvi_getprop(m, QUVIPROP_MEDIAURL, &media_url); - if (rc != QUVI_OK) - goto quvi_fail; - - if (!(qc->fmtctx = avformat_alloc_context())) - goto quvi_fail; - - if ((ret = ff_copy_whitelists(qc->fmtctx, s)) < 0) - goto end; - - ret = avformat_open_input(&qc->fmtctx, media_url, NULL, NULL); - if (ret < 0) - goto end; - - rc = quvi_getprop(m, QUVIPROP_PAGETITLE, &pagetitle); - if (rc == QUVI_OK) - av_dict_set(&s->metadata, "title", pagetitle, 0); - - for (i = 0; i < qc->fmtctx->nb_streams; i++) { - AVStream *st = avformat_new_stream(s, NULL); - AVStream *ist = qc->fmtctx->streams[i]; - if (!st) { - ret = AVERROR(ENOMEM); - goto end; - } - avpriv_set_pts_info(st, ist->pts_wrap_bits, ist->time_base.num, ist->time_base.den); - avcodec_copy_context(st->codec, qc->fmtctx->streams[i]->codec); - } - - return 0; - -quvi_fail: - av_log(s, AV_LOG_ERROR, "%s\n", quvi_strerror(q, rc)); - ret = AVERROR_EXTERNAL; - -end: - quvi_parse_close(&m); - quvi_close(&q); - return ret; -} - -static int libquvi_read_packet(AVFormatContext *s, AVPacket *pkt) -{ - LibQuviContext *qc = s->priv_data; - return av_read_frame(qc->fmtctx, pkt); -} - -static int libquvi_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) -{ - LibQuviContext *qc = s->priv_data; - return av_seek_frame(qc->fmtctx, stream_index, timestamp, flags); -} - -static int libquvi_probe(AVProbeData *p) -{ - int score; - quvi_t q; - QUVIcode rc; - - rc = quvi_init(&q); - if (rc != QUVI_OK) - return AVERROR(ENOMEM); - score = quvi_supported(q, (char *)p->filename) == QUVI_OK ? AVPROBE_SCORE_EXTENSION : 0; - quvi_close(&q); - return score; -} - -AVInputFormat ff_libquvi_demuxer = { - .name = "libquvi", - .long_name = NULL_IF_CONFIG_SMALL("libquvi demuxer"), - .priv_data_size = sizeof(LibQuviContext), - .read_probe = libquvi_probe, - .read_header = libquvi_read_header, - .read_packet = libquvi_read_packet, - .read_close = libquvi_close, - .read_seek = libquvi_read_seek, - .priv_class = &libquvi_context_class, - .flags = AVFMT_NOFILE, -}; -- 2.3.5 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel