Merge commit '19fc283dbb53a5f7d6658fd4edcfa59b99369b58' into release/2.4
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 18 Jan 2015 00:22:14 +0000 (01:22 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 18 Jan 2015 00:22:14 +0000 (01:22 +0100)
* commit '19fc283dbb53a5f7d6658fd4edcfa59b99369b58':
  lavf: replace rename() with ff_rename()

Conflicts:
libavformat/hdsenc.c
libavformat/internal.h

See: 95d2fc6a76f3e0a98329f1ca70f98e7c085f0abf
Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavformat/hdsenc.c
libavformat/internal.h
libavformat/smoothstreamingenc.c

Simple merge
@@@ -372,45 -354,17 +372,59 @@@ AVRational ff_choose_timebase(AVFormatC
  int ff_generate_avci_extradata(AVStream *st);
  
  /**
+  * Wrap errno on rename() error.
+  *
+  * @param oldpath source path
+  * @param newpath destination path
+  * @return        0 or AVERROR on failure
+  */
+ static inline int ff_rename(const char *oldpath, const char *newpath)
+ {
+     if (rename(oldpath, newpath) == -1)
+         return AVERROR(errno);
+     return 0;
+ }
++/**
 + * Allocate extradata with additional FF_INPUT_BUFFER_PADDING_SIZE at end
 + * which is always set to 0.
 + *
 + * @param size size of extradata
 + * @return 0 if OK, AVERROR_xxx on error
 + */
 +int ff_alloc_extradata(AVCodecContext *avctx, int size);
 +
 +/**
 + * Allocate extradata with additional FF_INPUT_BUFFER_PADDING_SIZE at end
 + * which is always set to 0 and fill it from pb.
 + *
 + * @param size size of extradata
 + * @return >= 0 if OK, AVERROR_xxx on error
 + */
 +int ff_get_extradata(AVCodecContext *avctx, AVIOContext *pb, int size);
 +
 +/**
 + * add frame for rfps calculation.
 + *
 + * @param dts timestamp of the i-th frame
 + * @return 0 if OK, AVERROR_xxx on error
 + */
 +int ff_rfps_add_frame(AVFormatContext *ic, AVStream *st, int64_t dts);
 +
 +void ff_rfps_calculate(AVFormatContext *ic);
 +
 +/**
 + * Flags for AVFormatContext.write_uncoded_frame()
 + */
 +enum AVWriteUncodedFrameFlags {
 +
 +    /**
 +     * Query whether the feature is possible on this stream.
 +     * The frame argument is ignored.
 +     */
 +    AV_WRITE_UNCODED_FRAME_QUERY           = 0x0001,
 +
 +};
 +
 +
  #endif /* AVFORMAT_INTERNAL_H */
@@@ -539,8 -533,11 +539,11 @@@ static int ism_flush(AVFormatContext *s
          snprintf(header_filename, sizeof(header_filename), "%s/FragmentInfo(%s=%"PRIu64")", os->dirname, os->stream_type_tag, start_ts);
          snprintf(target_filename, sizeof(target_filename), "%s/Fragments(%s=%"PRIu64")", os->dirname, os->stream_type_tag, start_ts);
          copy_moof(s, filename, header_filename, moof_size);
-         rename(filename, target_filename);
-         add_fragment(os, target_filename, header_filename, start_ts, duration, start_pos, size);
+         ret = ff_rename(filename, target_filename);
+         if (ret < 0)
+             break;
+         add_fragment(os, target_filename, header_filename, start_ts, duration,
 -                     os->cur_start_pos, size);
++                     start_pos, size);
      }
  
      if (c->window_size || (final && c->remove_at_exit)) {