diff assdec.c @ 3943:b250956a6f68 libavformat

Do not lose the '\n'.
author michael
date Fri, 26 Sep 2008 03:24:05 +0000
parents ffb410d82ad3
children 45684dea4c9b
line wrap: on
line diff
--- 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);