ass->event[i]= p;
while(*p && *p != '\n')
p++;
- *p++ = 0;
+ p++;
}
qsort(ass->event, ass->event_count, sizeof(*ass->event), event_cmp);
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);