diff options
author | Michael Niedermayer <[email protected]> | 2014-04-21 16:56:56 +0200 |
---|---|---|
committer | Michael Niedermayer <[email protected]> | 2014-04-21 16:57:01 +0200 |
commit | 260f37ee4d036f61633ccaf03e5d96f448d723ea (patch) | |
tree | 4854690c7cea79471f6b0671b438281a84640f5b | |
parent | da32e3c3981983ba8cc40eb3041500ed4d1d7ff8 (diff) | |
parent | d946e4c1bcfb6accd97f6d4cbfa324ef01913c8d (diff) |
Merge commit 'd946e4c1bcfb6accd97f6d4cbfa324ef01913c8d' into release/1.1
* commit 'd946e4c1bcfb6accd97f6d4cbfa324ef01913c8d':
bytestream: add bytestream2_copy_buffer() functions
Merged-by: Michael Niedermayer <[email protected]>
-rw-r--r-- | libavcodec/bytestream.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/libavcodec/bytestream.h b/libavcodec/bytestream.h index af7f75bd45..41d68cffaf 100644 --- a/libavcodec/bytestream.h +++ b/libavcodec/bytestream.h @@ -325,6 +325,32 @@ static av_always_inline unsigned int bytestream2_get_eof(PutByteContext *p) return p->eof; } +static av_always_inline unsigned int bytestream2_copy_bufferu(PutByteContext *p, + GetByteContext *g, + unsigned int size) +{ + memcpy(p->buffer, g->buffer, size); + p->buffer += size; + g->buffer += size; + return size; +} + +static av_always_inline unsigned int bytestream2_copy_buffer(PutByteContext *p, + GetByteContext *g, + unsigned int size) +{ + int size2; + + if (p->eof) + return 0; + size = FFMIN(g->buffer_end - g->buffer, size); + size2 = FFMIN(p->buffer_end - p->buffer, size); + if (size2 != size) + p->eof = 1; + + return bytestream2_copy_bufferu(p, g, size2); +} + static av_always_inline unsigned int bytestream_get_buffer(const uint8_t **b, uint8_t *dst, unsigned int size) |