GNOME Bugzilla – Bug 652961
[basevideoencoder] Set the 'force_keyframe' field to TRUE when a forced keyframe is required
Last modified: 2011-06-29 09:54:55 UTC
Created attachment 190232 [details] [review] gst_base_video_encoder_finish_frame When a forced-keyframe is required, the frame should be be initialized with 'frame->force-keyframe=TRUE'. This way the GstForceKeyUnit event is then forwarded properly in gst_base_video_encoder_finish_frame()
Looks good, push it.
Review of attachment 190232 [details] [review]: ::: gst-libs/gst/video/gstbasevideoencoder.c @@ +431,3 @@ + if (base_video_encoder->force_keyframe) { + frame->force_keyframe = TRUE; + base_video_encoder->force_keyframe = FALSE; This should be protected with the object lock (GST_OBJECT_LOCK/UNLOCK)
Others variables are also modified in the same function without the lock, as well as in finish_frame or set_latency. Shouldn't they be protected with the object lock too? In encoder_chain, should the lock be extended to handle_frame too so that subclasses doesn't need to worry about too?
Ths patch is now obsolete after this commit: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=16c6a49bd44e2389162ac3d67d7fd24f6f43df43