summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2019-03-25 00:27:23 -0300
committerJames Almer <jamrial@gmail.com>2019-04-03 18:12:37 -0300
commitee16d14b0a29317f6118a209c4d0737b97b7f58f (patch)
tree76fbb893a512a871c48a9b0c7eb0ac5c02246d34
parent1125277bc64ebef1a7a6bee7349c7a8fab7fdcc7 (diff)
downloadffmpeg-ee16d14b0a29317f6118a209c4d0737b97b7f58f.tar.gz
avcodec/av1_metadata: add an option to remove Padding OBUs
Reviewed-by: Mark Thompson <sw@jkqxz.net> Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r--doc/bitstream_filters.texi3
-rw-r--r--libavcodec/av1_metadata_bsf.c19
-rw-r--r--libavcodec/version.h2
3 files changed, 23 insertions, 1 deletions
diff --git a/doc/bitstream_filters.texi b/doc/bitstream_filters.texi
index 076b910e40..25bbf8372b 100644
--- a/doc/bitstream_filters.texi
+++ b/doc/bitstream_filters.texi
@@ -87,6 +87,9 @@ the timing info in the sequence header.
Set the number of ticks in each picture, to indicate that the stream
has a fixed framerate. Ignored if @option{tick_rate} is not also set.
+@item delete_padding
+Deletes Padding OBUs.
+
@end table
@section chomp
diff --git a/libavcodec/av1_metadata_bsf.c b/libavcodec/av1_metadata_bsf.c
index 2b74b697e4..fe208feaf5 100644
--- a/libavcodec/av1_metadata_bsf.c
+++ b/libavcodec/av1_metadata_bsf.c
@@ -46,6 +46,8 @@ typedef struct AV1MetadataContext {
AVRational tick_rate;
int num_ticks_per_picture;
+
+ int delete_padding;
} AV1MetadataContext;
@@ -158,6 +160,19 @@ static int av1_metadata_filter(AVBSFContext *bsf, AVPacket *out)
}
}
+ if (ctx->delete_padding) {
+ for (i = 0; i < frag->nb_units; i++) {
+ if (frag->units[i].type == AV1_OBU_PADDING) {
+ err = ff_cbs_delete_unit(ctx->cbc, frag, i);
+ if (err < 0) {
+ av_log(bsf, AV_LOG_ERROR, "Failed to delete Padding OBU.\n");
+ goto fail;
+ }
+ --i;
+ }
+ }
+ }
+
err = ff_cbs_write_packet(ctx->cbc, out, frag);
if (err < 0) {
av_log(bsf, AV_LOG_ERROR, "Failed to write packet.\n");
@@ -275,6 +290,10 @@ static const AVOption av1_metadata_options[] = {
OFFSET(num_ticks_per_picture), AV_OPT_TYPE_INT,
{ .i64 = -1 }, -1, INT_MAX, FLAGS },
+ { "delete_padding", "Delete all Padding OBUs",
+ OFFSET(delete_padding), AV_OPT_TYPE_BOOL,
+ { .i64 = 0 }, 0, 1, FLAGS},
+
{ NULL }
};
diff --git a/libavcodec/version.h b/libavcodec/version.h
index d1cd356524..02cb5c3ec1 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -29,7 +29,7 @@
#define LIBAVCODEC_VERSION_MAJOR 58
#define LIBAVCODEC_VERSION_MINOR 48
-#define LIBAVCODEC_VERSION_MICRO 100
+#define LIBAVCODEC_VERSION_MICRO 101
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \