mirror of
https://github.com/mpv-player/mpv
synced 2025-02-17 13:17:13 +00:00
demux: simplify packet resizing
Actually we don't need to resize packets; we just need to make them shorter.
This commit is contained in:
parent
661633b689
commit
54c2a95792
@ -164,21 +164,11 @@ struct demux_packet *new_demux_packet_from(void *data, size_t len)
|
||||
return dp;
|
||||
}
|
||||
|
||||
void resize_demux_packet(struct demux_packet *dp, size_t len)
|
||||
void demux_packet_shorten(struct demux_packet *dp, size_t len)
|
||||
{
|
||||
if (len > 1000000000) {
|
||||
fprintf(stderr, "Attempt to realloc demux packet over 1 GB!\n");
|
||||
abort();
|
||||
}
|
||||
assert(dp->allocation);
|
||||
dp->buffer = realloc(dp->buffer, len + FF_INPUT_BUFFER_PADDING_SIZE);
|
||||
if (!dp->buffer) {
|
||||
fprintf(stderr, "Memory allocation failure!\n");
|
||||
abort();
|
||||
}
|
||||
memset(dp->buffer + len, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
||||
assert(len <= dp->len);
|
||||
dp->len = len;
|
||||
dp->allocation = dp->buffer;
|
||||
memset(dp->buffer + dp->len, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
||||
}
|
||||
|
||||
void free_demux_packet(struct demux_packet *dp)
|
||||
|
@ -207,7 +207,7 @@ struct demux_packet *new_demux_packet(size_t len);
|
||||
// data must already have suitable padding
|
||||
struct demux_packet *new_demux_packet_fromdata(void *data, size_t len);
|
||||
struct demux_packet *new_demux_packet_from(void *data, size_t len);
|
||||
void resize_demux_packet(struct demux_packet *dp, size_t len);
|
||||
void demux_packet_shorten(struct demux_packet *dp, size_t len);
|
||||
void free_demux_packet(struct demux_packet *dp);
|
||||
struct demux_packet *demux_copy_packet(struct demux_packet *dp);
|
||||
|
||||
|
@ -204,7 +204,7 @@ static int raw_fill_buffer(demuxer_t *demuxer)
|
||||
dp->pts = (dp->pos / p->frame_size) / p->frame_rate;
|
||||
|
||||
int len = stream_read(demuxer->stream, dp->buffer, dp->len);
|
||||
resize_demux_packet(dp, len);
|
||||
demux_packet_shorten(dp, len);
|
||||
demuxer_add_packet(demuxer, demuxer->streams[0], dp);
|
||||
|
||||
return 1;
|
||||
|
Loading…
Reference in New Issue
Block a user