default: var = defval; break; \
}
-/**
- *
- * @return <0 in case of an error
- */
-static int asf_get_packet(AVFormatContext *s, ByteIOContext *pb)
+int ff_asf_get_packet(AVFormatContext *s, ByteIOContext *pb)
{
ASFContext *asf = s->priv_data;
uint32_t packet_length, padsize;
return 0;
}
-/**
- * Parse data from individual ASF packets (which were previously loaded
- * with asf_get_packet()).
- * @returns 0 if data was stored in pkt, <0 on error or 1 if more ASF
- * packets need to be loaded (through asf_get_packet())
- */
-static int asf_parse_packet(AVFormatContext *s, ByteIOContext *pb, AVPacket *pkt)
+int ff_asf_parse_packet(AVFormatContext *s, ByteIOContext *pb, AVPacket *pkt)
{
ASFContext *asf = s->priv_data;
ASFStream *asf_st = 0;
int ret;
/* parse cached packets, if any */
- if ((ret = asf_parse_packet(s, s->pb, pkt)) <= 0)
+ if ((ret = ff_asf_parse_packet(s, s->pb, pkt)) <= 0)
return ret;
- if ((ret = asf_get_packet(s, s->pb)) < 0)
+ if ((ret = ff_asf_get_packet(s, s->pb)) < 0)
assert(asf->packet_size_left < FRAME_HEADER_SIZE || asf->packet_segments < 1);
asf->packet_time_start = 0;
}
#define ASF_PL_FLAG_KEY_FRAME 0x80 //1000 0000
+extern AVInputFormat asf_demuxer;
+
+/**
+ * Load a single ASF packet into the demuxer.
+ * @param s demux context
+ * @param pb context to read data from
+ * @returns 0 on success, <0 on error
+ */
+int ff_asf_get_packet(AVFormatContext *s, ByteIOContext *pb);
+
+/**
+ * Parse data from individual ASF packets (which were previously loaded
+ * with asf_get_packet()).
+ * @param s demux context
+ * @param pb context to read data from
+ * @param pkt pointer to store packet data into
+ * @returns 0 if data was stored in pkt, <0 on error or 1 if more ASF
+ * packets need to be loaded (through asf_get_packet())
+ */
+int ff_asf_parse_packet(AVFormatContext *s, ByteIOContext *pb, AVPacket *pkt);
+
#endif /* AVFORMAT_ASF_H */