uint8_t header[MAX_PES_HEADER_SIZE];
AVBufferRef *buffer;
SLConfigDescr sl;
+ int merged_st;
} PESContext;
extern AVInputFormat ff_mpegts_demuxer;
PESContext *pes = filter->u.pes_filter.opaque;
av_buffer_unref(&pes->buffer);
/* referenced private data will be freed later in
- * avformat_close_input */
- if (!((PESContext *)filter->u.pes_filter.opaque)->st) {
+ * avformat_close_input (pes->st->priv_data == pes) */
+ if (!pes->st || pes->merged_st) {
av_freep(&filter->u.pes_filter.opaque);
}
}
if (st) {
pes->st = st;
pes->stream_type = stream_type;
+ pes->merged_st = 1;
}
}
if (!pes->st) {
if (st) {
pes->st = st;
pes->stream_type = stream_type;
+ pes->merged_st = 1;
}
}
if (pes && !pes->st) {