James Almer: > Those are private fields, no reason to have them exposed in a public > header. > > Signed-off-by: James Almer <jamr...@gmail.com> > --- > Now also porting the v4l2 outdev, which unfortunately requires an accessor. > If anyone with a v4l2 capable machine wants to check if not setting > need_parsing at all for h264 streams is an option, that'd be better. >
Alternatively one could just move needs_parsing to the beginning of AVStreamInternal. > libavdevice/v4l2.c | 2 +- > libavformat/aacdec.c | 2 +- > libavformat/aadec.c | 6 +- > libavformat/acm.c | 2 +- > libavformat/asfdec_f.c | 10 +-- > libavformat/av1dec.c | 2 +- > libavformat/avformat.h | 4 -- > libavformat/avidec.c | 16 ++--- > libavformat/dtshddec.c | 2 +- > libavformat/electronicarts.c | 2 +- > libavformat/flacdec.c | 2 +- > libavformat/flvdec.c | 4 +- > libavformat/gxf.c | 6 +- > libavformat/img2dec.c | 4 +- > libavformat/internal.h | 6 ++ > libavformat/ipudec.c | 2 +- > libavformat/iv8.c | 2 +- > libavformat/ivfdec.c | 2 +- > libavformat/lmlm4.c | 4 +- > libavformat/loasdec.c | 2 +- > libavformat/lxfdec.c | 2 +- > libavformat/matroskadec.c | 6 +- > libavformat/mgsts.c | 2 +- > libavformat/mov.c | 18 +++--- > libavformat/mp3dec.c | 2 +- > libavformat/mpeg.c | 2 +- > libavformat/mpegts.c | 14 ++--- > libavformat/msf.c | 2 +- > libavformat/mtv.c | 2 +- > libavformat/mxfdec.c | 8 +-- > libavformat/ncdec.c | 2 +- > libavformat/nsvdec.c | 4 +- > libavformat/nuv.c | 2 +- > libavformat/oggparseflac.c | 2 +- > libavformat/oggparseogm.c | 4 +- > libavformat/oggparsetheora.c | 2 +- > libavformat/oggparsevp8.c | 2 +- > libavformat/omadec.c | 2 +- > libavformat/pva.c | 4 +- > libavformat/rawdec.c | 4 +- > libavformat/rmdec.c | 8 +-- > libavformat/rtpdec_asf.c | 4 +- > libavformat/rtsp.c | 2 +- > libavformat/s337m.c | 3 +- > libavformat/sdr2.c | 2 +- > libavformat/segafilm.c | 2 +- > libavformat/swfdec.c | 2 +- > libavformat/takdec.c | 2 +- > libavformat/ty.c | 4 +- > libavformat/utils.c | 118 ++++++++++++++++++----------------- > libavformat/wavdec.c | 6 +- > libavformat/wtvdec.c | 2 +- > libavformat/xvag.c | 2 +- > libavformat/xwma.c | 2 +- > 54 files changed, 168 insertions(+), 159 deletions(-) > > diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c > index a5149a9132..981b6207fb 100644 > --- a/libavdevice/v4l2.c > +++ b/libavdevice/v4l2.c > @@ -961,7 +961,7 @@ static int v4l2_read_header(AVFormatContext *ctx) > st->codecpar->codec_tag = > avcodec_pix_fmt_to_codec_tag(st->codecpar->format); > else if (codec_id == AV_CODEC_ID_H264) { > - st->need_parsing = AVSTREAM_PARSE_FULL_ONCE; > + avpriv_stream_set_need_parsing(st, AVSTREAM_PARSE_FULL_ONCE); > } > if (desired_format == V4L2_PIX_FMT_YVU420) > st->codecpar->codec_tag = MKTAG('Y', 'V', '1', '2'); > diff --git a/libavformat/aacdec.c b/libavformat/aacdec.c > index ba468909e9..94e39f592f 100644 > --- a/libavformat/aacdec.c > +++ b/libavformat/aacdec.c > @@ -112,7 +112,7 @@ static int adts_aac_read_header(AVFormatContext *s) > > st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > st->codecpar->codec_id = s->iformat->raw_codec_id; > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > > ff_id3v1_read(s); > if ((s->pb->seekable & AVIO_SEEKABLE_NORMAL) && > diff --git a/libavformat/aadec.c b/libavformat/aadec.c > index 21051d79b8..9fe24d5d53 100644 > --- a/libavformat/aadec.c > +++ b/libavformat/aadec.c > @@ -183,7 +183,7 @@ static int aa_read_header(AVFormatContext *s) > if (!strcmp(codec_name, "mp332")) { > st->codecpar->codec_id = AV_CODEC_ID_MP3; > st->codecpar->sample_rate = 22050; > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > avpriv_set_pts_info(st, 64, 8, 32000 * TIMEPREC); > // encoded audio frame is MP3_FRAME_SIZE bytes (+1 with padding, > unlikely) > } else if (!strcmp(codec_name, "acelp85")) { > @@ -192,7 +192,7 @@ static int aa_read_header(AVFormatContext *s) > st->codecpar->channels = 1; > st->codecpar->sample_rate = 8500; > st->codecpar->bit_rate = 8500; > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > avpriv_set_pts_info(st, 64, 8, 8500 * TIMEPREC); > } else if (!strcmp(codec_name, "acelp16")) { > st->codecpar->codec_id = AV_CODEC_ID_SIPR; > @@ -200,7 +200,7 @@ static int aa_read_header(AVFormatContext *s) > st->codecpar->channels = 1; > st->codecpar->sample_rate = 16000; > st->codecpar->bit_rate = 16000; > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > avpriv_set_pts_info(st, 64, 8, 16000 * TIMEPREC); > } > > diff --git a/libavformat/acm.c b/libavformat/acm.c > index c78a408aa0..bc87b3fab9 100644 > --- a/libavformat/acm.c > +++ b/libavformat/acm.c > @@ -54,7 +54,7 @@ static int acm_read_header(AVFormatContext *s) > return AVERROR_INVALIDDATA; > st->start_time = 0; > st->duration = AV_RL32(st->codecpar->extradata + 4) / > st->codecpar->channels; > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); > > return 0; > diff --git a/libavformat/asfdec_f.c b/libavformat/asfdec_f.c > index 2e806dd452..053c815977 100644 > --- a/libavformat/asfdec_f.c > +++ b/libavformat/asfdec_f.c > @@ -382,9 +382,9 @@ static int asf_read_stream_properties(AVFormatContext *s, > int64_t size) > st->codecpar->codec_tag = 0; > } > if (st->codecpar->codec_id == AV_CODEC_ID_AAC) > - st->need_parsing = AVSTREAM_PARSE_NONE; > + st->internal->need_parsing = AVSTREAM_PARSE_NONE; > else > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > /* We have to init the frame size at some point .... */ > pos2 = avio_tell(pb); > if (size >= (pos2 + 8 - pos1 + 24)) { > @@ -443,7 +443,7 @@ static int asf_read_stream_properties(AVFormatContext *s, > int64_t size) > st->codecpar->codec_tag = tag1; > st->codecpar->codec_id = ff_codec_get_id(ff_codec_bmp_tags, tag1); > if (tag1 == MKTAG('D', 'V', 'R', ' ')) { > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > /* issue658 contains wrong w/h and MS even puts a fake seq header > * with wrong w/h in extradata while a correct one is in the > stream. > * maximum lameness */ > @@ -453,9 +453,9 @@ static int asf_read_stream_properties(AVFormatContext *s, > int64_t size) > st->codecpar->extradata_size = 0; > } > if (st->codecpar->codec_id == AV_CODEC_ID_H264) > - st->need_parsing = AVSTREAM_PARSE_FULL_ONCE; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_ONCE; > if (st->codecpar->codec_id == AV_CODEC_ID_MPEG4) > - st->need_parsing = AVSTREAM_PARSE_FULL_ONCE; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_ONCE; > } > pos2 = avio_tell(pb); > avio_skip(pb, size - (pos2 - pos1 + 24)); > diff --git a/libavformat/av1dec.c b/libavformat/av1dec.c > index b71d5d0e19..8ca804c2a3 100644 > --- a/libavformat/av1dec.c > +++ b/libavformat/av1dec.c > @@ -66,7 +66,7 @@ static int read_header(AVFormatContext *s, const AVRational > *framerate, AVBSFCon > > st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; > st->codecpar->codec_id = AV_CODEC_ID_AV1; > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > > st->internal->avctx->framerate = *framerate; > // taken from rawvideo demuxers > diff --git a/libavformat/avformat.h b/libavformat/avformat.h > index d796f02094..9ed6d333d3 100644 > --- a/libavformat/avformat.h > +++ b/libavformat/avformat.h > @@ -1008,10 +1008,6 @@ typedef struct AVStream { > */ > int codec_info_nb_frames; > > - /* av_read_frame() support */ > - enum AVStreamParseType need_parsing; > - struct AVCodecParserContext *parser; > - > /** > * Stream Identifier > * This is the MPEG-TS stream identifier +1 > diff --git a/libavformat/avidec.c b/libavformat/avidec.c > index e0d868e074..14a2dd6cd7 100644 > --- a/libavformat/avidec.c > +++ b/libavformat/avidec.c > @@ -824,19 +824,19 @@ static int avi_read_header(AVFormatContext *s) > > /* This is needed to get the pict type which is necessary > * for generating correct pts. */ > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > > if (st->codecpar->codec_id == AV_CODEC_ID_MPEG4 && > ast->handler == MKTAG('X', 'V', 'I', 'D')) > st->codecpar->codec_tag = MKTAG('X', 'V', 'I', 'D'); > > if (st->codecpar->codec_tag == MKTAG('V', 'S', 'S', 'H')) > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > if (st->codecpar->codec_id == AV_CODEC_ID_RV40) > - st->need_parsing = AVSTREAM_PARSE_NONE; > + st->internal->need_parsing = AVSTREAM_PARSE_NONE; > if (st->codecpar->codec_id == AV_CODEC_ID_HEVC && > st->codecpar->codec_tag == MKTAG('H', '2', '6', '5')) > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > > if (st->codecpar->codec_id == AV_CODEC_ID_AVRN && > st->codecpar->codec_tag == MKTAG('A', 'V', 'R', 'n') > && > @@ -880,16 +880,16 @@ static int avi_read_header(AVFormatContext *s) > avio_skip(pb, 1); > /* Force parsing as several audio frames can be in > * one packet and timestamps refer to packet start. */ > - st->need_parsing = AVSTREAM_PARSE_TIMESTAMPS; > + st->internal->need_parsing = AVSTREAM_PARSE_TIMESTAMPS; > /* ADTS header is in extradata, AAC without header must > be > * stored as exact frames. Parser not needed and it will > * fail. */ > if (st->codecpar->codec_id == AV_CODEC_ID_AAC && > st->codecpar->extradata_size) > - st->need_parsing = AVSTREAM_PARSE_NONE; > + st->internal->need_parsing = AVSTREAM_PARSE_NONE; > // The flac parser does not work with > AVSTREAM_PARSE_TIMESTAMPS > if (st->codecpar->codec_id == AV_CODEC_ID_FLAC) > - st->need_parsing = AVSTREAM_PARSE_NONE; > + st->internal->need_parsing = AVSTREAM_PARSE_NONE; > /* AVI files with Xan DPCM audio (wrongly) declare PCM > * audio in the header but have Axan as stream_code_tag. > */ > if (ast->handler == AV_RL32("Axan")) { > @@ -1052,7 +1052,7 @@ end_of_header: > AVStream *st = s->streams[i]; > if ( st->codecpar->codec_id == AV_CODEC_ID_MPEG1VIDEO > || st->codecpar->codec_id == AV_CODEC_ID_MPEG2VIDEO) > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > } > > for (i = 0; i < s->nb_streams; i++) { > diff --git a/libavformat/dtshddec.c b/libavformat/dtshddec.c > index 48d3afbebd..2900623690 100644 > --- a/libavformat/dtshddec.c > +++ b/libavformat/dtshddec.c > @@ -65,7 +65,7 @@ static int dtshd_read_header(AVFormatContext *s) > return AVERROR(ENOMEM); > st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > st->codecpar->codec_id = AV_CODEC_ID_DTS; > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > > for (;;) { > chunk_type = avio_rb64(pb); > diff --git a/libavformat/electronicarts.c b/libavformat/electronicarts.c > index 8080ee7e41..4d0fddab3d 100644 > --- a/libavformat/electronicarts.c > +++ b/libavformat/electronicarts.c > @@ -503,7 +503,7 @@ static int init_video_stream(AVFormatContext *s, > VideoProperties *video) > st->codecpar->codec_id = video->codec; > // parsing is necessary to make FFmpeg generate correct timestamps > if (st->codecpar->codec_id == AV_CODEC_ID_MPEG2VIDEO) > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > st->codecpar->codec_tag = 0; /* no fourcc */ > st->codecpar->width = video->width; > st->codecpar->height = video->height; > diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c > index 4ed523f309..d4158032e4 100644 > --- a/libavformat/flacdec.c > +++ b/libavformat/flacdec.c > @@ -56,7 +56,7 @@ static int flac_read_header(AVFormatContext *s) > return AVERROR(ENOMEM); > st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > st->codecpar->codec_id = AV_CODEC_ID_FLAC; > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > /* the parameters will be extracted from the compressed bitstream */ > > /* if fLaC marker is not found, assume there is no header */ > diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c > index 718d690421..e6c2877a74 100644 > --- a/libavformat/flvdec.c > +++ b/libavformat/flvdec.c > @@ -271,7 +271,7 @@ static void flv_set_audio_codec(AVFormatContext *s, > AVStream *astream, > break; > case FLV_CODECID_MP3: > apar->codec_id = AV_CODEC_ID_MP3; > - astream->need_parsing = AVSTREAM_PARSE_FULL; > + astream->internal->need_parsing = AVSTREAM_PARSE_FULL; > break; > case FLV_CODECID_NELLYMOSER_8KHZ_MONO: > // in case metadata does not otherwise declare samplerate > @@ -362,7 +362,7 @@ static int flv_set_video_codec(AVFormatContext *s, > AVStream *vstream, > break; > case FLV_CODECID_H264: > par->codec_id = AV_CODEC_ID_H264; > - vstream->need_parsing = AVSTREAM_PARSE_HEADERS; > + vstream->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > ret = 3; // not 4, reading packet type will consume one byte > break; > case FLV_CODECID_MPEG4: > diff --git a/libavformat/gxf.c b/libavformat/gxf.c > index 53fa302828..7d23cbd692 100644 > --- a/libavformat/gxf.c > +++ b/libavformat/gxf.c > @@ -130,13 +130,13 @@ static int get_sindex(AVFormatContext *s, int id, int > format) { > case 20: > st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; > st->codecpar->codec_id = AV_CODEC_ID_MPEG2VIDEO; > - st->need_parsing = AVSTREAM_PARSE_HEADERS; //get keyframe flag > etc. > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; //get > keyframe flag etc. > break; > case 22: > case 23: > st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; > st->codecpar->codec_id = AV_CODEC_ID_MPEG1VIDEO; > - st->need_parsing = AVSTREAM_PARSE_HEADERS; //get keyframe flag > etc. > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; //get > keyframe flag etc. > break; > case 9: > st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > @@ -169,7 +169,7 @@ static int get_sindex(AVFormatContext *s, int id, int > format) { > case 29: /* AVCHD */ > st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; > st->codecpar->codec_id = AV_CODEC_ID_H264; > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > break; > // timecode tracks: > case 7: > diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c > index d7a7cdaa16..aaf2ac362c 100644 > --- a/libavformat/img2dec.c > +++ b/libavformat/img2dec.c > @@ -209,7 +209,7 @@ int ff_img_read_header(AVFormatContext *s1) > s->is_pipe = 0; > else { > s->is_pipe = 1; > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > } > > if (s->ts_from_file == 2) { > @@ -482,7 +482,7 @@ int ff_img_read_packet(AVFormatContext *s1, AVPacket *pkt) > return AVERROR_EOF; > if (s->frame_size > 0) { > size[0] = s->frame_size; > - } else if (!s1->streams[0]->parser) { > + } else if (!s1->streams[0]->internal->parser) { > size[0] = avio_size(s1->pb); > } else { > size[0] = 4096; > diff --git a/libavformat/internal.h b/libavformat/internal.h > index 6af38720c8..10fbd9b51b 100644 > --- a/libavformat/internal.h > +++ b/libavformat/internal.h > @@ -373,8 +373,14 @@ struct AVStreamInternal { > * Number of packets to buffer for codec probing > */ > int probe_packets; > + > + /* av_read_frame() support */ > + enum AVStreamParseType need_parsing; > + struct AVCodecParserContext *parser; > }; > > +void avpriv_stream_set_need_parsing(AVStream *st, enum AVStreamParseType > type); > + > #ifdef __GNUC__ > #define dynarray_add(tab, nb_ptr, elem)\ > do {\ > diff --git a/libavformat/ipudec.c b/libavformat/ipudec.c > index 283c798751..b76371b58c 100644 > --- a/libavformat/ipudec.c > +++ b/libavformat/ipudec.c > @@ -62,7 +62,7 @@ static int ipu_read_header(AVFormatContext *s) > st->start_time = 0; > st->duration = > st->nb_frames = avio_rl32(pb); > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > avpriv_set_pts_info(st, 64, 1, 25); > > return 0; > diff --git a/libavformat/iv8.c b/libavformat/iv8.c > index 7237e16172..b06797cbf3 100644 > --- a/libavformat/iv8.c > +++ b/libavformat/iv8.c > @@ -47,7 +47,7 @@ static int read_header(AVFormatContext *s) > > st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; > st->codecpar->codec_id = AV_CODEC_ID_MPEG4; > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > avpriv_set_pts_info(st, 64, 1, 90000); > > return 0; > diff --git a/libavformat/ivfdec.c b/libavformat/ivfdec.c > index 3e1ea52cbf..26717c4999 100644 > --- a/libavformat/ivfdec.c > +++ b/libavformat/ivfdec.c > @@ -56,7 +56,7 @@ static int read_header(AVFormatContext *s) > st->duration = avio_rl32(s->pb); > avio_skip(s->pb, 4); // unused > > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > > if (!time_base.den || !time_base.num) { > av_log(s, AV_LOG_ERROR, "Invalid frame rate\n"); > diff --git a/libavformat/lmlm4.c b/libavformat/lmlm4.c > index 99cba73a00..dbeaceab9c 100644 > --- a/libavformat/lmlm4.c > +++ b/libavformat/lmlm4.c > @@ -67,14 +67,14 @@ static int lmlm4_read_header(AVFormatContext *s) > return AVERROR(ENOMEM); > st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; > st->codecpar->codec_id = AV_CODEC_ID_MPEG4; > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > avpriv_set_pts_info(st, 64, 1001, 30000); > > if (!(st = avformat_new_stream(s, NULL))) > return AVERROR(ENOMEM); > st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > st->codecpar->codec_id = AV_CODEC_ID_MP2; > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > > /* the parameters will be extracted from the compressed bitstream */ > return 0; > diff --git a/libavformat/loasdec.c b/libavformat/loasdec.c > index 490dd68ee0..97fabefcd7 100644 > --- a/libavformat/loasdec.c > +++ b/libavformat/loasdec.c > @@ -75,7 +75,7 @@ static int loas_read_header(AVFormatContext *s) > > st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > st->codecpar->codec_id = s->iformat->raw_codec_id; > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > > //LCM of all possible AAC sample rates > avpriv_set_pts_info(st, 64, 1, 28224000); > diff --git a/libavformat/lxfdec.c b/libavformat/lxfdec.c > index ebb745d360..79ccc77747 100644 > --- a/libavformat/lxfdec.c > +++ b/libavformat/lxfdec.c > @@ -262,7 +262,7 @@ static int lxf_read_header(AVFormatContext *s) > st->codecpar->bit_rate = 1000000 * ((video_params >> 14) & 0xFF); > st->codecpar->codec_tag = video_params & 0xF; > st->codecpar->codec_id = ff_codec_get_id(lxf_tags, > st->codecpar->codec_tag); > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > > av_log(s, AV_LOG_DEBUG, "record: %x = %i-%02i-%02i\n", > record_date, 1900 + (record_date & 0x7F), (record_date >> 7) & > 0xF, > diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c > index 63faea4e35..8523261760 100644 > --- a/libavformat/matroskadec.c > +++ b/libavformat/matroskadec.c > @@ -2806,7 +2806,7 @@ static int matroska_parse_tracks(AVFormatContext *s) > 255); > } > if (st->codecpar->codec_id != AV_CODEC_ID_HEVC) > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > > if (track->default_duration) { > av_reduce(&st->avg_frame_rate.num, &st->avg_frame_rate.den, > @@ -2864,9 +2864,9 @@ static int matroska_parse_tracks(AVFormatContext *s) > if (st->codecpar->codec_id == AV_CODEC_ID_MP3 || > st->codecpar->codec_id == AV_CODEC_ID_MLP || > st->codecpar->codec_id == AV_CODEC_ID_TRUEHD) > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > else if (st->codecpar->codec_id != AV_CODEC_ID_AAC) > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > if (track->codec_delay > 0) { > st->codecpar->initial_padding = > av_rescale_q(track->codec_delay, > (AVRational){1, > 1000000000}, > diff --git a/libavformat/mgsts.c b/libavformat/mgsts.c > index 02f65e7b1b..5886d2475a 100644 > --- a/libavformat/mgsts.c > +++ b/libavformat/mgsts.c > @@ -50,7 +50,7 @@ static int read_header(AVFormatContext *s) > if (!st) > return AVERROR(ENOMEM); > > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > st->start_time = 0; > st->nb_frames = > st->duration = avio_rb32(pb); > diff --git a/libavformat/mov.c b/libavformat/mov.c > index ca6a0f2db4..295a8e2b99 100644 > --- a/libavformat/mov.c > +++ b/libavformat/mov.c > @@ -2186,7 +2186,7 @@ static void mov_parse_stsd_audio(MOVContext *c, > AVIOContext *pb, > switch (st->codecpar->codec_id) { > case AV_CODEC_ID_MP2: > case AV_CODEC_ID_MP3: > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > break; > } > } > @@ -2424,10 +2424,10 @@ static int mov_finalize_stsd_codec(MOVContext *c, > AVIOContext *pb, > case AV_CODEC_ID_VC1: > case AV_CODEC_ID_VP8: > case AV_CODEC_ID_VP9: > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > break; > case AV_CODEC_ID_AV1: > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > break; > default: > break; > @@ -2773,8 +2773,8 @@ static int mov_read_stss(MOVContext *c, AVIOContext > *pb, MOVAtom atom) > > if (!entries) { > sc->keyframe_absent = 1; > - if (!st->need_parsing && st->codecpar->codec_type == > AVMEDIA_TYPE_VIDEO) > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + if (!st->internal->need_parsing && st->codecpar->codec_type == > AVMEDIA_TYPE_VIDEO) > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > return 0; > } > if (sc->keyframes) > @@ -4317,7 +4317,7 @@ static int mov_read_trak(MOVContext *c, AVIOContext > *pb, MOVAtom atom) > && sc->stts_count > 3 > && sc->stts_count*10 > st->nb_frames > && sc->time_scale == st->codecpar->sample_rate) { > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > } > /* Do not need those anymore. */ > av_freep(&sc->chunk_offsets); > @@ -7644,7 +7644,7 @@ static int mov_read_header(AVFormatContext *s) > mov->handbrake_version <= 1000000*0 + 1000*10 + 2 && // 0.10.2 > st->codecpar->codec_id == AV_CODEC_ID_MP3) { > av_log(s, AV_LOG_VERBOSE, "Forcing full parsing for mp3 > stream\n"); > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > } > } > > @@ -7950,9 +7950,9 @@ static int mov_read_packet(AVFormatContext *s, AVPacket > *pkt) > sc->has_palette = 0; > } > } > - if (st->codecpar->codec_id == AV_CODEC_ID_MP3 && !st->need_parsing > && pkt->size > 4) { > + if (st->codecpar->codec_id == AV_CODEC_ID_MP3 && > !st->internal->need_parsing && pkt->size > 4) { > if (ff_mpa_check_header(AV_RB32(pkt->data)) < 0) > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > } > } > > diff --git a/libavformat/mp3dec.c b/libavformat/mp3dec.c > index 611b423aea..b12cd31148 100644 > --- a/libavformat/mp3dec.c > +++ b/libavformat/mp3dec.c > @@ -374,7 +374,7 @@ static int mp3_read_header(AVFormatContext *s) > > st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > st->codecpar->codec_id = AV_CODEC_ID_MP3; > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > st->start_time = 0; > > // lcm of all mp3 sample rates > diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c > index fb1d54e52f..178e71d891 100644 > --- a/libavformat/mpeg.c > +++ b/libavformat/mpeg.c > @@ -623,7 +623,7 @@ skip: > st->codecpar->sample_rate = 8000; > } > st->internal->request_probe = request_probe; > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > > found: > if (st->discard >= AVDISCARD_ALL) > diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c > index 0ed108ce89..fb454b9fd3 100644 > --- a/libavformat/mpegts.c > +++ b/libavformat/mpegts.c > @@ -904,7 +904,7 @@ static int mpegts_set_stream_info(AVStream *st, > PESContext *pes, > st->priv_data = pes; > st->codecpar->codec_type = AVMEDIA_TYPE_DATA; > st->codecpar->codec_id = AV_CODEC_ID_NONE; > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > pes->st = st; > pes->stream_type = stream_type; > > @@ -942,7 +942,7 @@ static int mpegts_set_stream_info(AVStream *st, > PESContext *pes, > sub_st->priv_data = sub_pes; > sub_st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > sub_st->codecpar->codec_id = AV_CODEC_ID_AC3; > - sub_st->need_parsing = AVSTREAM_PARSE_FULL; > + sub_st->internal->need_parsing = AVSTREAM_PARSE_FULL; > sub_pes->sub_st = pes->sub_st = sub_st; > } > } > @@ -1717,10 +1717,10 @@ static void m4sl_cb(MpegTSFilter *filter, const > uint8_t *section, > ff_mp4_read_dec_config_descr(s, st, &pb); > if (st->codecpar->codec_id == AV_CODEC_ID_AAC && > st->codecpar->extradata_size > 0) > - st->need_parsing = 0; > + st->internal->need_parsing = 0; > if (st->codecpar->codec_id == AV_CODEC_ID_H264 && > st->codecpar->extradata_size > 0) > - st->need_parsing = 0; > + st->internal->need_parsing = 0; > > st->codecpar->codec_type = > avcodec_get_type(st->codecpar->codec_id); > st->internal->need_context_update = 1; > @@ -1826,7 +1826,7 @@ int ff_parse_mpeg2_descriptor(AVFormatContext *fc, > AVStream *st, int stream_type > ff_mp4_read_dec_config_descr(fc, st, &pb); > if (st->codecpar->codec_id == AV_CODEC_ID_AAC && > st->codecpar->extradata_size > 0) { > - st->need_parsing = 0; > + st->internal->need_parsing = 0; > st->internal->need_context_update = 1; > } > if (st->codecpar->codec_id == AV_CODEC_ID_MPEG4SYSTEMS) > @@ -1848,7 +1848,7 @@ int ff_parse_mpeg2_descriptor(AVFormatContext *fc, > AVStream *st, int stream_type > ff_mp4_read_dec_config_descr(fc, st, &pb); > if (st->codecpar->codec_id == AV_CODEC_ID_AAC && > st->codecpar->extradata_size > 0) { > - st->internal->request_probe = st->need_parsing = 0; > + st->internal->request_probe = st->internal->need_parsing = 0; > st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > st->internal->need_context_update = 1; > } > @@ -2035,7 +2035,7 @@ int ff_parse_mpeg2_descriptor(AVFormatContext *fc, > AVStream *st, int stream_type > } else { > avpriv_request_sample(fc, "Opus in MPEG-TS - > channel_config_code > 0x8"); > } > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > st->internal->need_context_update = 1; > } > } > diff --git a/libavformat/msf.c b/libavformat/msf.c > index ca2b3a3bf5..43a7f7b616 100644 > --- a/libavformat/msf.c > +++ b/libavformat/msf.c > @@ -80,7 +80,7 @@ static int msf_read_header(AVFormatContext *s) > AV_WL16(st->codecpar->extradata+8, codec == 4 ? 1 : 0); /* joint > stereo (repeat?) */ > AV_WL16(st->codecpar->extradata+10, 1); > st->codecpar->codec_id = AV_CODEC_ID_ATRAC3; break; > - case 7: st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + case 7: st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > st->codecpar->codec_id = AV_CODEC_ID_MP3; break; > default: > avpriv_request_sample(s, "Codec %d", codec); > diff --git a/libavformat/mtv.c b/libavformat/mtv.c > index 26a0fd0ea4..d33561b6ec 100644 > --- a/libavformat/mtv.c > +++ b/libavformat/mtv.c > @@ -185,7 +185,7 @@ static int mtv_read_header(AVFormatContext *s) > st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > st->codecpar->codec_id = AV_CODEC_ID_MP3; > st->codecpar->bit_rate = mtv->audio_br; > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > > // Jump over header > > diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c > index f0c2c0b15f..3bf480a3a6 100644 > --- a/libavformat/mxfdec.c > +++ b/libavformat/mxfdec.c > @@ -2593,7 +2593,7 @@ static int mxf_parse_structural_metadata(MXFContext > *mxf) > } > } > } > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > if (material_track->sequence->origin) { > av_dict_set_int(&st->metadata, "material_track_origin", > material_track->sequence->origin, 0); > } > @@ -2658,7 +2658,7 @@ static int mxf_parse_structural_metadata(MXFContext > *mxf) > else if (descriptor->bits_per_sample == 32) > st->codecpar->codec_id = AV_CODEC_ID_PCM_S32BE; > } else if (st->codecpar->codec_id == AV_CODEC_ID_MP2) { > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > } > st->codecpar->bits_per_coded_sample = > av_get_bits_per_sample(st->codecpar->codec_id); > } else if (st->codecpar->codec_type == AVMEDIA_TYPE_DATA) { > @@ -2692,7 +2692,7 @@ static int mxf_parse_structural_metadata(MXFContext > *mxf) > } > if (st->codecpar->codec_type != AVMEDIA_TYPE_DATA && > source_track->wrapping != FrameWrapped) { > /* TODO: decode timestamps */ > - st->need_parsing = AVSTREAM_PARSE_TIMESTAMPS; > + st->internal->need_parsing = AVSTREAM_PARSE_TIMESTAMPS; > } > } > > @@ -3660,7 +3660,7 @@ static int mxf_read_packet(AVFormatContext *s, AVPacket > *pkt) > if (next_ofs <= 0) { > // If we have no way to packetize the data, then return > it in chunks... > if (klv.next_klv - klv.length == pos && max_data_size > > MXF_MAX_CHUNK_SIZE) { > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > avpriv_request_sample(s, "Huge KLV without proper > index in non-frame wrapped essence"); > } > size = FFMIN(max_data_size, MXF_MAX_CHUNK_SIZE); > diff --git a/libavformat/ncdec.c b/libavformat/ncdec.c > index ff5eb189bc..3fe189e729 100644 > --- a/libavformat/ncdec.c > +++ b/libavformat/ncdec.c > @@ -53,7 +53,7 @@ static int nc_read_header(AVFormatContext *s) > > st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; > st->codecpar->codec_id = AV_CODEC_ID_MPEG4; > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > > avpriv_set_pts_info(st, 64, 1, 100); > > diff --git a/libavformat/nsvdec.c b/libavformat/nsvdec.c > index b79d0dcc62..7dcc218546 100644 > --- a/libavformat/nsvdec.c > +++ b/libavformat/nsvdec.c > @@ -462,7 +462,7 @@ static int nsv_parse_NSVs_header(AVFormatContext *s) > st->codecpar->codec_tag = atag; > st->codecpar->codec_id = ff_codec_get_id(nsv_codec_audio_tags, > atag); > > - st->need_parsing = AVSTREAM_PARSE_FULL; /* for PCM we will read > a chunk later and put correct info */ > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; /* for PCM we > will read a chunk later and put correct info */ > > /* set timebase to common denominator of ms and framerate */ > avpriv_set_pts_info(st, 64, 1, framerate.num*1000); > @@ -615,7 +615,7 @@ null_chunk_retry: > asize-=4; > av_log(s, AV_LOG_TRACE, "NSV RAWAUDIO: bps %d, nchan %d, srate > %d\n", bps, channels, samplerate); > if (fill_header) { > - st[NSV_ST_AUDIO]->need_parsing = AVSTREAM_PARSE_NONE; /* we > know everything */ > + st[NSV_ST_AUDIO]->internal->need_parsing = > AVSTREAM_PARSE_NONE; /* we know everything */ > if (bps != 16) { > av_log(s, AV_LOG_TRACE, "NSV AUDIO bit/sample != 16 > (%d)!!!\n", bps); > } > diff --git a/libavformat/nuv.c b/libavformat/nuv.c > index aec87f45fe..1d25d3b125 100644 > --- a/libavformat/nuv.c > +++ b/libavformat/nuv.c > @@ -132,7 +132,7 @@ static int get_codec_data(AVFormatContext *s, AVIOContext > *pb, AVStream *vst, > } > ast->codecpar->codec_id = id; > > - ast->need_parsing = AVSTREAM_PARSE_FULL; > + ast->internal->need_parsing = AVSTREAM_PARSE_FULL; > } else > avio_skip(pb, 4 * 4); > > diff --git a/libavformat/oggparseflac.c b/libavformat/oggparseflac.c > index 4e85b05c67..15eeca56aa 100644 > --- a/libavformat/oggparseflac.c > +++ b/libavformat/oggparseflac.c > @@ -59,7 +59,7 @@ flac_header (AVFormatContext * s, int idx) > > st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > st->codecpar->codec_id = AV_CODEC_ID_FLAC; > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > > if ((ret = ff_alloc_extradata(st->codecpar, FLAC_STREAMINFO_SIZE)) < > 0) > return ret; > diff --git a/libavformat/oggparseogm.c b/libavformat/oggparseogm.c > index 469b229995..a8319b9dfa 100644 > --- a/libavformat/oggparseogm.c > +++ b/libavformat/oggparseogm.c > @@ -60,7 +60,7 @@ ogm_header(AVFormatContext *s, int idx) > st->codecpar->codec_id = ff_codec_get_id(ff_codec_bmp_tags, tag); > st->codecpar->codec_tag = tag; > if (st->codecpar->codec_id == AV_CODEC_ID_MPEG4) > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > } else if (bytestream2_peek_byte(&p) == 't') { > st->codecpar->codec_type = AVMEDIA_TYPE_SUBTITLE; > st->codecpar->codec_id = AV_CODEC_ID_TEXT; > @@ -76,7 +76,7 @@ ogm_header(AVFormatContext *s, int idx) > st->codecpar->codec_id = ff_codec_get_id(ff_codec_wav_tags, cid); > // our parser completely breaks AAC in Ogg > if (st->codecpar->codec_id != AV_CODEC_ID_AAC) > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > } > > size = bytestream2_get_le32(&p); > diff --git a/libavformat/oggparsetheora.c b/libavformat/oggparsetheora.c > index d1064e4328..28684f6ea9 100644 > --- a/libavformat/oggparsetheora.c > +++ b/libavformat/oggparsetheora.c > @@ -112,7 +112,7 @@ static int theora_header(AVFormatContext *s, int idx) > > st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; > st->codecpar->codec_id = AV_CODEC_ID_THEORA; > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > } > break; > case 0x81: > diff --git a/libavformat/oggparsevp8.c b/libavformat/oggparsevp8.c > index b76ac71cc5..85b3627c9c 100644 > --- a/libavformat/oggparsevp8.c > +++ b/libavformat/oggparsevp8.c > @@ -61,7 +61,7 @@ static int vp8_header(AVFormatContext *s, int idx) > avpriv_set_pts_info(st, 64, framerate.den, framerate.num); > st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; > st->codecpar->codec_id = AV_CODEC_ID_VP8; > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > break; > case 0x02: > if (p[6] != 0x20) > diff --git a/libavformat/omadec.c b/libavformat/omadec.c > index 1c2b04212c..8891cfc4b6 100644 > --- a/libavformat/omadec.c > +++ b/libavformat/omadec.c > @@ -520,7 +520,7 @@ static int oma_read_header(AVFormatContext *s) > avpriv_set_pts_info(st, 64, 1, samplerate); > break; > case OMA_CODECID_MP3: > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > framesize = 1024; > break; > case OMA_CODECID_LPCM: > diff --git a/libavformat/pva.c b/libavformat/pva.c > index 8e3013a496..ff30746bcb 100644 > --- a/libavformat/pva.c > +++ b/libavformat/pva.c > @@ -61,7 +61,7 @@ static int pva_read_header(AVFormatContext *s) { > return AVERROR(ENOMEM); > st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; > st->codecpar->codec_id = AV_CODEC_ID_MPEG2VIDEO; > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > avpriv_set_pts_info(st, 32, 1, 90000); > av_add_index_entry(st, 0, 0, 0, 0, AVINDEX_KEYFRAME); > > @@ -69,7 +69,7 @@ static int pva_read_header(AVFormatContext *s) { > return AVERROR(ENOMEM); > st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > st->codecpar->codec_id = AV_CODEC_ID_MP2; > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > avpriv_set_pts_info(st, 33, 1, 90000); > av_add_index_entry(st, 0, 0, 0, 0, AVINDEX_KEYFRAME); > > diff --git a/libavformat/rawdec.c b/libavformat/rawdec.c > index c162b52940..a1f593c66a 100644 > --- a/libavformat/rawdec.c > +++ b/libavformat/rawdec.c > @@ -60,7 +60,7 @@ int ff_raw_audio_read_header(AVFormatContext *s) > return AVERROR(ENOMEM); > st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > st->codecpar->codec_id = s->iformat->raw_codec_id; > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > st->start_time = 0; > /* the parameters will be extracted from the compressed bitstream */ > > @@ -83,7 +83,7 @@ int ff_raw_video_read_header(AVFormatContext *s) > > st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; > st->codecpar->codec_id = s->iformat->raw_codec_id; > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > > st->internal->avctx->framerate = s1->framerate; > avpriv_set_pts_info(st, 64, 1, 1200000); > diff --git a/libavformat/rmdec.c b/libavformat/rmdec.c > index 538f549495..68b5c3b75a 100644 > --- a/libavformat/rmdec.c > +++ b/libavformat/rmdec.c > @@ -204,7 +204,7 @@ static int rm_read_audio_stream_info(AVFormatContext *s, > AVIOContext *pb, > > switch (st->codecpar->codec_id) { > case AV_CODEC_ID_AC3: > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > break; > case AV_CODEC_ID_RA_288: > st->codecpar->extradata_size= 0; > @@ -213,7 +213,7 @@ static int rm_read_audio_stream_info(AVFormatContext *s, > AVIOContext *pb, > st->codecpar->block_align = coded_framesize; > break; > case AV_CODEC_ID_COOK: > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > case AV_CODEC_ID_ATRAC3: > case AV_CODEC_ID_SIPR: > if (read_all) { > @@ -237,7 +237,7 @@ static int rm_read_audio_stream_info(AVFormatContext *s, > AVIOContext *pb, > return -1; > } > st->codecpar->block_align = ff_sipr_subpk_size[flavor]; > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > } else { > if(sub_packet_size <= 0){ > av_log(s, AV_LOG_ERROR, "sub_packet_size is invalid\n"); > @@ -390,7 +390,7 @@ int ff_rm_read_mdpr_codecdata(AVFormatContext *s, > AVIOContext *pb, > avio_skip(pb, 2); // looks like bits per sample > avio_skip(pb, 4); // always zero? > st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; > - st->need_parsing = AVSTREAM_PARSE_TIMESTAMPS; > + st->internal->need_parsing = AVSTREAM_PARSE_TIMESTAMPS; > fps = avio_rb32(pb); > > if ((ret = rm_read_extradata(s, pb, st->codecpar, codec_data_size - > (avio_tell(pb) - codec_pos))) < 0) > diff --git a/libavformat/rtpdec_asf.c b/libavformat/rtpdec_asf.c > index 2749ad1380..f6e7f00bbe 100644 > --- a/libavformat/rtpdec_asf.c > +++ b/libavformat/rtpdec_asf.c > @@ -167,8 +167,8 @@ static int asfrtp_parse_sdp_line(AVFormatContext *s, int > stream_index, > if (s->streams[stream_index]->id == > rt->asf_ctx->streams[i]->id) { > > avcodec_parameters_copy(s->streams[stream_index]->codecpar, > > rt->asf_ctx->streams[i]->codecpar); > - s->streams[stream_index]->need_parsing = > - rt->asf_ctx->streams[i]->need_parsing; > + s->streams[stream_index]->internal->need_parsing = > + rt->asf_ctx->streams[i]->internal->need_parsing; > avpriv_set_pts_info(s->streams[stream_index], 32, 1, > 1000); > } > } > diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c > index 3899c26fa4..9f509a229f 100644 > --- a/libavformat/rtsp.c > +++ b/libavformat/rtsp.c > @@ -218,7 +218,7 @@ static void init_rtp_handler(const > RTPDynamicProtocolHandler *handler, > par->codec_id = handler->codec_id; > rtsp_st->dynamic_handler = handler; > if (st) > - st->need_parsing = handler->need_parsing; > + st->internal->need_parsing = handler->need_parsing; > if (handler->priv_data_size) { > rtsp_st->dynamic_protocol_context = > av_mallocz(handler->priv_data_size); > if (!rtsp_st->dynamic_protocol_context) > diff --git a/libavformat/s337m.c b/libavformat/s337m.c > index 37e93db7d5..e1d921c303 100644 > --- a/libavformat/s337m.c > +++ b/libavformat/s337m.c > @@ -20,6 +20,7 @@ > > #include "libavutil/intreadwrite.h" > #include "avformat.h" > +#include "internal.h" > #include "spdif.h" > > #define MARKER_16LE 0x72F81F4E > @@ -180,7 +181,7 @@ static int s337m_read_packet(AVFormatContext *s, AVPacket > *pkt) > } > st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > st->codecpar->codec_id = codec; > - st->need_parsing = AVSTREAM_PARSE_HEADERS; > + st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; > } > > return 0; > diff --git a/libavformat/sdr2.c b/libavformat/sdr2.c > index 373116a4a6..0f506fd074 100644 > --- a/libavformat/sdr2.c > +++ b/libavformat/sdr2.c > @@ -51,7 +51,7 @@ static int sdr2_read_header(AVFormatContext *s) > st->codecpar->width = avio_rl32(s->pb); > st->codecpar->height = avio_rl32(s->pb); > st->codecpar->codec_id = AV_CODEC_ID_H264; > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > > ast->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > ast->codecpar->channels = 1; > diff --git a/libavformat/segafilm.c b/libavformat/segafilm.c > index 4b4327a179..05b4d9e6a8 100644 > --- a/libavformat/segafilm.c > +++ b/libavformat/segafilm.c > @@ -183,7 +183,7 @@ static int film_read_header(AVFormatContext *s) > if (film->audio_type == AV_CODEC_ID_ADPCM_ADX) { > st->codecpar->bits_per_coded_sample = 18 * 8 / 32; > st->codecpar->block_align = st->codecpar->channels * 18; > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > } else { > st->codecpar->bits_per_coded_sample = film->audio_bits; > st->codecpar->block_align = st->codecpar->channels * > diff --git a/libavformat/swfdec.c b/libavformat/swfdec.c > index f5a98e8b53..8eda80b4f6 100644 > --- a/libavformat/swfdec.c > +++ b/libavformat/swfdec.c > @@ -204,7 +204,7 @@ static AVStream *create_new_audio_stream(AVFormatContext > *s, int id, int info) > } > ast->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > ast->codecpar->codec_id = ff_codec_get_id(swf_audio_codec_tags, > info>>4 & 15); > - ast->need_parsing = AVSTREAM_PARSE_FULL; > + ast->internal->need_parsing = AVSTREAM_PARSE_FULL; > sample_rate_code = info>>2 & 3; > sample_size_code = info>>1 & 1; > if (!sample_size_code && ast->codecpar->codec_id == > AV_CODEC_ID_PCM_S16LE) > diff --git a/libavformat/takdec.c b/libavformat/takdec.c > index 46c500efef..cbb9a9345e 100644 > --- a/libavformat/takdec.c > +++ b/libavformat/takdec.c > @@ -65,7 +65,7 @@ static int tak_read_header(AVFormatContext *s) > > st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > st->codecpar->codec_id = AV_CODEC_ID_TAK; > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > > tc->mlast_frame = 0; > if (avio_rl32(pb) != MKTAG('t', 'B', 'a', 'K')) { > diff --git a/libavformat/ty.c b/libavformat/ty.c > index 8830467f99..5bb5d4267b 100644 > --- a/libavformat/ty.c > +++ b/libavformat/ty.c > @@ -308,7 +308,7 @@ static int ty_read_header(AVFormatContext *s) > return AVERROR(ENOMEM); > st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; > st->codecpar->codec_id = AV_CODEC_ID_MPEG2VIDEO; > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > avpriv_set_pts_info(st, 64, 1, 90000); > > ast = avformat_new_stream(s, NULL); > @@ -318,7 +318,7 @@ static int ty_read_header(AVFormatContext *s) > > if (ty->audio_type == TIVO_AUDIO_MPEG) { > ast->codecpar->codec_id = AV_CODEC_ID_MP2; > - ast->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + ast->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > } else { > ast->codecpar->codec_id = AV_CODEC_ID_AC3; > } > diff --git a/libavformat/utils.c b/libavformat/utils.c > index df6d9b5cf6..85f7b2e1cb 100644 > --- a/libavformat/utils.c > +++ b/libavformat/utils.c > @@ -123,7 +123,12 @@ int64_t av_stream_get_end_pts(const AVStream *st) > > struct AVCodecParserContext *av_stream_get_parser(const AVStream *st) > { > - return st->parser; > + return st->internal->parser; > +} > + > +void avpriv_stream_set_need_parsing(AVStream *st, enum AVStreamParseType > type) > +{ > + st->internal->need_parsing = type; > } > > void av_format_inject_global_side_data(AVFormatContext *s) > @@ -457,9 +462,9 @@ static int update_stream_avctx(AVFormatContext *s) > continue; > > /* close parser, because it depends on the codec */ > - if (st->parser && st->internal->avctx->codec_id != > st->codecpar->codec_id) { > - av_parser_close(st->parser); > - st->parser = NULL; > + if (st->internal->parser && st->internal->avctx->codec_id != > st->codecpar->codec_id) { > + av_parser_close(st->internal->parser); > + st->internal->parser = NULL; > } > > /* update internal codec context, for the parser */ > @@ -1256,7 +1261,7 @@ static void compute_pkt_fields(AVFormatContext *s, > AVStream *st, > > /* Correct timestamps with byte offset if demuxers only have timestamps > * on packet boundaries */ > - if (pc && st->need_parsing == AVSTREAM_PARSE_TIMESTAMPS && pkt->size) { > + if (pc && st->internal->need_parsing == AVSTREAM_PARSE_TIMESTAMPS && > pkt->size) { > /* this will estimate bitrate based on this frame's duration and > size */ > offset = av_rescale(pc->offset, pkt->duration, pkt->size); > if (pkt->pts != AV_NOPTS_VALUE) > @@ -1365,9 +1370,9 @@ static int parse_packet(AVFormatContext *s, AVPacket > *pkt, > int size = pkt->size; > int ret = 0, got_output = flush; > > - if (!size && !flush && st->parser->flags & PARSER_FLAG_COMPLETE_FRAMES) { > + if (!size && !flush && st->internal->parser->flags & > PARSER_FLAG_COMPLETE_FRAMES) { > // preserve 0-size sync packets > - compute_pkt_fields(s, st, st->parser, pkt, AV_NOPTS_VALUE, > AV_NOPTS_VALUE); > + compute_pkt_fields(s, st, st->internal->parser, pkt, AV_NOPTS_VALUE, > AV_NOPTS_VALUE); > } > > while (size > 0 || (flush && got_output)) { > @@ -1375,7 +1380,7 @@ static int parse_packet(AVFormatContext *s, AVPacket > *pkt, > int64_t next_pts = pkt->pts; > int64_t next_dts = pkt->dts; > > - len = av_parser_parse2(st->parser, st->internal->avctx, > + len = av_parser_parse2(st->internal->parser, st->internal->avctx, > &out_pkt->data, &out_pkt->size, data, size, > pkt->pts, pkt->dts, pkt->pos); > > @@ -1394,7 +1399,7 @@ static int parse_packet(AVFormatContext *s, AVPacket > *pkt, > if (pkt->buf && out_pkt->data == pkt->data) { > /* reference pkt->buf only when out_pkt->data is guaranteed to > point > * to data in it and not in the parser's internal buffer. */ > - /* XXX: Ensure this is the case with all parsers when > st->parser->flags > + /* XXX: Ensure this is the case with all parsers when > st->internal->parser->flags > * is PARSER_FLAG_COMPLETE_FRAMES and check for that instead? */ > out_pkt->buf = av_buffer_ref(pkt->buf); > if (!out_pkt->buf) { > @@ -1415,11 +1420,11 @@ static int parse_packet(AVFormatContext *s, AVPacket > *pkt, > } > > /* set the duration */ > - out_pkt->duration = (st->parser->flags & > PARSER_FLAG_COMPLETE_FRAMES) ? pkt->duration : 0; > + out_pkt->duration = (st->internal->parser->flags & > PARSER_FLAG_COMPLETE_FRAMES) ? pkt->duration : 0; > if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) { > if (st->internal->avctx->sample_rate > 0) { > out_pkt->duration = > - av_rescale_q_rnd(st->parser->duration, > + av_rescale_q_rnd(st->internal->parser->duration, > (AVRational) { 1, > st->internal->avctx->sample_rate }, > st->time_base, > AV_ROUND_DOWN); > @@ -1427,23 +1432,23 @@ static int parse_packet(AVFormatContext *s, AVPacket > *pkt, > } > > out_pkt->stream_index = st->index; > - out_pkt->pts = st->parser->pts; > - out_pkt->dts = st->parser->dts; > - out_pkt->pos = st->parser->pos; > + out_pkt->pts = st->internal->parser->pts; > + out_pkt->dts = st->internal->parser->dts; > + out_pkt->pos = st->internal->parser->pos; > out_pkt->flags |= pkt->flags & AV_PKT_FLAG_DISCARD; > > - if (st->need_parsing == AVSTREAM_PARSE_FULL_RAW) > - out_pkt->pos = st->parser->frame_offset; > + if (st->internal->need_parsing == AVSTREAM_PARSE_FULL_RAW) > + out_pkt->pos = st->internal->parser->frame_offset; > > - if (st->parser->key_frame == 1 || > - (st->parser->key_frame == -1 && > - st->parser->pict_type == AV_PICTURE_TYPE_I)) > + if (st->internal->parser->key_frame == 1 || > + (st->internal->parser->key_frame == -1 && > + st->internal->parser->pict_type == AV_PICTURE_TYPE_I)) > out_pkt->flags |= AV_PKT_FLAG_KEY; > > - if (st->parser->key_frame == -1 && st->parser->pict_type > ==AV_PICTURE_TYPE_NONE && (pkt->flags&AV_PKT_FLAG_KEY)) > + if (st->internal->parser->key_frame == -1 && > st->internal->parser->pict_type ==AV_PICTURE_TYPE_NONE && > (pkt->flags&AV_PKT_FLAG_KEY)) > out_pkt->flags |= AV_PKT_FLAG_KEY; > > - compute_pkt_fields(s, st, st->parser, out_pkt, next_dts, next_pts); > + compute_pkt_fields(s, st, st->internal->parser, out_pkt, next_dts, > next_pts); > > ret = avpriv_packet_list_put(&s->internal->parse_queue, > &s->internal->parse_queue_end, > @@ -1454,8 +1459,8 @@ static int parse_packet(AVFormatContext *s, AVPacket > *pkt, > > /* end of the stream => close and free the parser */ > if (flush) { > - av_parser_close(st->parser); > - st->parser = NULL; > + av_parser_close(st->internal->parser); > + st->internal->parser = NULL; > } > > fail: > @@ -1486,7 +1491,7 @@ static int read_frame_internal(AVFormatContext *s, > AVPacket *pkt) > /* flush the parsers */ > for (i = 0; i < s->nb_streams; i++) { > st = s->streams[i]; > - if (st->parser && st->need_parsing) > + if (st->internal->parser && st->internal->need_parsing) > parse_packet(s, pkt, st->index, 1); > } > /* all remaining packets are now in parse_queue => > @@ -1507,9 +1512,9 @@ static int read_frame_internal(AVFormatContext *s, > AVPacket *pkt) > } > > /* close parser, because it depends on the codec */ > - if (st->parser && st->internal->avctx->codec_id != > st->codecpar->codec_id) { > - av_parser_close(st->parser); > - st->parser = NULL; > + if (st->internal->parser && st->internal->avctx->codec_id != > st->codecpar->codec_id) { > + av_parser_close(st->internal->parser); > + st->internal->parser = NULL; > } > > ret = avcodec_parameters_to_context(st->internal->avctx, > st->codecpar); > @@ -1539,23 +1544,23 @@ static int read_frame_internal(AVFormatContext *s, > AVPacket *pkt) > av_ts2str(pkt->dts), > pkt->size, pkt->duration, pkt->flags); > > - if (st->need_parsing && !st->parser && !(s->flags & > AVFMT_FLAG_NOPARSE)) { > - st->parser = av_parser_init(st->codecpar->codec_id); > - if (!st->parser) { > + if (st->internal->need_parsing && !st->internal->parser && > !(s->flags & AVFMT_FLAG_NOPARSE)) { > + st->internal->parser = av_parser_init(st->codecpar->codec_id); > + if (!st->internal->parser) { > av_log(s, AV_LOG_VERBOSE, "parser not found for codec " > "%s, packets or times may be invalid.\n", > avcodec_get_name(st->codecpar->codec_id)); > /* no parser available: just output the raw packets */ > - st->need_parsing = AVSTREAM_PARSE_NONE; > - } else if (st->need_parsing == AVSTREAM_PARSE_HEADERS) > - st->parser->flags |= PARSER_FLAG_COMPLETE_FRAMES; > - else if (st->need_parsing == AVSTREAM_PARSE_FULL_ONCE) > - st->parser->flags |= PARSER_FLAG_ONCE; > - else if (st->need_parsing == AVSTREAM_PARSE_FULL_RAW) > - st->parser->flags |= PARSER_FLAG_USE_CODEC_TS; > + st->internal->need_parsing = AVSTREAM_PARSE_NONE; > + } else if (st->internal->need_parsing == AVSTREAM_PARSE_HEADERS) > + st->internal->parser->flags |= PARSER_FLAG_COMPLETE_FRAMES; > + else if (st->internal->need_parsing == AVSTREAM_PARSE_FULL_ONCE) > + st->internal->parser->flags |= PARSER_FLAG_ONCE; > + else if (st->internal->need_parsing == AVSTREAM_PARSE_FULL_RAW) > + st->internal->parser->flags |= PARSER_FLAG_USE_CODEC_TS; > } > > - if (!st->need_parsing || !st->parser) { > + if (!st->internal->need_parsing || !st->internal->parser) { > /* no parsing needed: we just output the packet as is */ > compute_pkt_fields(s, st, NULL, pkt, AV_NOPTS_VALUE, > AV_NOPTS_VALUE); > if ((s->iformat->flags & AVFMT_GENERIC_INDEX) && > @@ -1819,9 +1824,9 @@ void ff_read_frame_flush(AVFormatContext *s) > for (i = 0; i < s->nb_streams; i++) { > st = s->streams[i]; > > - if (st->parser) { > - av_parser_close(st->parser); > - st->parser = NULL; > + if (st->internal->parser) { > + av_parser_close(st->internal->parser); > + st->internal->parser = NULL; > } > st->internal->last_IP_pts = AV_NOPTS_VALUE; > st->internal->last_dts_for_order_check = AV_NOPTS_VALUE; > @@ -2736,9 +2741,9 @@ static void estimate_timings_from_pts(AVFormatContext > *ic, int64_t old_offset) > av_log(ic, AV_LOG_WARNING, > "start time for stream %d is not set in > estimate_timings_from_pts\n", i); > > - if (st->parser) { > - av_parser_close(st->parser); > - st->parser = NULL; > + if (st->internal->parser) { > + av_parser_close(st->internal->parser); > + st->internal->parser = NULL; > } > } > > @@ -2774,7 +2779,7 @@ static void estimate_timings_from_pts(AVFormatContext > *ic, int64_t old_offset) > (st->start_time != AV_NOPTS_VALUE || > st->first_dts != AV_NOPTS_VALUE)) { > if (pkt->duration == 0) { > - ff_compute_frame_duration(ic, &num, &den, st, > st->parser, pkt); > + ff_compute_frame_duration(ic, &num, &den, st, > st->internal->parser, pkt); > if (den && num) { > pkt->duration = av_rescale_rnd(1, > num * (int64_t) st->time_base.den, > @@ -3589,15 +3594,15 @@ int avformat_find_stream_info(AVFormatContext *ic, > AVDictionary **options) > > /* check if the caller has overridden the codec id */ > // only for the split stuff > - if (!st->parser && !(ic->flags & AVFMT_FLAG_NOPARSE) && > st->internal->request_probe <= 0) { > - st->parser = av_parser_init(st->codecpar->codec_id); > - if (st->parser) { > - if (st->need_parsing == AVSTREAM_PARSE_HEADERS) { > - st->parser->flags |= PARSER_FLAG_COMPLETE_FRAMES; > - } else if (st->need_parsing == AVSTREAM_PARSE_FULL_RAW) { > - st->parser->flags |= PARSER_FLAG_USE_CODEC_TS; > + if (!st->internal->parser && !(ic->flags & AVFMT_FLAG_NOPARSE) && > st->internal->request_probe <= 0) { > + st->internal->parser = av_parser_init(st->codecpar->codec_id); > + if (st->internal->parser) { > + if (st->internal->need_parsing == AVSTREAM_PARSE_HEADERS) { > + st->internal->parser->flags |= > PARSER_FLAG_COMPLETE_FRAMES; > + } else if (st->internal->need_parsing == > AVSTREAM_PARSE_FULL_RAW) { > + st->internal->parser->flags |= PARSER_FLAG_USE_CODEC_TS; > } > - } else if (st->need_parsing) { > + } else if (st->internal->need_parsing) { > av_log(ic, AV_LOG_VERBOSE, "parser not found for codec " > "%s, packets or times may be invalid.\n", > avcodec_get_name(st->codecpar->codec_id)); > @@ -3840,7 +3845,8 @@ int avformat_find_stream_info(AVFormatContext *ic, > AVDictionary **options) > st->internal->info->codec_info_duration = FFMIN(pkt->pts > - st->start_time, st->internal->info->codec_info_duration + pkt->duration); > } else > st->internal->info->codec_info_duration += pkt->duration; > - st->internal->info->codec_info_duration_fields += st->parser > && st->need_parsing && avctx->ticks_per_frame ==2 ? st->parser->repeat_pict + > 1 : 2; > + st->internal->info->codec_info_duration_fields += > st->internal->parser && st->internal->need_parsing && avctx->ticks_per_frame > == 2 > + ? > st->internal->parser->repeat_pict + 1 : 2; > } > } > if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { > @@ -4256,8 +4262,8 @@ static void free_stream(AVStream **pst) > av_freep(&st->side_data[i].data); > av_freep(&st->side_data); > > - if (st->parser) > - av_parser_close(st->parser); > + if (st->internal->parser) > + av_parser_close(st->internal->parser); > > if (st->attached_pic.data) > av_packet_unref(&st->attached_pic); > diff --git a/libavformat/wavdec.c b/libavformat/wavdec.c > index 8e2a7a7475..6bce9ba688 100644 > --- a/libavformat/wavdec.c > +++ b/libavformat/wavdec.c > @@ -183,7 +183,7 @@ static int wav_parse_fmt_tag(AVFormatContext *s, int64_t > size, AVStream *st) > return ret; > handle_stream_probing(st); > > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > > avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); > > @@ -200,7 +200,7 @@ static int wav_parse_xma2_tag(AVFormatContext *s, int64_t > size, AVStream *st) > > st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > st->codecpar->codec_id = AV_CODEC_ID_XMA2; > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > > version = avio_r8(pb); > if (version != 3 && version != 4) > @@ -950,7 +950,7 @@ static int w64_read_header(AVFormatContext *s) > ff_metadata_conv_ctx(s, NULL, ff_riff_info_conv); > > handle_stream_probing(st); > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > > avio_seek(pb, data_ofs, SEEK_SET); > > diff --git a/libavformat/wtvdec.c b/libavformat/wtvdec.c > index ab7e6b8188..a549681322 100644 > --- a/libavformat/wtvdec.c > +++ b/libavformat/wtvdec.c > @@ -618,7 +618,7 @@ static AVStream * new_stream(AVFormatContext *s, AVStream > *st, int sid, int code > st->priv_data = wst; > } > st->codecpar->codec_type = codec_type; > - st->need_parsing = AVSTREAM_PARSE_FULL; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL; > avpriv_set_pts_info(st, 64, 1, 10000000); > return st; > } > diff --git a/libavformat/xvag.c b/libavformat/xvag.c > index 55bc25227e..2a85d66ecb 100644 > --- a/libavformat/xvag.c > +++ b/libavformat/xvag.c > @@ -87,7 +87,7 @@ static int xvag_read_header(AVFormatContext *s) > if (avio_rb16(s->pb) == 0xFFFB) { > st->codecpar->codec_id = AV_CODEC_ID_MP3; > st->codecpar->block_align = 0x1000; > - st->need_parsing = AVSTREAM_PARSE_FULL_RAW; > + st->internal->need_parsing = AVSTREAM_PARSE_FULL_RAW; > } > > avio_skip(s->pb, -2); > diff --git a/libavformat/xwma.c b/libavformat/xwma.c > index 9c9b02e515..d7fd05504b 100644 > --- a/libavformat/xwma.c > +++ b/libavformat/xwma.c > @@ -78,7 +78,7 @@ static int xwma_read_header(AVFormatContext *s) > ret = ff_get_wav_header(s, pb, st->codecpar, size, 0); > if (ret < 0) > return ret; > - st->need_parsing = AVSTREAM_PARSE_NONE; > + st->internal->need_parsing = AVSTREAM_PARSE_NONE; > > /* XWMA encoder only allows a few channel/sample rate/bitrate > combinations, > * but some create identical files with fake bitrate (1ch 22050hz at > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".