diff options
author | James Almer <jamrial@gmail.com> | 2017-03-21 17:02:30 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2017-03-21 17:02:30 -0300 |
commit | 4de591e6fb7361bd417dcd9563672ed0ad8b361b (patch) | |
tree | ff6b5c51a4891b49f61d53b88bdfb27cc6a89579 /libavformat/matroskaenc.c | |
parent | 423375d4f06ae7103e575a31c23e62e3ba440845 (diff) | |
parent | 83548fe894cdb455cc127f754d09905b6d23c173 (diff) | |
download | ffmpeg-4de591e6fb7361bd417dcd9563672ed0ad8b361b.tar.gz |
Merge commit '83548fe894cdb455cc127f754d09905b6d23c173'
* commit '83548fe894cdb455cc127f754d09905b6d23c173':
lavf: fix usage of AVIOContext.seekable
Merged-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavformat/matroskaenc.c')
-rw-r--r-- | libavformat/matroskaenc.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index df77313675..af941ceb8f 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -333,7 +333,7 @@ static int start_ebml_master_crc32(AVIOContext *pb, AVIOContext **dyn_cp, Matros if ((ret = avio_open_dyn_buf(dyn_cp)) < 0) return ret; - if (pb->seekable) { + if (pb->seekable & AVIO_SEEKABLE_NORMAL) { *master = start_ebml_master(pb, elementid, expectedsize); if (mkv->write_crc && mkv->mode != MODE_WEBM) put_ebml_void(*dyn_cp, 6); /* Reserve space for CRC32 so position/size calculations using avio_tell() take it into account */ @@ -349,7 +349,7 @@ static void end_ebml_master_crc32(AVIOContext *pb, AVIOContext **dyn_cp, Matrosk uint8_t *buf, crc[4]; int size, skip = 0; - if (pb->seekable) { + if (pb->seekable & AVIO_SEEKABLE_NORMAL) { size = avio_close_dyn_buf(*dyn_cp, &buf); if (mkv->write_crc && mkv->mode != MODE_WEBM) { skip = 6; /* Skip reserved 6-byte long void element from the dynamic buffer. */ @@ -373,7 +373,7 @@ static void end_ebml_master_crc32(AVIOContext *pb, AVIOContext **dyn_cp, Matrosk static void end_ebml_master_crc32_preliminary(AVIOContext *pb, AVIOContext **dyn_cp, MatroskaMuxContext *mkv, ebml_master master) { - if (pb->seekable) { + if (pb->seekable & AVIO_SEEKABLE_NORMAL) { uint8_t *buf; int size = avio_get_dyn_buf(*dyn_cp, &buf); @@ -1419,7 +1419,7 @@ static int mkv_write_tracks(AVFormatContext *s) return ret; } - if (pb->seekable && !mkv->is_live) + if ((pb->seekable & AVIO_SEEKABLE_NORMAL) && !mkv->is_live) end_ebml_master_crc32_preliminary(pb, &mkv->tracks_bc, mkv, mkv->tracks_master); else end_ebml_master_crc32(pb, &mkv->tracks_bc, mkv, mkv->tracks_master); @@ -1614,7 +1614,7 @@ static int mkv_write_tags(AVFormatContext *s) if (ret < 0) return ret; } - if (s->pb->seekable && !mkv->is_live) { + if ((s->pb->seekable & AVIO_SEEKABLE_NORMAL) && !mkv->is_live) { for (i = 0; i < s->nb_streams; i++) { AVIOContext *pb; AVStream *st = s->streams[i]; @@ -1664,7 +1664,7 @@ static int mkv_write_tags(AVFormatContext *s) } if (mkv->tags.pos) { - if (s->pb->seekable && !mkv->is_live) + if ((s->pb->seekable & AVIO_SEEKABLE_NORMAL) && !mkv->is_live) end_ebml_master_crc32_preliminary(s->pb, &mkv->tags_bc, mkv, mkv->tags); else end_ebml_master_crc32(s->pb, &mkv->tags_bc, mkv, mkv->tags); @@ -1921,7 +1921,7 @@ static int mkv_write_header(AVFormatContext *s) put_ebml_void(pb, 11); // assumes double-precision float to be written } } - if (s->pb->seekable && !mkv->is_live) + if ((s->pb->seekable & AVIO_SEEKABLE_NORMAL) && !mkv->is_live) end_ebml_master_crc32_preliminary(s->pb, &mkv->info_bc, mkv, mkv->info); else end_ebml_master_crc32(s->pb, &mkv->info_bc, mkv, mkv->info); @@ -1952,7 +1952,7 @@ static int mkv_write_header(AVFormatContext *s) goto fail; } - if (!s->pb->seekable && !mkv->is_live) + if (!(s->pb->seekable & AVIO_SEEKABLE_NORMAL) && !mkv->is_live) mkv_write_seekhead(pb, mkv); mkv->cues = mkv_start_cues(mkv->segment_offset); @@ -1960,7 +1960,7 @@ static int mkv_write_header(AVFormatContext *s) ret = AVERROR(ENOMEM); goto fail; } - if (pb->seekable && mkv->reserve_cues_space) { + if ((pb->seekable & AVIO_SEEKABLE_NORMAL) && mkv->reserve_cues_space) { mkv->cues_pos = avio_tell(pb); put_ebml_void(pb, mkv->reserve_cues_space); } @@ -1973,7 +1973,7 @@ static int mkv_write_header(AVFormatContext *s) // start a new cluster every 5 MB or 5 sec, or 32k / 1 sec for streaming or // after 4k and on a keyframe - if (pb->seekable) { + if (pb->seekable & AVIO_SEEKABLE_NORMAL) { if (mkv->cluster_time_limit < 0) mkv->cluster_time_limit = 5000; if (mkv->cluster_size_limit < 0) @@ -2198,7 +2198,7 @@ static void mkv_start_new_cluster(AVFormatContext *s, AVPacket *pkt) end_ebml_master_crc32(s->pb, &mkv->dyn_bc, mkv, mkv->cluster); mkv->cluster_pos = -1; - if (s->pb->seekable) + if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) av_log(s, AV_LOG_DEBUG, "Starting new cluster at offset %" PRIu64 " bytes, " "pts %" PRIu64 "dts %" PRIu64 "\n", @@ -2223,7 +2223,7 @@ static int mkv_check_new_extra_data(AVFormatContext *s, AVPacket *pkt) switch (par->codec_id) { case AV_CODEC_ID_FLAC: - if (side_data_size && s->pb->seekable) { + if (side_data_size && (s->pb->seekable & AVIO_SEEKABLE_NORMAL)) { AVCodecParameters *codecpriv_par; int64_t curpos; if (side_data_size != par->extradata_size) { @@ -2296,7 +2296,7 @@ static int mkv_write_packet_internal(AVFormatContext *s, AVPacket *pkt, int add_ if (par->codec_type != AVMEDIA_TYPE_SUBTITLE) { mkv_write_block(s, pb, MATROSKA_ID_SIMPLEBLOCK, pkt, keyframe); - if (s->pb->seekable && (par->codec_type == AVMEDIA_TYPE_VIDEO && keyframe || add_cue)) { + if ((s->pb->seekable & AVIO_SEEKABLE_NORMAL) && (par->codec_type == AVMEDIA_TYPE_VIDEO && keyframe || add_cue)) { ret = mkv_add_cuepoint(mkv->cues, pkt->stream_index, dash_tracknum, ts, mkv->cluster_pos, relative_packet_pos, -1); if (ret < 0) return ret; } @@ -2321,7 +2321,7 @@ FF_ENABLE_DEPRECATION_WARNINGS end_ebml_master(pb, blockgroup); } - if (s->pb->seekable) { + if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { ret = mkv_add_cuepoint(mkv->cues, pkt->stream_index, dash_tracknum, ts, mkv->cluster_pos, relative_packet_pos, duration); if (ret < 0) @@ -2421,7 +2421,7 @@ static int mkv_write_flush_packet(AVFormatContext *s, AVPacket *pkt) if (mkv->cluster_pos != -1) { end_ebml_master_crc32(s->pb, &mkv->dyn_bc, mkv, mkv->cluster); mkv->cluster_pos = -1; - if (s->pb->seekable) + if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) av_log(s, AV_LOG_DEBUG, "Flushing cluster at offset %" PRIu64 " bytes\n", avio_tell(s->pb)); @@ -2462,7 +2462,7 @@ static int mkv_write_trailer(AVFormatContext *s) return ret; } - if (pb->seekable && !mkv->is_live) { + if ((pb->seekable & AVIO_SEEKABLE_NORMAL) && !mkv->is_live) { if (mkv->cues->num_entries) { if (mkv->reserve_cues_space) { int64_t cues_end; |