diff options
author | James Almer <jamrial@gmail.com> | 2019-03-25 06:27:23 +0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2019-04-04 00:12:37 +0300 |
commit | ee16d14b0a29317f6118a209c4d0737b97b7f58f (patch) | |
tree | 76fbb893a512a871c48a9b0c7eb0ac5c02246d34 | |
parent | 1125277bc64ebef1a7a6bee7349c7a8fab7fdcc7 (diff) |
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.texi | 3 | ||||
-rw-r--r-- | libavcodec/av1_metadata_bsf.c | 19 | ||||
-rw-r--r-- | libavcodec/version.h | 2 |
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, \ |