[FFmpeg-soc] [soc]: r4719 - in concat/libavformat: m3u.c playlist.c playlist.h pls.c xspf.c

Baptiste Coudurier baptiste.coudurier at gmail.com
Thu Jul 16 02:57:36 CEST 2009


On 07/15/2009 04:39 PM, gkovacs wrote:
> Author: gkovacs
> Date: Thu Jul 16 01:39:02 2009
> New Revision: 4719
>
> Log:
> made ff_playlist_relative_paths check list length
>
> Modified:
>     concat/libavformat/m3u.c
>     concat/libavformat/playlist.c
>     concat/libavformat/playlist.h
>     concat/libavformat/pls.c
>     concat/libavformat/xspf.c
>
> Modified: concat/libavformat/m3u.c
> ==============================================================================
> --- concat/libavformat/m3u.c	Thu Jul 16 01:30:37 2009	(r4718)
> +++ concat/libavformat/m3u.c	Thu Jul 16 01:39:02 2009	(r4719)
> @@ -39,8 +39,6 @@ static int ff_concatgen_read_play(AVForm
>
>   static int ff_concatgen_read_pause(AVFormatContext *s);
>
> -static void ff_playlist_relative_paths(char **flist, const char *workingdir);
> -
>   /* The ffmpeg codecs we support, and the IDs they have in the file */
>   static const AVCodecTag codec_m3u_tags[] = {
>       { 0, 0 },
> @@ -83,7 +81,7 @@ static int m3u_list_files(ByteIOContext
>           flist[i++][q-linebuf] = 0;
>       }
>       flist[i] = 0;
> -    ff_playlist_relative_paths(flist, dirname(filename));
> +    ff_playlist_relative_paths(flist, i, dirname(filename));
>       ff_playlist_add_stringlist(ctx, flist, i);
>       av_free(flist);
>       return 0;
>
> Modified: concat/libavformat/playlist.c
> ==============================================================================
> --- concat/libavformat/playlist.c	Thu Jul 16 01:30:37 2009	(r4718)
> +++ concat/libavformat/playlist.c	Thu Jul 16 01:39:02 2009	(r4719)
> @@ -154,7 +154,7 @@ PlaylistContext *ff_playlist_from_encode
>           return NULL;
>       }
>       ctx = ff_playlist_alloc_context();
> -    ff_playlist_relative_paths(flist, workingdir);
> +    ff_playlist_relative_paths(flist, len, workingdir);
>       ff_playlist_add_stringlist(ctx, flist, len);
>       return ctx;
>   }
> @@ -174,22 +174,22 @@ void ff_playlist_add_stringlist(Playlist
>   }
>
>   // converts list of mixed absolute and relative paths into all absolute paths
> -void ff_playlist_relative_paths(char **flist, const char *workingdir)
> +void ff_playlist_relative_paths(char **flist, int len, const char *workingdir)
>   {
> -    while (*flist != 0) { // determine if relative paths
> +    int i;
> +    for (i = 0; i<  len; ++i) { // determine if relative paths
>           FILE *file;
>           char *fullfpath;
>           int wdslen = strlen(workingdir);
> -        int flslen = strlen(*flist);
> +        int flslen = strlen(flist[i]);
>           fullfpath = av_malloc(sizeof(char) * (wdslen+flslen+2));
>           av_strlcpy(fullfpath, workingdir, wdslen+1);
>           fullfpath[wdslen] = '/';
>           fullfpath[wdslen+1] = 0;
> -        av_strlcat(fullfpath, *flist, wdslen+flslen+2);
> +        av_strlcat(fullfpath, flist[i], wdslen+flslen+2);
>           if ((file = fopen(fullfpath, "r"))) {
>               fclose(file);
> -            *flist = fullfpath;
> +            flist[i] = fullfpath;

I'm not sure fopen is adequate here. Can playlist be using any url ?
If so I think url_fopen should be used.

-- 
Baptiste COUDURIER                              GnuPG Key Id: 0x5C1ABAAA
Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
FFmpeg maintainer                                  http://www.ffmpeg.org


More information about the FFmpeg-soc mailing list