[Bug 724103] Libav fails to encode buffer due to invalid timestamps

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Feb 12 07:13:00 PST 2014


https://bugzilla.gnome.org/show_bug.cgi?id=724103
  GStreamer | gst-libav | git

Dmitry <dmitry.m> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEEDINFO                    |UNCONFIRMED

--- Comment #3 from Dmitry <dmitry.m at samsung.com> 2014-02-12 15:12:55 UTC ---
Looks like that my problem is different one. I'm trying to encode video with
fixed fps. In given sample I use 10 fps so my timebase is 1/10 which is
correct,
and gst timestamp in nanosecs is correct as well.

According to ffmpeg docs (
http://ffmpeg.org/doxygen/trunk/structAVCodecContext.html#ab7bfeb9fa5840aac090e2b0bd0ef7589
) there should be several conditions passed:
1. timebase should be 1/framerate (passed in this case)
2. timestamp increments should be identically 1 (which is not passed)

So problem is:
avvidenc should know that fixed-fps mode is used for encoding and properly
handle this case in gst_ffmpegvidenc_handle_frame (maybe some other places)

Possible solutions:
1. add property to notify encoder that fixed-fps mode is required
2. drop not-needed frames using some other approach
3. pass frames to libav so libav will drop frames by itself

Additional notes:
videorate is used before encoder in pipeline, it doesn't generate monotonically
increased timestamps with step 0.1 in my case so after rounding ts are
duplicated

-- 
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