diff options
author | Stian Selnes <stian@pexip.com> | 2014-12-01 16:18:40 +0300 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2015-07-03 13:48:41 +0300 |
commit | ef8d630a5983e7708321e2fad786d167c2a68da9 (patch) | |
tree | 950115615873026ec518e896f38f28eb714db3bd /tests/check/elements | |
parent | 9dfae82566ac5d3e5c2bce59614cfd9278cc9a03 (diff) |
rtp: add H.261 RTP payloader and depayloader
Implementation according to RFC 4587.
Payloader create fragments on MB boundaries in order to match MTU size
the best it can. Some decoders/depayloaders in the wild are very strict
about receiving a continuous bit-stream (e.g. no no-op bits between
frames), so the payloader will shift the compressed bit-stream of a
frame to align with the last significant bit of the previous frame.
Depayloader does not try to be fancy in case of packet loss. It simply
drops all packets for a frame if there is a loss, keeping it simple.
https://bugzilla.gnome.org/show_bug.cgi?id=751886
Diffstat (limited to 'tests/check/elements')
-rw-r--r-- | tests/check/elements/rtp-payloading.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/check/elements/rtp-payloading.c b/tests/check/elements/rtp-payloading.c index 7dc9ce07c..d11f2e406 100644 --- a/tests/check/elements/rtp-payloading.c +++ b/tests/check/elements/rtp-payloading.c @@ -464,6 +464,22 @@ GST_START_TEST (rtp_mpa) } GST_END_TEST; + +static const guint8 rtp_h261_frame_data[] = { + 0x00, 0x01, 0x00, 0x06, 0x00, 0x01, 0x11, 0x00, 0x00, 0x4c, 0x40, 0x00, + 0x15, 0x10, +}; +static int rtp_h261_frame_data_size = 14; +static int rtp_h261_frame_count = 1; + +GST_START_TEST (rtp_h261) +{ + rtp_pipeline_test (rtp_h261_frame_data, rtp_h261_frame_data_size, + rtp_h261_frame_count, "video/x-h261", "rtph261pay", "rtph261depay", + 0, 0, FALSE); +} +GST_END_TEST; + static const guint8 rtp_h263_frame_data[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 @@ -945,6 +961,7 @@ rtp_payloading_suite (void) tcase_add_test (tc_chain, rtp_pcma); tcase_add_test (tc_chain, rtp_pcmu); tcase_add_test (tc_chain, rtp_mpa); + tcase_add_test (tc_chain, rtp_h261); tcase_add_test (tc_chain, rtp_h263); tcase_add_test (tc_chain, rtp_h263p); tcase_add_test (tc_chain, rtp_h264); |