diff options
author | wm4 <wm4@nowhere> | 2013-04-14 23:19:29 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-04-20 23:28:25 +0200 |
commit | 23da9e68e81ca058e537bcf975b64b20eea595fc (patch) | |
tree | 4b98a4cf6523b877123c1bc6951e60bb462b5d5e /demux/demux_mkv.c | |
parent | eb27e1462282af0c7a04b8c1cec2d6eded3dd968 (diff) | |
download | mpv-23da9e68e81ca058e537bcf975b64b20eea595fc.tar.bz2 mpv-23da9e68e81ca058e537bcf975b64b20eea595fc.tar.xz |
demux_mkv: introduce new_demux_packet_from() and use it
Diffstat (limited to 'demux/demux_mkv.c')
-rw-r--r-- | demux/demux_mkv.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c index 71e029c2bf..03789631dc 100644 --- a/demux/demux_mkv.c +++ b/demux/demux_mkv.c @@ -1891,8 +1891,7 @@ static void handle_realvideo(demuxer_t *demuxer, mkv_track_t *track, demux_packet_t *dp; uint32_t timestamp = mkv_d->last_pts * 1000; - dp = new_demux_packet(data.len); - memcpy(dp->buffer, data.start, data.len); + dp = new_demux_packet_from(data.start, data.len); if (mkv_d->v_skip_to_keyframe) { dp->pts = mkv_d->last_pts; @@ -1991,9 +1990,8 @@ static void handle_realaudio(demuxer_t *demuxer, mkv_track_t *track, track->sub_packet_cnt = 0; // Release all the audio packets for (x = 0; x < sph * w / apk_usize; x++) { - dp = new_demux_packet(apk_usize); - memcpy(dp->buffer, track->audio_buf + x * apk_usize, - apk_usize); + dp = new_demux_packet_from(track->audio_buf + x * apk_usize, + apk_usize); /* Put timestamp only on packets that correspond to original * audio packets in file */ dp->pts = (x * apk_usize % w) ? 0 : @@ -2004,8 +2002,7 @@ static void handle_realaudio(demuxer_t *demuxer, mkv_track_t *track, } } } else { // Not a codec that require reordering - dp = new_demux_packet(size); - memcpy(dp->buffer, buffer, size); + dp = new_demux_packet_from(buffer, size); if (track->ra_pts == mkv_d->last_pts && !mkv_d->a_skip_to_keyframe) dp->pts = 0; else @@ -2165,8 +2162,8 @@ static int handle_block(demuxer_t *demuxer, struct block_info *block_info) else { bstr buffer = demux_mkv_decode(track, block, 1); if (buffer.start) { - demux_packet_t *dp = new_demux_packet(buffer.len); - memcpy(dp->buffer, buffer.start, buffer.len); + demux_packet_t *dp = + new_demux_packet_from(buffer.start, buffer.len); if (buffer.start != block.start) talloc_free(buffer.start); dp->keyframe = keyframe; |