summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2012-02-01 16:23:19 -0500
committerJustin Ruggles <justin.ruggles@gmail.com>2012-02-01 16:33:27 -0500
commit1a670973a756e6e1a7a170d58f3589fd5ad4c088 (patch)
tree493eae88bfb2f2c4e72eea37345d4f79bb2171b1 /libavcodec
parent5ff88020ac4cd285fa00d0c559aa196bbd8526d7 (diff)
ff_alloc_packet: modify the size of the packet to match the requested size
This will simplify encoders which use this function to request the exact packet size rather than the maximum size.
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/internal.h1
-rw-r--r--libavcodec/utils.c4
2 files changed, 2 insertions, 3 deletions
diff --git a/libavcodec/internal.h b/libavcodec/internal.h
index 441430e41c..b435a359fb 100644
--- a/libavcodec/internal.h
+++ b/libavcodec/internal.h
@@ -120,6 +120,7 @@ int avpriv_unlock_avformat(void);
* If avpkt->data is already set, avpkt->size is checked
* to ensure it is large enough.
* If avpkt->data is NULL, a new buffer is allocated.
+ * avpkt->size is set to the specified size.
* All other AVPacket fields will be reset with av_init_packet().
* @param size the minimum required packet size
* @return 0 on success, negative error code on failure
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 34eff0031a..606537b29a 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -839,16 +839,14 @@ int ff_alloc_packet(AVPacket *avpkt, int size)
if (avpkt->data) {
uint8_t *pkt_data;
- int pkt_size;
if (avpkt->size < size)
return AVERROR(EINVAL);
pkt_data = avpkt->data;
- pkt_size = avpkt->size;
av_init_packet(avpkt);
avpkt->data = pkt_data;
- avpkt->size = pkt_size;
+ avpkt->size = size;
return 0;
} else {
return av_new_packet(avpkt, size);