[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