diff options
Diffstat (limited to 'tools/ismindex.c')
-rw-r--r-- | tools/ismindex.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/tools/ismindex.c b/tools/ismindex.c index ad1f3a848c..67a1927379 100644 --- a/tools/ismindex.c +++ b/tools/ismindex.c @@ -20,7 +20,7 @@ /* * To create a simple file for smooth streaming: - * avconv <normal input/transcoding options> -movflags frag_keyframe foo.ismv + * ffmpeg <normal input/transcoding options> -movflags frag_keyframe foo.ismv * ismindex -n foo foo.ismv * This step creates foo.ism and foo.ismc that is required by IIS for * serving it. @@ -40,6 +40,8 @@ #define mkdir(a, b) _mkdir(a) #endif +#include "cmdutils.h" + #include "libavformat/avformat.h" #include "libavutil/intreadwrite.h" #include "libavutil/mathematics.h" @@ -130,7 +132,8 @@ static int write_fragments(struct Tracks *tracks, int start_index, struct Track *track = tracks->tracks[i]; const char *type = track->is_video ? "video" : "audio"; snprintf(dirname, sizeof(dirname), "QualityLevels(%d)", track->bitrate); - mkdir(dirname, 0777); + if (mkdir(dirname, 0777) == -1) + return AVERROR(errno); for (j = 0; j < track->chunks; j++) { snprintf(filename, sizeof(filename), "%s/Fragments(%s=%"PRId64")", dirname, type, track->offsets[j].time); @@ -222,7 +225,7 @@ static int read_mfra(struct Tracks *tracks, int start_index, } if (split) - write_fragments(tracks, start_index, f); + err = write_fragments(tracks, start_index, f); fail: if (f) @@ -251,7 +254,10 @@ static int get_video_private_data(struct Track *track, AVCodecContext *codec) if (codec->codec_id == AV_CODEC_ID_VC1) return get_private_data(track, codec); - avio_open_dyn_buf(&io); + if (avio_open_dyn_buf(&io) < 0) { + err = AVERROR(ENOMEM); + goto fail; + } if (codec->extradata_size < 11 || codec->extradata[0] != 1) goto fail; sps_size = AV_RB16(&codec->extradata[6]); |