add refresh message

Add a new refresh message to request a keyframe from the pinos server.
pinospay: pass the refresh-request message upstream
pinossink: turn refresh-request messages into events
pinossrc: turn a keyframe event into a refresh-request message
This commit is contained in:
Wim Taymans 2016-04-13 13:04:32 +02:00
parent 833168c3cf
commit d5e333ac4b
7 changed files with 212 additions and 3 deletions

View file

@ -41,6 +41,7 @@
#include <gio/gunixfdmessage.h>
#include <gst/allocators/gstfdmemory.h>
#include <gst/video/video.h>
#include "gsttmpfileallocator.h"
@ -290,7 +291,19 @@ on_new_buffer (GObject *gobject,
g_hash_table_remove (pinossink->fdids, GINT_TO_POINTER (p.id));
break;
}
case PINOS_PACKET_TYPE_REFRESH_REQUEST:
{
PinosPacketRefreshRequest p;
if (!pinos_buffer_iter_parse_refresh_request (&it, &p))
continue;
GST_LOG ("refresh request");
gst_pad_push_event (GST_BASE_SINK_PAD (pinossink),
gst_video_event_new_upstream_force_key_unit (p.pts,
p.request_type == 1, 0));
break;
}
default:
break;
}