|
|
|
@@ -110,6 +110,16 @@ MAKE_ACCESSORS(AVFormatContext, format, int, metadata_header_padding) |
|
|
|
MAKE_ACCESSORS(AVFormatContext, format, void *, opaque) |
|
|
|
MAKE_ACCESSORS(AVFormatContext, format, av_format_control_message, control_message_cb) |
|
|
|
|
|
|
|
void av_format_inject_global_side_data(AVFormatContext *s) |
|
|
|
{ |
|
|
|
int i; |
|
|
|
s->internal->inject_global_side_data = 1; |
|
|
|
for (i = 0; i < s->nb_streams; i++) { |
|
|
|
AVStream *st = s->streams[i]; |
|
|
|
st->inject_global_side_data = 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
static AVCodec *find_decoder(AVFormatContext *s, AVStream *st, enum AVCodecID codec_id) |
|
|
|
{ |
|
|
|
if (st->codec->codec) |
|
|
|
@@ -1527,7 +1537,7 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt) |
|
|
|
st->skip_samples = 0; |
|
|
|
} |
|
|
|
|
|
|
|
if (!st->global_side_data_injected) { |
|
|
|
if (st->inject_global_side_data) { |
|
|
|
for (i = 0; i < st->nb_side_data; i++) { |
|
|
|
AVPacketSideData *src_sd = &st->side_data[i]; |
|
|
|
uint8_t *dst_data; |
|
|
|
@@ -1543,7 +1553,7 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt) |
|
|
|
|
|
|
|
memcpy(dst_data, src_sd->data, src_sd->size); |
|
|
|
} |
|
|
|
st->global_side_data_injected = 1; |
|
|
|
st->inject_global_side_data = 0; |
|
|
|
} |
|
|
|
|
|
|
|
if (!(s->flags & AVFMT_FLAG_KEEP_SIDE_DATA)) |
|
|
|
@@ -1717,7 +1727,8 @@ void ff_read_frame_flush(AVFormatContext *s) |
|
|
|
for (j = 0; j < MAX_REORDER_DELAY + 1; j++) |
|
|
|
st->pts_buffer[j] = AV_NOPTS_VALUE; |
|
|
|
|
|
|
|
st->global_side_data_injected = 0; |
|
|
|
if (s->internal->inject_global_side_data) |
|
|
|
st->inject_global_side_data = 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@@ -3690,6 +3701,8 @@ AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c) |
|
|
|
st->info->fps_first_dts = AV_NOPTS_VALUE; |
|
|
|
st->info->fps_last_dts = AV_NOPTS_VALUE; |
|
|
|
|
|
|
|
st->inject_global_side_data = s->internal->inject_global_side_data; |
|
|
|
|
|
|
|
s->streams[s->nb_streams++] = st; |
|
|
|
return st; |
|
|
|
} |
|
|
|
|