diff options
author | wm4 <nfxjfg@googlemail.com> | 2015-02-06 14:53:40 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2015-02-10 21:45:04 +0100 |
commit | 9deaec782810d098bca11c9332fab2d2f4c5fb78 (patch) | |
tree | 09de732f0e2550abd520cb94d80e3882546548f2 /libavformat | |
parent | 1509c018bd5b054a2354e20021ccbac9c934d213 (diff) | |
download | ffmpeg-9deaec782810d098bca11c9332fab2d2f4c5fb78.tar.gz |
lavf: move internal fields from public to internal context
This is not an API change; the fields were explicitly declared private
before.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/asfdec.c | 10 | ||||
-rw-r--r-- | libavformat/avformat.h | 49 | ||||
-rw-r--r-- | libavformat/dv.c | 4 | ||||
-rw-r--r-- | libavformat/internal.h | 41 | ||||
-rw-r--r-- | libavformat/mtv.c | 2 | ||||
-rw-r--r-- | libavformat/mux.c | 30 | ||||
-rw-r--r-- | libavformat/mxfenc.c | 14 | ||||
-rw-r--r-- | libavformat/nutdec.c | 2 | ||||
-rw-r--r-- | libavformat/oggdec.c | 6 | ||||
-rw-r--r-- | libavformat/options.c | 2 | ||||
-rw-r--r-- | libavformat/pcm.c | 3 | ||||
-rw-r--r-- | libavformat/r3d.c | 6 | ||||
-rw-r--r-- | libavformat/utils.c | 77 | ||||
-rw-r--r-- | libavformat/vqf.c | 2 | ||||
-rw-r--r-- | libavformat/yop.c | 2 |
15 files changed, 122 insertions, 128 deletions
diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c index 85e800d501..5c23170c05 100644 --- a/libavformat/asfdec.c +++ b/libavformat/asfdec.c @@ -878,7 +878,7 @@ static int asf_get_packet(AVFormatContext *s, AVIOContext *pb) if (asf->no_resync_search) off = 3; else if (s->packet_size > 0) - off = (avio_tell(pb) - s->data_offset) % s->packet_size + 3; + off = (avio_tell(pb) - s->internal->data_offset) % s->packet_size + 3; c = d = e = -1; while (off-- > 0) { @@ -1361,9 +1361,9 @@ static int64_t asf_read_pts(AVFormatContext *s, int stream_index, start_pos[i] = pos; if (s->packet_size > 0) - pos = (pos + s->packet_size - 1 - s->data_offset) / + pos = (pos + s->packet_size - 1 - s->internal->data_offset) / s->packet_size * s->packet_size + - s->data_offset; + s->internal->data_offset; *ppos = pos; avio_seek(s->pb, pos, SEEK_SET); @@ -1437,7 +1437,7 @@ static int asf_build_simple_index(AVFormatContext *s, int stream_index) for (i = 0; i < ict; i++) { int pktnum = avio_rl32(s->pb); int pktct = avio_rl16(s->pb); - int64_t pos = s->data_offset + s->packet_size * (int64_t)pktnum; + int64_t pos = s->internal->data_offset + s->packet_size * (int64_t)pktnum; int64_t index_pts = FFMAX(av_rescale(itime, i, 10000) - asf->hdr.preroll, 0); if (pos != last_pos) { @@ -1480,7 +1480,7 @@ static int asf_read_seek(AVFormatContext *s, int stream_index, /* explicitly handle the case of seeking to 0 */ if (!pts) { asf_reset_header(s); - avio_seek(s->pb, s->data_offset, SEEK_SET); + avio_seek(s->pb, s->internal->data_offset, SEEK_SET); return 0; } diff --git a/libavformat/avformat.h b/libavformat/avformat.h index df9a602c02..0994c8075e 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -1210,55 +1210,6 @@ typedef struct AVFormatContext { #define AVFMT_AVOID_NEG_TS_MAKE_NON_NEGATIVE 1 ///< Shift timestamps so they are non negative #define AVFMT_AVOID_NEG_TS_MAKE_ZERO 2 ///< Shift timestamps so that they start at 0 - /***************************************************************** - * All fields below this line are not part of the public API. They - * may not be used outside of libavformat and can be changed and - * removed at will. - * New public fields should be added right above. - ***************************************************************** - */ - - /** - * This buffer is only needed when packets were already buffered but - * not decoded, for example to get the codec parameters in MPEG - * streams. - */ - struct AVPacketList *packet_buffer; - struct AVPacketList *packet_buffer_end; - - /* av_seek_frame() support */ - int64_t data_offset; /**< offset of the first packet */ - - /** - * Raw packets from the demuxer, prior to parsing and decoding. - * This buffer is used for buffering packets until the codec can - * be identified, as parsing cannot be done without knowing the - * codec. - */ - struct AVPacketList *raw_packet_buffer; - struct AVPacketList *raw_packet_buffer_end; - /** - * Packets split by the parser get queued here. - */ - struct AVPacketList *parse_queue; - struct AVPacketList *parse_queue_end; - /** - * Remaining size available for raw_packet_buffer, in bytes. - */ -#define RAW_PACKET_BUFFER_SIZE 2500000 - int raw_packet_buffer_remaining_size; - - /** - * Offset to remap timestamps to be non-negative. - * Expressed in timebase units. - */ - int64_t offset; - - /** - * Timebase for the timestamp offset. - */ - AVRational offset_timebase; - /** * An opaque field for libavformat internal usage. * Must not be accessed in any way by callers. diff --git a/libavformat/dv.c b/libavformat/dv.c index da201a3705..1ba8698d20 100644 --- a/libavformat/dv.c +++ b/libavformat/dv.c @@ -398,7 +398,7 @@ static int64_t dv_frame_offset(AVFormatContext *s, DVDemuxContext *c, const AVDVProfile *sys = av_dv_codec_profile(c->vst->codec->width, c->vst->codec->height, c->vst->codec->pix_fmt); int64_t offset; - int64_t size = avio_size(s->pb) - s->data_offset; + int64_t size = avio_size(s->pb) - s->internal->data_offset; int64_t max_offset = ((size - 1) / sys->frame_size) * sys->frame_size; offset = sys->frame_size * timestamp; @@ -408,7 +408,7 @@ static int64_t dv_frame_offset(AVFormatContext *s, DVDemuxContext *c, else if (offset < 0) offset = 0; - return offset + s->data_offset; + return offset + s->internal->data_offset; } void ff_dv_offset_reset(DVDemuxContext *c, int64_t frame_offset) diff --git a/libavformat/internal.h b/libavformat/internal.h index 5b7e426b42..f08ad90038 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -49,6 +49,47 @@ struct AVFormatInternal { * Muxing only. */ int nb_interleaved_streams; + + /** + * This buffer is only needed when packets were already buffered but + * not decoded, for example to get the codec parameters in MPEG + * streams. + */ + struct AVPacketList *packet_buffer; + struct AVPacketList *packet_buffer_end; + + /* av_seek_frame() support */ + int64_t data_offset; /**< offset of the first packet */ + + /** + * Raw packets from the demuxer, prior to parsing and decoding. + * This buffer is used for buffering packets until the codec can + * be identified, as parsing cannot be done without knowing the + * codec. + */ + struct AVPacketList *raw_packet_buffer; + struct AVPacketList *raw_packet_buffer_end; + /** + * Packets split by the parser get queued here. + */ + struct AVPacketList *parse_queue; + struct AVPacketList *parse_queue_end; + /** + * Remaining size available for raw_packet_buffer, in bytes. + */ +#define RAW_PACKET_BUFFER_SIZE 2500000 + int raw_packet_buffer_remaining_size; + + /** + * Offset to remap timestamps to be non-negative. + * Expressed in timebase units. + */ + int64_t offset; + + /** + * Timebase for the timestamp offset. + */ + AVRational offset_timebase; }; void ff_dynarray_add(intptr_t **tab_ptr, int *nb_ptr, intptr_t elem); diff --git a/libavformat/mtv.c b/libavformat/mtv.c index 7ad7618434..aad30d7a41 100644 --- a/libavformat/mtv.c +++ b/libavformat/mtv.c @@ -166,7 +166,7 @@ static int mtv_read_packet(AVFormatContext *s, AVPacket *pkt) AVIOContext *pb = s->pb; int ret; - if((avio_tell(pb) - s->data_offset + mtv->img_segment_size) % mtv->full_segment_size) + if((avio_tell(pb) - s->internal->data_offset + mtv->img_segment_size) % mtv->full_segment_size) { avio_skip(pb, MTV_AUDIO_PADDING_SIZE); diff --git a/libavformat/mux.c b/libavformat/mux.c index 2a28fd668a..c09456bd88 100644 --- a/libavformat/mux.c +++ b/libavformat/mux.c @@ -329,13 +329,13 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt) AVRational time_base = s->streams[pkt->stream_index]->time_base; int64_t offset = 0; - if (s->offset == AV_NOPTS_VALUE && pkt->dts != AV_NOPTS_VALUE && + if (s->internal->offset == AV_NOPTS_VALUE && pkt->dts != AV_NOPTS_VALUE && (pkt->dts < 0 || s->avoid_negative_ts == AVFMT_AVOID_NEG_TS_MAKE_ZERO)) { - s->offset = -pkt->dts; - s->offset_timebase = time_base; + s->internal->offset = -pkt->dts; + s->internal->offset_timebase = time_base; } - if (s->offset != AV_NOPTS_VALUE) - offset = av_rescale_q(s->offset, s->offset_timebase, time_base); + if (s->internal->offset != AV_NOPTS_VALUE) + offset = av_rescale_q(s->internal->offset, s->internal->offset_timebase, time_base); if (pkt->dts != AV_NOPTS_VALUE) pkt->dts += offset; @@ -428,20 +428,20 @@ FF_ENABLE_DEPRECATION_WARNINGS if (s->streams[pkt->stream_index]->last_in_packet_buffer) { next_point = &(s->streams[pkt->stream_index]->last_in_packet_buffer->next); } else - next_point = &s->packet_buffer; + next_point = &s->internal->packet_buffer; if (*next_point) { - if (compare(s, &s->packet_buffer_end->pkt, pkt)) { + if (compare(s, &s->internal->packet_buffer_end->pkt, pkt)) { while (!compare(s, &(*next_point)->pkt, pkt)) next_point = &(*next_point)->next; goto next_non_null; } else { - next_point = &(s->packet_buffer_end->next); + next_point = &(s->internal->packet_buffer_end->next); } } assert(!*next_point); - s->packet_buffer_end = this_pktl; + s->internal->packet_buffer_end = this_pktl; next_non_null: this_pktl->next = *next_point; @@ -477,8 +477,8 @@ int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out, return ret; } - if (s->max_interleave_delta > 0 && s->packet_buffer && !flush) { - AVPacket *top_pkt = &s->packet_buffer->pkt; + if (s->max_interleave_delta > 0 && s->internal->packet_buffer && !flush) { + AVPacket *top_pkt = &s->internal->packet_buffer->pkt; int64_t delta_dts = INT64_MIN; int64_t top_dts = av_rescale_q(top_pkt->dts, s->streams[top_pkt->stream_index]->time_base, @@ -512,12 +512,12 @@ int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out, if (stream_count && (s->internal->nb_interleaved_streams == stream_count || flush)) { - pktl = s->packet_buffer; + pktl = s->internal->packet_buffer; *out = pktl->pkt; - s->packet_buffer = pktl->next; - if (!s->packet_buffer) - s->packet_buffer_end = NULL; + s->internal->packet_buffer = pktl->next; + if (!s->internal->packet_buffer) + s->internal->packet_buffer_end = NULL; if (s->streams[out->stream_index]->last_in_packet_buffer == pktl) s->streams[out->stream_index]->last_in_packet_buffer = NULL; diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c index 2cf77df69a..ab6236f9ec 100644 --- a/libavformat/mxfenc.c +++ b/libavformat/mxfenc.c @@ -1838,7 +1838,7 @@ static int mxf_interleave_get_packet(AVFormatContext *s, AVPacket *out, AVPacket stream_count += !!s->streams[i]->last_in_packet_buffer; if (stream_count && (s->nb_streams == stream_count || flush)) { - AVPacketList *pktl = s->packet_buffer; + AVPacketList *pktl = s->internal->packet_buffer; if (s->nb_streams != stream_count) { AVPacketList *last = NULL; // find last packet in edit unit @@ -1862,20 +1862,20 @@ static int mxf_interleave_get_packet(AVFormatContext *s, AVPacket *out, AVPacket if (last) last->next = NULL; else { - s->packet_buffer = NULL; - s->packet_buffer_end= NULL; + s->internal->packet_buffer = NULL; + s->internal->packet_buffer_end= NULL; goto out; } - pktl = s->packet_buffer; + pktl = s->internal->packet_buffer; } *out = pktl->pkt; av_dlog(s, "out st:%d dts:%"PRId64"\n", (*out).stream_index, (*out).dts); - s->packet_buffer = pktl->next; + s->internal->packet_buffer = pktl->next; if(s->streams[pktl->pkt.stream_index]->last_in_packet_buffer == pktl) s->streams[pktl->pkt.stream_index]->last_in_packet_buffer= NULL; - if(!s->packet_buffer) - s->packet_buffer_end= NULL; + if(!s->internal->packet_buffer) + s->internal->packet_buffer_end= NULL; av_freep(&pktl); return 1; } else { diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c index 69057e933a..00da7dded0 100644 --- a/libavformat/nutdec.c +++ b/libavformat/nutdec.c @@ -728,7 +728,7 @@ static int nut_read_header(AVFormatContext *s) decode_info_header(nut); } - s->data_offset = pos - 8; + s->internal->data_offset = pos - 8; if (bc->seekable) { int64_t orig_pos = avio_tell(bc); diff --git a/libavformat/oggdec.c b/libavformat/oggdec.c index 8d6a57aa23..760cc25b8c 100644 --- a/libavformat/oggdec.c +++ b/libavformat/oggdec.c @@ -414,8 +414,8 @@ static int ogg_packet(AVFormatContext *s, int *str, int *dstart, int *dsize, // Update the header state for all streams and // compute the data_offset. - if (!s->data_offset) - s->data_offset = os->sync_pos; + if (!s->internal->data_offset) + s->internal->data_offset = os->sync_pos; for (i = 0; i < ogg->nstreams; i++) { struct ogg_stream *cur_os = ogg->streams + i; @@ -423,7 +423,7 @@ static int ogg_packet(AVFormatContext *s, int *str, int *dstart, int *dsize, // if we have a partial non-header packet, its start is // obviously at or after the data start if (cur_os->incomplete) - s->data_offset = FFMIN(s->data_offset, cur_os->sync_pos); + s->internal->data_offset = FFMIN(s->internal->data_offset, cur_os->sync_pos); } } else { os->nb_header++; diff --git a/libavformat/options.c b/libavformat/options.c index ad47004651..227c36f95f 100644 --- a/libavformat/options.c +++ b/libavformat/options.c @@ -101,13 +101,13 @@ AVFormatContext *avformat_alloc_context(void) ic = av_malloc(sizeof(AVFormatContext)); if (!ic) return ic; avformat_get_context_defaults(ic); - ic->offset = AV_NOPTS_VALUE; ic->internal = av_mallocz(sizeof(*ic->internal)); if (!ic->internal) { avformat_free_context(ic); return NULL; } + ic->internal->offset = AV_NOPTS_VALUE; return ic; } diff --git a/libavformat/pcm.c b/libavformat/pcm.c index 892e8ca24e..e4f2a5e627 100644 --- a/libavformat/pcm.c +++ b/libavformat/pcm.c @@ -21,6 +21,7 @@ #include "libavutil/mathematics.h" #include "avformat.h" +#include "internal.h" #include "pcm.h" int ff_pcm_read_seek(AVFormatContext *s, @@ -50,7 +51,7 @@ int ff_pcm_read_seek(AVFormatContext *s, /* recompute exact position */ st->cur_dts = av_rescale(pos, st->time_base.den, byte_rate * (int64_t)st->time_base.num); - if ((ret = avio_seek(s->pb, pos + s->data_offset, SEEK_SET)) < 0) + if ((ret = avio_seek(s->pb, pos + s->internal->data_offset, SEEK_SET)) < 0) return ret; return 0; } diff --git a/libavformat/r3d.c b/libavformat/r3d.c index 1c80dcecf7..607cd3d9f5 100644 --- a/libavformat/r3d.c +++ b/libavformat/r3d.c @@ -183,8 +183,8 @@ static int r3d_read_header(AVFormatContext *s) return -1; } - s->data_offset = avio_tell(s->pb); - av_dlog(s, "data offset %#"PRIx64"\n", s->data_offset); + s->internal->data_offset = avio_tell(s->pb); + av_dlog(s, "data offset %#"PRIx64"\n", s->internal->data_offset); if (!s->pb->seekable) return 0; // find REOB/REOF/REOS to load index @@ -210,7 +210,7 @@ static int r3d_read_header(AVFormatContext *s) } out: - avio_seek(s->pb, s->data_offset, SEEK_SET); + avio_seek(s->pb, s->internal->data_offset, SEEK_SET); return 0; } diff --git a/libavformat/utils.c b/libavformat/utils.c index 13b6de21e1..6248c1e5cb 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -238,8 +238,8 @@ static int queue_attached_pictures(AVFormatContext *s) if (!copy.buf) return AVERROR(ENOMEM); - add_to_pktbuf(&s->raw_packet_buffer, ©, - &s->raw_packet_buffer_end); + add_to_pktbuf(&s->internal->raw_packet_buffer, ©, + &s->internal->raw_packet_buffer_end); } return 0; } @@ -307,10 +307,10 @@ int avformat_open_input(AVFormatContext **ps, const char *filename, if ((ret = queue_attached_pictures(s)) < 0) goto fail; - if (s->pb && !s->data_offset) - s->data_offset = avio_tell(s->pb); + if (s->pb && !s->internal->data_offset) + s->internal->data_offset = avio_tell(s->pb); - s->raw_packet_buffer_remaining_size = RAW_PACKET_BUFFER_SIZE; + s->internal->raw_packet_buffer_remaining_size = RAW_PACKET_BUFFER_SIZE; if (options) { av_dict_free(options); @@ -375,14 +375,14 @@ int ff_read_packet(AVFormatContext *s, AVPacket *pkt) AVStream *st; for (;;) { - AVPacketList *pktl = s->raw_packet_buffer; + AVPacketList *pktl = s->internal->raw_packet_buffer; if (pktl) { *pkt = pktl->pkt; st = s->streams[pkt->stream_index]; if (st->codec->codec_id != AV_CODEC_ID_PROBE || !st->probe_packets || - s->raw_packet_buffer_remaining_size < pkt->size) { + s->internal->raw_packet_buffer_remaining_size < pkt->size) { AVProbeData *pd; if (st->probe_packets) if ((err = probe_codec(s, st, NULL)) < 0) @@ -390,8 +390,8 @@ int ff_read_packet(AVFormatContext *s, AVPacket *pkt) pd = &st->probe_data; av_freep(&pd->buf); pd->buf_size = 0; - s->raw_packet_buffer = pktl->next; - s->raw_packet_buffer_remaining_size += pkt->size; + s->internal->raw_packet_buffer = pktl->next; + s->internal->raw_packet_buffer_remaining_size += pkt->size; av_free(pktl); return 0; } @@ -443,8 +443,9 @@ int ff_read_packet(AVFormatContext *s, AVPacket *pkt) !st->probe_packets)) return ret; - add_to_pktbuf(&s->raw_packet_buffer, pkt, &s->raw_packet_buffer_end); - s->raw_packet_buffer_remaining_size -= pkt->size; + add_to_pktbuf(&s->internal->raw_packet_buffer, pkt, + &s->internal->raw_packet_buffer_end); + s->internal->raw_packet_buffer_remaining_size -= pkt->size; if ((err = probe_codec(s, st, pkt)) < 0) return err; @@ -515,7 +516,7 @@ static void update_initial_timestamps(AVFormatContext *s, int stream_index, int64_t dts, int64_t pts) { AVStream *st = s->streams[stream_index]; - AVPacketList *pktl = s->packet_buffer; + AVPacketList *pktl = s->internal->packet_buffer; if (st->first_dts != AV_NOPTS_VALUE || dts == AV_NOPTS_VALUE || @@ -545,7 +546,7 @@ static void update_initial_timestamps(AVFormatContext *s, int stream_index, static void update_initial_durations(AVFormatContext *s, AVStream *st, int stream_index, int duration) { - AVPacketList *pktl = s->packet_buffer; + AVPacketList *pktl = s->internal->packet_buffer; int64_t cur_dts = 0; if (st->first_dts != AV_NOPTS_VALUE) { @@ -559,7 +560,7 @@ static void update_initial_durations(AVFormatContext *s, AVStream *st, cur_dts -= duration; } } - pktl = s->packet_buffer; + pktl = s->internal->packet_buffer; st->first_dts = cur_dts; } else if (st->cur_dts) return; @@ -628,7 +629,7 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st, den * (int64_t) st->time_base.num, AV_ROUND_DOWN); - if (pkt->duration != 0 && s->packet_buffer) + if (pkt->duration != 0 && s->internal->packet_buffer) update_initial_durations(s, st, pkt->stream_index, pkt->duration); } @@ -691,7 +692,7 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st, num * (int64_t) st->time_base.den, den * (int64_t) st->time_base.num, AV_ROUND_DOWN); - if (duration != 0 && s->packet_buffer) + if (duration != 0 && s->internal->packet_buffer) update_initial_durations(s, st, pkt->stream_index, duration); } @@ -837,7 +838,7 @@ FF_ENABLE_DEPRECATION_WARNINGS if ((ret = av_dup_packet(&out_pkt)) < 0) goto fail; - if (!add_to_pktbuf(&s->parse_queue, &out_pkt, &s->parse_queue_end)) { + if (!add_to_pktbuf(&s->internal->parse_queue, &out_pkt, &s->internal->parse_queue_end)) { av_free_packet(&out_pkt); ret = AVERROR(ENOMEM); goto fail; @@ -877,7 +878,7 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt) av_init_packet(pkt); - while (!got_packet && !s->parse_queue) { + while (!got_packet && !s->internal->parse_queue) { AVStream *st; AVPacket cur_pkt; @@ -946,8 +947,8 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt) } } - if (!got_packet && s->parse_queue) - ret = read_from_packet_buffer(&s->parse_queue, &s->parse_queue_end, pkt); + if (!got_packet && s->internal->parse_queue) + ret = read_from_packet_buffer(&s->internal->parse_queue, &s->internal->parse_queue_end, pkt); av_opt_get_dict_val(s, "metadata", AV_OPT_SEARCH_CHILDREN, &metadata); if (metadata) { @@ -973,14 +974,14 @@ int av_read_frame(AVFormatContext *s, AVPacket *pkt) int eof = 0; if (!genpts) - return s->packet_buffer - ? read_from_packet_buffer(&s->packet_buffer, - &s->packet_buffer_end, pkt) + return s->internal->packet_buffer + ? read_from_packet_buffer(&s->internal->packet_buffer, + &s->internal->packet_buffer_end, pkt) : read_frame_internal(s, pkt); for (;;) { int ret; - AVPacketList *pktl = s->packet_buffer; + AVPacketList *pktl = s->internal->packet_buffer; if (pktl) { AVPacket *next_pkt = &pktl->pkt; @@ -996,14 +997,14 @@ int av_read_frame(AVFormatContext *s, AVPacket *pkt) } pktl = pktl->next; } - pktl = s->packet_buffer; + pktl = s->internal->packet_buffer; } /* read packet from packet buffer, if there is data */ if (!(next_pkt->pts == AV_NOPTS_VALUE && next_pkt->dts != AV_NOPTS_VALUE && !eof)) - return read_from_packet_buffer(&s->packet_buffer, - &s->packet_buffer_end, pkt); + return read_from_packet_buffer(&s->internal->packet_buffer, + &s->internal->packet_buffer_end, pkt); } ret = read_frame_internal(s, pkt); @@ -1015,8 +1016,8 @@ int av_read_frame(AVFormatContext *s, AVPacket *pkt) return ret; } - if (av_dup_packet(add_to_pktbuf(&s->packet_buffer, pkt, - &s->packet_buffer_end)) < 0) + if (av_dup_packet(add_to_pktbuf(&s->internal->packet_buffer, pkt, + &s->internal->packet_buffer_end)) < 0) return AVERROR(ENOMEM); } } @@ -1024,11 +1025,11 @@ int av_read_frame(AVFormatContext *s, AVPacket *pkt) /* XXX: suppress the packet queue */ static void flush_packet_queue(AVFormatContext *s) { - free_packet_buffer(&s->parse_queue, &s->parse_queue_end); - free_packet_buffer(&s->packet_buffer, &s->packet_buffer_end); - free_packet_buffer(&s->raw_packet_buffer, &s->raw_packet_buffer_end); + free_packet_buffer(&s->internal->parse_queue, &s->internal->parse_queue_end); + free_packet_buffer(&s->internal->packet_buffer, &s->internal->packet_buffer_end); + free_packet_buffer(&s->internal->raw_packet_buffer, &s->internal->raw_packet_buffer_end); - s->raw_packet_buffer_remaining_size = RAW_PACKET_BUFFER_SIZE; + s->internal->raw_packet_buffer_remaining_size = RAW_PACKET_BUFFER_SIZE; } /*******************************************************/ @@ -1287,7 +1288,7 @@ int64_t ff_gen_search(AVFormatContext *s, int stream_index, int64_t target_ts, av_dlog(s, "gen_seek: %d %"PRId64"\n", stream_index, target_ts); if (ts_min == AV_NOPTS_VALUE) { - pos_min = s->data_offset; + pos_min = s->internal->data_offset; ts_min = read_timestamp(s, stream_index, &pos_min, INT64_MAX); if (ts_min == AV_NOPTS_VALUE) return -1; @@ -1394,7 +1395,7 @@ static int seek_frame_byte(AVFormatContext *s, int stream_index, { int64_t pos_min, pos_max; - pos_min = s->data_offset; + pos_min = s->internal->data_offset; pos_max = avio_size(s->pb) - 1; if (pos < pos_min) @@ -1433,7 +1434,7 @@ static int seek_frame_generic(AVFormatContext *s, int stream_index, return ret; ff_update_cur_dts(s, st, ie->timestamp); } else { - if ((ret = avio_seek(s->pb, s->data_offset, SEEK_SET)) < 0) + if ((ret = avio_seek(s->pb, s->internal->data_offset, SEEK_SET)) < 0) return ret; } for (;;) { @@ -2177,8 +2178,8 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) if (ic->flags & AVFMT_FLAG_NOBUFFER) { pkt = &pkt1; } else { - pkt = add_to_pktbuf(&ic->packet_buffer, &pkt1, - &ic->packet_buffer_end); + pkt = add_to_pktbuf(&ic->internal->packet_buffer, &pkt1, + &ic->internal->packet_buffer_end); if ((ret = av_dup_packet(pkt)) < 0) goto find_stream_info_err; } diff --git a/libavformat/vqf.c b/libavformat/vqf.c index a43829b855..c04ffe74ee 100644 --- a/libavformat/vqf.c +++ b/libavformat/vqf.c @@ -272,7 +272,7 @@ static int vqf_read_seek(AVFormatContext *s, st->cur_dts = av_rescale(pos, st->time_base.den, st->codec->bit_rate * (int64_t)st->time_base.num); - if ((ret = avio_seek(s->pb, ((pos-7) >> 3) + s->data_offset, SEEK_SET)) < 0) + if ((ret = avio_seek(s->pb, ((pos-7) >> 3) + s->internal->data_offset, SEEK_SET)) < 0) return ret; c->remaining_bits = -7 - ((pos-7)&7); diff --git a/libavformat/yop.c b/libavformat/yop.c index ea3175e33b..08fcc19e3c 100644 --- a/libavformat/yop.c +++ b/libavformat/yop.c @@ -194,7 +194,7 @@ static int yop_read_seek(AVFormatContext *s, int stream_index, if (!stream_index) return -1; - pos_min = s->data_offset; + pos_min = s->internal->data_offset; pos_max = avio_size(s->pb) - yop->frame_size; frame_count = (pos_max - pos_min) / yop->frame_size; |