aboutsummaryrefslogtreecommitdiffstats
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
parent5ff88020ac4cd285fa00d0c559aa196bbd8526d7 (diff)
downloadffmpeg-1a670973a756e6e1a7a170d58f3589fd5ad4c088.tar.gz
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.
-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);