summaryrefslogtreecommitdiffstats
path: root/libavcodec/cbs_h264_syntax_template.c
diff options
context:
space:
mode:
authorMark Thompson <sw@jkqxz.net>2018-02-21 22:43:13 +0000
committerMark Thompson <sw@jkqxz.net>2018-02-21 22:51:46 +0000
commitfbeac5356c692b6f681a21749dee3a3e414f1230 (patch)
tree7df69e22a39e82895418581ffc68b07c28a44658 /libavcodec/cbs_h264_syntax_template.c
parentab6edb173b365d9a787c2df3a45e3a018d7843d7 (diff)
parenteccc03c8fbc603a0a3257df66f0705f74fe2581a (diff)
downloadffmpeg-streaming-fbeac5356c692b6f681a21749dee3a3e414f1230.zip
ffmpeg-streaming-fbeac5356c692b6f681a21749dee3a3e414f1230.tar.gz
Merge commit 'eccc03c8fbc603a0a3257df66f0705f74fe2581a'
* commit 'eccc03c8fbc603a0a3257df66f0705f74fe2581a': cbs_h264: Add support for filler NAL units Some bitstream -> get_bits. Merged-by: Mark Thompson <sw@jkqxz.net>
Diffstat (limited to 'libavcodec/cbs_h264_syntax_template.c')
-rw-r--r--libavcodec/cbs_h264_syntax_template.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/libavcodec/cbs_h264_syntax_template.c b/libavcodec/cbs_h264_syntax_template.c
index 05370b8..f58dee8 100644
--- a/libavcodec/cbs_h264_syntax_template.c
+++ b/libavcodec/cbs_h264_syntax_template.c
@@ -1247,3 +1247,32 @@ static int FUNC(slice_header)(CodedBitstreamContext *ctx, RWContext *rw,
return 0;
}
+
+static int FUNC(filler)(CodedBitstreamContext *ctx, RWContext *rw,
+ H264RawFiller *current)
+{
+ av_unused int ff_byte = 0xff;
+ int err;
+
+ HEADER("Filler Data");
+
+ CHECK(FUNC(nal_unit_header)(ctx, rw, &current->nal_unit_header,
+ 1 << H264_NAL_FILLER_DATA));
+
+#ifdef READ
+ while (show_bits(rw, 8) == 0xff) {
+ xu(8, ff_byte, ff_byte, 0xff, 0xff);
+ ++current->filler_size;
+ }
+#else
+ {
+ uint32_t i;
+ for (i = 0; i < current->filler_size; i++)
+ xu(8, ff_byte, ff_byte, 0xff, 0xff);
+ }
+#endif
+
+ CHECK(FUNC(rbsp_trailing_bits)(ctx, rw));
+
+ return 0;
+}
OpenPOWER on IntegriCloud