Changeset 243170 in webkit
- Timestamp:
- Mar 19, 2019 2:39:05 PM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r243169 r243170 1 2019-03-19 Thibault Saunier <tsaunier@igalia.com> 2 3 [GStreamer][WebRTC] Create sps/pps for all frames to please libwebrtc 4 https://bugs.webkit.org/show_bug.cgi?id=195677 5 6 Reviewed by Xabier Rodriguez-Calvar. 7 8 * platform/mediastream/libwebrtc/GStreamerVideoEncoder.cpp: 9 (gst_webrtc_video_encoder_set_format): 10 (register_known_encoder): 11 (setup_x264enc): 12 (setup_openh264enc): 13 (setup_omxh264enc): 14 (set_bitrate_bit_per_sec): 15 (gst_webrtc_video_encoder_class_init): 16 1 17 2019-03-19 Timothy Hatcher <timothy@apple.com> 2 18 -
trunk/Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoEncoder.cpp
r242894 r243170 44 44 typedef void (*SetBitrateFunc) (GObject * encoder, const gchar * propname, 45 45 gint bitrate); 46 typedef void (*Setup Encoder) (GObject * encoder);46 typedef void (*SetupFunc) (GstWebrtcVideoEncoder * self); 47 47 typedef struct 48 48 { … … 53 53 GstCaps *encoded_format; 54 54 SetBitrateFunc setBitrate; 55 Setup EncodersetupEncoder;55 SetupFunc setupEncoder; 56 56 const gchar *bitrate_propname; 57 57 const gchar *keyframe_interval_propname; … … 169 169 priv->encoderId = (EncoderId) i; 170 170 priv->encoder = gst_element_factory_make (encoders[i].name, NULL); 171 encoders[priv->encoderId].setupEncoder (G_OBJECT (priv->encoder));172 171 173 172 if (encoders[i].parser_name) 174 173 priv->parser = gst_element_factory_make (encoders[i].parser_name, NULL); 175 174 175 encoders[priv->encoderId].setupEncoder (self); 176 176 if (encoders[i].encoded_format) { 177 177 priv->capsfilter = gst_element_factory_make ("capsfilter", NULL); … … 246 246 register_known_encoder (EncoderId encId, const gchar * name, 247 247 const gchar * parser_name, const gchar * caps, const gchar * encoded_format, 248 Setup EncodersetupEncoder, const gchar * bitrate_propname,248 SetupFunc setupEncoder, const gchar * bitrate_propname, 249 249 SetBitrateFunc setBitrate, const gchar * keyframe_interval_propname) 250 250 { … … 274 274 275 275 static void 276 setup_x264enc (GObject * encoder) 277 { 278 gst_util_set_object_arg (encoder, "tune", "zerolatency"); 279 } 280 281 static void 282 setup_openh264enc (GObject *) 283 { 284 } 285 286 static void 287 setup_omxh264enc (GObject * encoder) 288 { 289 gst_util_set_object_arg (encoder, "control-rate", "constant"); 276 setup_x264enc (GstWebrtcVideoEncoder * self) 277 { 278 gst_util_set_object_arg (G_OBJECT (PRIV (self)->encoder), "tune", 279 "zerolatency"); 280 g_object_set (PRIV (self)->parser, "config-interval", 1, NULL); 281 } 282 283 static void 284 setup_openh264enc (GstWebrtcVideoEncoder * self) 285 { 286 g_object_set (PRIV (self)->parser, "config-interval", 1, NULL); 287 } 288 289 static void 290 setup_omxh264enc (GstWebrtcVideoEncoder * self) 291 { 292 gst_util_set_object_arg (G_OBJECT (PRIV (self)->encoder), "control-rate", 293 "variable"); 294 g_object_set (PRIV (self)->parser, "config-interval", 1, NULL); 290 295 } 291 296
Note: See TracChangeset
for help on using the changeset viewer.