| Index: source/patched-ffmpeg-mt/libavformat/avidec.c
|
| ===================================================================
|
| --- source/patched-ffmpeg-mt/libavformat/avidec.c (revision 59334)
|
| +++ source/patched-ffmpeg-mt/libavformat/avidec.c (working copy)
|
| @@ -759,7 +759,7 @@
|
| for (i=0; i<s->nb_streams; i++) {
|
| st = s->streams[i];
|
| ast = st->priv_data;
|
| - if (st->discard < AVDISCARD_ALL && ast->sub_pkt.data) {
|
| + if (st->discard < AVDISCARD_ALL && ast && ast->sub_pkt.data) {
|
| ts = av_rescale_q(ast->sub_pkt.dts, st->time_base, AV_TIME_BASE_Q);
|
| if (ts <= next_ts && ts < ts_min) {
|
| ts_min = ts;
|
| @@ -1294,12 +1294,14 @@
|
| AVStream *st = s->streams[i];
|
| AVIStream *ast = st->priv_data;
|
| av_free(st->codec->palctrl);
|
| - if (ast->sub_ctx) {
|
| - av_freep(&ast->sub_ctx->pb);
|
| - av_close_input_stream(ast->sub_ctx);
|
| + if (ast) {
|
| + if (ast->sub_ctx) {
|
| + av_freep(&ast->sub_ctx->pb);
|
| + av_close_input_stream(ast->sub_ctx);
|
| + }
|
| + av_free(ast->sub_buffer);
|
| + av_free_packet(&ast->sub_pkt);
|
| }
|
| - av_free(ast->sub_buffer);
|
| - av_free_packet(&ast->sub_pkt);
|
| }
|
|
|
| if (avi->dv_demux)
|
|
|