[FFmpeg-devel] [PATCH] Enable dash output to work when the output isn't a local file

Raymond Hilseth rhi at vizrt.com
Tue Jan 5 13:50:49 CET 2016



On 04/01/16 17:36, "ffmpeg-devel on behalf of Hendrik Leppkes"
<ffmpeg-devel-bounces at ffmpeg.org on behalf of h.leppkes at gmail.com> wrote:

>On Mon, Jan 4, 2016 at 3:58 PM,  <rhi at vizrt.com> wrote:
>> From: Raymond Hilseth <rhi at vizrt.com>
>>
>> Signed-off-by: Raymond Hilseth <rhi at vizrt.com>
>> ---
>>  libavformat/dashenc.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
>> index 4509ee4..378c4e4 100644
>> --- a/libavformat/dashenc.c
>> +++ b/libavformat/dashenc.c
>> @@ -549,7 +549,7 @@ static int write_manifest(AVFormatContext *s, int
>>final)
>>      avio_printf(out, "</MPD>\n");
>>      avio_flush(out);
>>      avio_close(out);
>> -    return ff_rename(temp_filename, s->filename, s);
>> +    return avpriv_io_move(temp_filename, s->filename);
>>  }
>>
>>  static int dash_write_header(AVFormatContext *s)
>> @@ -856,7 +856,7 @@ static int dash_flush(AVFormatContext *s, int
>>final, int stream)
>>          } else {
>>              ffurl_close(os->out);
>>              os->out = NULL;
>> -            ret = ff_rename(temp_path, full_path, s);
>> +            ret = avpriv_io_move(temp_path, full_path);
>>              if (ret < 0)
>>                  break;
>>          }
>> --
>
>For unknown reasons, url_move(which avpriv_io_move uses) in the "file"
>protocol depends on unistd.h, which is not available everywhere.
>So commiting this without making sure file.url_move is available on
>all systems where ff_rename works would introduce a regression.
>
>- Hendrik

Are there any supported platforms other than Windows where unistd.h isnĀ¹t
available?

As far as I can see, the existing code for dash encoding cannot work on
Windows, since rename on Windows will fail when the destination file
already exists, and the manifest file will already exist after the first
segment has been written.

- Raymond Hilseth





More information about the ffmpeg-devel mailing list