payload[1] = NF;
payload_len -= 2;
- if (avail == payload_len)
+ if (avail == payload_len) {
gst_rtp_buffer_set_marker (&rtp, TRUE);
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
+ }
gst_rtp_buffer_unmap (&rtp);
payload_buffer =
if (GST_BUFFER_IS_DISCONT (buffer)) {
GST_DEBUG_OBJECT (basepayload, "discont, setting marker bit");
GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
gst_rtp_buffer_set_marker (&rtp, TRUE);
gst_rtp_amr_pay_recalc_rtp_time (rtpamrpay, timestamp);
}
/* set marker */
gst_rtp_buffer_set_marker (&rtp, TRUE);
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
/* shrink buffer to last packet */
hlen = gst_rtp_buffer_get_header_len (&rtp);
/* set discont and marker */
if (pay->discont) {
GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
gst_rtp_buffer_set_marker (&rtp, TRUE);
pay->discont = FALSE;
}
if (G_UNLIKELY (rtpg729pay->discont)) {
GST_DEBUG_OBJECT (basepayload, "discont, setting marker bit");
GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
gst_rtp_buffer_set_marker (&rtp, TRUE);
rtpg729pay->discont = FALSE;
}
frag_offset += payload_len;
avail -= payload_len;
- if (avail == 0)
+ if (avail == 0) {
gst_rtp_buffer_set_marker (&rtp, TRUE);
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
+ }
gst_rtp_buffer_unmap (&rtp);
bits + GST_ROUND_DOWN_8 (start) / 8, nbytes);
GST_BUFFER_TIMESTAMP (outbuf) = pay->timestamp;
+ if (marker)
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
gst_rtp_buffer_set_marker (&rtp, marker);
pay->offset = end & 7;
GST_BUFFER_PTS (package->outbuf) = rtph263pay->first_ts;
gst_rtp_buffer_set_marker (&rtp, package->marker);
- if (package->marker)
+ if (package->marker) {
+ GST_BUFFER_FLAG_SET (package->outbuf, GST_BUFFER_FLAG_MARKER);
GST_DEBUG_OBJECT (rtph263pay, "Marker set!");
+ }
gst_rtp_buffer_unmap (&rtp);
gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
/* last fragment gets the marker bit set */
gst_rtp_buffer_set_marker (&rtp, avail > towrite ? 0 : 1);
+ if (avail <= towrite)
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
payload = gst_rtp_buffer_get_payload (&rtp);
/* If it's the last fragment and the end of this au, mark the end of
* slice */
gst_rtp_buffer_set_marker (&rtp, last_fragment && end_of_au);
+ if (last_fragment && end_of_au)
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
/* FU indicator */
payload[0] = (nal_header & 0x60) | FU_A_TYPE_ID;
/* Mark the end of a frame */
gst_rtp_buffer_set_marker (&rtp, end_of_au);
+ if (end_of_au)
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
/* timestamp the outbuffer */
GST_BUFFER_PTS (outbuf) = pts;
/* Mark the end of a frame */
gst_rtp_buffer_set_marker (&rtp, marker);
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
/* timestamp the outbuffer */
GST_BUFFER_PTS (outbuf) = pts;
/* If it's the last fragment and the end of this au, mark the end of
* slice */
gst_rtp_buffer_set_marker (&rtp, last_fragment && marker);
+ if (last_fragment && marker)
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
/* FU Header */
payload[2] = (first_fragment << 7) | (last_fragment << 6) |
/* reached the end of a packetization unit */
if (pu_size == 0 && end >= map.size) {
gst_rtp_buffer_set_marker (&rtp, TRUE);
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
}
/* If we were processing a header, see if all fits in one RTP packet
or if we have to fragment it */
GST_LOG_OBJECT (pay, "last packet of frame");
frame_done = TRUE;
gst_rtp_buffer_set_marker (&rtp, 1);
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
}
payload = gst_rtp_buffer_get_payload (&rtp);
gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
gst_rtp_buffer_set_marker (&rtp, 1);
gst_rtp_buffer_unmap (&rtp);
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
}
GST_LOG_OBJECT (pay, "packet with payload size %u", payload_size);
/* marker only if the packet is complete */
gst_rtp_buffer_set_marker (&rtp, size == payload_len);
+ if (size == payload_len)
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
gst_rtp_buffer_unmap (&rtp);
/* marker only if the packet is complete */
gst_rtp_buffer_set_marker (&rtp, avail <= payload_len);
+ if (avail <= payload_len)
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
gst_rtp_buffer_unmap (&rtp);
gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
gst_rtp_buffer_set_marker (&rtp, avail == 0);
+ if (avail == 0)
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
gst_rtp_buffer_unmap (&rtp);
gst_rtp_copy_video_meta (rtpmp4vpay, outbuf, outbuf_data);
outbuf = gst_buffer_append (outbuf, outbuf_data);
avail -= payload_len;
frag_offset += payload_len;
- if (avail == 0)
+ if (avail == 0) {
gst_rtp_buffer_set_marker (&rtp, TRUE);
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
+ }
gst_rtp_buffer_unmap (&rtp);
avail -= payload_len;
gst_rtp_buffer_set_marker (&rtp, avail == 0);
+ if (avail == 0)
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_MARKER);
gst_rtp_buffer_unmap (&rtp);
paybuf = gst_adapter_take_buffer_fast (rtpmpvpay->adapter, payload_len);
/* Timestamps, meta, flags from the RED packet should go to main block packet */
gst_buffer_copy_into (ret, red_rtp->buffer, GST_BUFFER_COPY_METADATA, 0, -1);
+ if (marker)
+ GST_BUFFER_FLAG_SET (ret, GST_BUFFER_FLAG_MARKER);
return ret;
}
}
gst_rtp_buffer_set_marker (&rtpbuffer, mark);
+ if (mark)
+ GST_BUFFER_FLAG_SET (out, GST_BUFFER_FLAG_MARKER);
gst_rtp_buffer_unmap (&rtpbuffer);
g_assert_cmpint (off, ==, hdrlen);
gst_rtp_buffer_set_marker (&rtpbuffer, mark);
+ if (mark)
+ GST_BUFFER_FLAG_SET (out, GST_BUFFER_FLAG_MARKER);
gst_rtp_buffer_unmap (&rtpbuffer);
if (line >= height) {
GST_LOG_OBJECT (rtpvrawpay, "field/frame complete, set marker");
gst_rtp_buffer_set_marker (&rtp, TRUE);
+ GST_BUFFER_FLAG_SET (out, GST_BUFFER_FLAG_MARKER);
complete = TRUE;
}
gst_rtp_buffer_unmap (&rtp);
g_assert_not_reached ();
gst_rtp_buffer_set_marker (&rtp, marker);
+ if (marker)
+ GST_BUFFER_FLAG_SET (ret, GST_BUFFER_FLAG_MARKER);
gst_rtp_buffer_set_payload_type (&rtp, pt);
gst_rtp_buffer_set_seq (&rtp, seq);
gst_rtp_buffer_set_timestamp (&rtp, timestamp);
bufout = gst_harness_push_and_pull (h, bufinp);
fail_unless (gst_rtp_buffer_map (bufout, GST_MAP_READ, &rtp));
fail_unless_equals_int (GST_BUFFER_TIMESTAMP (bufout), gst_ts);
- fail_unless_equals_int (GST_BUFFER_FLAGS (bufout), bufinp_flags);
+ fail_unless_equals_int (GST_BUFFER_FLAGS (bufout),
+ bufinp_flags | GST_BUFFER_FLAG_MARKER);
fail_unless_equals_int (gst_buffer_get_size (bufout),
gst_rtp_buffer_calc_packet_len (sizeof (out_data), 0, csrc_count));
fail_unless_equals_int (gst_rtp_buffer_get_timestamp (&rtp),