1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
From c782a30482908a4b4dd9cd4abff9f9bc4016698f Mon Sep 17 00:00:00 2001
From: Song Bing <b06498@freescale.com>
Date: Tue, 5 Aug 2014 14:40:46 +0800
Subject: [PATCH] gstrtpmp4gpay: set dafault value for MPEG4 without codec
data in caps.
https://bugzilla.gnome.org/show_bug.cgi?id=734263
Upstream-Status: Submitted
Signed-off-by: Song Bing <b06498@freescale.com>
---
gst/rtp/gstrtpmp4gpay.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/gst/rtp/gstrtpmp4gpay.c b/gst/rtp/gstrtpmp4gpay.c
index 7913d9a..1749d39 100644
--- a/gst/rtp/gstrtpmp4gpay.c
+++ b/gst/rtp/gstrtpmp4gpay.c
@@ -391,6 +391,7 @@ gst_rtp_mp4g_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
const GValue *codec_data;
const gchar *media_type = NULL;
gboolean res;
+ const gchar *name;
rtpmp4gpay = GST_RTP_MP4G_PAY (payload);
@@ -401,7 +402,6 @@ gst_rtp_mp4g_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
GST_LOG_OBJECT (rtpmp4gpay, "got codec_data");
if (G_VALUE_TYPE (codec_data) == GST_TYPE_BUFFER) {
GstBuffer *buffer;
- const gchar *name;
buffer = gst_value_get_buffer (codec_data);
GST_LOG_OBJECT (rtpmp4gpay, "configuring codec_data");
@@ -427,6 +427,23 @@ gst_rtp_mp4g_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
rtpmp4gpay->config = gst_buffer_copy (buffer);
}
+ } else {
+ name = gst_structure_get_name (structure);
+
+ if (!strcmp (name, "video/mpeg")) {
+ rtpmp4gpay->profile = g_strdup ("1");
+
+ /* fixed rate */
+ rtpmp4gpay->rate = 90000;
+ /* video stream type */
+ rtpmp4gpay->streamtype = "4";
+ /* no params for video */
+ rtpmp4gpay->params = NULL;
+ /* mode */
+ rtpmp4gpay->mode = "generic";
+
+ media_type = "video";
+ }
}
if (media_type == NULL)
goto config_failed;
--
1.7.9.5
|