#include <libavcodec/avcodec.h>
#include <libavutil/mem.h>
+#define API_CHANNEL_LAYOUT_STRUCT (LIBAVCODEC_VERSION_CHECK(59, 24, 100)) // AVCodecContext.ch_layout
+
#define API_CHANNEL_LAYOUT (LIBAV_UTIL_VERSION_CHECK( 52, 2, 6, 0, 100))
#if API_CHANNEL_LAYOUT
}
ctx->sample_rate = p_dec->fmt_in.audio.i_rate;
-#if LIBAVCODEC_VERSION_CHECK(59, 24, 100) && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+#if API_CHANNEL_LAYOUT_STRUCT && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
av_channel_layout_default( &ctx->ch_layout, p_dec->fmt_in.audio.i_channels );
#else
ctx->channels = p_dec->fmt_in.audio.i_channels;
p_dec->fmt_out.audio.i_rate = p_sys->p_context->sample_rate;
/* */
-#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
+#if API_CHANNEL_LAYOUT_STRUCT
if( p_sys->i_previous_channels == p_sys->p_context->ch_layout.nb_channels &&
p_sys->i_previous_layout == p_sys->p_context->ch_layout.u.mask )
return;
int i_channels_src = 0, channel_count;
uint64_t channel_layout_mask;
-#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
+#if API_CHANNEL_LAYOUT_STRUCT
channel_layout_mask = p_sys->p_context->ch_layout.u.mask;
channel_count = p_sys->p_context->ch_layout.nb_channels;
#elif API_CHANNEL_LAYOUT
#include "avcodec.h"
#include "avcommon.h"
+#define API_CHANNEL_LAYOUT_STRUCT (LIBAVCODEC_VERSION_CHECK(59, 24, 100)) // AVCodecContext.ch_layout
+
#define API_CHANNEL_LAYOUT (LIBAV_UTIL_VERSION_CHECK( 52, 2, 6, 0, 100))
#if API_CHANNEL_LAYOUT
{ AV_CH_STEREO_RIGHT, 0 },
};
-# if !LIBAVCODEC_VERSION_CHECK(59, 24, 100)
+# if !API_CHANNEL_LAYOUT_STRUCT
static const uint32_t channel_mask[][2] = {
{0,0},
{AOUT_CHAN_CENTER, AV_CH_LAYOUT_MONO},
uint32_t order_mask = 0;
int i_channels_src = 0;
msg_Dbg( p_enc, "Creating channel order for reordering");
-# if LIBAVCODEC_VERSION_CHECK(59, 24, 100) && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+# if API_CHANNEL_LAYOUT_STRUCT && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
av_channel_layout_default( &p_context->ch_layout, p_enc->fmt_out.audio.i_channels );
uint64_t channel_mask = p_context->ch_layout.u.mask;
# else
if( p_enc->fmt_out.audio.i_channels > 2 )
{
-#if LIBAVCODEC_VERSION_CHECK(59, 24, 100) && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+#if API_CHANNEL_LAYOUT_STRUCT && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
av_channel_layout_default( &p_context->ch_layout, 2 );
#else
p_context->channels = 2;
av_frame_unref( p_sys->frame );
p_sys->frame->format = p_sys->p_context->sample_fmt;
p_sys->frame->nb_samples = leftover_samples + p_sys->i_samples_delay;
-#if LIBAVCODEC_VERSION_CHECK(59, 24, 100) && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+#if API_CHANNEL_LAYOUT_STRUCT && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
av_channel_layout_copy(&p_sys->frame->ch_layout, &p_sys->p_context->ch_layout);
#else
p_sys->frame->channel_layout = p_sys->p_context->channel_layout;
p_sys->frame->pts = date_Get( &p_sys->buffer_date ) * p_sys->p_context->time_base.den /
CLOCK_FREQ / p_sys->p_context->time_base.num;
-#if LIBAVCODEC_VERSION_CHECK(59, 24, 100) && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+#if API_CHANNEL_LAYOUT_STRUCT && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
av_channel_layout_copy(&p_sys->frame->ch_layout, &p_sys->p_context->ch_layout);
#else
p_sys->frame->channel_layout = p_sys->p_context->channel_layout;