[FFmpeg-devel] [PATCH 07/11] avformat/dashenc: logic to compute bitrate overhead

Jeyapal, Karthick kjeyapal at akamai.com
Mon Apr 2 07:27:55 EEST 2018



On 3/23/18 10:57 AM, vdixit at akamai.com wrote:
> From: Vishwanath Dixit <vdixit at akamai.com>
>
> ---
>  libavformat/dashenc.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
>
> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
> index d20bdba..0ba9f55 100644
> --- a/libavformat/dashenc.c
> +++ b/libavformat/dashenc.c
> @@ -86,6 +86,8 @@ typedef struct OutputStream {
>      char full_path[1024];
>      char temp_path[1024];
>      int64_t chunk_duration;
> +    int total_pkt_size;
> +    int bitrate_overhead;
Rename this variable to muxer_overhead, for easier understanding.
>  } OutputStream;
>  
>  typedef struct DASHContext {
> @@ -1209,6 +1211,13 @@ static int dash_flush(AVFormatContext *s, int final, int stream)
>              }
>          }
>  
> +        if (!os->bitrate_overhead)
> +            os->bitrate_overhead = ((int64_t) (range_length - os->total_pkt_size) *
> +                                    8 * AV_TIME_BASE) /
> +                                   av_rescale_q(os->max_pts - os->start_pts,
> +                                                st->time_base, AV_TIME_BASE_Q);
> +        os->total_pkt_size = 0;
> +
>          if (!os->bit_rate) {
>              // calculate average bitrate of first segment
>              int64_t bitrate = (int64_t) range_length * 8 * AV_TIME_BASE / av_rescale_q(os->max_pts - os->start_pts,
> @@ -1340,6 +1349,7 @@ static int dash_write_packet(AVFormatContext *s, AVPacket *pkt)
>      else
>          os->max_pts = FFMAX(os->max_pts, pkt->pts + pkt->duration);
>      os->packets_written++;
> +    os->total_pkt_size += pkt->size;
>      if ((ret = ff_write_chained(os->ctx, 0, pkt, s, 0)) < 0)
>          return ret;
>  





More information about the ffmpeg-devel mailing list