Commit 98145875 authored by Luca Barbato's avatar Luca Barbato

Align the input buffer in ffplay, introduce a public macro for aligned declarations

Update the avcodec_decode_audio and the float_to_int16 descriptions accordingly

Originally committed as revision 6147 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 12ccec0f
......@@ -133,7 +133,7 @@ typedef struct VideoState {
int audio_hw_buf_size;
/* samples output by the codec. we reserve more space for avsync
compensation */
uint8_t audio_buf[(AVCODEC_MAX_AUDIO_FRAME_SIZE * 3) / 2];
DECLARE_ALIGNED(16,uint8_t,audio_buf[(AVCODEC_MAX_AUDIO_FRAME_SIZE * 3) / 2]);
unsigned int audio_buf_size; /* in bytes */
int audio_buf_index; /* in bytes */
AVPacket audio_pkt;
......
......@@ -17,8 +17,8 @@ extern "C" {
#define AV_STRINGIFY(s) AV_TOSTRING(s)
#define AV_TOSTRING(s) #s
#define LIBAVCODEC_VERSION_INT ((51<<16)+(11<<8)+0)
#define LIBAVCODEC_VERSION 51.11.0
#define LIBAVCODEC_VERSION_INT ((51<<16)+(12<<8)+0)
#define LIBAVCODEC_VERSION 51.12.0
#define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT
#define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION)
......@@ -2451,6 +2451,17 @@ int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, v
*/
int avcodec_open(AVCodecContext *avctx, AVCodec *codec);
/**
* Decode an audio frame.
*
* @param avctx the codec context.
* @param samples output buffer, 16 byte aligned
* @param frame_size_ptr the output buffer size in bytes, zero if no frame could be compressed
* @param buf input buffer, 16 byte aligned
* @param buf_size the input buffer size
* @return 0 if successful, -1 if not.
*/
int avcodec_decode_audio(AVCodecContext *avctx, int16_t *samples,
int *frame_size_ptr,
uint8_t *buf, int buf_size);
......
......@@ -323,7 +323,7 @@ typedef struct DSPContext {
void (*vector_fmul_add_add)(float *dst, const float *src0, const float *src1, const float *src2, int src3, int len, int step);
/* C version: convert floats from the range [384.0,386.0] to ints in [-32768,32767]
* asm versions: convert floats from [-32768.0,32767.0] without rescaling */
* simd versions: convert floats from [-32768.0,32767.0] without rescaling and arrays are 16byte aligned */
void (*float_to_int16)(int16_t *dst, const float *src, int len);
/* (I)DCT */
......
......@@ -364,6 +364,13 @@ tend= read_time();\
#endif
/* memory */
#ifdef __GNUC__
#define DECLARE_ALIGNED(n,t,v) t v __attribute__ ((aligned (n)))
#else
#define DECLARE_ALIGNED(n,t,v) __declspec(align(n)) t v
#endif
void *av_malloc(unsigned int size);
void *av_realloc(void *ptr, unsigned int size);
void av_free(void *ptr);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment