[FFmpeg-cvslog] mpegts: prevent division by zero

2016-11-08 Thread Andreas Cadhalpun
ffmpeg | branch: master | Andreas Cadhalpun  
| Mon Nov  7 23:37:59 2016 +0100| [1bbb18fe82fc77a10d45fa53bd2738d2c54de6c6] | 
committer: Andreas Cadhalpun

mpegts: prevent division by zero

Reviewed-by: Michael Niedermayer 
Signed-off-by: Andreas Cadhalpun 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1bbb18fe82fc77a10d45fa53bd2738d2c54de6c6
---

 libavformat/mpegts.c | 13 +++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index fad10c6..0aa0ad7 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -2681,8 +2681,17 @@ static int mpegts_read_header(AVFormatContext *s)
 packet_count[nb_pcrs] = nb_packets;
 pcrs[nb_pcrs] = pcr_h * 300 + pcr_l;
 nb_pcrs++;
-if (nb_pcrs >= 2)
-break;
+if (nb_pcrs >= 2) {
+if (pcrs[1] - pcrs[0] > 0) {
+/* the difference needs to be positive to make sense 
for bitrate computation */
+break;
+} else {
+av_log(ts->stream, AV_LOG_WARNING, "invalid pcr pair 
%"PRId64" >= %"PRId64"\n", pcrs[0], pcrs[1]);
+pcrs[0] = pcrs[1];
+packet_count[0] = packet_count[1];
+nb_pcrs--;
+}
+}
 } else {
 finished_reading_packet(s, ts->raw_packet_size);
 }

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] matroskadec: fix NULL pointer dereference in webm_dash_manifest_read_header

2016-11-08 Thread Andreas Cadhalpun
ffmpeg | branch: master | Andreas Cadhalpun  
| Tue Nov  8 00:42:23 2016 +0100| [ff100c9dd97d2f1f456ff38b192edf84f9744738] | 
committer: Andreas Cadhalpun

matroskadec: fix NULL pointer dereference in webm_dash_manifest_read_header

The code assumes that s->streams[0] is valid.

Reviewed-by: Michael Niedermayer 
Signed-off-by: Andreas Cadhalpun 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ff100c9dd97d2f1f456ff38b192edf84f9744738
---

 libavformat/matroskadec.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index d2a691b..f79511e 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -3776,6 +3776,11 @@ static int 
webm_dash_manifest_read_header(AVFormatContext *s)
 av_log(s, AV_LOG_ERROR, "Failed to read file headers\n");
 return -1;
 }
+if (!s->nb_streams) {
+matroska_read_close(s);
+av_log(s, AV_LOG_ERROR, "No streams found\n");
+return AVERROR_INVALIDDATA;
+}
 
 if (!matroska->is_live) {
 buf = av_asprintf("%g", matroska->duration);

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] avcodec/hap: pass texture-compression destination as argument, not in context

2016-11-08 Thread Tom Butterworth
ffmpeg | branch: master | Tom Butterworth  | Mon Nov  7 
16:25:33 2016 +| [0a245875887430fbdfa9cbd19eb4d337dae93d2e] | committer: 
Tom Butterworth

avcodec/hap: pass texture-compression destination as argument, not in context

This allows a subsequent change to compress directly into the output packet 
when possible.

Reviewed-by: Michael Niedermayer 
Signed-off-by: Tom Butterworth 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0a245875887430fbdfa9cbd19eb4d337dae93d2e
---

 libavcodec/hapenc.c | 12 +---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/libavcodec/hapenc.c b/libavcodec/hapenc.c
index 076923b..79b6074 100644
--- a/libavcodec/hapenc.c
+++ b/libavcodec/hapenc.c
@@ -52,12 +52,14 @@ enum HapHeaderLength {
 HAP_HDR_LONG = 8,
 };
 
-static void compress_texture(AVCodecContext *avctx, const AVFrame *f)
+static int compress_texture(AVCodecContext *avctx, uint8_t *out, int 
out_length, const AVFrame *f)
 {
 HapContext *ctx = avctx->priv_data;
-uint8_t *out = ctx->tex_buf;
 int i, j;
 
+if (ctx->tex_size > out_length)
+return AVERROR_BUFFER_TOO_SMALL;
+
 for (j = 0; j < avctx->height; j += 4) {
 for (i = 0; i < avctx->width; i += 4) {
 uint8_t *p = f->data[0] + i * 4 + j * f->linesize[0];
@@ -65,6 +67,8 @@ static void compress_texture(AVCodecContext *avctx, const 
AVFrame *f)
 out += step;
 }
 }
+
+return 0;
 }
 
 /* section_length does not include the header */
@@ -201,7 +205,9 @@ static int hap_encode(AVCodecContext *avctx, AVPacket *pkt,
 return ret;
 
 /* DXTC compression. */
-compress_texture(avctx, frame);
+ret = compress_texture(avctx, ctx->tex_buf, ctx->tex_size, frame);
+if (ret < 0)
+return ret;
 
 /* Compress (using Snappy) the frame */
 final_data_size = hap_compress_frame(avctx, pkt->data + header_length);

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] avformat/matroskadec: fix DiscardPadding element parsing

2016-11-08 Thread James Almer
ffmpeg | branch: master | James Almer  | Sat Nov  5 17:46:52 
2016 -0300| [70c6a1bcf021b396c9186c4a46dd6c96cc9f59f8] | committer: James Almer

avformat/matroskadec: fix DiscardPadding element parsing

If the value is negative then it means padding at the start of the packet
instead of at the end.

Based on a patch by Hendrik Leppkes.

Reviewed-by: James Zern 
Signed-off-by: James Almer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=70c6a1bcf021b396c9186c4a46dd6c96cc9f59f8
---

 libavformat/matroskadec.c | 10 +++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 32f5e49..d2a691b 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -3082,10 +3082,14 @@ static int matroska_parse_frame(MatroskaDemuxContext 
*matroska,
 av_free(pkt);
 return AVERROR(ENOMEM);
 }
-AV_WL32(side_data, 0);
-AV_WL32(side_data + 4, av_rescale_q(discard_padding,
+discard_padding = av_rescale_q(discard_padding,
 (AVRational){1, 10},
-(AVRational){1, 
st->codecpar->sample_rate}));
+(AVRational){1, 
st->codecpar->sample_rate});
+if (discard_padding > 0) {
+AV_WL32(side_data + 4, discard_padding);
+} else {
+AV_WL32(side_data, -discard_padding);
+}
 }
 
 if (track->ms_compat)

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] opus: move the entropy decoding functions to opus_rc.c

2016-11-08 Thread Rostislav Pehlivanov
ffmpeg | branch: master | Rostislav Pehlivanov  | Mon Nov  
7 22:33:11 2016 +| [317be31eaf4f07b3bbeb703e8ee73d04b08a587c] | committer: 
Rostislav Pehlivanov

opus: move the entropy decoding functions to opus_rc.c

The intention is to have both encoding and decoding functions
in opus_rc.c.

Signed-off-by: Rostislav Pehlivanov 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=317be31eaf4f07b3bbeb703e8ee73d04b08a587c
---

 libavcodec/Makefile|   2 +-
 libavcodec/opus.h  | 222 +
 libavcodec/opus_celt.c |  58 ++---
 libavcodec/opus_rc.c   | 221 
 libavcodec/opus_rc.h   |  85 +++
 libavcodec/opus_silk.c |  72 
 libavcodec/opusdec.c   |  40 ++---
 7 files changed, 380 insertions(+), 320 deletions(-)

diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 8e4087e..5fdc97f 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -436,7 +436,7 @@ OBJS-$(CONFIG_NELLYMOSER_DECODER)  += nellymoserdec.o 
nellymoser.o
 OBJS-$(CONFIG_NELLYMOSER_ENCODER)  += nellymoserenc.o nellymoser.o
 OBJS-$(CONFIG_NUV_DECODER) += nuv.o rtjpeg.o
 OBJS-$(CONFIG_ON2AVC_DECODER)  += on2avc.o on2avcdata.o
-OBJS-$(CONFIG_OPUS_DECODER)+= opusdec.o opus.o opus_celt.o \
+OBJS-$(CONFIG_OPUS_DECODER)+= opusdec.o opus.o opus_celt.o 
opus_rc.o \
   opus_silk.o opustab.o vorbis_data.o
 OBJS-$(CONFIG_PAF_AUDIO_DECODER)   += pafaudio.o
 OBJS-$(CONFIG_PAF_VIDEO_DECODER)   += pafvideo.o
diff --git a/libavcodec/opus.h b/libavcodec/opus.h
index 3a7ea9f..2079f42 100644
--- a/libavcodec/opus.h
+++ b/libavcodec/opus.h
@@ -32,7 +32,7 @@
 #include "libswresample/swresample.h"
 
 #include "avcodec.h"
-#include "get_bits.h"
+#include "opus_rc.h"
 
 #define MAX_FRAME_SIZE   1275
 #define MAX_FRAMES   48
@@ -59,7 +59,6 @@
 
 #define ROUND_MULL(a,b,s) (((MUL64(a, b) >> ((s) - 1)) + 1) >> 1)
 #define ROUND_MUL16(a,b)  ((MUL16(a, b) + 16384) >> 15)
-#define opus_ilog(i) (av_log2(i) + !!(i))
 
 #define OPUS_TS_HEADER 0x7FE0// 0x3ff (11 bits)
 #define OPUS_TS_MASK   0xFFE0// top 11 bits
@@ -84,21 +83,6 @@ enum OpusBandwidth {
 OPUS_BANDWIDTH_FULLBAND
 };
 
-typedef struct RawBitsContext {
-const uint8_t *position;
-unsigned int bytes;
-unsigned int cachelen;
-unsigned int cacheval;
-} RawBitsContext;
-
-typedef struct OpusRangeCoder {
-GetBitContext gb;
-RawBitsContext rb;
-unsigned int range;
-unsigned int value;
-unsigned int total_read_bits;
-} OpusRangeCoder;
-
 typedef struct SilkContext SilkContext;
 
 typedef struct CeltContext CeltContext;
@@ -193,210 +177,6 @@ typedef struct OpusContext {
 ChannelMap *channel_maps;
 } OpusContext;
 
