You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	Merge remote-tracking branch 'qatar/master'
* qatar/master: w32threads: Make pthread_cond_wait follow POSIX cosmetics: Consistently place static, inline and av_cold attributes/keywords. sbrdsp: Use standard multiple inclusion guards. pcm: K&R formatting cosmetics rawdec: Support fourccs YV16 and YV24 rtmp: implement bandwidth notification rtmp: update supported audio codecs value Conflicts: libavcodec/pcm.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		| @@ -2790,7 +2790,7 @@ static int latm_decode_frame(AVCodecContext *avctx, void *out, | ||||
|     return muxlength; | ||||
| } | ||||
|  | ||||
| av_cold static int latm_decode_init(AVCodecContext *avctx) | ||||
| static av_cold int latm_decode_init(AVCodecContext *avctx) | ||||
| { | ||||
|     struct LATMContext *latmctx = avctx->priv_data; | ||||
|     int ret = aac_decode_init(avctx); | ||||
|   | ||||
| @@ -25,7 +25,7 @@ | ||||
| void ff_dca_lfe_fir_neon(float *out, const float *in, const float *coefs, | ||||
|                          int decifactor, float scale); | ||||
|  | ||||
| void av_cold ff_dcadsp_init_arm(DCADSPContext *s) | ||||
| av_cold void ff_dcadsp_init_arm(DCADSPContext *s) | ||||
| { | ||||
|     if (HAVE_NEON) | ||||
|         s->lfe_fir = ff_dca_lfe_fir_neon; | ||||
|   | ||||
| @@ -27,7 +27,7 @@ void ff_simple_idct_add_armv5te(uint8_t *dest, int line_size, DCTELEM *data); | ||||
|  | ||||
| void ff_prefetch_arm(void *mem, int stride, int h); | ||||
|  | ||||
| void av_cold ff_dsputil_init_armv5te(DSPContext* c, AVCodecContext *avctx) | ||||
| av_cold void ff_dsputil_init_armv5te(DSPContext *c, AVCodecContext *avctx) | ||||
| { | ||||
|     if (!avctx->lowres && avctx->bits_per_raw_sample <= 8 && | ||||
|         (avctx->idct_algo == FF_IDCT_AUTO || | ||||
|   | ||||
| @@ -70,7 +70,7 @@ int ff_sse16_armv6(void *s, uint8_t *blk1, uint8_t *blk2, | ||||
| int ff_pix_norm1_armv6(uint8_t *pix, int line_size); | ||||
| int ff_pix_sum_armv6(uint8_t *pix, int line_size); | ||||
|  | ||||
| void av_cold ff_dsputil_init_armv6(DSPContext* c, AVCodecContext *avctx) | ||||
| av_cold void ff_dsputil_init_armv6(DSPContext *c, AVCodecContext *avctx) | ||||
| { | ||||
|     const int high_bit_depth = avctx->bits_per_raw_sample > 8; | ||||
|  | ||||
|   | ||||
| @@ -328,7 +328,7 @@ do{\ | ||||
| #undef put_rac | ||||
| } | ||||
|  | ||||
| static void av_noinline put_symbol(RangeCoder *c, uint8_t *state, int v, int is_signed){ | ||||
| static av_noinline void put_symbol(RangeCoder *c, uint8_t *state, int v, int is_signed){ | ||||
|     put_symbol_inline(c, state, v, is_signed, NULL, NULL); | ||||
| } | ||||
|  | ||||
| @@ -352,7 +352,7 @@ static inline av_flatten int get_symbol_inline(RangeCoder *c, uint8_t *state, in | ||||
|     } | ||||
| } | ||||
|  | ||||
| static int av_noinline get_symbol(RangeCoder *c, uint8_t *state, int is_signed){ | ||||
| static av_noinline int get_symbol(RangeCoder *c, uint8_t *state, int is_signed){ | ||||
|     return get_symbol_inline(c, state, is_signed); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -87,7 +87,7 @@ typedef struct FmtConvertContext { | ||||
| void ff_float_interleave_c(float *dst, const float **src, unsigned int len, | ||||
|                            int channels); | ||||
|  | ||||
| void ff_fmt_convert_init(FmtConvertContext *c, AVCodecContext *avctx); | ||||
| av_cold void ff_fmt_convert_init(FmtConvertContext *c, AVCodecContext *avctx); | ||||
|  | ||||
| void ff_fmt_convert_init_arm(FmtConvertContext *c, AVCodecContext *avctx); | ||||
| void ff_fmt_convert_init_altivec(FmtConvertContext *c, AVCodecContext *avctx); | ||||
|   | ||||
| @@ -2408,17 +2408,17 @@ hl_decode_mb_simple(1, 16) | ||||
| /** | ||||
|  * Process a macroblock; this handles edge cases, such as interlacing. | ||||
|  */ | ||||
| static void av_noinline hl_decode_mb_complex(H264Context *h) | ||||
| static av_noinline void hl_decode_mb_complex(H264Context *h) | ||||
| { | ||||
|     hl_decode_mb_internal(h, 0, h->pixel_shift); | ||||
| } | ||||
|  | ||||
| static void av_noinline hl_decode_mb_444_complex(H264Context *h) | ||||
| static av_noinline void hl_decode_mb_444_complex(H264Context *h) | ||||
| { | ||||
|     hl_decode_mb_444_internal(h, 0, h->pixel_shift); | ||||
| } | ||||
|  | ||||
| static void av_noinline hl_decode_mb_444_simple(H264Context *h) | ||||
| static av_noinline void hl_decode_mb_444_simple(H264Context *h) | ||||
| { | ||||
|     hl_decode_mb_444_internal(h, 1, 0); | ||||
| } | ||||
|   | ||||
| @@ -164,7 +164,7 @@ void ff_ivi_huff_desc_copy(IVIHuffDesc *dst, const IVIHuffDesc *src) | ||||
|     memcpy(dst->xbits, src->xbits, src->num_rows); | ||||
| } | ||||
|  | ||||
| int av_cold ff_ivi_init_planes(IVIPlaneDesc *planes, const IVIPicConfig *cfg) | ||||
| av_cold int ff_ivi_init_planes(IVIPlaneDesc *planes, const IVIPicConfig *cfg) | ||||
| { | ||||
|     int         p, b; | ||||
|     uint32_t    b_width, b_height, align_fac, width_aligned, height_aligned, buf_size; | ||||
| @@ -227,7 +227,7 @@ int av_cold ff_ivi_init_planes(IVIPlaneDesc *planes, const IVIPicConfig *cfg) | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| void av_cold ff_ivi_free_buffers(IVIPlaneDesc *planes) | ||||
| av_cold void ff_ivi_free_buffers(IVIPlaneDesc *planes) | ||||
| { | ||||
|     int p, b, t; | ||||
|  | ||||
| @@ -247,7 +247,7 @@ void av_cold ff_ivi_free_buffers(IVIPlaneDesc *planes) | ||||
|     } | ||||
| } | ||||
|  | ||||
| int av_cold ff_ivi_init_tiles(IVIPlaneDesc *planes, int tile_width, int tile_height) | ||||
| av_cold int ff_ivi_init_tiles(IVIPlaneDesc *planes, int tile_width, int tile_height) | ||||
| { | ||||
|     int         p, b, x, y, x_tiles, y_tiles, t_width, t_height; | ||||
|     IVIBandDesc *band; | ||||
|   | ||||
| @@ -192,7 +192,7 @@ void RENAME(ff_mpa_synth_filter)(MPADSPContext *s, MPA_INT *synth_buf_ptr, | ||||
|     *synth_buf_offset = offset; | ||||
| } | ||||
|  | ||||
| void av_cold RENAME(ff_mpa_synth_init)(MPA_INT *window) | ||||
| av_cold void RENAME(ff_mpa_synth_init)(MPA_INT *window) | ||||
| { | ||||
|     int i, j; | ||||
|  | ||||
|   | ||||
							
								
								
									
										253
									
								
								libavcodec/pcm.c
									
									
									
									
									
								
							
							
						
						
									
										253
									
								
								libavcodec/pcm.c
									
									
									
									
									
								
							| @@ -24,8 +24,8 @@ | ||||
|  * PCM codecs | ||||
|  */ | ||||
|  | ||||
| #include "avcodec.h" | ||||
| #include "libavutil/common.h" /* for av_reverse */ | ||||
| #include "avcodec.h" | ||||
| #include "bytestream.h" | ||||
| #include "internal.h" | ||||
| #include "pcm_tablegen.h" | ||||
| @@ -35,7 +35,7 @@ | ||||
| static av_cold int pcm_encode_init(AVCodecContext *avctx) | ||||
| { | ||||
|     avctx->frame_size = 0; | ||||
|     switch(avctx->codec->id) { | ||||
|     switch (avctx->codec->id) { | ||||
|     case CODEC_ID_PCM_ALAW: | ||||
|         pcm_alaw_tableinit(); | ||||
|         break; | ||||
| @@ -47,8 +47,8 @@ static av_cold int pcm_encode_init(AVCodecContext *avctx) | ||||
|     } | ||||
|  | ||||
|     avctx->bits_per_coded_sample = av_get_bits_per_sample(avctx->codec->id); | ||||
|     avctx->block_align = avctx->channels * avctx->bits_per_coded_sample/8; | ||||
|     avctx->coded_frame= avcodec_alloc_frame(); | ||||
|     avctx->block_align           = avctx->channels * avctx->bits_per_coded_sample / 8; | ||||
|     avctx->coded_frame           = avcodec_alloc_frame(); | ||||
|     if (!avctx->coded_frame) | ||||
|         return AVERROR(ENOMEM); | ||||
|  | ||||
| @@ -64,19 +64,19 @@ static av_cold int pcm_encode_close(AVCodecContext *avctx) | ||||
|  | ||||
| /** | ||||
|  * Write PCM samples macro | ||||
|  * @param type Datatype of native machine format | ||||
|  * @param type   Datatype of native machine format | ||||
|  * @param endian bytestream_put_xxx() suffix | ||||
|  * @param src Source pointer (variable name) | ||||
|  * @param dst Destination pointer (variable name) | ||||
|  * @param n Total number of samples (variable name) | ||||
|  * @param shift Bitshift (bits) | ||||
|  * @param src    Source pointer (variable name) | ||||
|  * @param dst    Destination pointer (variable name) | ||||
|  * @param n      Total number of samples (variable name) | ||||
|  * @param shift  Bitshift (bits) | ||||
|  * @param offset Sample value offset | ||||
|  */ | ||||
| #define ENCODE(type, endian, src, dst, n, shift, offset) \ | ||||
|     samples_##type = (const type*) src; \ | ||||
|     for(;n>0;n--) { \ | ||||
|         register type v = (*samples_##type++ >> shift) + offset; \ | ||||
|         bytestream_put_##endian(&dst, v); \ | ||||
| #define ENCODE(type, endian, src, dst, n, shift, offset)                \ | ||||
|     samples_ ## type = (const type *) src;                              \ | ||||
|     for (; n > 0; n--) {                                                \ | ||||
|         register type v = (*samples_ ## type++ >> shift) + offset;      \ | ||||
|         bytestream_put_ ## endian(&dst, v);                             \ | ||||
|     } | ||||
|  | ||||
| static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, | ||||
| @@ -92,7 +92,7 @@ static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, | ||||
|     const uint16_t *samples_uint16_t; | ||||
|     const uint32_t *samples_uint32_t; | ||||
|  | ||||
|     sample_size = av_get_bits_per_sample(avctx->codec->id)/8; | ||||
|     sample_size = av_get_bits_per_sample(avctx->codec->id) / 8; | ||||
|     n           = frame->nb_samples * avctx->channels; | ||||
|     samples     = (const short *)frame->data[0]; | ||||
|  | ||||
| @@ -100,7 +100,7 @@ static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, | ||||
|         return ret; | ||||
|     dst = avpkt->data; | ||||
|  | ||||
|     switch(avctx->codec->id) { | ||||
|     switch (avctx->codec->id) { | ||||
|     case CODEC_ID_PCM_U32LE: | ||||
|         ENCODE(uint32_t, le32, samples, dst, n, 0, 0x80000000) | ||||
|         break; | ||||
| @@ -120,7 +120,7 @@ static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, | ||||
|         ENCODE(uint32_t, be24, samples, dst, n, 8, 0x800000) | ||||
|         break; | ||||
|     case CODEC_ID_PCM_S24DAUD: | ||||
|         for(;n>0;n--) { | ||||
|         for (; n > 0; n--) { | ||||
|             uint32_t tmp = av_reverse[(*samples >> 8) & 0xff] + | ||||
|                            (av_reverse[*samples & 0xff] << 8); | ||||
|             tmp <<= 4; // sync flags would go here | ||||
| @@ -136,8 +136,8 @@ static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, | ||||
|         break; | ||||
|     case CODEC_ID_PCM_S8: | ||||
|         srcu8 = frame->data[0]; | ||||
|         for(;n>0;n--) { | ||||
|             v = *srcu8++; | ||||
|         for (; n > 0; n--) { | ||||
|             v      = *srcu8++; | ||||
|             *dst++ = v - 128; | ||||
|         } | ||||
|         break; | ||||
| @@ -173,18 +173,18 @@ static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, | ||||
|     case CODEC_ID_PCM_S16LE: | ||||
| #endif /* HAVE_BIGENDIAN */ | ||||
|     case CODEC_ID_PCM_U8: | ||||
|         memcpy(dst, samples, n*sample_size); | ||||
|         dst += n*sample_size; | ||||
|         memcpy(dst, samples, n * sample_size); | ||||
|         dst += n * sample_size; | ||||
|         break; | ||||
|     case CODEC_ID_PCM_ALAW: | ||||
|         for(;n>0;n--) { | ||||
|             v = *samples++; | ||||
|         for (; n > 0; n--) { | ||||
|             v      = *samples++; | ||||
|             *dst++ = linear_to_alaw[(v + 32768) >> 2]; | ||||
|         } | ||||
|         break; | ||||
|     case CODEC_ID_PCM_MULAW: | ||||
|         for(;n>0;n--) { | ||||
|             v = *samples++; | ||||
|         for (; n > 0; n--) { | ||||
|             v      = *samples++; | ||||
|             *dst++ = linear_to_ulaw[(v + 32768) >> 2]; | ||||
|         } | ||||
|         break; | ||||
| @@ -198,10 +198,10 @@ static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, | ||||
|  | ||||
| typedef struct PCMDecode { | ||||
|     AVFrame frame; | ||||
|     short table[256]; | ||||
|     short   table[256]; | ||||
| } PCMDecode; | ||||
|  | ||||
| static av_cold int pcm_decode_init(AVCodecContext * avctx) | ||||
| static av_cold int pcm_decode_init(AVCodecContext *avctx) | ||||
| { | ||||
|     PCMDecode *s = avctx->priv_data; | ||||
|     int i; | ||||
| @@ -211,13 +211,13 @@ static av_cold int pcm_decode_init(AVCodecContext * avctx) | ||||
|         return AVERROR(EINVAL); | ||||
|     } | ||||
|  | ||||
|     switch(avctx->codec->id) { | ||||
|     switch (avctx->codec->id) { | ||||
|     case CODEC_ID_PCM_ALAW: | ||||
|         for(i=0;i<256;i++) | ||||
|         for (i = 0; i < 256; i++) | ||||
|             s->table[i] = alaw2linear(i); | ||||
|         break; | ||||
|     case CODEC_ID_PCM_MULAW: | ||||
|         for(i=0;i<256;i++) | ||||
|         for (i = 0; i < 256; i++) | ||||
|             s->table[i] = ulaw2linear(i); | ||||
|         break; | ||||
|     default: | ||||
| @@ -237,32 +237,32 @@ static av_cold int pcm_decode_init(AVCodecContext * avctx) | ||||
|  | ||||
| /** | ||||
|  * Read PCM samples macro | ||||
|  * @param size Data size of native machine format | ||||
|  * @param size   Data size of native machine format | ||||
|  * @param endian bytestream_get_xxx() endian suffix | ||||
|  * @param src Source pointer (variable name) | ||||
|  * @param dst Destination pointer (variable name) | ||||
|  * @param n Total number of samples (variable name) | ||||
|  * @param shift Bitshift (bits) | ||||
|  * @param src    Source pointer (variable name) | ||||
|  * @param dst    Destination pointer (variable name) | ||||
|  * @param n      Total number of samples (variable name) | ||||
|  * @param shift  Bitshift (bits) | ||||
|  * @param offset Sample value offset | ||||
|  */ | ||||
| #define DECODE(size, endian, src, dst, n, shift, offset) \ | ||||
|     for(;n>0;n--) { \ | ||||
|         uint##size##_t v = bytestream_get_##endian(&src); \ | ||||
|         AV_WN##size##A(dst, (v - offset) << shift); \ | ||||
|         dst += size / 8; \ | ||||
| #define DECODE(size, endian, src, dst, n, shift, offset)                \ | ||||
|     for (; n > 0; n--) {                                                \ | ||||
|         uint ## size ## _t v = bytestream_get_ ## endian(&src);         \ | ||||
|         AV_WN ## size ## A(dst, (v - offset) << shift);                 \ | ||||
|         dst += size / 8;                                                \ | ||||
|     } | ||||
|  | ||||
| static int pcm_decode_frame(AVCodecContext *avctx, void *data, | ||||
|                             int *got_frame_ptr, AVPacket *avpkt) | ||||
| { | ||||
|     const uint8_t *src = avpkt->data; | ||||
|     int buf_size = avpkt->size; | ||||
|     PCMDecode *s = avctx->priv_data; | ||||
|     int buf_size       = avpkt->size; | ||||
|     PCMDecode *s       = avctx->priv_data; | ||||
|     int sample_size, c, n, ret, samples_per_block; | ||||
|     uint8_t *samples; | ||||
|     int32_t *dst_int32_t; | ||||
|  | ||||
|     sample_size = av_get_bits_per_sample(avctx->codec_id)/8; | ||||
|     sample_size = av_get_bits_per_sample(avctx->codec_id) / 8; | ||||
|  | ||||
|     /* av_get_bits_per_sample returns 0 for CODEC_ID_PCM_DVD */ | ||||
|     samples_per_block = 1; | ||||
| @@ -276,11 +276,11 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, | ||||
|         } | ||||
|         /* 2 samples are interleaved per block in PCM_DVD */ | ||||
|         samples_per_block = 2; | ||||
|         sample_size = avctx->bits_per_coded_sample * 2 / 8; | ||||
|         sample_size       = avctx->bits_per_coded_sample * 2 / 8; | ||||
|     } else if (avctx->codec_id == CODEC_ID_PCM_LXF) { | ||||
|         /* we process 40-bit blocks per channel for LXF */ | ||||
|         samples_per_block = 2; | ||||
|         sample_size = 5; | ||||
|         sample_size       = 5; | ||||
|     } | ||||
|  | ||||
|     if (sample_size == 0) { | ||||
| @@ -290,15 +290,15 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, | ||||
|  | ||||
|     n = avctx->channels * sample_size; | ||||
|  | ||||
|     if(n && buf_size % n){ | ||||
|     if (n && buf_size % n) { | ||||
|         if (buf_size < n) { | ||||
|             av_log(avctx, AV_LOG_ERROR, "invalid PCM packet\n"); | ||||
|             return -1; | ||||
|         }else | ||||
|         } else | ||||
|             buf_size -= buf_size % n; | ||||
|     } | ||||
|  | ||||
|     n = buf_size/sample_size; | ||||
|     n = buf_size / sample_size; | ||||
|  | ||||
|     /* get output buffer */ | ||||
|     s->frame.nb_samples = n * samples_per_block / avctx->channels; | ||||
| @@ -308,7 +308,7 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, | ||||
|     } | ||||
|     samples = s->frame.data[0]; | ||||
|  | ||||
|     switch(avctx->codec->id) { | ||||
|     switch (avctx->codec->id) { | ||||
|     case CODEC_ID_PCM_U32LE: | ||||
|         DECODE(32, le32, src, samples, n, 0, 0x80000000) | ||||
|         break; | ||||
| @@ -328,21 +328,21 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, | ||||
|         DECODE(32, be24, src, samples, n, 8, 0x800000) | ||||
|         break; | ||||
|     case CODEC_ID_PCM_S24DAUD: | ||||
|         for(;n>0;n--) { | ||||
|           uint32_t v = bytestream_get_be24(&src); | ||||
|           v >>= 4; // sync flags are here | ||||
|           AV_WN16A(samples, av_reverse[(v >> 8) & 0xff] + | ||||
|                            (av_reverse[v & 0xff] << 8)); | ||||
|           samples += 2; | ||||
|         for (; n > 0; n--) { | ||||
|             uint32_t v = bytestream_get_be24(&src); | ||||
|             v >>= 4; // sync flags are here | ||||
|             AV_WN16A(samples, av_reverse[(v >> 8) & 0xff] + | ||||
|                              (av_reverse[v        & 0xff] << 8)); | ||||
|             samples += 2; | ||||
|         } | ||||
|         break; | ||||
|     case CODEC_ID_PCM_S16LE_PLANAR: | ||||
|     { | ||||
|         int i; | ||||
|         n /= avctx->channels; | ||||
|         for(c=0;c<avctx->channels;c++) { | ||||
|         for (c = 0; c < avctx->channels; c++) { | ||||
|             samples = s->frame.data[c]; | ||||
|             for(i=n;i>0;i--) { | ||||
|             for (i = n; i > 0; i--) { | ||||
|                 AV_WN16A(samples, bytestream_get_le16(&src)); | ||||
|                 samples += 2; | ||||
|             } | ||||
| @@ -356,9 +356,8 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, | ||||
|         DECODE(16, be16, src, samples, n, 0, 0x8000) | ||||
|         break; | ||||
|     case CODEC_ID_PCM_S8: | ||||
|         for(;n>0;n--) { | ||||
|         for (; n > 0; n--) | ||||
|             *samples++ = *src++ + 128; | ||||
|         } | ||||
|         break; | ||||
| #if HAVE_BIGENDIAN | ||||
|     case CODEC_ID_PCM_F64LE: | ||||
| @@ -392,7 +391,7 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, | ||||
|     case CODEC_ID_PCM_S16LE: | ||||
| #endif /* HAVE_BIGENDIAN */ | ||||
|     case CODEC_ID_PCM_U8: | ||||
|         memcpy(samples, src, n*sample_size); | ||||
|         memcpy(samples, src, n * sample_size); | ||||
|         break; | ||||
|     case CODEC_ID_PCM_ZORK: | ||||
|         for (; n > 0; n--) { | ||||
| @@ -404,7 +403,7 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, | ||||
|         break; | ||||
|     case CODEC_ID_PCM_ALAW: | ||||
|     case CODEC_ID_PCM_MULAW: | ||||
|         for(;n>0;n--) { | ||||
|         for (; n > 0; n--) { | ||||
|             AV_WN16A(samples, s->table[*src++]); | ||||
|             samples += 2; | ||||
|         } | ||||
| @@ -417,19 +416,19 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, | ||||
|         switch (avctx->bits_per_coded_sample) { | ||||
|         case 20: | ||||
|             while (n--) { | ||||
|                 c = avctx->channels; | ||||
|                 src8 = src + 4*c; | ||||
|                 c    = avctx->channels; | ||||
|                 src8 = src + 4 * c; | ||||
|                 while (c--) { | ||||
|                     *dst_int32_t++ = (bytestream_get_be16(&src) << 16) + ((*src8   &0xf0) << 8); | ||||
|                     *dst_int32_t++ = (bytestream_get_be16(&src) << 16) + ((*src8++ &0x0f) << 12); | ||||
|                     *dst_int32_t++ = (bytestream_get_be16(&src) << 16) + ((*src8   & 0xf0) <<  8); | ||||
|                     *dst_int32_t++ = (bytestream_get_be16(&src) << 16) + ((*src8++ & 0x0f) << 12); | ||||
|                 } | ||||
|                 src = src8; | ||||
|             } | ||||
|             break; | ||||
|         case 24: | ||||
|             while (n--) { | ||||
|                 c = avctx->channels; | ||||
|                 src8 = src + 4*c; | ||||
|                 c    = avctx->channels; | ||||
|                 src8 = src + 4 * c; | ||||
|                 while (c--) { | ||||
|                     *dst_int32_t++ = (bytestream_get_be16(&src) << 16) + ((*src8++) << 8); | ||||
|                     *dst_int32_t++ = (bytestream_get_be16(&src) << 16) + ((*src8++) << 8); | ||||
| @@ -449,11 +448,17 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, | ||||
|             dst_int32_t = (int32_t *)s->frame.data[c]; | ||||
|             for (i = 0; i < n; i++) { | ||||
|                 //extract low 20 bits and expand to 32 bits | ||||
|                 *dst_int32_t++ = (src[2] << 28) | (src[1] << 20) | (src[0] << 12) | | ||||
|                                  ((src[2] & 0xF) << 8) | src[1]; | ||||
|                 *dst_int32_t++ = (src[2] << 28) | | ||||
|                                  (src[1] << 20) | | ||||
|                                  (src[0] << 12) | | ||||
|                                  ((src[2] & 0xF) << 8) | | ||||
|                                  src[1]; | ||||
|                 //extract high 20 bits and expand to 32 bits | ||||
|                 *dst_int32_t++ = (src[4] << 24) | (src[3] << 16) | | ||||
|                                  ((src[2] & 0xF0) << 8) | (src[4] << 4) | (src[3] >> 4); | ||||
|                 *dst_int32_t++ = (src[4] << 24) | | ||||
|                                  (src[3] << 16) | | ||||
|                                  ((src[2] & 0xF0) << 8) | | ||||
|                                  (src[4] << 4) | | ||||
|                                  (src[3] >> 4); | ||||
|                 src += 5; | ||||
|             } | ||||
|         } | ||||
| @@ -470,65 +475,69 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, | ||||
| } | ||||
|  | ||||
| #if CONFIG_ENCODERS | ||||
| #define PCM_ENCODER(id_,sample_fmt_,name_,long_name_) \ | ||||
| AVCodec ff_ ## name_ ## _encoder = {            \ | ||||
|     .name        = #name_,                      \ | ||||
|     .type        = AVMEDIA_TYPE_AUDIO,          \ | ||||
|     .id          = id_,                         \ | ||||
|     .init        = pcm_encode_init,             \ | ||||
|     .encode2     = pcm_encode_frame,            \ | ||||
|     .close       = pcm_encode_close,            \ | ||||
|     .capabilities = CODEC_CAP_VARIABLE_FRAME_SIZE, \ | ||||
|     .sample_fmts = (const enum AVSampleFormat[]){sample_fmt_,AV_SAMPLE_FMT_NONE}, \ | ||||
|     .long_name = NULL_IF_CONFIG_SMALL(long_name_), \ | ||||
| #define PCM_ENCODER(id_, sample_fmt_, name_, long_name_)                    \ | ||||
| AVCodec ff_ ## name_ ## _encoder = {                                        \ | ||||
|     .name         = #name_,                                                 \ | ||||
|     .type         = AVMEDIA_TYPE_AUDIO,                                     \ | ||||
|     .id           = id_,                                                    \ | ||||
|     .init         = pcm_encode_init,                                        \ | ||||
|     .encode2      = pcm_encode_frame,                                       \ | ||||
|     .close        = pcm_encode_close,                                       \ | ||||
|     .capabilities = CODEC_CAP_VARIABLE_FRAME_SIZE,                          \ | ||||
|     .sample_fmts  = (const enum AVSampleFormat[]){ sample_fmt_,             \ | ||||
|                                                    AV_SAMPLE_FMT_NONE },    \ | ||||
|     .long_name    = NULL_IF_CONFIG_SMALL(long_name_),                       \ | ||||
| } | ||||
| #else | ||||
| #define PCM_ENCODER(id,sample_fmt_,name,long_name_) | ||||
| #define PCM_ENCODER(id, sample_fmt_, name, long_name_) | ||||
| #endif | ||||
|  | ||||
| #if CONFIG_DECODERS | ||||
| #define PCM_DECODER(id_,sample_fmt_,name_,long_name_)         \ | ||||
| AVCodec ff_ ## name_ ## _decoder = {            \ | ||||
|     .name           = #name_,                   \ | ||||
|     .type           = AVMEDIA_TYPE_AUDIO,       \ | ||||
|     .id             = id_,                      \ | ||||
|     .priv_data_size = sizeof(PCMDecode),        \ | ||||
|     .init           = pcm_decode_init,          \ | ||||
|     .decode         = pcm_decode_frame,         \ | ||||
|     .capabilities   = CODEC_CAP_DR1,            \ | ||||
|     .sample_fmts = (const enum AVSampleFormat[]){sample_fmt_,AV_SAMPLE_FMT_NONE}, \ | ||||
|     .long_name = NULL_IF_CONFIG_SMALL(long_name_), \ | ||||
| #define PCM_DECODER(id_, sample_fmt_, name_, long_name_)                    \ | ||||
| AVCodec ff_ ## name_ ## _decoder = {                                        \ | ||||
|     .name           = #name_,                                               \ | ||||
|     .type           = AVMEDIA_TYPE_AUDIO,                                   \ | ||||
|     .id             = id_,                                                  \ | ||||
|     .priv_data_size = sizeof(PCMDecode),                                    \ | ||||
|     .init           = pcm_decode_init,                                      \ | ||||
|     .decode         = pcm_decode_frame,                                     \ | ||||
|     .capabilities   = CODEC_CAP_DR1,                                        \ | ||||
|     .sample_fmts    = (const enum AVSampleFormat[]){ sample_fmt_,           \ | ||||
|                                                      AV_SAMPLE_FMT_NONE },  \ | ||||
|     .long_name      = NULL_IF_CONFIG_SMALL(long_name_),                     \ | ||||
| } | ||||
| #else | ||||
| #define PCM_DECODER(id,sample_fmt_,name,long_name_) | ||||
| #define PCM_DECODER(id, sample_fmt_, name, long_name_) | ||||
| #endif | ||||
|  | ||||
| #define PCM_CODEC(id, sample_fmt_, name, long_name_)         \ | ||||
|     PCM_ENCODER(id,sample_fmt_,name,long_name_); PCM_DECODER(id,sample_fmt_,name,long_name_) | ||||
| #define PCM_CODEC(id, sample_fmt_, name, long_name_)                    \ | ||||
|     PCM_ENCODER(id, sample_fmt_, name, long_name_);                     \ | ||||
|     PCM_DECODER(id, sample_fmt_, name, long_name_) | ||||
|  | ||||
| /* Note: Do not forget to add new entries to the Makefile as well. */ | ||||
| PCM_CODEC  (CODEC_ID_PCM_ALAW,  AV_SAMPLE_FMT_S16, pcm_alaw, "PCM A-law / G.711 A-law"); | ||||
| PCM_DECODER(CODEC_ID_PCM_DVD,   AV_SAMPLE_FMT_S32, pcm_dvd, "PCM signed 20|24-bit big-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_F32BE, AV_SAMPLE_FMT_FLT, pcm_f32be, "PCM 32-bit floating point big-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_F32LE, AV_SAMPLE_FMT_FLT, pcm_f32le, "PCM 32-bit floating point little-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_F64BE, AV_SAMPLE_FMT_DBL, pcm_f64be, "PCM 64-bit floating point big-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_F64LE, AV_SAMPLE_FMT_DBL, pcm_f64le, "PCM 64-bit floating point little-endian"); | ||||
| PCM_DECODER(CODEC_ID_PCM_LXF,   AV_SAMPLE_FMT_S32P, pcm_lxf, "PCM signed 20-bit little-endian planar"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_MULAW, AV_SAMPLE_FMT_S16, pcm_mulaw, "PCM mu-law / G.711 mu-law"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_S8,    AV_SAMPLE_FMT_U8,  pcm_s8, "PCM signed 8-bit"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_S16BE, AV_SAMPLE_FMT_S16, pcm_s16be, "PCM signed 16-bit big-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_S16LE, AV_SAMPLE_FMT_S16, pcm_s16le, "PCM signed 16-bit little-endian"); | ||||
| PCM_DECODER(CODEC_ID_PCM_S16LE_PLANAR, AV_SAMPLE_FMT_S16P, pcm_s16le_planar, "PCM 16-bit little-endian planar"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_S24BE, AV_SAMPLE_FMT_S32, pcm_s24be, "PCM signed 24-bit big-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_S24DAUD, AV_SAMPLE_FMT_S16,  pcm_s24daud, "PCM D-Cinema audio signed 24-bit"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_S24LE, AV_SAMPLE_FMT_S32, pcm_s24le, "PCM signed 24-bit little-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_S32BE, AV_SAMPLE_FMT_S32, pcm_s32be, "PCM signed 32-bit big-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_S32LE, AV_SAMPLE_FMT_S32, pcm_s32le, "PCM signed 32-bit little-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_U8,    AV_SAMPLE_FMT_U8,  pcm_u8, "PCM unsigned 8-bit"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_U16BE, AV_SAMPLE_FMT_S16, pcm_u16be, "PCM unsigned 16-bit big-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_U16LE, AV_SAMPLE_FMT_S16, pcm_u16le, "PCM unsigned 16-bit little-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_U24BE, AV_SAMPLE_FMT_S32, pcm_u24be, "PCM unsigned 24-bit big-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_U24LE, AV_SAMPLE_FMT_S32, pcm_u24le, "PCM unsigned 24-bit little-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_U32BE, AV_SAMPLE_FMT_S32, pcm_u32be, "PCM unsigned 32-bit big-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_U32LE, AV_SAMPLE_FMT_S32, pcm_u32le, "PCM unsigned 32-bit little-endian"); | ||||
| PCM_DECODER(CODEC_ID_PCM_ZORK,  AV_SAMPLE_FMT_U8,  pcm_zork,  "PCM Zork"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_ALAW,         AV_SAMPLE_FMT_S16, pcm_alaw,         "PCM A-law / G.711 A-law"); | ||||
| PCM_DECODER(CODEC_ID_PCM_DVD,          AV_SAMPLE_FMT_S32, pcm_dvd,          "PCM signed 20|24-bit big-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_F32BE,        AV_SAMPLE_FMT_FLT, pcm_f32be,        "PCM 32-bit floating point big-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_F32LE,        AV_SAMPLE_FMT_FLT, pcm_f32le,        "PCM 32-bit floating point little-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_F64BE,        AV_SAMPLE_FMT_DBL, pcm_f64be,        "PCM 64-bit floating point big-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_F64LE,        AV_SAMPLE_FMT_DBL, pcm_f64le,        "PCM 64-bit floating point little-endian"); | ||||
| PCM_DECODER(CODEC_ID_PCM_LXF,          AV_SAMPLE_FMT_S32P,pcm_lxf,          "PCM signed 20-bit little-endian planar"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_MULAW,        AV_SAMPLE_FMT_S16, pcm_mulaw,        "PCM mu-law / G.711 mu-law"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_S8,           AV_SAMPLE_FMT_U8,  pcm_s8,           "PCM signed 8-bit"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_S16BE,        AV_SAMPLE_FMT_S16, pcm_s16be,        "PCM signed 16-bit big-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_S16LE,        AV_SAMPLE_FMT_S16, pcm_s16le,        "PCM signed 16-bit little-endian"); | ||||
| PCM_DECODER(CODEC_ID_PCM_S16LE_PLANAR, AV_SAMPLE_FMT_S16P,pcm_s16le_planar, "PCM 16-bit little-endian planar"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_S24BE,        AV_SAMPLE_FMT_S32, pcm_s24be,        "PCM signed 24-bit big-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_S24DAUD,      AV_SAMPLE_FMT_S16, pcm_s24daud,      "PCM D-Cinema audio signed 24-bit"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_S24LE,        AV_SAMPLE_FMT_S32, pcm_s24le,        "PCM signed 24-bit little-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_S32BE,        AV_SAMPLE_FMT_S32, pcm_s32be,        "PCM signed 32-bit big-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_S32LE,        AV_SAMPLE_FMT_S32, pcm_s32le,        "PCM signed 32-bit little-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_U8,           AV_SAMPLE_FMT_U8,  pcm_u8,           "PCM unsigned 8-bit"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_U16BE,        AV_SAMPLE_FMT_S16, pcm_u16be,        "PCM unsigned 16-bit big-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_U16LE,        AV_SAMPLE_FMT_S16, pcm_u16le,        "PCM unsigned 16-bit little-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_U24BE,        AV_SAMPLE_FMT_S32, pcm_u24be,        "PCM unsigned 24-bit big-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_U24LE,        AV_SAMPLE_FMT_S32, pcm_u24le,        "PCM unsigned 24-bit little-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_U32BE,        AV_SAMPLE_FMT_S32, pcm_u32be,        "PCM unsigned 32-bit big-endian"); | ||||
| PCM_CODEC  (CODEC_ID_PCM_U32LE,        AV_SAMPLE_FMT_S32, pcm_u32le,        "PCM unsigned 32-bit little-endian"); | ||||
| PCM_DECODER(CODEC_ID_PCM_ZORK,         AV_SAMPLE_FMT_U8,  pcm_zork,         "PCM Zork"); | ||||
|  | ||||
|   | ||||
| @@ -18,8 +18,8 @@ | ||||
|  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||||
|  */ | ||||
|  | ||||
| #ifndef LIBAVCODEC_SBRDSP_H | ||||
| #define LIBAVCODEC_SBRDSP_H | ||||
| #ifndef AVCODEC_SBRDSP_H | ||||
| #define AVCODEC_SBRDSP_H | ||||
|  | ||||
| #include <stdint.h> | ||||
|  | ||||
| @@ -48,4 +48,4 @@ void ff_sbrdsp_init(SBRDSPContext *s); | ||||
| void ff_sbrdsp_init_arm(SBRDSPContext *s); | ||||
| void ff_sbrdsp_init_x86(SBRDSPContext *s); | ||||
|  | ||||
| #endif | ||||
| #endif /* AVCODEC_SBRDSP_H */ | ||||
|   | ||||
| @@ -77,7 +77,7 @@ typedef struct TiffEncoderContext { | ||||
|  * @param need Needed bytes | ||||
|  * @return 0 - ok, 1 - no free space | ||||
|  */ | ||||
| inline static int check_size(TiffEncoderContext * s, uint64_t need) | ||||
| static inline int check_size(TiffEncoderContext * s, uint64_t need) | ||||
| { | ||||
|     if (s->buf_size < *s->buf - s->buf_start + need) { | ||||
|         *s->buf = s->buf_start + s->buf_size + 1; | ||||
|   | ||||
| @@ -28,7 +28,7 @@ | ||||
|  *@param decode_flags codec compression features | ||||
|  *@return log2 of the number of output samples per frame | ||||
|  */ | ||||
| int av_cold ff_wma_get_frame_len_bits(int sample_rate, int version, | ||||
| av_cold int ff_wma_get_frame_len_bits(int sample_rate, int version, | ||||
|                                       unsigned int decode_flags) | ||||
| { | ||||
|  | ||||
|   | ||||
| @@ -23,7 +23,7 @@ | ||||
|  | ||||
| #include "libavutil/attributes.h" | ||||
|  | ||||
| int av_cold ff_wma_get_frame_len_bits(int sample_rate, int version, | ||||
| av_cold int ff_wma_get_frame_len_bits(int sample_rate, int version, | ||||
|                                       unsigned int decode_flags); | ||||
|  | ||||
| #endif /* AVCODEC_WMA_COMMON_H */ | ||||
|   | ||||
| @@ -237,7 +237,7 @@ typedef struct WMAProDecodeCtx { | ||||
|  *@brief helper function to print the most important members of the context | ||||
|  *@param s context | ||||
|  */ | ||||
| static void av_cold dump_context(WMAProDecodeCtx *s) | ||||
| static av_cold void dump_context(WMAProDecodeCtx *s) | ||||
| { | ||||
| #define PRINT(a, b)     av_log(s->avctx, AV_LOG_DEBUG, " %s = %d\n", a, b); | ||||
| #define PRINT_HEX(a, b) av_log(s->avctx, AV_LOG_DEBUG, " %s = %x\n", a, b); | ||||
|   | ||||
| @@ -95,7 +95,7 @@ typedef struct { | ||||
|     uint8_t *data;           ///< framebuffer data | ||||
| } FBDevContext; | ||||
|  | ||||
| av_cold static int fbdev_read_header(AVFormatContext *avctx) | ||||
| static av_cold int fbdev_read_header(AVFormatContext *avctx) | ||||
| { | ||||
|     FBDevContext *fbdev = avctx->priv_data; | ||||
|     AVStream *st = NULL; | ||||
| @@ -234,7 +234,7 @@ static int fbdev_read_packet(AVFormatContext *avctx, AVPacket *pkt) | ||||
|     return fbdev->frame_size; | ||||
| } | ||||
|  | ||||
| av_cold static int fbdev_read_close(AVFormatContext *avctx) | ||||
| static av_cold int fbdev_read_close(AVFormatContext *avctx) | ||||
| { | ||||
|     FBDevContext *fbdev = avctx->priv_data; | ||||
|  | ||||
|   | ||||
| @@ -138,8 +138,12 @@ static void gen_connect(URLContext *s, RTMPContext *rt, const char *proto, | ||||
|         ff_amf_write_bool(&p, 0); | ||||
|         ff_amf_write_field_name(&p, "capabilities"); | ||||
|         ff_amf_write_number(&p, 15.0); | ||||
|  | ||||
|         /* Tell the server we support all the audio codecs except | ||||
|          * SUPPORT_SND_INTEL (0x0008) and SUPPORT_SND_UNUSED (0x0010) | ||||
|          * which are unused in the RTMP protocol implementation. */ | ||||
|         ff_amf_write_field_name(&p, "audioCodecs"); | ||||
|         ff_amf_write_number(&p, 1639.0); | ||||
|         ff_amf_write_number(&p, 4071.0); | ||||
|         ff_amf_write_field_name(&p, "videoCodecs"); | ||||
|         ff_amf_write_number(&p, 252.0); | ||||
|         ff_amf_write_field_name(&p, "videoFunction"); | ||||
| @@ -342,6 +346,21 @@ static void gen_pong(URLContext *s, RTMPContext *rt, RTMPPacket *ppkt) | ||||
|     ff_rtmp_packet_destroy(&pkt); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Generate server bandwidth message and send it to the server. | ||||
|  */ | ||||
| static void gen_server_bw(URLContext *s, RTMPContext *rt) | ||||
| { | ||||
|     RTMPPacket pkt; | ||||
|     uint8_t *p; | ||||
|  | ||||
|     ff_rtmp_packet_create(&pkt, RTMP_NETWORK_CHANNEL, RTMP_PT_SERVER_BW, 0, 4); | ||||
|     p = pkt.data; | ||||
|     bytestream_put_be32(&p, 2500000); | ||||
|     ff_rtmp_packet_write(rt->stream, &pkt, rt->chunk_size, rt->prev_pkt[1]); | ||||
|     ff_rtmp_packet_destroy(&pkt); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Generate report on bytes read so far and send it to the server. | ||||
|  */ | ||||
| @@ -603,6 +622,7 @@ static int rtmp_parse_result(URLContext *s, RTMPContext *rt, RTMPPacket *pkt) | ||||
|                     gen_fcpublish_stream(s, rt); | ||||
|                     rt->state = STATE_RELEASING; | ||||
|                 } else { | ||||
|                     gen_server_bw(s, rt); | ||||
|                     rt->state = STATE_CONNECTING; | ||||
|                 } | ||||
|                 gen_create_stream(s, rt); | ||||
|   | ||||
| @@ -27,7 +27,7 @@ | ||||
| #include "intreadwrite.h" | ||||
| #include "attributes.h" | ||||
|  | ||||
| void av_cold av_lfg_init(AVLFG *c, unsigned int seed) | ||||
| av_cold void av_lfg_init(AVLFG *c, unsigned int seed) | ||||
| { | ||||
|     uint8_t tmp[16] = { 0 }; | ||||
|     int i; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user