Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Thompson <sw@jkqxz.net>2018-02-11 20:33:15 +0300
committerMark Thompson <sw@jkqxz.net>2018-02-21 01:04:12 +0300
commiteccc03c8fbc603a0a3257df66f0705f74fe2581a (patch)
tree2aa342f4439eaf4d31f9891104eb2d6355dd0c3e /libavcodec/cbs_h264_syntax_template.c
parent7157d959264f3729da463725c6faa580d9394d19 (diff)
cbs_h264: Add support for filler NAL units
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 29e9735987..1aa7888584 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 (bitstream_peek(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;
+}