123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- From 9413f4c11e0a64501ef44e5a69b2080fa6fafaf4 Mon Sep 17 00:00:00 2001
- From: Felipe Contreras <felipe.contreras@nokia.com>
- Date: Fri, 23 Oct 2009 18:56:15 +0300
- Subject: [PATCH] hack: h264enc: manually force keyframes
- The algorithm should be doing that.
- Suggestions by Mikhail Zabaluev. Fixes by Thiago Santos.
- Signed-off-by: Felipe Contreras <felipe.contreras@nokia.com>
- ---
- gstdspvenc.c | 5 +++++
- gstdspvenc.h | 1 +
- 2 files changed, 6 insertions(+), 0 deletions(-)
- diff --git a/gstdspvenc.c b/gstdspvenc.c
- index a2506de..9196140 100644
- --- a/gstdspvenc.c
- +++ b/gstdspvenc.c
- @@ -578,7 +578,12 @@ h264venc_in_send_cb(GstDspBase *base,
- self->keyframe_event = NULL;
- }
- g_mutex_unlock(self->keyframe_mutex);
- + param->force_i_frame |= self->force_i_frame_counter >=
- + self->keyframe_interval * self->framerate;
- + if (param->force_i_frame)
- + self->force_i_frame_counter = 0;
- dmm_buffer_clean(p, sizeof(*param));
- + self->force_i_frame_counter++;
- }
-
- static inline gboolean
- diff --git a/gstdspvenc.h b/gstdspvenc.h
- index 0e17c15..fe8a6cb 100644
- --- a/gstdspvenc.h
- +++ b/gstdspvenc.h
- @@ -62,6 +62,7 @@ struct GstDspVEnc {
- GMutex *keyframe_mutex;
- gint mode;
- gint keyframe_interval;
- + gint force_i_frame_counter;
- };
-
- struct GstDspVEncClass {
|