|
vdr-plugin-softhddevice-drm-gles 1.6.4-d0291bb
|
Audio and Alsa Interface. More...
#include <chrono>#include <cmath>#include <cstdint>#include <mutex>#include <string>#include <sstream>#include <vector>#include <alsa/asoundlib.h>#include <libavcodec/avcodec.h>#include <libavfilter/avfilter.h>#include <libavfilter/buffersink.h>#include <libavfilter/buffersrc.h>#include <libavutil/channel_layout.h>#include <libavutil/opt.h>#include <vdr/thread.h>#include "audio.h"#include "codec_audio.h"#include "config.h"#include "event.h"#include "filllevel.h"#include "logger.h"#include "misc.h"#include "pidcontroller.h"#include "ringbuffer.h"#include "softhddevice.h"Go to the source code of this file.
Functions | |
| static const char * | alsaToFFmpegChannel (const char *alsaName) |
| FFmpeg does not have channels called "RL" or "RR" So "rename" Alsas RL (rear left) and RR (rear right) to FFmpegs BL (back left) and BR (back right) to make the channelmap filter parser happy. | |
| static std::vector< std::string > | GetAlsaChannelLayoutAsArray (snd_pcm_t *pcmHandle) |
| Put Alsa channel layout in a dynamic array of strings. | |
| static std::vector< std::string > | GetFFmpegChannelLayoutAsArray (const AVChannelLayout &layout) |
| Put FFmpeg channel layout in a dynamic array of strings. | |
| static bool | LayoutsMatch (const std::vector< std::string > &ff, const std::vector< std::string > &alsa) |
| Check, if FFmpeg and Alsa channel layout match. | |
| static std::string | BuildChannelMapFilter (snd_pcm_t *pcmHandle, const AVChannelLayout &layout) |
| Build the "|"-separated mappings list for the channelmap filter. | |
| static void | AlsaNoopCallback (__attribute__((unused)) const char *file, __attribute__((unused)) int line, __attribute__((unused)) const char *function, __attribute__((unused)) int err, __attribute__((unused)) const char *fmt,...) |
| Empty log callback. | |
Audio and Alsa Interface.
cSoftHdAudio handles everything audio related except the decoding itself (see cAudioDecoder).
Definition in file audio.cpp.