Bug#892176: yorick-av: Need to set VBV buffer size for MPEG1/2 files
Thibaut Paumard
thibaut at debian.org
Tue Mar 6 12:43:29 UTC 2018
Package: yorick-av
Version: 0.0.4-1
Severity: normal
Tags: patch
Dear self,
FFmpeg complains (warnings) about unset VBV buffer size and buffer overflows
when produgin MPEG 1 (.mpg) or MPEG2 (.vob) files. The resulting files may then
play sluggishly (or not at all, i.e. frozen on first frame) at least in VLC.
This patch sets an appropriate buffer size.
Regards, self.
-- System Information:
Debian Release: 9.3
APT prefers stable-updates
APT policy: (900, 'stable-updates'), (900, 'stable'), (500, 'stable-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.9.0-5-amd64 (SMP w/8 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages yorick-av depends on:
ii libavcodec57 7:3.2.10-1~deb9u1
ii libavformat57 7:3.2.10-1~deb9u1
ii libavutil55 7:3.2.10-1~deb9u1
ii libc6 2.24-11+deb9u1
ii libswscale4 7:3.2.10-1~deb9u1
ii yorick 2.2.04+dfsg1-6+b1
yorick-av recommends no packages.
yorick-av suggests no packages.
-- no debconf information
-------------- next part --------------
Description: Set VBV buffer size for MPEG1/2 files
FFmpeg emits warnings when producing MPEG1/2 files and the VBV buffer
size has not been set. The output files may then play sluggishly in
VLC. This backported patch sets a VBV buffer size sufficient to hold
one frame.
Author: Thibaut Paumard <thibaut at debian.org>
Origin: backport
Bug-Debian: coming soon
Forwarded: not-needed
Applied-Upstream: 0.0.5
Last-Update: 2018-03-06
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/yav.c
+++ b/yav.c
@@ -259,6 +259,17 @@
void yav_opencodec(yav_ctxt *obj, unsigned int width, unsigned int height) {
obj->video_st->codec->width=width;
obj->video_st->codec->height=height;
+ if (obj->enc->codec_id == AV_CODEC_ID_MPEG1VIDEO ||
+ obj->enc->codec_id == AV_CODEC_ID_MPEG2VIDEO) {
+ AVCPBProperties *props;
+ props = (AVCPBProperties*) av_stream_new_side_data
+ (obj->video_st, AV_PKT_DATA_CPB_PROPERTIES, sizeof(*props));
+ props->buffer_size = width*height*4;
+ props->max_bitrate = 0;
+ props->min_bitrate = 0;
+ props->avg_bitrate = 0;
+ props->vbv_delay = UINT64_MAX;
+ }
av_dump_format(obj->oc, 0, obj->oc->filename, 1);
if (obj->video_st) {
More information about the debian-science-maintainers
mailing list