mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-26 07:56:38 +00:00
Merge branch 'master' into 0.11
Conflicts: gst-libs/gst/rtp/gstbasertpdepayload.c
This commit is contained in:
commit
3ea2bc3ab0
4 changed files with 17 additions and 16 deletions
|
@ -77,9 +77,20 @@ Telecine
|
||||||
If the caps have interlaced=true and interlacing-method=telecine then the
|
If the caps have interlaced=true and interlacing-method=telecine then the
|
||||||
buffers are in some form of telecine state.
|
buffers are in some form of telecine state.
|
||||||
|
|
||||||
The TFF, RFF and ONEFIELD flags have the same semantics as for the plain
|
The TFF and ONEFIELD flags have the same semantics as for the plain interlaced
|
||||||
interlaced state, however, for the telecine state require one additional flag to
|
state.
|
||||||
be able to identify progressive buffers.
|
|
||||||
|
GST_VIDEO_BUFFER_RFF in the telecine state indicates that the buffer contains
|
||||||
|
only repeated fields that are present in other buffers and are as such
|
||||||
|
unneeded. For example, in a sequence of three telecined frames, we might have:
|
||||||
|
|
||||||
|
AtAb AtBb BtBb
|
||||||
|
|
||||||
|
In this situation, we only need the first and third buffers as the second
|
||||||
|
buffer contains fields present in the first and third.
|
||||||
|
|
||||||
|
The telecine state require one additional flag to be able to identify
|
||||||
|
progressive buffers.
|
||||||
|
|
||||||
GST_VIDEO_BUFFER_PROGRESSIVE means that the buffer containing two fields is a
|
GST_VIDEO_BUFFER_PROGRESSIVE means that the buffer containing two fields is a
|
||||||
progressive frame. The implication is that if this flag is not set, the buffer
|
progressive frame. The implication is that if this flag is not set, the buffer
|
||||||
|
|
|
@ -271,7 +271,7 @@ gst_base_rtp_depayload_chain (GstPad * pad, GstBuffer * in)
|
||||||
GstClockTime timestamp;
|
GstClockTime timestamp;
|
||||||
guint16 seqnum;
|
guint16 seqnum;
|
||||||
guint32 rtptime;
|
guint32 rtptime;
|
||||||
gboolean reset_seq, discont;
|
gboolean discont;
|
||||||
gint gap;
|
gint gap;
|
||||||
GstRTPBuffer rtp;
|
GstRTPBuffer rtp;
|
||||||
|
|
||||||
|
@ -303,7 +303,6 @@ gst_base_rtp_depayload_chain (GstPad * pad, GstBuffer * in)
|
||||||
rtptime = gst_rtp_buffer_get_timestamp (&rtp);
|
rtptime = gst_rtp_buffer_get_timestamp (&rtp);
|
||||||
gst_rtp_buffer_unmap (&rtp);
|
gst_rtp_buffer_unmap (&rtp);
|
||||||
|
|
||||||
reset_seq = TRUE;
|
|
||||||
discont = FALSE;
|
discont = FALSE;
|
||||||
|
|
||||||
GST_LOG_OBJECT (filter, "discont %d, seqnum %u, rtptime %u, timestamp %"
|
GST_LOG_OBJECT (filter, "discont %d, seqnum %u, rtptime %u, timestamp %"
|
||||||
|
@ -551,11 +550,8 @@ static GstFlowReturn
|
||||||
gst_base_rtp_depayload_prepare_push (GstBaseRTPDepayload * filter,
|
gst_base_rtp_depayload_prepare_push (GstBaseRTPDepayload * filter,
|
||||||
gboolean do_ts, guint32 rtptime, gboolean is_list, gpointer obj)
|
gboolean do_ts, guint32 rtptime, gboolean is_list, gpointer obj)
|
||||||
{
|
{
|
||||||
GstBaseRTPDepayloadPrivate *priv;
|
|
||||||
HeaderData data;
|
HeaderData data;
|
||||||
|
|
||||||
priv = filter->priv;
|
|
||||||
|
|
||||||
data.depayload = filter;
|
data.depayload = filter;
|
||||||
data.caps = GST_PAD_CAPS (filter->srcpad);
|
data.caps = GST_PAD_CAPS (filter->srcpad);
|
||||||
data.rtptime = rtptime;
|
data.rtptime = rtptime;
|
||||||
|
|
|
@ -1338,7 +1338,6 @@ gst_rtp_buffer_add_extension_onebyte_header (GstRTPBuffer * rtp, guint8 id,
|
||||||
guint8 *pdata;
|
guint8 *pdata;
|
||||||
guint wordlen;
|
guint wordlen;
|
||||||
gboolean has_bit;
|
gboolean has_bit;
|
||||||
guint bytelen;
|
|
||||||
|
|
||||||
g_return_val_if_fail (id > 0 && id < 15, FALSE);
|
g_return_val_if_fail (id > 0 && id < 15, FALSE);
|
||||||
g_return_val_if_fail (size >= 1 && size <= 16, FALSE);
|
g_return_val_if_fail (size >= 1 && size <= 16, FALSE);
|
||||||
|
@ -1347,8 +1346,6 @@ gst_rtp_buffer_add_extension_onebyte_header (GstRTPBuffer * rtp, guint8 id,
|
||||||
has_bit = gst_rtp_buffer_get_extension_data (rtp, &bits,
|
has_bit = gst_rtp_buffer_get_extension_data (rtp, &bits,
|
||||||
(gpointer) & pdata, &wordlen);
|
(gpointer) & pdata, &wordlen);
|
||||||
|
|
||||||
bytelen = wordlen * 4;
|
|
||||||
|
|
||||||
if (has_bit) {
|
if (has_bit) {
|
||||||
gulong offset = 0;
|
gulong offset = 0;
|
||||||
guint8 *nextext;
|
guint8 *nextext;
|
||||||
|
@ -1462,7 +1459,6 @@ gst_rtp_buffer_add_extension_twobytes_header (GstRTPBuffer * rtp,
|
||||||
guint8 *pdata;
|
guint8 *pdata;
|
||||||
guint wordlen;
|
guint wordlen;
|
||||||
gboolean has_bit;
|
gboolean has_bit;
|
||||||
guint bytelen;
|
|
||||||
|
|
||||||
g_return_val_if_fail ((appbits & 0xF0) == 0, FALSE);
|
g_return_val_if_fail ((appbits & 0xF0) == 0, FALSE);
|
||||||
g_return_val_if_fail (size < 256, FALSE);
|
g_return_val_if_fail (size < 256, FALSE);
|
||||||
|
@ -1471,8 +1467,6 @@ gst_rtp_buffer_add_extension_twobytes_header (GstRTPBuffer * rtp,
|
||||||
has_bit = gst_rtp_buffer_get_extension_data (rtp, &bits,
|
has_bit = gst_rtp_buffer_get_extension_data (rtp, &bits,
|
||||||
(gpointer) & pdata, &wordlen);
|
(gpointer) & pdata, &wordlen);
|
||||||
|
|
||||||
bytelen = wordlen * 4;
|
|
||||||
|
|
||||||
if (has_bit) {
|
if (has_bit) {
|
||||||
gulong offset = 0;
|
gulong offset = 0;
|
||||||
guint8 *nextext;
|
guint8 *nextext;
|
||||||
|
|
|
@ -707,14 +707,14 @@ gst_video_format_new_caps_raw (GstVideoFormat format)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bpp > 8) {
|
if (bpp <= 8) {
|
||||||
caps = gst_caps_new_simple ("video/x-raw-gray",
|
caps = gst_caps_new_simple ("video/x-raw-gray",
|
||||||
"bpp", G_TYPE_INT, bpp, "depth", G_TYPE_INT, depth, NULL);
|
"bpp", G_TYPE_INT, bpp, "depth", G_TYPE_INT, depth, NULL);
|
||||||
} else {
|
} else {
|
||||||
caps = gst_caps_new_simple ("video/x-raw-gray",
|
caps = gst_caps_new_simple ("video/x-raw-gray",
|
||||||
"bpp", G_TYPE_INT, bpp,
|
"bpp", G_TYPE_INT, bpp,
|
||||||
"depth", G_TYPE_INT, depth,
|
"depth", G_TYPE_INT, depth,
|
||||||
"endianness", G_TYPE_INT, G_BIG_ENDIAN, NULL);
|
"endianness", G_TYPE_INT, endianness, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
return caps;
|
return caps;
|
||||||
|
|
Loading…
Reference in a new issue