mirror of
https://projects.vdr-developer.org/git/vdr-plugin-softhddevice.git
synced 2023-10-10 19:16:51 +02:00
109 lines
3.3 KiB
C
109 lines
3.3 KiB
C
///
|
|
/// @file codec.h @brief Codec module headerfile
|
|
///
|
|
/// Copyright (c) 2009 - 2013, 2015 by Johns. All Rights Reserved.
|
|
///
|
|
/// Contributor(s):
|
|
///
|
|
/// License: AGPLv3
|
|
///
|
|
/// This program is free software: you can redistribute it and/or modify
|
|
/// it under the terms of the GNU Affero General Public License as
|
|
/// published by the Free Software Foundation, either version 3 of the
|
|
/// License.
|
|
///
|
|
/// This program 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 Affero General Public License for more details.
|
|
///
|
|
/// $Id$
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
/// @addtogroup Codec
|
|
/// @{
|
|
|
|
//----------------------------------------------------------------------------
|
|
// Defines
|
|
//----------------------------------------------------------------------------
|
|
|
|
#define CodecPCM 0x01 ///< PCM bit mask
|
|
#define CodecMPA 0x02 ///< MPA bit mask (planned)
|
|
#define CodecAC3 0x04 ///< AC-3 bit mask
|
|
#define CodecEAC3 0x08 ///< E-AC-3 bit mask
|
|
#define CodecDTS 0x10 ///< DTS bit mask (planned)
|
|
|
|
//----------------------------------------------------------------------------
|
|
// Typedefs
|
|
//----------------------------------------------------------------------------
|
|
|
|
/// Video decoder typedef.
|
|
typedef struct _video_decoder_ VideoDecoder;
|
|
|
|
/// Audio decoder typedef.
|
|
typedef struct _audio_decoder_ AudioDecoder;
|
|
|
|
//----------------------------------------------------------------------------
|
|
// Variables
|
|
//----------------------------------------------------------------------------
|
|
|
|
/// Flag prefer fast xhannel switch
|
|
extern char CodecUsePossibleDefectFrames;
|
|
|
|
//----------------------------------------------------------------------------
|
|
// Prototypes
|
|
//----------------------------------------------------------------------------
|
|
|
|
/// Allocate a new video decoder context.
|
|
extern VideoDecoder *CodecVideoNewDecoder(VideoHwDecoder *);
|
|
|
|
/// Deallocate a video decoder context.
|
|
extern void CodecVideoDelDecoder(VideoDecoder *);
|
|
|
|
/// Open video codec.
|
|
extern void CodecVideoOpen(VideoDecoder *, const char *, int);
|
|
|
|
/// Close video codec.
|
|
extern void CodecVideoClose(VideoDecoder *);
|
|
|
|
/// Decode a video packet.
|
|
extern void CodecVideoDecode(VideoDecoder *, const AVPacket *);
|
|
|
|
/// Flush video buffers.
|
|
extern void CodecVideoFlushBuffers(VideoDecoder *);
|
|
|
|
/// Allocate a new audio decoder context.
|
|
extern AudioDecoder *CodecAudioNewDecoder(void);
|
|
|
|
/// Deallocate an audio decoder context.
|
|
extern void CodecAudioDelDecoder(AudioDecoder *);
|
|
|
|
/// Open audio codec.
|
|
extern void CodecAudioOpen(AudioDecoder *, const char *, int);
|
|
|
|
/// Close audio codec.
|
|
extern void CodecAudioClose(AudioDecoder *);
|
|
|
|
/// Set audio drift correction.
|
|
extern void CodecSetAudioDrift(int);
|
|
|
|
/// Set audio pass-through.
|
|
extern void CodecSetAudioPassthrough(int);
|
|
|
|
/// Set audio downmix.
|
|
extern void CodecSetAudioDownmix(int);
|
|
|
|
/// Decode an audio packet.
|
|
extern void CodecAudioDecode(AudioDecoder *, const AVPacket *);
|
|
|
|
/// Flush audio buffers.
|
|
extern void CodecAudioFlushBuffers(AudioDecoder *);
|
|
|
|
/// Setup and initialize codec module.
|
|
extern void CodecInit(void);
|
|
|
|
/// Cleanup and exit codec module.
|
|
extern void CodecExit(void);
|
|
|
|
/// @}
|