Quoting Luca Barbato (2016-12-15 19:01:03)
> The null demuxer does not have a backing AVIOContext.
> ---
>  avconv.c | 23 ++++++++++++-----------
>  1 file changed, 12 insertions(+), 11 deletions(-)
> 
> diff --git a/avconv.c b/avconv.c
> index 5c31332..fe60625 100644
> --- a/avconv.c
> +++ b/avconv.c
> @@ -909,7 +909,7 @@ static void print_report(int is_last_report, int64_t 
> timer_start)
>      char buf[1024];
>      OutputStream *ost;
>      AVFormatContext *oc;
> -    int64_t total_size;
> +    int64_t total_size = 0;
>      AVCodecContext *enc;
>      int frame_number, vid, i;
>      double bitrate, ti1, pts;
> @@ -934,16 +934,17 @@ static void print_report(int is_last_report, int64_t 
> timer_start)
>  
>  
>      oc = output_files[0]->ctx;
> -
> -    total_size = avio_size(oc->pb);
> -    if (total_size <= 0) // FIXME improve avio_size() so it works with non 
> seekable output too
> -        total_size = avio_tell(oc->pb);
> -    if (total_size < 0) {
> -        char errbuf[128];
> -        av_strerror(total_size, errbuf, sizeof(errbuf));
> -        av_log(NULL, AV_LOG_VERBOSE, "Bitrate not available, "
> -               "avio_tell() failed: %s\n", errbuf);
> -        total_size = 0;
> +    if (oc->pb) {
> +        total_size = avio_size(oc->pb);
> +        if (total_size <= 0) // FIXME improve avio_size() so it works with 
> non seekable output too
> +            total_size = avio_tell(oc->pb);
> +        if (total_size < 0) {
> +            char errbuf[128];
> +            av_strerror(total_size, errbuf, sizeof(errbuf));
> +            av_log(NULL, AV_LOG_VERBOSE, "Bitrate not available, "
> +                   "avio_tell() failed: %s\n", errbuf);
> +            total_size = 0;
> +        }
>      }
>  
>      buf[0] = '\0';
> -- 
> 2.9.2

The patch is fine with me, but more generally I'd say that as long as
the muxer is open, the AVIOContext belongs to it and the caller touching
it in any way is invalid.

-- 
Anton Khirnov
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to