History

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

Michael Niedermayer committed 14 years ago

Commit 4480edc2 parents 6cecb89 91dffb418 files · +176 −147Browse files

Unified · Split

18 files
  1. libavcodec/aacdec.c +1 −1
  2. libavcodec/arm/dcadsp_init_arm.c +1 −1
  3. libavcodec/arm/dsputil_init_armv5te.c +1 −1
  4. libavcodec/arm/dsputil_init_armv6.c +1 −1
  5. libavcodec/ffv1.c +2 −2
  6. libavcodec/fmtconvert.h +1 −1
  7. libavcodec/h264.c +3 −3
  8. libavcodec/ivi_common.c +3 −3
  9. libavcodec/mpegaudiodsp_template.c +1 −1
  10. libavcodec/pcm.c +131 −122
  11. libavcodec/sbrdsp.h +3 −3
  12. libavcodec/tiffenc.c +1 −1
  13. libavcodec/wma_common.c +1 −1
  14. libavcodec/wma_common.h +1 −1
  15. libavcodec/wmaprodec.c +1 −1
  16. libavdevice/fbdev.c +2 −2
  17. libavformat/rtmpproto.c +21 −1
  18. libavutil/lfg.c +1 −1
libavcodec/aacdec.c+1−1
@@ -2790,7 +2790,7 @@ static int latm_decode_frame(AVCodecContext *avctx, void *out, · 2789 unmodified lines
2790 return muxlength;2790 return muxlength;
2791}2791}
2792 2792
2793av_cold static int latm_decode_init(AVCodecContext *avctx)2793static av_cold int latm_decode_init(AVCodecContext *avctx)
2794{2794{
2795 struct LATMContext *latmctx = avctx->priv_data;2795 struct LATMContext *latmctx = avctx->priv_data;
2796 int ret = aac_decode_init(avctx);2796 int ret = aac_decode_init(avctx);
libavcodec/arm/dcadsp_init_arm.c+1−1
@@ -25,7 +25,7 @@ · 24 unmodified lines
25void ff_dca_lfe_fir_neon(float *out, const float *in, const float *coefs,25void ff_dca_lfe_fir_neon(float *out, const float *in, const float *coefs,
26 int decifactor, float scale);26 int decifactor, float scale);
27 27
28void av_cold ff_dcadsp_init_arm(DCADSPContext *s)28av_cold void ff_dcadsp_init_arm(DCADSPContext *s)
29{29{
30 if (HAVE_NEON)30 if (HAVE_NEON)
31 s->lfe_fir = ff_dca_lfe_fir_neon;31 s->lfe_fir = ff_dca_lfe_fir_neon;
libavcodec/arm/dsputil_init_armv5te.c+1−1
@@ -27,7 +27,7 @@ void ff_simple_idct_add_armv5te(uint8_t *dest, int line_size, DCTELEM *data); · 26 unmodified lines
27 27
28void ff_prefetch_arm(void *mem, int stride, int h);28void ff_prefetch_arm(void *mem, int stride, int h);
29 29
30void av_cold ff_dsputil_init_armv5te(DSPContext* c, AVCodecContext *avctx)30av_cold void ff_dsputil_init_armv5te(DSPContext *c, AVCodecContext *avctx)
31{31{
32 if (!avctx->lowres && avctx->bits_per_raw_sample <= 8 &&32 if (!avctx->lowres && avctx->bits_per_raw_sample <= 8 &&
33 (avctx->idct_algo == FF_IDCT_AUTO ||33 (avctx->idct_algo == FF_IDCT_AUTO ||
libavcodec/arm/dsputil_init_armv6.c+1−1
@@ -70,7 +70,7 @@ int ff_sse16_armv6(void *s, uint8_t *blk1, uint8_t *blk2, · 69 unmodified lines
70int ff_pix_norm1_armv6(uint8_t *pix, int line_size);70int ff_pix_norm1_armv6(uint8_t *pix, int line_size);
71int ff_pix_sum_armv6(uint8_t *pix, int line_size);71int ff_pix_sum_armv6(uint8_t *pix, int line_size);
72 72
73void av_cold ff_dsputil_init_armv6(DSPContext* c, AVCodecContext *avctx)73av_cold void ff_dsputil_init_armv6(DSPContext *c, AVCodecContext *avctx)
74{74{
75 const int high_bit_depth = avctx->bits_per_raw_sample > 8;75 const int high_bit_depth = avctx->bits_per_raw_sample > 8;
76 76
libavcodec/ffv1.c+2−2
@@ -328,7 +328,7 @@ do{\ · 327 unmodified lines
328#undef put_rac328#undef put_rac
329}329}
330 330
331static void av_noinline put_symbol(RangeCoder *c, uint8_t *state, int v, int is_signed){331static av_noinline void put_symbol(RangeCoder *c, uint8_t *state, int v, int is_signed){
332 put_symbol_inline(c, state, v, is_signed, NULL, NULL);332 put_symbol_inline(c, state, v, is_signed, NULL, NULL);
333}333}
334 334
@@ -352,7 +352,7 @@ static inline av_flatten int get_symbol_inline(RangeCoder *c, uint8_t *state, in · 17 unmodified lines
352 }352 }
353}353}
354 354
355static int av_noinline get_symbol(RangeCoder *c, uint8_t *state, int is_signed){355static av_noinline int get_symbol(RangeCoder *c, uint8_t *state, int is_signed){
356 return get_symbol_inline(c, state, is_signed);356 return get_symbol_inline(c, state, is_signed);
357}357}
358 358
libavcodec/fmtconvert.h+1−1
@@ -87,7 +87,7 @@ typedef struct FmtConvertContext { · 86 unmodified lines
87void ff_float_interleave_c(float *dst, const float **src, unsigned int len,87void ff_float_interleave_c(float *dst, const float **src, unsigned int len,
88 int channels);88 int channels);
89 89
90void ff_fmt_convert_init(FmtConvertContext *c, AVCodecContext *avctx);90av_cold void ff_fmt_convert_init(FmtConvertContext *c, AVCodecContext *avctx);
91 91
92void ff_fmt_convert_init_arm(FmtConvertContext *c, AVCodecContext *avctx);92void ff_fmt_convert_init_arm(FmtConvertContext *c, AVCodecContext *avctx);
93void ff_fmt_convert_init_altivec(FmtConvertContext *c, AVCodecContext *avctx);93void ff_fmt_convert_init_altivec(FmtConvertContext *c, AVCodecContext *avctx);
libavcodec/h264.c+3−3
@@ -2408,17 +2408,17 @@ hl_decode_mb_simple(1, 16) · 2407 unmodified lines
2408/**2408/**
2409 * Process a macroblock; this handles edge cases, such as interlacing.2409 * Process a macroblock; this handles edge cases, such as interlacing.
2410 */2410 */
2411static void av_noinline hl_decode_mb_complex(H264Context *h)2411static av_noinline void hl_decode_mb_complex(H264Context *h)
2412{2412{
2413 hl_decode_mb_internal(h, 0, h->pixel_shift);2413 hl_decode_mb_internal(h, 0, h->pixel_shift);
2414}2414}
2415 2415
2416static void av_noinline hl_decode_mb_444_complex(H264Context *h)2416static av_noinline void hl_decode_mb_444_complex(H264Context *h)
2417{2417{
2418 hl_decode_mb_444_internal(h, 0, h->pixel_shift);2418 hl_decode_mb_444_internal(h, 0, h->pixel_shift);
2419}2419}
2420 2420
2421static void av_noinline hl_decode_mb_444_simple(H264Context *h)2421static av_noinline void hl_decode_mb_444_simple(H264Context *h)
2422{2422{
2423 hl_decode_mb_444_internal(h, 1, 0);2423 hl_decode_mb_444_internal(h, 1, 0);
2424}2424}
libavcodec/ivi_common.c+3−3
@@ -164,7 +164,7 @@ void ff_ivi_huff_desc_copy(IVIHuffDesc *dst, const IVIHuffDesc *src) · 163 unmodified lines
164 memcpy(dst->xbits, src->xbits, src->num_rows);164 memcpy(dst->xbits, src->xbits, src->num_rows);
165}165}
166 166
167int av_cold ff_ivi_init_planes(IVIPlaneDesc *planes, const IVIPicConfig *cfg)167av_cold int ff_ivi_init_planes(IVIPlaneDesc *planes, const IVIPicConfig *cfg)
168{168{
169 int p, b;169 int p, b;
170 uint32_t b_width, b_height, align_fac, width_aligned, height_aligned, buf_size;170 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) · 56 unmodified lines
227 return 0;227 return 0;
228}228}
229 229
230void av_cold ff_ivi_free_buffers(IVIPlaneDesc *planes)230av_cold void ff_ivi_free_buffers(IVIPlaneDesc *planes)
231{231{
232 int p, b, t;232 int p, b, t;
233 233
@@ -247,7 +247,7 @@ void av_cold ff_ivi_free_buffers(IVIPlaneDesc *planes) · 13 unmodified lines
247 }247 }
248}248}
249 249
250int av_cold ff_ivi_init_tiles(IVIPlaneDesc *planes, int tile_width, int tile_height)250av_cold int ff_ivi_init_tiles(IVIPlaneDesc *planes, int tile_width, int tile_height)
251{251{
252 int p, b, x, y, x_tiles, y_tiles, t_width, t_height;252 int p, b, x, y, x_tiles, y_tiles, t_width, t_height;
253 IVIBandDesc *band;253 IVIBandDesc *band;
libavcodec/mpegaudiodsp_template.c+1−1
@@ -192,7 +192,7 @@ void RENAME(ff_mpa_synth_filter)(MPADSPContext *s, MPA_INT *synth_buf_ptr, · 191 unmodified lines
192 *synth_buf_offset = offset;192 *synth_buf_offset = offset;
193}193}
194 194
195void av_cold RENAME(ff_mpa_synth_init)(MPA_INT *window)195av_cold void RENAME(ff_mpa_synth_init)(MPA_INT *window)
196{196{
197 int i, j;197 int i, j;
198 198
libavcodec/pcm.c+131−122
@@ -24,8 +24,8 @@ · 23 unmodified lines
24 * PCM codecs24 * PCM codecs
25 */25 */
26 26
27#include "avcodec.h"
28#include "libavutil/common.h" /* for av_reverse */27#include "libavutil/common.h" /* for av_reverse */
28#include "avcodec.h"
29#include "bytestream.h"29#include "bytestream.h"
30#include "internal.h"30#include "internal.h"
31#include "pcm_tablegen.h"31#include "pcm_tablegen.h"
@@ -35,7 +35,7 @@ · 3 unmodified lines
35static av_cold int pcm_encode_init(AVCodecContext *avctx)35static av_cold int pcm_encode_init(AVCodecContext *avctx)
36{36{
37 avctx->frame_size = 0;37 avctx->frame_size = 0;
38 switch(avctx->codec->id) {38 switch (avctx->codec->id) {
39 case CODEC_ID_PCM_ALAW:39 case CODEC_ID_PCM_ALAW:
40 pcm_alaw_tableinit();40 pcm_alaw_tableinit();
41 break;41 break;
@@ -47,8 +47,8 @@ static av_cold int pcm_encode_init(AVCodecContext *avctx) · 5 unmodified lines
47 }47 }
48 48
49 avctx->bits_per_coded_sample = av_get_bits_per_sample(avctx->codec->id);49 avctx->bits_per_coded_sample = av_get_bits_per_sample(avctx->codec->id);
50 avctx->block_align = avctx->channels * avctx->bits_per_coded_sample/8;50 avctx->block_align = avctx->channels * avctx->bits_per_coded_sample / 8;
51 avctx->coded_frame= avcodec_alloc_frame();51 avctx->coded_frame = avcodec_alloc_frame();
52 if (!avctx->coded_frame)52 if (!avctx->coded_frame)
53 return AVERROR(ENOMEM);53 return AVERROR(ENOMEM);
54 54
@@ -64,19 +64,19 @@ static av_cold int pcm_encode_close(AVCodecContext *avctx) · 9 unmodified lines
64 64
65/**65/**
66 * Write PCM samples macro66 * Write PCM samples macro
67 * @param type Datatype of native machine format67 * @param type Datatype of native machine format
68 * @param endian bytestream_put_xxx() suffix68 * @param endian bytestream_put_xxx() suffix
69 * @param src Source pointer (variable name)69 * @param src Source pointer (variable name)
70 * @param dst Destination pointer (variable name)70 * @param dst Destination pointer (variable name)
71 * @param n Total number of samples (variable name)71 * @param n Total number of samples (variable name)
72 * @param shift Bitshift (bits)72 * @param shift Bitshift (bits)
73 * @param offset Sample value offset73 * @param offset Sample value offset
74 */74 */
75#define ENCODE(type, endian, src, dst, n, shift, offset) \75#define ENCODE(type, endian, src, dst, n, shift, offset) \
76 samples_##type = (const type*) src; \76 samples_ ## type = (const type *) src; \
77 for(;n>0;n--) { \77 for (; n > 0; n--) { \
78 register type v = (*samples_##type++ >> shift) + offset; \78 register type v = (*samples_ ## type++ >> shift) + offset; \
79 bytestream_put_##endian(&dst, v); \79 bytestream_put_ ## endian(&dst, v); \
80 }80 }
81 81
82static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,82static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
@@ -92,7 +92,7 @@ static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, · 9 unmodified lines
92 const uint16_t *samples_uint16_t;92 const uint16_t *samples_uint16_t;
93 const uint32_t *samples_uint32_t;93 const uint32_t *samples_uint32_t;
94 94
95 sample_size = av_get_bits_per_sample(avctx->codec->id)/8;95 sample_size = av_get_bits_per_sample(avctx->codec->id) / 8;
96 n = frame->nb_samples * avctx->channels;96 n = frame->nb_samples * avctx->channels;
97 samples = (const short *)frame->data[0];97 samples = (const short *)frame->data[0];
98 98
@@ -100,7 +100,7 @@ static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, · 1 unmodified line
100 return ret;100 return ret;
101 dst = avpkt->data;101 dst = avpkt->data;
102 102
103 switch(avctx->codec->id) {103 switch (avctx->codec->id) {
104 case CODEC_ID_PCM_U32LE:104 case CODEC_ID_PCM_U32LE:
105 ENCODE(uint32_t, le32, samples, dst, n, 0, 0x80000000)105 ENCODE(uint32_t, le32, samples, dst, n, 0, 0x80000000)
106 break;106 break;
@@ -120,7 +120,7 @@ static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, · 13 unmodified lines
120 ENCODE(uint32_t, be24, samples, dst, n, 8, 0x800000)120 ENCODE(uint32_t, be24, samples, dst, n, 8, 0x800000)
121 break;121 break;
122 case CODEC_ID_PCM_S24DAUD:122 case CODEC_ID_PCM_S24DAUD:
123 for(;n>0;n--) {123 for (; n > 0; n--) {
124 uint32_t tmp = av_reverse[(*samples >> 8) & 0xff] +124 uint32_t tmp = av_reverse[(*samples >> 8) & 0xff] +
125 (av_reverse[*samples & 0xff] << 8);125 (av_reverse[*samples & 0xff] << 8);
126 tmp <<= 4; // sync flags would go here126 tmp <<= 4; // sync flags would go here
@@ -136,8 +136,8 @@ static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, · 9 unmodified lines
136 break;136 break;
137 case CODEC_ID_PCM_S8:137 case CODEC_ID_PCM_S8:
138 srcu8 = frame->data[0];138 srcu8 = frame->data[0];
139 for(;n>0;n--) {139 for (; n > 0; n--) {
140 v = *srcu8++;140 v = *srcu8++;
141 *dst++ = v - 128;141 *dst++ = v - 128;
142 }142 }
143 break;143 break;
@@ -173,18 +173,18 @@ static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, · 29 unmodified lines
173 case CODEC_ID_PCM_S16LE:173 case CODEC_ID_PCM_S16LE:
174#endif /* HAVE_BIGENDIAN */174#endif /* HAVE_BIGENDIAN */
175 case CODEC_ID_PCM_U8:175 case CODEC_ID_PCM_U8:
176 memcpy(dst, samples, n*sample_size);176 memcpy(dst, samples, n * sample_size);
177 dst += n*sample_size;177 dst += n * sample_size;
178 break;178 break;
179 case CODEC_ID_PCM_ALAW:179 case CODEC_ID_PCM_ALAW:
180 for(;n>0;n--) {180 for (; n > 0; n--) {
181 v = *samples++;181 v = *samples++;
182 *dst++ = linear_to_alaw[(v + 32768) >> 2];182 *dst++ = linear_to_alaw[(v + 32768) >> 2];
183 }183 }
184 break;184 break;
185 case CODEC_ID_PCM_MULAW:185 case CODEC_ID_PCM_MULAW:
186 for(;n>0;n--) {186 for (; n > 0; n--) {
187 v = *samples++;187 v = *samples++;
188 *dst++ = linear_to_ulaw[(v + 32768) >> 2];188 *dst++ = linear_to_ulaw[(v + 32768) >> 2];
189 }189 }
190 break;190 break;
@@ -198,10 +198,10 @@ static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, · 7 unmodified lines
198 198
199typedef struct PCMDecode {199typedef struct PCMDecode {
200 AVFrame frame;200 AVFrame frame;
201 short table[256];201 short table[256];
202} PCMDecode;202} PCMDecode;
203 203
204static av_cold int pcm_decode_init(AVCodecContext * avctx)204static av_cold int pcm_decode_init(AVCodecContext *avctx)
205{205{
206 PCMDecode *s = avctx->priv_data;206 PCMDecode *s = avctx->priv_data;
207 int i;207 int i;
@@ -211,13 +211,13 @@ static av_cold int pcm_decode_init(AVCodecContext * avctx) · 3 unmodified lines
211 return AVERROR(EINVAL);211 return AVERROR(EINVAL);
212 }212 }
213 213
214 switch(avctx->codec->id) {214 switch (avctx->codec->id) {
215 case CODEC_ID_PCM_ALAW:215 case CODEC_ID_PCM_ALAW:
216 for(i=0;i<256;i++)216 for (i = 0; i < 256; i++)
217 s->table[i] = alaw2linear(i);217 s->table[i] = alaw2linear(i);
218 break;218 break;
219 case CODEC_ID_PCM_MULAW:219 case CODEC_ID_PCM_MULAW:
220 for(i=0;i<256;i++)220 for (i = 0; i < 256; i++)
221 s->table[i] = ulaw2linear(i);221 s->table[i] = ulaw2linear(i);
222 break;222 break;
223 default:223 default:
@@ -237,32 +237,32 @@ static av_cold int pcm_decode_init(AVCodecContext * avctx) · 13 unmodified lines
237 237
238/**238/**
239 * Read PCM samples macro239 * Read PCM samples macro
240 * @param size Data size of native machine format240 * @param size Data size of native machine format
241 * @param endian bytestream_get_xxx() endian suffix241 * @param endian bytestream_get_xxx() endian suffix
242 * @param src Source pointer (variable name)242 * @param src Source pointer (variable name)
243 * @param dst Destination pointer (variable name)243 * @param dst Destination pointer (variable name)
244 * @param n Total number of samples (variable name)244 * @param n Total number of samples (variable name)
245 * @param shift Bitshift (bits)245 * @param shift Bitshift (bits)
246 * @param offset Sample value offset246 * @param offset Sample value offset
247 */247 */
248#define DECODE(size, endian, src, dst, n, shift, offset) \248#define DECODE(size, endian, src, dst, n, shift, offset) \
249 for(;n>0;n--) { \249 for (; n > 0; n--) { \
250 uint##size##_t v = bytestream_get_##endian(&src); \250 uint ## size ## _t v = bytestream_get_ ## endian(&src); \
251 AV_WN##size##A(dst, (v - offset) << shift); \251 AV_WN ## size ## A(dst, (v - offset) << shift); \
252 dst += size / 8; \252 dst += size / 8; \
253 }253 }
254 254
255static int pcm_decode_frame(AVCodecContext *avctx, void *data,255static int pcm_decode_frame(AVCodecContext *avctx, void *data,
256 int *got_frame_ptr, AVPacket *avpkt)256 int *got_frame_ptr, AVPacket *avpkt)
257{257{
258 const uint8_t *src = avpkt->data;258 const uint8_t *src = avpkt->data;
259 int buf_size = avpkt->size;259 int buf_size = avpkt->size;
260 PCMDecode *s = avctx->priv_data;260 PCMDecode *s = avctx->priv_data;
261 int sample_size, c, n, ret, samples_per_block;261 int sample_size, c, n, ret, samples_per_block;
262 uint8_t *samples;262 uint8_t *samples;
263 int32_t *dst_int32_t;263 int32_t *dst_int32_t;
264 264
265 sample_size = av_get_bits_per_sample(avctx->codec_id)/8;265 sample_size = av_get_bits_per_sample(avctx->codec_id) / 8;
266 266
267 /* av_get_bits_per_sample returns 0 for CODEC_ID_PCM_DVD */267 /* av_get_bits_per_sample returns 0 for CODEC_ID_PCM_DVD */
268 samples_per_block = 1;268 samples_per_block = 1;
@@ -276,11 +276,11 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, · 7 unmodified lines
276 }276 }
277 /* 2 samples are interleaved per block in PCM_DVD */277 /* 2 samples are interleaved per block in PCM_DVD */
278 samples_per_block = 2;278 samples_per_block = 2;
279 sample_size = avctx->bits_per_coded_sample * 2 / 8;279 sample_size = avctx->bits_per_coded_sample * 2 / 8;
280 } else if (avctx->codec_id == CODEC_ID_PCM_LXF) {280 } else if (avctx->codec_id == CODEC_ID_PCM_LXF) {
281 /* we process 40-bit blocks per channel for LXF */281 /* we process 40-bit blocks per channel for LXF */
282 samples_per_block = 2;282 samples_per_block = 2;
283 sample_size = 5;283 sample_size = 5;
284 }284 }
285 285
286 if (sample_size == 0) {286 if (sample_size == 0) {
@@ -290,15 +290,15 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, · 3 unmodified lines
290 290
291 n = avctx->channels * sample_size;291 n = avctx->channels * sample_size;
292 292
293 if(n && buf_size % n){293 if (n && buf_size % n) {
294 if (buf_size < n) {294 if (buf_size < n) {
295 av_log(avctx, AV_LOG_ERROR, "invalid PCM packet\n");295 av_log(avctx, AV_LOG_ERROR, "invalid PCM packet\n");
296 return -1;296 return -1;
297 }else297 } else
298 buf_size -= buf_size % n;298 buf_size -= buf_size % n;
299 }299 }
300 300
301 n = buf_size/sample_size;301 n = buf_size / sample_size;
302 302
303 /* get output buffer */303 /* get output buffer */
304 s->frame.nb_samples = n * samples_per_block / avctx->channels;304 s->frame.nb_samples = n * samples_per_block / avctx->channels;
@@ -308,7 +308,7 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, · 3 unmodified lines
308 }308 }
309 samples = s->frame.data[0];309 samples = s->frame.data[0];
310 310
311 switch(avctx->codec->id) {311 switch (avctx->codec->id) {
312 case CODEC_ID_PCM_U32LE:312 case CODEC_ID_PCM_U32LE:
313 DECODE(32, le32, src, samples, n, 0, 0x80000000)313 DECODE(32, le32, src, samples, n, 0, 0x80000000)
314 break;314 break;
@@ -328,21 +328,21 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, · 13 unmodified lines
328 DECODE(32, be24, src, samples, n, 8, 0x800000)328 DECODE(32, be24, src, samples, n, 8, 0x800000)
329 break;329 break;
330 case CODEC_ID_PCM_S24DAUD:330 case CODEC_ID_PCM_S24DAUD:
331 for(;n>0;n--) {331 for (; n > 0; n--) {
332 uint32_t v = bytestream_get_be24(&src);332 uint32_t v = bytestream_get_be24(&src);
333 v >>= 4; // sync flags are here333 v >>= 4; // sync flags are here
334 AV_WN16A(samples, av_reverse[(v >> 8) & 0xff] +334 AV_WN16A(samples, av_reverse[(v >> 8) & 0xff] +
335 (av_reverse[v & 0xff] << 8));335 (av_reverse[v & 0xff] << 8));
336 samples += 2;336 samples += 2;
337 }337 }
338 break;338 break;
339 case CODEC_ID_PCM_S16LE_PLANAR:339 case CODEC_ID_PCM_S16LE_PLANAR:
340 {340 {
341 int i;341 int i;
342 n /= avctx->channels;342 n /= avctx->channels;
343 for(c=0;c<avctx->channels;c++) {343 for (c = 0; c < avctx->channels; c++) {
344 samples = s->frame.data[c];344 samples = s->frame.data[c];
345 for(i=n;i>0;i--) {345 for (i = n; i > 0; i--) {
346 AV_WN16A(samples, bytestream_get_le16(&src));346 AV_WN16A(samples, bytestream_get_le16(&src));
347 samples += 2;347 samples += 2;
348 }348 }
@@ -356,9 +356,8 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, · 7 unmodified lines
356 DECODE(16, be16, src, samples, n, 0, 0x8000)356 DECODE(16, be16, src, samples, n, 0, 0x8000)
357 break;357 break;
358 case CODEC_ID_PCM_S8:358 case CODEC_ID_PCM_S8:
359 for(;n>0;n--) {359 for (; n > 0; n--)
360 *samples++ = *src++ + 128;360 *samples++ = *src++ + 128;
361 }
362 break;361 break;
363#if HAVE_BIGENDIAN362#if HAVE_BIGENDIAN
364 case CODEC_ID_PCM_F64LE:363 case CODEC_ID_PCM_F64LE:
@@ -392,7 +391,7 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, · 27 unmodified lines
392 case CODEC_ID_PCM_S16LE:391 case CODEC_ID_PCM_S16LE:
393#endif /* HAVE_BIGENDIAN */392#endif /* HAVE_BIGENDIAN */
394 case CODEC_ID_PCM_U8:393 case CODEC_ID_PCM_U8:
395 memcpy(samples, src, n*sample_size);394 memcpy(samples, src, n * sample_size);
396 break;395 break;
397 case CODEC_ID_PCM_ZORK:396 case CODEC_ID_PCM_ZORK:
398 for (; n > 0; n--) {397 for (; n > 0; n--) {
@@ -404,7 +403,7 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, · 5 unmodified lines
404 break;403 break;
405 case CODEC_ID_PCM_ALAW:404 case CODEC_ID_PCM_ALAW:
406 case CODEC_ID_PCM_MULAW:405 case CODEC_ID_PCM_MULAW:
407 for(;n>0;n--) {406 for (; n > 0; n--) {
408 AV_WN16A(samples, s->table[*src++]);407 AV_WN16A(samples, s->table[*src++]);
409 samples += 2;408 samples += 2;
410 }409 }
@@ -417,19 +416,19 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, · 6 unmodified lines
417 switch (avctx->bits_per_coded_sample) {416 switch (avctx->bits_per_coded_sample) {
418 case 20:417 case 20:
419 while (n--) {418 while (n--) {
420 c = avctx->channels;419 c = avctx->channels;
421 src8 = src + 4*c;420 src8 = src + 4 * c;
422 while (c--) {421 while (c--) {
423 *dst_int32_t++ = (bytestream_get_be16(&src) << 16) + ((*src8 &0xf0) << 8);422 *dst_int32_t++ = (bytestream_get_be16(&src) << 16) + ((*src8 & 0xf0) << 8);
424 *dst_int32_t++ = (bytestream_get_be16(&src) << 16) + ((*src8++ &0x0f) << 12);423 *dst_int32_t++ = (bytestream_get_be16(&src) << 16) + ((*src8++ & 0x0f) << 12);
425 }424 }
426 src = src8;425 src = src8;
427 }426 }
428 break;427 break;
429 case 24:428 case 24:
430 while (n--) {429 while (n--) {
431 c = avctx->channels;430 c = avctx->channels;
432 src8 = src + 4*c;431 src8 = src + 4 * c;
433 while (c--) {432 while (c--) {
434 *dst_int32_t++ = (bytestream_get_be16(&src) << 16) + ((*src8++) << 8);433 *dst_int32_t++ = (bytestream_get_be16(&src) << 16) + ((*src8++) << 8);
435 *dst_int32_t++ = (bytestream_get_be16(&src) << 16) + ((*src8++) << 8);434 *dst_int32_t++ = (bytestream_get_be16(&src) << 16) + ((*src8++) << 8);
@@ -449,11 +448,17 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, · 13 unmodified lines
449 dst_int32_t = (int32_t *)s->frame.data[c];448 dst_int32_t = (int32_t *)s->frame.data[c];
450 for (i = 0; i < n; i++) {449 for (i = 0; i < n; i++) {
451 //extract low 20 bits and expand to 32 bits450 //extract low 20 bits and expand to 32 bits
452 *dst_int32_t++ = (src[2] << 28) | (src[1] << 20) | (src[0] << 12) |451 *dst_int32_t++ = (src[2] << 28) |
453 ((src[2] & 0xF) << 8) | src[1];452 (src[1] << 20) |
453 (src[0] << 12) |
454 ((src[2] & 0xF) << 8) |
455 src[1];
454 //extract high 20 bits and expand to 32 bits456 //extract high 20 bits and expand to 32 bits
455 *dst_int32_t++ = (src[4] << 24) | (src[3] << 16) |457 *dst_int32_t++ = (src[4] << 24) |
456 ((src[2] & 0xF0) << 8) | (src[4] << 4) | (src[3] >> 4);458 (src[3] << 16) |
459 ((src[2] & 0xF0) << 8) |
460 (src[4] << 4) |
461 (src[3] >> 4);
457 src += 5;462 src += 5;
458 }463 }
459 }464 }
@@ -470,65 +475,69 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, · 10 unmodified lines
470}475}
471 476
472#if CONFIG_ENCODERS477#if CONFIG_ENCODERS
473#define PCM_ENCODER(id_,sample_fmt_,name_,long_name_) \478#define PCM_ENCODER(id_, sample_fmt_, name_, long_name_) \
474AVCodec ff_ ## name_ ## _encoder = { \479AVCodec ff_ ## name_ ## _encoder = { \
475 .name = #name_, \480 .name = #name_, \
476 .type = AVMEDIA_TYPE_AUDIO, \481 .type = AVMEDIA_TYPE_AUDIO, \
477 .id = id_, \482 .id = id_, \
478 .init = pcm_encode_init, \483 .init = pcm_encode_init, \
479 .encode2 = pcm_encode_frame, \484 .encode2 = pcm_encode_frame, \
480 .close = pcm_encode_close, \485 .close = pcm_encode_close, \
481 .capabilities = CODEC_CAP_VARIABLE_FRAME_SIZE, \486 .capabilities = CODEC_CAP_VARIABLE_FRAME_SIZE, \
482 .sample_fmts = (const enum AVSampleFormat[]){sample_fmt_,AV_SAMPLE_FMT_NONE}, \487 .sample_fmts = (const enum AVSampleFormat[]){ sample_fmt_, \
483 .long_name = NULL_IF_CONFIG_SMALL(long_name_), \488 AV_SAMPLE_FMT_NONE }, \
489 .long_name = NULL_IF_CONFIG_SMALL(long_name_), \
484}490}
485#else491#else
486#define PCM_ENCODER(id,sample_fmt_,name,long_name_)492#define PCM_ENCODER(id, sample_fmt_, name, long_name_)
487#endif493#endif
488 494
489#if CONFIG_DECODERS495#if CONFIG_DECODERS
490#define PCM_DECODER(id_,sample_fmt_,name_,long_name_) \496#define PCM_DECODER(id_, sample_fmt_, name_, long_name_) \
491AVCodec ff_ ## name_ ## _decoder = { \497AVCodec ff_ ## name_ ## _decoder = { \
492 .name = #name_, \498 .name = #name_, \
493 .type = AVMEDIA_TYPE_AUDIO, \499 .type = AVMEDIA_TYPE_AUDIO, \
494 .id = id_, \500 .id = id_, \
495 .priv_data_size = sizeof(PCMDecode), \501 .priv_data_size = sizeof(PCMDecode), \
496 .init = pcm_decode_init, \502 .init = pcm_decode_init, \
497 .decode = pcm_decode_frame, \503 .decode = pcm_decode_frame, \
498 .capabilities = CODEC_CAP_DR1, \504 .capabilities = CODEC_CAP_DR1, \
499 .sample_fmts = (const enum AVSampleFormat[]){sample_fmt_,AV_SAMPLE_FMT_NONE}, \505 .sample_fmts = (const enum AVSampleFormat[]){ sample_fmt_, \
500 .long_name = NULL_IF_CONFIG_SMALL(long_name_), \506 AV_SAMPLE_FMT_NONE }, \
507 .long_name = NULL_IF_CONFIG_SMALL(long_name_), \
501}508}
502#else509#else
503#define PCM_DECODER(id,sample_fmt_,name,long_name_)510#define PCM_DECODER(id, sample_fmt_, name, long_name_)
504#endif511#endif
505 512
506#define PCM_CODEC(id, sample_fmt_, name, long_name_) \513#define PCM_CODEC(id, sample_fmt_, name, long_name_) \
507 PCM_ENCODER(id,sample_fmt_,name,long_name_); PCM_DECODER(id,sample_fmt_,name,long_name_)514 PCM_ENCODER(id, sample_fmt_, name, long_name_); \
515 PCM_DECODER(id, sample_fmt_, name, long_name_)
508 516
509/* Note: Do not forget to add new entries to the Makefile as well. */517/* Note: Do not forget to add new entries to the Makefile as well. */
510PCM_CODEC (CODEC_ID_PCM_ALAW, AV_SAMPLE_FMT_S16, pcm_alaw, "PCM A-law / G.711 A-law");518PCM_CODEC (CODEC_ID_PCM_ALAW, AV_SAMPLE_FMT_S16, pcm_alaw, "PCM A-law / G.711 A-law");
511PCM_DECODER(CODEC_ID_PCM_DVD, AV_SAMPLE_FMT_S32, pcm_dvd, "PCM signed 20|24-bit big-endian");519PCM_DECODER(CODEC_ID_PCM_DVD, AV_SAMPLE_FMT_S32, pcm_dvd, "PCM signed 20|24-bit big-endian");
512PCM_CODEC (CODEC_ID_PCM_F32BE, AV_SAMPLE_FMT_FLT, pcm_f32be, "PCM 32-bit floating point big-endian");520PCM_CODEC (CODEC_ID_PCM_F32BE, AV_SAMPLE_FMT_FLT, pcm_f32be, "PCM 32-bit floating point big-endian");
513PCM_CODEC (CODEC_ID_PCM_F32LE, AV_SAMPLE_FMT_FLT, pcm_f32le, "PCM 32-bit floating point little-endian");521PCM_CODEC (CODEC_ID_PCM_F32LE, AV_SAMPLE_FMT_FLT, pcm_f32le, "PCM 32-bit floating point little-endian");
514PCM_CODEC (CODEC_ID_PCM_F64BE, AV_SAMPLE_FMT_DBL, pcm_f64be, "PCM 64-bit floating point big-endian");522PCM_CODEC (CODEC_ID_PCM_F64BE, AV_SAMPLE_FMT_DBL, pcm_f64be, "PCM 64-bit floating point big-endian");
515PCM_CODEC (CODEC_ID_PCM_F64LE, AV_SAMPLE_FMT_DBL, pcm_f64le, "PCM 64-bit floating point little-endian");523PCM_CODEC (CODEC_ID_PCM_F64LE, AV_SAMPLE_FMT_DBL, pcm_f64le, "PCM 64-bit floating point little-endian");
516PCM_DECODER(CODEC_ID_PCM_LXF, AV_SAMPLE_FMT_S32P, pcm_lxf, "PCM signed 20-bit little-endian planar");524PCM_DECODER(CODEC_ID_PCM_LXF, AV_SAMPLE_FMT_S32P,pcm_lxf, "PCM signed 20-bit little-endian planar");
517PCM_CODEC (CODEC_ID_PCM_MULAW, AV_SAMPLE_FMT_S16, pcm_mulaw, "PCM mu-law / G.711 mu-law");525PCM_CODEC (CODEC_ID_PCM_MULAW, AV_SAMPLE_FMT_S16, pcm_mulaw, "PCM mu-law / G.711 mu-law");
518PCM_CODEC (CODEC_ID_PCM_S8, AV_SAMPLE_FMT_U8, pcm_s8, "PCM signed 8-bit");526PCM_CODEC (CODEC_ID_PCM_S8, AV_SAMPLE_FMT_U8, pcm_s8, "PCM signed 8-bit");
519PCM_CODEC (CODEC_ID_PCM_S16BE, AV_SAMPLE_FMT_S16, pcm_s16be, "PCM signed 16-bit big-endian");527PCM_CODEC (CODEC_ID_PCM_S16BE, AV_SAMPLE_FMT_S16, pcm_s16be, "PCM signed 16-bit big-endian");
520PCM_CODEC (CODEC_ID_PCM_S16LE, AV_SAMPLE_FMT_S16, pcm_s16le, "PCM signed 16-bit little-endian");528PCM_CODEC (CODEC_ID_PCM_S16LE, AV_SAMPLE_FMT_S16, pcm_s16le, "PCM signed 16-bit little-endian");
521PCM_DECODER(CODEC_ID_PCM_S16LE_PLANAR, AV_SAMPLE_FMT_S16P, pcm_s16le_planar, "PCM 16-bit little-endian planar");529PCM_DECODER(CODEC_ID_PCM_S16LE_PLANAR, AV_SAMPLE_FMT_S16P,pcm_s16le_planar, "PCM 16-bit little-endian planar");
522PCM_CODEC (CODEC_ID_PCM_S24BE, AV_SAMPLE_FMT_S32, pcm_s24be, "PCM signed 24-bit big-endian");530PCM_CODEC (CODEC_ID_PCM_S24BE, AV_SAMPLE_FMT_S32, pcm_s24be, "PCM signed 24-bit big-endian");
523PCM_CODEC (CODEC_ID_PCM_S24DAUD, AV_SAMPLE_FMT_S16, pcm_s24daud, "PCM D-Cinema audio signed 24-bit");531PCM_CODEC (CODEC_ID_PCM_S24DAUD, AV_SAMPLE_FMT_S16, pcm_s24daud, "PCM D-Cinema audio signed 24-bit");
524PCM_CODEC (CODEC_ID_PCM_S24LE, AV_SAMPLE_FMT_S32, pcm_s24le, "PCM signed 24-bit little-endian");532PCM_CODEC (CODEC_ID_PCM_S24LE, AV_SAMPLE_FMT_S32, pcm_s24le, "PCM signed 24-bit little-endian");
525PCM_CODEC (CODEC_ID_PCM_S32BE, AV_SAMPLE_FMT_S32, pcm_s32be, "PCM signed 32-bit big-endian");533PCM_CODEC (CODEC_ID_PCM_S32BE, AV_SAMPLE_FMT_S32, pcm_s32be, "PCM signed 32-bit big-endian");
526PCM_CODEC (CODEC_ID_PCM_S32LE, AV_SAMPLE_FMT_S32, pcm_s32le, "PCM signed 32-bit little-endian");534PCM_CODEC (CODEC_ID_PCM_S32LE, AV_SAMPLE_FMT_S32, pcm_s32le, "PCM signed 32-bit little-endian");
527PCM_CODEC (CODEC_ID_PCM_U8, AV_SAMPLE_FMT_U8, pcm_u8, "PCM unsigned 8-bit");535PCM_CODEC (CODEC_ID_PCM_U8, AV_SAMPLE_FMT_U8, pcm_u8, "PCM unsigned 8-bit");
528PCM_CODEC (CODEC_ID_PCM_U16BE, AV_SAMPLE_FMT_S16, pcm_u16be, "PCM unsigned 16-bit big-endian");536PCM_CODEC (CODEC_ID_PCM_U16BE, AV_SAMPLE_FMT_S16, pcm_u16be, "PCM unsigned 16-bit big-endian");
529PCM_CODEC (CODEC_ID_PCM_U16LE, AV_SAMPLE_FMT_S16, pcm_u16le, "PCM unsigned 16-bit little-endian");537PCM_CODEC (CODEC_ID_PCM_U16LE, AV_SAMPLE_FMT_S16, pcm_u16le, "PCM unsigned 16-bit little-endian");
530PCM_CODEC (CODEC_ID_PCM_U24BE, AV_SAMPLE_FMT_S32, pcm_u24be, "PCM unsigned 24-bit big-endian");538PCM_CODEC (CODEC_ID_PCM_U24BE, AV_SAMPLE_FMT_S32, pcm_u24be, "PCM unsigned 24-bit big-endian");
531PCM_CODEC (CODEC_ID_PCM_U24LE, AV_SAMPLE_FMT_S32, pcm_u24le, "PCM unsigned 24-bit little-endian");539PCM_CODEC (CODEC_ID_PCM_U24LE, AV_SAMPLE_FMT_S32, pcm_u24le, "PCM unsigned 24-bit little-endian");
532PCM_CODEC (CODEC_ID_PCM_U32BE, AV_SAMPLE_FMT_S32, pcm_u32be, "PCM unsigned 32-bit big-endian");540PCM_CODEC (CODEC_ID_PCM_U32BE, AV_SAMPLE_FMT_S32, pcm_u32be, "PCM unsigned 32-bit big-endian");
533PCM_CODEC (CODEC_ID_PCM_U32LE, AV_SAMPLE_FMT_S32, pcm_u32le, "PCM unsigned 32-bit little-endian");541PCM_CODEC (CODEC_ID_PCM_U32LE, AV_SAMPLE_FMT_S32, pcm_u32le, "PCM unsigned 32-bit little-endian");
534PCM_DECODER(CODEC_ID_PCM_ZORK, AV_SAMPLE_FMT_U8, pcm_zork, "PCM Zork");542PCM_DECODER(CODEC_ID_PCM_ZORK, AV_SAMPLE_FMT_U8, pcm_zork, "PCM Zork");
543
libavcodec/sbrdsp.h+3−3
@@ -18,8 +18,8 @@ · 17 unmodified lines
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 */19 */
20 20
21#ifndef LIBAVCODEC_SBRDSP_H21#ifndef AVCODEC_SBRDSP_H
22#define LIBAVCODEC_SBRDSP_H22#define AVCODEC_SBRDSP_H
23 23
24#include <stdint.h>24#include <stdint.h>
25 25
@@ -48,4 +48,4 @@ void ff_sbrdsp_init(SBRDSPContext *s); · 22 unmodified lines
48void ff_sbrdsp_init_arm(SBRDSPContext *s);48void ff_sbrdsp_init_arm(SBRDSPContext *s);
49void ff_sbrdsp_init_x86(SBRDSPContext *s);49void ff_sbrdsp_init_x86(SBRDSPContext *s);
50 50
51#endif51#endif /* AVCODEC_SBRDSP_H */
libavcodec/tiffenc.c+1−1
@@ -77,7 +77,7 @@ typedef struct TiffEncoderContext { · 76 unmodified lines
77 * @param need Needed bytes77 * @param need Needed bytes
78 * @return 0 - ok, 1 - no free space78 * @return 0 - ok, 1 - no free space
79 */79 */
80inline static int check_size(TiffEncoderContext * s, uint64_t need)80static inline int check_size(TiffEncoderContext * s, uint64_t need)
81{81{
82 if (s->buf_size < *s->buf - s->buf_start + need) {82 if (s->buf_size < *s->buf - s->buf_start + need) {
83 *s->buf = s->buf_start + s->buf_size + 1;83 *s->buf = s->buf_start + s->buf_size + 1;
libavcodec/wma_common.c+1−1
@@ -28,7 +28,7 @@ · 27 unmodified lines
28 *@param decode_flags codec compression features28 *@param decode_flags codec compression features
29 *@return log2 of the number of output samples per frame29 *@return log2 of the number of output samples per frame
30 */30 */
31int av_cold ff_wma_get_frame_len_bits(int sample_rate, int version,31av_cold int ff_wma_get_frame_len_bits(int sample_rate, int version,
32 unsigned int decode_flags)32 unsigned int decode_flags)
33{33{
34 34
libavcodec/wma_common.h+1−1
@@ -23,7 +23,7 @@ · 22 unmodified lines
23 23
24#include "libavutil/attributes.h"24#include "libavutil/attributes.h"
25 25
26int av_cold ff_wma_get_frame_len_bits(int sample_rate, int version,26av_cold int ff_wma_get_frame_len_bits(int sample_rate, int version,
27 unsigned int decode_flags);27 unsigned int decode_flags);
28 28
29#endif /* AVCODEC_WMA_COMMON_H */29#endif /* AVCODEC_WMA_COMMON_H */
libavcodec/wmaprodec.c+1−1
@@ -237,7 +237,7 @@ typedef struct WMAProDecodeCtx { · 236 unmodified lines
237 *@brief helper function to print the most important members of the context237 *@brief helper function to print the most important members of the context
238 *@param s context238 *@param s context
239 */239 */
240static void av_cold dump_context(WMAProDecodeCtx *s)240static av_cold void dump_context(WMAProDecodeCtx *s)
241{241{
242#define PRINT(a, b) av_log(s->avctx, AV_LOG_DEBUG, " %s = %d\n", a, b);242#define PRINT(a, b) av_log(s->avctx, AV_LOG_DEBUG, " %s = %d\n", a, b);
243#define PRINT_HEX(a, b) av_log(s->avctx, AV_LOG_DEBUG, " %s = %x\n", a, b);243#define PRINT_HEX(a, b) av_log(s->avctx, AV_LOG_DEBUG, " %s = %x\n", a, b);
libavdevice/fbdev.c+2−2
@@ -95,7 +95,7 @@ typedef struct { · 94 unmodified lines
95 uint8_t *data; ///< framebuffer data95 uint8_t *data; ///< framebuffer data
96} FBDevContext;96} FBDevContext;
97 97
98av_cold static int fbdev_read_header(AVFormatContext *avctx)98static av_cold int fbdev_read_header(AVFormatContext *avctx)
99{99{
100 FBDevContext *fbdev = avctx->priv_data;100 FBDevContext *fbdev = avctx->priv_data;
101 AVStream *st = NULL;101 AVStream *st = NULL;
@@ -234,7 +234,7 @@ static int fbdev_read_packet(AVFormatContext *avctx, AVPacket *pkt) · 132 unmodified lines
234 return fbdev->frame_size;234 return fbdev->frame_size;
235}235}
236 236
237av_cold static int fbdev_read_close(AVFormatContext *avctx)237static av_cold int fbdev_read_close(AVFormatContext *avctx)
238{238{
239 FBDevContext *fbdev = avctx->priv_data;239 FBDevContext *fbdev = avctx->priv_data;
240 240
libavformat/rtmpproto.c+21−1
@@ -138,8 +138,12 @@ static void gen_connect(URLContext *s, RTMPContext *rt, const char *proto, · 137 unmodified lines
138 ff_amf_write_bool(&p, 0);138 ff_amf_write_bool(&p, 0);
139 ff_amf_write_field_name(&p, "capabilities");139 ff_amf_write_field_name(&p, "capabilities");
140 ff_amf_write_number(&p, 15.0);140 ff_amf_write_number(&p, 15.0);
141
142 /* Tell the server we support all the audio codecs except
143 * SUPPORT_SND_INTEL (0x0008) and SUPPORT_SND_UNUSED (0x0010)
144 * which are unused in the RTMP protocol implementation. */
141 ff_amf_write_field_name(&p, "audioCodecs");145 ff_amf_write_field_name(&p, "audioCodecs");
142 ff_amf_write_number(&p, 1639.0);146 ff_amf_write_number(&p, 4071.0);
143 ff_amf_write_field_name(&p, "videoCodecs");147 ff_amf_write_field_name(&p, "videoCodecs");
144 ff_amf_write_number(&p, 252.0);148 ff_amf_write_number(&p, 252.0);
145 ff_amf_write_field_name(&p, "videoFunction");149 ff_amf_write_field_name(&p, "videoFunction");
@@ -342,6 +346,21 @@ static void gen_pong(URLContext *s, RTMPContext *rt, RTMPPacket *ppkt) · 196 unmodified lines
342 ff_rtmp_packet_destroy(&pkt);346 ff_rtmp_packet_destroy(&pkt);
343}347}
344 348
349/**
350 * Generate server bandwidth message and send it to the server.
351 */
352static void gen_server_bw(URLContext *s, RTMPContext *rt)
353{
354 RTMPPacket pkt;
355 uint8_t *p;
356
357 ff_rtmp_packet_create(&pkt, RTMP_NETWORK_CHANNEL, RTMP_PT_SERVER_BW, 0, 4);
358 p = pkt.data;
359 bytestream_put_be32(&p, 2500000);
360 ff_rtmp_packet_write(rt->stream, &pkt, rt->chunk_size, rt->prev_pkt[1]);
361 ff_rtmp_packet_destroy(&pkt);
362}
363
345/**364/**
346 * Generate report on bytes read so far and send it to the server.365 * Generate report on bytes read so far and send it to the server.
347 */366 */
@@ -603,6 +622,7 @@ static int rtmp_parse_result(URLContext *s, RTMPContext *rt, RTMPPacket *pkt) · 255 unmodified lines
603 gen_fcpublish_stream(s, rt);622 gen_fcpublish_stream(s, rt);
604 rt->state = STATE_RELEASING;623 rt->state = STATE_RELEASING;
605 } else {624 } else {
625 gen_server_bw(s, rt);
606 rt->state = STATE_CONNECTING;626 rt->state = STATE_CONNECTING;
607 }627 }
608 gen_create_stream(s, rt);628 gen_create_stream(s, rt);
libavutil/lfg.c+1−1
@@ -27,7 +27,7 @@ · 26 unmodified lines
27#include "intreadwrite.h"27#include "intreadwrite.h"
28#include "attributes.h"28#include "attributes.h"
29 29
30void av_cold av_lfg_init(AVLFG *c, unsigned int seed)30av_cold void av_lfg_init(AVLFG *c, unsigned int seed)
31{31{
32 uint8_t tmp[16] = { 0 };32 uint8_t tmp[16] = { 0 };
33 int i;33 int i;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t