[Bug 732631] New: Missing frames when encoding 16x16 video to MPEG
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Wed Jul 2 07:53:03 PDT 2014
https://bugzilla.gnome.org/show_bug.cgi?id=732631
GStreamer | gst-libav | git
Summary: Missing frames when encoding 16x16 video to MPEG
Classification: Platform
Product: GStreamer
Version: git
OS/Version: All
Status: NEW
Severity: normal
Priority: Normal
Component: gst-libav
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: vincent.penquerch at collabora.co.uk
QAContact: gstreamer-bugs at lists.freedesktop.org
CC: thiagossantos at gmail.com,
vincent.penquerch at collabora.co.uk
Depends on: 732351
GNOME version: ---
+++ This bug was initially created as a clone of Bug #732351 +++
When encoding 16x16 video to MPEG, a sanity check triggers in ffmpeg, which
causes frames to be not encoded.
To reproduce:
1) Create a 16x16 h264 file:
gst-launch-1.0 videotestsrc pattern=6 num-buffers=1000 ! \
"video/x-raw, format=(string)I420, width=(int)16, height=(int)16, \
framerate=(fraction)1/1" ! x264enc ! qtmux ! filesink location=/tmp/test.mov
2) Play this file:
gst-launch-1.0 playbin uri="file:///tmp/test.mov" video-sink=xvimagesink
3) See grey output, instead of the solid blue (pattern 6) we expected.
Tracing shows the encoding earlies out in libav from a sanity check on size
(which is apparently too strict):
gst-libs/ext/libav/libavcodec/mpegvideo_enc.c, function encode_thread:
if(s->pb.buf_end - s->pb.buf - (put_bits_count(&s->pb)>>3) <
MAX_MB_BYTES){
av_log(s->avctx, AV_LOG_ERROR, "encoded frame too large\n");
return -1;
}
Commenting out the return -1 above fixes the issue (albeit at the likely cost
of possible buffer overflow).
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list