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

Ganesh Ajjanagadde gajjanag at mit.edu
Mon Jan 4 17:46:10 CET 2016


On Mon, Jan 4, 2016 at 8:36 AM, Hendrik Leppkes <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.

Yes, this is strange. url_move points to file_move, and the only
system functionality it relies on is rename, available in stdio.h. The
semantics vary from system to system, with some details specified in
POSIX, but rename itself is standard C:
http://en.cppreference.com/w/c/io/rename.
As the code is recent, dating to this year's gsoc, 824a82d1b8, it may
not be too surprising that this was not addressed yet.

> So commiting this without making sure file.url_move is available on
> all systems where ff_rename works would introduce a regression.
>
> - Hendrik
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


More information about the ffmpeg-devel mailing list