diff options
author | Martin Herkt <lachs0r@srsfckn.biz> | 2017-02-12 01:01:56 +0100 |
---|---|---|
committer | Martin Herkt <lachs0r@srsfckn.biz> | 2017-02-12 01:01:56 +0100 |
commit | 35aa705c3ece8293652ffcf449c71fe80b96e722 (patch) | |
tree | 7c0fb34ec96204cbcd867a973b2476689919a5b4 /demux/packet.c | |
parent | 10a005df0c981050afc35184a42173bea7ea2527 (diff) | |
parent | 3739d1318fdb658bb6037bfe06bb6cefb3b50a09 (diff) | |
download | mpv-35aa705c3ece8293652ffcf449c71fe80b96e722.tar.bz2 mpv-35aa705c3ece8293652ffcf449c71fe80b96e722.tar.xz |
Merge branch 'master' into release/current
Diffstat (limited to 'demux/packet.c')
-rw-r--r-- | demux/packet.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/demux/packet.c b/demux/packet.c index 32fabc4f78..47f0cb87dc 100644 --- a/demux/packet.c +++ b/demux/packet.c @@ -94,7 +94,7 @@ void demux_packet_shorten(struct demux_packet *dp, size_t len) { assert(len <= dp->len); dp->len = len; - memset(dp->buffer + dp->len, 0, FF_INPUT_BUFFER_PADDING_SIZE); + memset(dp->buffer + dp->len, 0, AV_INPUT_BUFFER_PADDING_SIZE); } void free_demux_packet(struct demux_packet *dp) @@ -132,8 +132,8 @@ struct demux_packet *demux_copy_packet(struct demux_packet *dp) int demux_packet_set_padding(struct demux_packet *dp, int start, int end) { -#if HAVE_AVFRAME_SKIP_SAMPLES - if (!start && !end) +#if LIBAVCODEC_VERSION_MICRO >= 100 + if (!start && !end) return 0; if (!dp->avpacket) return -1; @@ -146,3 +146,21 @@ int demux_packet_set_padding(struct demux_packet *dp, int start, int end) #endif return 0; } + +int demux_packet_add_blockadditional(struct demux_packet *dp, uint64_t id, + void *data, size_t size) +{ +#if LIBAVCODEC_VERSION_MICRO >= 100 + if (!dp->avpacket) + return -1; + uint8_t *sd = av_packet_new_side_data(dp->avpacket, + AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, + 8 + size); + if (!sd) + return -1; + AV_WB64(sd, id); + if (size > 0) + memcpy(sd + 8, data, size); +#endif + return 0; +} |