Remove libavresample support
libavresample hasn't been maintained for a long time by FFmpeg since libswresample superseded it. In 2018 it was officially deprecated [1]. Let's remove the support for it since there is no need to maintain this option further. [1] https://patchwork.ffmpeg.org/project/ffmpeg/patch/20171225175335.18183-1-atomnuker@gmail.com/
This commit is contained in:
parent
9cce9744d2
commit
7d501a6585
|
@ -500,16 +500,6 @@ if(FFMPEG_swresample_FOUND)
|
||||||
set(optlibsfound "${optlibsfound} SWResample")
|
set(optlibsfound "${optlibsfound} SWResample")
|
||||||
else()
|
else()
|
||||||
set(optlibsnotfound "${optlibsnotfound} SWResample")
|
set(optlibsnotfound "${optlibsnotfound} SWResample")
|
||||||
|
|
||||||
find_package(FFMPEG COMPONENTS avresample)
|
|
||||||
if(FFMPEG_avresample_FOUND)
|
|
||||||
set(HAVE_LIBAVRESAMPLE 1)
|
|
||||||
set(HAVE_LIBAVRESAMPLE_AVRESAMPLE_H 1)
|
|
||||||
list(APPEND ZM_BIN_LIBS "${FFMPEG_avresample_LIBRARIES}")
|
|
||||||
set(optlibsfound "${optlibsfound} AVResample")
|
|
||||||
else()
|
|
||||||
set(optlibsnotfound "${optlibsnotfound} AVResample")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(PATH_FFMPEG "")
|
set(PATH_FFMPEG "")
|
||||||
|
|
|
@ -14,7 +14,6 @@ This module accepts following COMPONENTS::
|
||||||
avutil
|
avutil
|
||||||
swresample
|
swresample
|
||||||
swscale
|
swscale
|
||||||
avresample
|
|
||||||
|
|
||||||
IMPORTED Targets
|
IMPORTED Targets
|
||||||
^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^
|
||||||
|
@ -121,8 +120,6 @@ _ffmpeg_find(avfilter libavfilter avfilter.h
|
||||||
avutil)
|
avutil)
|
||||||
_ffmpeg_find(avdevice libavdevice avdevice.h
|
_ffmpeg_find(avdevice libavdevice avdevice.h
|
||||||
avformat avutil)
|
avformat avutil)
|
||||||
_ffmpeg_find(avresample libavresample avresample.h
|
|
||||||
avutil)
|
|
||||||
|
|
||||||
if(TARGET FFMPEG::avutil)
|
if(TARGET FFMPEG::avutil)
|
||||||
set(FFMPEG_VERSION "${FFMPEG_avutil_VERSION}")
|
set(FFMPEG_VERSION "${FFMPEG_avutil_VERSION}")
|
||||||
|
|
|
@ -9,7 +9,7 @@ Build-Depends: debhelper (>= 9), dh-systemd, python3-sphinx, apache2-dev, dh-lin
|
||||||
,libavcodec-dev (>= 6:10~)
|
,libavcodec-dev (>= 6:10~)
|
||||||
,libavformat-dev (>= 6:10~)
|
,libavformat-dev (>= 6:10~)
|
||||||
,libavutil-dev (>= 6:10~)
|
,libavutil-dev (>= 6:10~)
|
||||||
,libswresample-dev | libavresample-dev
|
,libswresample-dev
|
||||||
,libswscale-dev (>= 6:10~)
|
,libswscale-dev (>= 6:10~)
|
||||||
,ffmpeg | libav-tools
|
,ffmpeg | libav-tools
|
||||||
,net-tools
|
,net-tools
|
||||||
|
|
|
@ -642,19 +642,8 @@ void zm_packet_copy_rescale_ts(const AVPacket *ipkt, AVPacket *opkt, const AVRat
|
||||||
av_packet_rescale_ts(opkt, src_tb, dst_tb);
|
av_packet_rescale_ts(opkt, src_tb, dst_tb);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(HAVE_LIBSWRESAMPLE) || defined(HAVE_LIBAVRESAMPLE)
|
|
||||||
int zm_resample_audio(
|
|
||||||
#if defined(HAVE_LIBSWRESAMPLE)
|
|
||||||
SwrContext *resample_ctx,
|
|
||||||
#else
|
|
||||||
#if defined(HAVE_LIBAVRESAMPLE)
|
|
||||||
AVAudioResampleContext *resample_ctx,
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
AVFrame *in_frame,
|
|
||||||
AVFrame *out_frame
|
|
||||||
) {
|
|
||||||
#if defined(HAVE_LIBSWRESAMPLE)
|
#if defined(HAVE_LIBSWRESAMPLE)
|
||||||
|
int zm_resample_audio(SwrContext *resample_ctx, AVFrame *in_frame, AVFrame *out_frame) {
|
||||||
if (in_frame) {
|
if (in_frame) {
|
||||||
// Resample the in_frame into the audioSampleBuffer until we process the whole
|
// Resample the in_frame into the audioSampleBuffer until we process the whole
|
||||||
// decoded data. Note: pts does not survive resampling or converting
|
// decoded data. Note: pts does not survive resampling or converting
|
||||||
|
@ -670,54 +659,12 @@ int zm_resample_audio(
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
Debug(3, "swr_get_delay %" PRIi64, swr_get_delay(resample_ctx, out_frame->sample_rate));
|
Debug(3, "swr_get_delay %" PRIi64, swr_get_delay(resample_ctx, out_frame->sample_rate));
|
||||||
#else
|
|
||||||
#if defined(HAVE_LIBAVRESAMPLE)
|
|
||||||
if (!in_frame) {
|
|
||||||
Error("Flushing resampler not supported by AVRESAMPLE");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
int ret = avresample_convert(resample_ctx, nullptr, 0, 0, in_frame->data,
|
|
||||||
0, in_frame->nb_samples);
|
|
||||||
if (ret < 0) {
|
|
||||||
Error("Could not resample frame (error '%s')",
|
|
||||||
av_make_error_string(ret).c_str());
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
int samples_available = avresample_available(resample_ctx);
|
|
||||||
if (samples_available < out_frame->nb_samples) {
|
|
||||||
Debug(1, "Not enough samples yet (%d)", samples_available);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Read a frame audio data from the resample fifo
|
|
||||||
if (avresample_read(resample_ctx, out_frame->data, out_frame->nb_samples) !=
|
|
||||||
out_frame->nb_samples) {
|
|
||||||
Warning("Error reading resampled audio.");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
zm_dump_frame(out_frame, "Out frame after resample");
|
zm_dump_frame(out_frame, "Out frame after resample");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int zm_resample_get_delay(
|
int zm_resample_get_delay(SwrContext *resample_ctx, int time_base) {
|
||||||
#if defined(HAVE_LIBSWRESAMPLE)
|
|
||||||
SwrContext *resample_ctx,
|
|
||||||
#else
|
|
||||||
#if defined(HAVE_LIBAVRESAMPLE)
|
|
||||||
AVAudioResampleContext *resample_ctx,
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
int time_base
|
|
||||||
) {
|
|
||||||
#if defined(HAVE_LIBSWRESAMPLE)
|
|
||||||
return swr_get_delay(resample_ctx, time_base);
|
return swr_get_delay(resample_ctx, time_base);
|
||||||
#else
|
|
||||||
#if defined(HAVE_LIBAVRESAMPLE)
|
|
||||||
return avresample_available(resample_ctx);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -26,11 +26,7 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
||||||
#ifdef HAVE_LIBSWRESAMPLE
|
#ifdef HAVE_LIBSWRESAMPLE
|
||||||
#include "libswresample/swresample.h"
|
#include "libswresample/swresample.h"
|
||||||
#else
|
|
||||||
#ifdef HAVE_LIBAVRESAMPLE
|
|
||||||
#include "libavresample/avresample.h"
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// AVUTIL
|
// AVUTIL
|
||||||
|
@ -450,29 +446,9 @@ int zm_send_frame_receive_packet(AVCodecContext *context, AVFrame *frame, AVPack
|
||||||
|
|
||||||
void zm_packet_copy_rescale_ts(const AVPacket *ipkt, AVPacket *opkt, const AVRational src_tb, const AVRational dst_tb);
|
void zm_packet_copy_rescale_ts(const AVPacket *ipkt, AVPacket *opkt, const AVRational src_tb, const AVRational dst_tb);
|
||||||
|
|
||||||
#if defined(HAVE_LIBSWRESAMPLE) || defined(HAVE_LIBAVRESAMPLE)
|
|
||||||
int zm_resample_audio(
|
|
||||||
#if defined(HAVE_LIBSWRESAMPLE)
|
#if defined(HAVE_LIBSWRESAMPLE)
|
||||||
SwrContext *resample_ctx,
|
int zm_resample_audio(SwrContext *resample_ctx, AVFrame *in_frame, AVFrame *out_frame);
|
||||||
#else
|
int zm_resample_get_delay(SwrContext *resample_ctx, int time_base);
|
||||||
#if defined(HAVE_LIBAVRESAMPLE)
|
|
||||||
AVAudioResampleContext *resample_ctx,
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
AVFrame *in_frame,
|
|
||||||
AVFrame *out_frame
|
|
||||||
);
|
|
||||||
int zm_resample_get_delay(
|
|
||||||
#if defined(HAVE_LIBSWRESAMPLE)
|
|
||||||
SwrContext *resample_ctx,
|
|
||||||
#else
|
|
||||||
#if defined(HAVE_LIBAVRESAMPLE)
|
|
||||||
AVAudioResampleContext *resample_ctx,
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
int time_base
|
|
||||||
);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int zm_add_samples_to_fifo(AVAudioFifo *fifo, AVFrame *frame);
|
int zm_add_samples_to_fifo(AVAudioFifo *fifo, AVFrame *frame);
|
||||||
|
|
|
@ -87,11 +87,9 @@ VideoStore::VideoStore(
|
||||||
packets_written(0),
|
packets_written(0),
|
||||||
frame_count(0),
|
frame_count(0),
|
||||||
hw_device_ctx(nullptr),
|
hw_device_ctx(nullptr),
|
||||||
#if defined(HAVE_LIBSWRESAMPLE) || defined(HAVE_LIBAVRESAMPLE)
|
|
||||||
resample_ctx(nullptr),
|
|
||||||
#if defined(HAVE_LIBSWRESAMPLE)
|
#if defined(HAVE_LIBSWRESAMPLE)
|
||||||
|
resample_ctx(nullptr),
|
||||||
fifo(nullptr),
|
fifo(nullptr),
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
converted_in_samples(nullptr),
|
converted_in_samples(nullptr),
|
||||||
filename(filename_in),
|
filename(filename_in),
|
||||||
|
@ -724,20 +722,13 @@ VideoStore::~VideoStore() {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(HAVE_LIBAVRESAMPLE) || defined(HAVE_LIBSWRESAMPLE)
|
#if defined(HAVE_LIBSWRESAMPLE)
|
||||||
if (resample_ctx) {
|
if (resample_ctx) {
|
||||||
if (fifo) {
|
if (fifo) {
|
||||||
av_audio_fifo_free(fifo);
|
av_audio_fifo_free(fifo);
|
||||||
fifo = nullptr;
|
fifo = nullptr;
|
||||||
}
|
}
|
||||||
#if defined(HAVE_LIBSWRESAMPLE)
|
|
||||||
swr_free(&resample_ctx);
|
swr_free(&resample_ctx);
|
||||||
#else
|
|
||||||
#if defined(HAVE_LIBAVRESAMPLE)
|
|
||||||
avresample_close(resample_ctx);
|
|
||||||
avresample_free(&resample_ctx);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
if (in_frame) {
|
if (in_frame) {
|
||||||
av_frame_free(&in_frame);
|
av_frame_free(&in_frame);
|
||||||
|
@ -762,7 +753,7 @@ VideoStore::~VideoStore() {
|
||||||
} // VideoStore::~VideoStore()
|
} // VideoStore::~VideoStore()
|
||||||
|
|
||||||
bool VideoStore::setup_resampler() {
|
bool VideoStore::setup_resampler() {
|
||||||
#if !defined(HAVE_LIBSWRESAMPLE) && !defined(HAVE_LIBAVRESAMPLE)
|
#if !defined(HAVE_LIBSWRESAMPLE)
|
||||||
Error("Not built with resample library. Cannot do audio conversion to AAC");
|
Error("Not built with resample library. Cannot do audio conversion to AAC");
|
||||||
return false;
|
return false;
|
||||||
#else
|
#else
|
||||||
|
@ -957,42 +948,6 @@ bool VideoStore::setup_resampler() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
Debug(1,"Success setting up SWRESAMPLE");
|
Debug(1,"Success setting up SWRESAMPLE");
|
||||||
#else
|
|
||||||
#if defined(HAVE_LIBAVRESAMPLE)
|
|
||||||
// Setup the audio resampler
|
|
||||||
resample_ctx = avresample_alloc_context();
|
|
||||||
|
|
||||||
if (!resample_ctx) {
|
|
||||||
Error("Could not allocate resample ctx");
|
|
||||||
av_frame_free(&in_frame);
|
|
||||||
av_frame_free(&out_frame);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
av_opt_set_int(resample_ctx, "in_channel_layout",
|
|
||||||
audio_in_ctx->channel_layout, 0);
|
|
||||||
av_opt_set_int(resample_ctx, "in_sample_fmt",
|
|
||||||
audio_in_ctx->sample_fmt, 0);
|
|
||||||
av_opt_set_int(resample_ctx, "in_sample_rate",
|
|
||||||
audio_in_ctx->sample_rate, 0);
|
|
||||||
av_opt_set_int(resample_ctx, "in_channels",
|
|
||||||
audio_in_ctx->channels, 0);
|
|
||||||
av_opt_set_int(resample_ctx, "out_channel_layout",
|
|
||||||
audio_in_ctx->channel_layout, 0);
|
|
||||||
av_opt_set_int(resample_ctx, "out_sample_fmt",
|
|
||||||
audio_out_ctx->sample_fmt, 0);
|
|
||||||
av_opt_set_int(resample_ctx, "out_sample_rate",
|
|
||||||
audio_out_ctx->sample_rate, 0);
|
|
||||||
av_opt_set_int(resample_ctx, "out_channels",
|
|
||||||
audio_out_ctx->channels, 0);
|
|
||||||
|
|
||||||
if ((ret = avresample_open(resample_ctx)) < 0) {
|
|
||||||
Error("Could not open resample ctx");
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
Debug(2, "Success opening resampler");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
out_frame->nb_samples = audio_out_ctx->frame_size;
|
out_frame->nb_samples = audio_out_ctx->frame_size;
|
||||||
|
|
|
@ -10,15 +10,11 @@
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#ifdef HAVE_LIBSWRESAMPLE
|
#ifdef HAVE_LIBSWRESAMPLE
|
||||||
#include "libswresample/swresample.h"
|
#include "libswresample/swresample.h"
|
||||||
#else
|
|
||||||
#ifdef HAVE_LIBAVRESAMPLE
|
|
||||||
#include "libavresample/avresample.h"
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
#include "libavutil/audio_fifo.h"
|
#include "libavutil/audio_fifo.h"
|
||||||
#if HAVE_LIBAVUTIL_HWCONTEXT_H
|
#if HAVE_LIBAVUTIL_HWCONTEXT_H
|
||||||
#include "libavutil/hwcontext.h"
|
#include "libavutil/hwcontext.h"
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,10 +75,6 @@ class VideoStore {
|
||||||
#ifdef HAVE_LIBSWRESAMPLE
|
#ifdef HAVE_LIBSWRESAMPLE
|
||||||
SwrContext *resample_ctx;
|
SwrContext *resample_ctx;
|
||||||
AVAudioFifo *fifo;
|
AVAudioFifo *fifo;
|
||||||
#else
|
|
||||||
#ifdef HAVE_LIBAVRESAMPLE
|
|
||||||
AVAudioResampleContext* resample_ctx;
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
uint8_t *converted_in_samples;
|
uint8_t *converted_in_samples;
|
||||||
|
|
||||||
|
|
|
@ -48,8 +48,6 @@
|
||||||
#cmakedefine HAVE_LIBSWSCALE_SWSCALE_H 1
|
#cmakedefine HAVE_LIBSWSCALE_SWSCALE_H 1
|
||||||
#cmakedefine HAVE_LIBSWRESAMPLE 1
|
#cmakedefine HAVE_LIBSWRESAMPLE 1
|
||||||
#cmakedefine HAVE_LIBSWRESAMPLE_SWRESAMPLE_H 1
|
#cmakedefine HAVE_LIBSWRESAMPLE_SWRESAMPLE_H 1
|
||||||
#cmakedefine HAVE_LIBAVRESAMPLE 1
|
|
||||||
#cmakedefine HAVE_LIBAVRESAMPLE_AVRESAMPLE_H 1
|
|
||||||
#cmakedefine HAVE_LIBVLC 1
|
#cmakedefine HAVE_LIBVLC 1
|
||||||
#cmakedefine HAVE_VLC_VLC_H 1
|
#cmakedefine HAVE_VLC_VLC_H 1
|
||||||
#cmakedefine HAVE_LIBVNC 1
|
#cmakedefine HAVE_LIBVNC 1
|
||||||
|
|
Loading…
Reference in New Issue