summaryrefslogtreecommitdiffstats
path: root/sub
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-06-24 00:58:10 +0200
committerwm4 <wm4@nowhere>2013-06-25 00:11:57 +0200
commit74c56309a33aa07fc79e193a619d8a47924da391 (patch)
tree1e0666e751c63aced0f8d1d40440efd8d9124ac3 /sub
parent5dcae2481d25064da6c0245494a574abba3fc084 (diff)
downloadmpv-74c56309a33aa07fc79e193a619d8a47924da391.tar.bz2
mpv-74c56309a33aa07fc79e193a619d8a47924da391.tar.xz
dec_sub: change sublist memory allocation
Diffstat (limited to 'sub')
-rw-r--r--sub/dec_sub.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/sub/dec_sub.c b/sub/dec_sub.c
index 3d5f9bc088..c7562fe014 100644
--- a/sub/dec_sub.c
+++ b/sub/dec_sub.c
@@ -348,8 +348,7 @@ bool sub_read_all_packets(struct dec_sub *sub, struct sh_sub *sh)
return false;
const char *codec = sh->gsh->codec ? sh->gsh->codec : "";
- void *tmp = talloc_new(NULL);
- struct packet_list subs = {0};
+ struct packet_list *subs = talloc_zero(NULL, struct packet_list);
for (;;) {
ds_get_next_pts(sh->ds);
@@ -357,31 +356,31 @@ bool sub_read_all_packets(struct dec_sub *sub, struct sh_sub *sh)
if (!pkt)
break;
pkt = demux_copy_packet(pkt);
- talloc_steal(tmp, pkt);
- MP_TARRAY_APPEND(tmp, subs.packets, subs.num_packets, pkt);
+ talloc_steal(subs, pkt);
+ MP_TARRAY_APPEND(subs, subs->packets, subs->num_packets, pkt);
}
// Can't run auto-detection on movtext packets: it's the only codec that
// even though it decodes to text has binary input data.
if (opts->sub_cp && !sh->is_utf8 && strcmp(codec, "movtext") != 0)
- sub->charset = guess_sub_cp(&subs, opts->sub_cp);
+ sub->charset = guess_sub_cp(subs, opts->sub_cp);
if (sub->charset)
mp_msg(MSGT_OSD, MSGL_INFO, "Using subtitle charset: %s\n", sub->charset);
// 23.976 FPS is used as default timebase for frame based formats
if (sub->video_fps && sh->frame_based)
- multiply_timings(&subs, sub->video_fps / 23.976);
+ multiply_timings(subs, sub->video_fps / 23.976);
if (opts->sub_fps && sub->video_fps)
- multiply_timings(&subs, opts->sub_fps / sub->video_fps);
+ multiply_timings(subs, opts->sub_fps / sub->video_fps);
if (!opts->suboverlap_enabled)
- fix_overlaps_and_gaps(&subs);
+ fix_overlaps_and_gaps(subs);
- add_sub_list(sub, &subs);
+ add_sub_list(sub, subs);
- talloc_free(tmp);
+ talloc_free(subs);
return true;
}