Add audio_pkt_cnt return value to ff_rm_retrieve_cache(). See discussion in
authorRonald S. Bultje <rsbultje@gmail.com>
Sun, 28 Dec 2008 05:58:23 +0000 (05:58 +0000)
committerRonald S. Bultje <rsbultje@gmail.com>
Sun, 28 Dec 2008 05:58:23 +0000 (05:58 +0000)
"[PATCH] oops I broke rdt.c" mailinglist thread.

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

libavformat/rdt.c
libavformat/rm.h
libavformat/rmdec.c

index 4bcb967..10add82 100644 (file)
@@ -315,6 +315,7 @@ rdt_parse_packet (PayloadContext *rdt, AVStream *st,
                                                 NULL, NULL, NULL, NULL);
         }
     } else {
+        rdt->audio_pkt_cnt =
         ff_rm_retrieve_cache (rdt->rmctx, rdt->rmctx->pb, st, rdt->rmst[0], pkt);
         if (rdt->audio_pkt_cnt == 0 &&
             st->codec->codec_id == CODEC_ID_AAC)
index f9fdd76..4e2a5b7 100644 (file)
@@ -83,8 +83,10 @@ int ff_rm_parse_packet (AVFormatContext *s, ByteIOContext *pb,
  * @param st stream that this packet belongs to
  * @param rst Real-specific stream information
  * @param pkt location to store the packet data
+ * @returns the number of samples left for subsequent calls to this same
+ *          function, or 0 if all samples have been retrieved.
  */
-void ff_rm_retrieve_cache (AVFormatContext *s, ByteIOContext *pb,
+int ff_rm_retrieve_cache (AVFormatContext *s, ByteIOContext *pb,
                            AVStream *st, RMStream *rst, AVPacket *pkt);
 
 #endif /* AVFORMAT_RM_H */
index 39af3d1..e8ecc92 100644 (file)
@@ -681,7 +681,7 @@ ff_rm_parse_packet (AVFormatContext *s, ByteIOContext *pb,
     return st->codec->codec_type == CODEC_TYPE_AUDIO ? rm->audio_pkt_cnt : 0;
 }
 
-void
+int
 ff_rm_retrieve_cache (AVFormatContext *s, ByteIOContext *pb,
                       AVStream *st, RMStream *ast, AVPacket *pkt)
 {
@@ -700,6 +700,8 @@ ff_rm_retrieve_cache (AVFormatContext *s, ByteIOContext *pb,
     rm->audio_pkt_cnt--;
     pkt->flags = 0;
     pkt->stream_index = st->index;
+
+    return rm->audio_pkt_cnt;
 }
 
 static int rm_read_packet(AVFormatContext *s, AVPacket *pkt)