Fix initialization of avpkt in output_packet().
authorThilo Borgmann <thilo.borgmann@googlemail.com>
Sat, 11 Apr 2009 22:04:52 +0000 (22:04 +0000)
committerStefano Sabatini <stefano.sabatini-lala@poste.it>
Sat, 11 Apr 2009 22:04:52 +0000 (22:04 +0000)
Patch by Thilo Borgmann thilo.surname AT googlemaildotcom.

Originally committed as revision 18451 to svn://svn.ffmpeg.org/ffmpeg/trunk

ffmpeg.c

index 68f84fe..d7c9059 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1185,24 +1185,22 @@ static int output_packet(AVInputStream *ist, int ist_index,
     int got_subtitle;
     AVPacket avpkt;
 
-    av_init_packet(&avpkt);
-
     if(ist->next_pts == AV_NOPTS_VALUE)
         ist->next_pts= ist->pts;
 
     if (pkt == NULL) {
         /* EOF handling */
+        av_init_packet(&avpkt);
         avpkt.data = NULL;
         avpkt.size = 0;
         goto handle_eof;
+    } else {
+        avpkt = *pkt;
     }
 
     if(pkt->dts != AV_NOPTS_VALUE)
         ist->next_pts = ist->pts = av_rescale_q(pkt->dts, ist->st->time_base, AV_TIME_BASE_Q);
 
-    avpkt.size = pkt->size;
-    avpkt.data = pkt->data;
-
     //while we have more to decode or while the decoder did output something on EOF
     while (avpkt.size > 0 || (!pkt && ist->next_pts != ist->pts)) {
     handle_eof: