[MPlayer-dev-eng] [PATCH] Subtitles directories
Clément Bœsch
ubitux at gmail.com
Sun Nov 21 23:12:32 CET 2010
On Sun, Nov 21, 2010 at 09:39:03PM +0100, Reimar Döffinger wrote:
> On Sun, Nov 21, 2010 at 05:46:16PM +0100, Clément Bœsch wrote:
> > +/**
> > + * \brief Append a subtitle to a list
> > + * \param dst Destination subtitles list
> > + * \param src Source subtitle
> > + * \warning Source data are copied and not reallocated
> > + */
> > +static int append_sub(struct sub_list *dst, struct subfn *src)
> > {
> > + if (dst->sid >= MAX_SUBTITLE_FILES)
> > + return -1;
> > + memcpy(&dst->subs[dst->sid], src, sizeof(*src));
> > + dst->sid++;
> > + return 0;
>
> Either getting rid of this function or at least making it take
> the name etc. as arguments and having it do the strdup will
> make things even simpler.
>
Changed with arguments method.
> > @@ -2012,8 +2013,7 @@ char** sub_filenames(const char* path, char *fname)
> > }
> > if (!prio) {
> > // doesn't contain the movie name
> > - // don't try in the mplayer subtitle directory
> > - if ((j == 0) && (sub_match_fuzziness >= 2)) {
> > + if (sub_match_fuzziness >= 2) {
>
> Huh? Where did handling of this end up? Loading any subtitle file anywhere in the
> path doesn't sound to me like it would ever be desireable.
>
I added a limit_fuzziness flag to keep ignoring sub_fuzziness=2 on
~/.mplayer/sub directory. subdirs patch updates a little the documentation
about this point too.
> > + path = realloc(path, plen + strlen(dir) + 1);
> > + if (!path)
> > + return -1;
>
> memleak in case realloc fails.
>
Fixed.
> > + strcpy(path + plen, dir);
>
> av_strlcpy might make it more obvious.
>
Why? It would either add a second strlen call or a new variable. Maybe you
meant strlcat; but even so, the problem is the same. Or maybe I missed
something.
> > + // Load subtitles specified by sub option with highest priority
> > + if (sub_name) {
> > + int i;
> > + for (i = 0; sub_name[i]; i++) {
> > + struct subfn sub = {
> > + .fname = strdup(sub_name[i]),
> > + .priority = INT_MAX - i,
> > + .noerr = 0
> > + };
> > + append_sub(&slist, &sub);
> > + }
>
> Seems a bit overkill to push them through qsort.
> Though it might be the simplest way.
Yes but qsort was already in use, I didn't want to change that.
Patches re-attached.
--
Clément B.
Not sent from a jesusPhone.
More information about the MPlayer-dev-eng
mailing list