-static av_always_inline void opus_rc_normalize(OpusRangeCoder *rc)
-{
-while (rc->range <= 1<<23) {
-rc->value = ((rc->value << 8) | (get_bits(>gb, 8) ^ 0xFF)) & ((1u 
<< 31) - 1);
-rc->range  <<= 8;
-rc->total_read_bits += 8;
-}
-}
-
-static av_always_inline void opus_rc_update(OpusRangeCoder *rc, unsigned int 
scale,
-  unsigned int low, unsigned int high,
-  unsigned int total)
-{
-rc->value -= scale * (total - high);
-rc->range  = low ? scale * (high - low)
-  : rc->range - scale * (total - high);
-opus_rc_normalize(rc);
-}
-
-static av_always_inline unsigned int opus_rc_getsymbol(OpusRangeCoder *rc, 
const uint16_t *cdf)
-{
-unsigned int k, scale, total, symbol, low, high;
-
-total = *cdf++;
-
-scale   = rc->range / total;
-symbol = rc->value / scale + 1;
-symbol = total - FFMIN(symbol, total);
-
-for (k = 0; cdf[k] <= symbol; k++);
-high = cdf[k];
-low  = k ? cdf[k-1] : 0;
-
-opus_rc_update(rc, scale, low, high, total);
-
-return k;
-}
-
-static av_always_inline unsigned int opus_rc_p2model(OpusRangeCoder *rc, 
unsigned int bits)
-{
-unsigned int k, scale;
-scale = rc->range >> bits; // in this case, scale = symbol
-
-if (rc->value >= scale) {
-rc->value -= scale;
-rc->range -= scale;
-k = 0;
-} else {
-rc->range = scale;
-k = 1;
-}
-opus_rc_normalize(rc);
-return k;
-}
-
-/**
- * CELT: estimate bits of entropy that have thus far been consumed for the
- *   current CELT frame, to integer and fractional (1/8th bit) precision
- */
-static av_always_inline unsigned int opus_rc_tell(const OpusRangeCoder *rc)
-{
-return rc->total_read_bits - av_log2(rc->range) - 1;
-}
-
-static av_always_inline unsigned int opus_rc_tell_frac(const OpusRangeCoder 
*rc)
-{
-unsigned int i, total_bits, rcbuffer, range;
-
-total_bits = rc->total_read_bits << 3;
-

[FFmpeg-cvslog] avformat/mov: Read multiple stsd from DV

2016-11-08 Thread Vittorio Giovara
ffmpeg | branch: master | Vittorio Giovara  | Mon 
Nov  7 22:32:05 2016 -0500| [a765ba647d3d5ecb7270011693cb5b171f9afd01] | 
committer: Michael Niedermayer

avformat/mov: Read multiple stsd from DV

Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a765ba647d3d5ecb7270011693cb5b171f9afd01
---

 libavformat/mov.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavformat/mov.c b/libavformat/mov.c
index f06de06..ca978c2 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -2213,6 +2213,8 @@ static int mov_skip_multiple_stsd(MOVContext *c, 
AVIOContext *pb,
  (codec_tag != format &&
   // prores is allowed to have differing data format and codec tag
   codec_tag != AV_RL32("apcn") && codec_tag != AV_RL32("apch") &&
+  // so is dv (sigh)
+  codec_tag != AV_RL32("dvpp") && codec_tag != AV_RL32("dvcp") &&
   (c->fc->video_codec_id ? video_codec_id != c->fc->video_codec_id
  : codec_tag != MKTAG('j','p','e','g' {
 /* Multiple fourcc, we skip JPEG. This is not correct, we should

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] ffserver: use .codecpar instead of .codec in print_stream_params()

2016-11-08 Thread Reynaldo H. Verdejo Pinochet
ffmpeg | branch: master | Reynaldo H. Verdejo Pinochet 
 | Tue Nov  8 00:49:43 2016 -0800| 
[689f648a9596fc1a47a719b20d7e9d67eb388d73] | committer: Michael Niedermayer

ffserver: use .codecpar instead of .codec in print_stream_params()

AVStream.codec is deprecated

Signed-off-by: Reynaldo H. Verdejo Pinochet 
Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=689f648a9596fc1a47a719b20d7e9d67eb388d73
---

 ffserver.c | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/ffserver.c b/ffserver.c
index bbeca35..ed8cb2f 100644
--- a/ffserver.c
+++ b/ffserver.c
@@ -1880,21 +1880,21 @@ static inline void print_stream_params(AVIOContext *pb, 
FFServerStream *stream)
 
 for (i = 0; i < stream_no; i++) {
 st = stream->streams[i];
-codec = avcodec_find_encoder(st->codec->codec_id);
+codec = avcodec_find_encoder(st->codecpar->codec_id);
 
 parameters[0] = 0;
 
-switch(st->codec->codec_type) {
+switch(st->codecpar->codec_type) {
 case AVMEDIA_TYPE_AUDIO:
 type = "audio";
 snprintf(parameters, sizeof(parameters), "%d channel(s), %d Hz",
- st->codec->channels, st->codec->sample_rate);
+ st->codecpar->channels, st->codecpar->sample_rate);
 break;
 case AVMEDIA_TYPE_VIDEO:
 type = "video";
 snprintf(parameters, sizeof(parameters),
- "%dx%d, q=%d-%d, fps=%d", st->codec->width,
- st->codec->height, st->codec->qmin, st->codec->qmax,
+ "%dx%d, q=%d-%d, fps=%d", st->codecpar->width,
+ st->codecpar->height, st->codec->qmin, st->codec->qmax,
  st->codec->time_base.den / st->codec->time_base.num);
 break;
 default:

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] ffserver: use AVStream.codecpar in open_input_stream()

2016-11-08 Thread Reynaldo H. Verdejo Pinochet
ffmpeg | branch: master | Reynaldo H. Verdejo Pinochet 
 | Tue Nov  8 01:34:58 2016 -0800| 
[6f0a1710d77dde0d803861506a2157a23f08c14c] | committer: Michael Niedermayer

ffserver: use AVStream.codecpar in open_input_stream()

AVStream.codec is deprecated

Signed-off-by: Reynaldo H. Verdejo Pinochet 
Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6f0a1710d77dde0d803861506a2157a23f08c14c
---

 ffserver.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ffserver.c b/ffserver.c
index 01f311d..3007e2d 100644
--- a/ffserver.c
+++ b/ffserver.c
@@ -2213,7 +2213,7 @@ static int open_input_stream(HTTPContext *c, const char 
*info)
 c->pts_stream_index = 0;
 for(i=0;istream->nb_streams;i++) {
 if (c->pts_stream_index == 0 &&
-c->stream->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
+c->stream->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) 
{
 c->pts_stream_index = i;
 }
 }

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] ffserver: user AVStream.codecpar in compute_status()

2016-11-08 Thread Reynaldo H. Verdejo Pinochet
ffmpeg | branch: master | Reynaldo H. Verdejo Pinochet 
 | Tue Nov  8 01:07:14 2016 -0800| 
[822e3e2ddb8a122130047451276cda2b1b5e5e7f] | committer: Michael Niedermayer

ffserver: user AVStream.codecpar in compute_status()

AVStream.codec is deprecated

Signed-off-by: Reynaldo H. Verdejo Pinochet 
Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=822e3e2ddb8a122130047451276cda2b1b5e5e7f
---

 ffserver.c | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/ffserver.c b/ffserver.c
index 63c408b..01f311d 100644
--- a/ffserver.c
+++ b/ffserver.c
@@ -1990,11 +1990,11 @@ static void compute_status(HTTPContext *c)
 
 for(i=0;inb_streams;i++) {
 AVStream *st = stream->streams[i];
-AVCodec *codec = avcodec_find_encoder(st->codec->codec_id);
+AVCodec *codec = avcodec_find_encoder(st->codecpar->codec_id);
 
-switch(st->codec->codec_type) {
+switch(st->codecpar->codec_type) {
 case AVMEDIA_TYPE_AUDIO:
-audio_bit_rate += st->codec->bit_rate;
+audio_bit_rate += st->codecpar->bit_rate;
 if (codec) {
 if (*audio_codec_name)
 audio_codec_name_extra = "...";
@@ -2002,7 +2002,7 @@ static void compute_status(HTTPContext *c)
 }
 break;
 case AVMEDIA_TYPE_VIDEO:
-video_bit_rate += st->codec->bit_rate;
+video_bit_rate += st->codecpar->bit_rate;
 if (codec) {
 if (*video_codec_name)
 video_codec_name_extra = "...";
@@ -2010,7 +2010,7 @@ static void compute_status(HTTPContext *c)
 }
 break;
 case AVMEDIA_TYPE_DATA:
-video_bit_rate += st->codec->bit_rate;
+video_bit_rate += st->codecpar->bit_rate;
 break;
 default:
 abort();
@@ -2107,9 +2107,9 @@ static void compute_status(HTTPContext *c)
 if (c1->stream) {
 for (j = 0; j < c1->stream->nb_streams; j++) {
 if (!c1->stream->feed)
-bitrate += c1->stream->streams[j]->codec->bit_rate;
+bitrate += c1->stream->streams[j]->codecpar->bit_rate;
 else if (c1->feed_streams[j] >= 0)
-bitrate += 
c1->stream->feed->streams[c1->feed_streams[j]]->codec->bit_rate;
+bitrate += 
c1->stream->feed->streams[c1->feed_streams[j]]->codecpar->bit_rate;
 }
 }
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] ffserver: get time_base from AVStream in print_stream_params()

2016-11-08 Thread Reynaldo H. Verdejo Pinochet
ffmpeg | branch: master | Reynaldo H. Verdejo Pinochet 
 | Tue Nov  8 00:51:28 2016 -0800| 
[1323349befd3f55bef2f9e46168f17a53f8f6d4a] | committer: Michael Niedermayer

ffserver: get time_base from AVStream in print_stream_params()

AVStream.codec is deprecated

Signed-off-by: Reynaldo H. Verdejo Pinochet 
Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1323349befd3f55bef2f9e46168f17a53f8f6d4a
---

 ffserver.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ffserver.c b/ffserver.c
index ed8cb2f..65280d2 100644
--- a/ffserver.c
+++ b/ffserver.c
@@ -1895,7 +1895,7 @@ static inline void print_stream_params(AVIOContext *pb, 
FFServerStream *stream)
 snprintf(parameters, sizeof(parameters),
  "%dx%d, q=%d-%d, fps=%d", st->codecpar->width,
  st->codecpar->height, st->codec->qmin, st->codec->qmax,
- st->codec->time_base.den / st->codec->time_base.num);
+ st->time_base.den / st->time_base.num);
 break;
 default:
 abort();
@@ -1903,7 +1903,7 @@ static inline void print_stream_params(AVIOContext *pb, 
FFServerStream *stream)
 
 avio_printf(pb, "%d%s%"PRId64
 "%s%s\n",
-i, type, (int64_t)st->codec->bit_rate/1000,
+i, type, (int64_t)st->codecpar->bit_rate/1000,
 codec ? codec->name : "", parameters);
  }
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog