# HG changeset patch # User michael # Date 1222399445 0 # Node ID b250956a6f6893a0d1accbf1432a3e5a7355bc54 # Parent ffb410d82ad3759007b4c207d93d2acc2ee6785c Do not lose the '\n'. diff -r ffb410d82ad3 -r b250956a6f68 assdec.c --- a/assdec.c Fri Sep 26 02:19:21 2008 +0000 +++ b/assdec.c Fri Sep 26 03:24:05 2008 +0000 @@ -140,7 +140,7 @@ ass->event[i]= p; while(*p && *p != '\n') p++; - *p++ = 0; + p++; } qsort(ass->event, ass->event_count, sizeof(*ass->event), event_cmp); @@ -156,14 +156,15 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) { ASSContext *ass = s->priv_data; - uint8_t *p; + uint8_t *p, *end; if(ass->event_index >= ass->event_count) return AVERROR(EIO); p= ass->event[ ass->event_index ]; - av_new_packet(pkt, strlen(p)); + end= strchr(p, '\n'); + av_new_packet(pkt, end ? end-p+1 : strlen(p)); pkt->flags |= PKT_FLAG_KEY; pkt->pos= p - ass->event_buffer + s->streams[0]->codec->extradata_size; pkt->pts= pkt->dts= get_pts(p);