Do not lose the '\n'.

Originally committed as revision 15424 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Michael Niedermayer 2008-09-26 03:24:05 +00:00
parent a3250d073d
commit 5c8a1d1927

View File

@ -140,7 +140,7 @@ static int read_header(AVFormatContext *s, AVFormatParameters *ap)
ass->event[i]= p; ass->event[i]= p;
while(*p && *p != '\n') while(*p && *p != '\n')
p++; p++;
*p++ = 0; p++;
} }
qsort(ass->event, ass->event_count, sizeof(*ass->event), event_cmp); qsort(ass->event, ass->event_count, sizeof(*ass->event), event_cmp);
@ -156,14 +156,15 @@ fail:
static int read_packet(AVFormatContext *s, AVPacket *pkt) static int read_packet(AVFormatContext *s, AVPacket *pkt)
{ {
ASSContext *ass = s->priv_data; ASSContext *ass = s->priv_data;
uint8_t *p; uint8_t *p, *end;
if(ass->event_index >= ass->event_count) if(ass->event_index >= ass->event_count)
return AVERROR(EIO); return AVERROR(EIO);
p= ass->event[ ass->event_index ]; 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->flags |= PKT_FLAG_KEY;
pkt->pos= p - ass->event_buffer + s->streams[0]->codec->extradata_size; pkt->pos= p - ass->event_buffer + s->streams[0]->codec->extradata_size;
pkt->pts= pkt->dts= get_pts(p); pkt->pts= pkt->dts= get_pts(p);