Mercurial > mplayer.hg
annotate av_opts.c @ 34797:079b53acda6d
Workaround bug in mpg123. In rare cases, after seeking mplayer stops audio playback and would repeat "No stream opened. (code 24)" until next seek.
This is caused by bug in mpg123_getformat() that triggers needless reading of next frame, possibly hitting bogus MPG123_NEED_MORE. The function is fixed in mpg123 1.14.0+.
This commit however allows older mpg123 versions to work properly in mplayer.
Patch by Thomas Orgis, thomas-forum orgis org
author | iive |
---|---|
date | Wed, 02 May 2012 21:15:07 +0000 |
parents | d1f195e84b9e |
children | 8a3aa3aee319 |
rev | line source |
---|---|
26704 | 1 /* |
2 * AVOption parsing helper | |
3 * Copyright (C) 2008 Michael Niedermayer | |
4 * | |
5 * This file is part of MPlayer. | |
6 * | |
7 * MPlayer is free software; you can redistribute it and/or modify | |
8 * it under the terms of the GNU General Public License as published by | |
9 * the Free Software Foundation; either version 2 of the License, or | |
10 * (at your option) any later version. | |
11 * | |
12 * MPlayer is distributed in the hope that it will be useful, | |
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 * GNU General Public License for more details. | |
16 * | |
26706 | 17 * You should have received a copy of the GNU General Public License along |
18 * with MPlayer; if not, write to the Free Software Foundation, Inc., | |
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
26704 | 20 */ |
21 | |
26691 | 22 #include <stdlib.h> |
23 #include <string.h> | |
31201
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
30554
diff
changeset
|
24 |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
30554
diff
changeset
|
25 #include "av_opts.h" |
34545 | 26 #include "libavutil/opt.h" |
26691 | 27 |
28 int parse_avopts(void *v, char *str){ | |
29 char *start; | |
33255
54faee206150
Command Line Options: Support FFmpeg per-codec AVOptions.
philipl
parents:
32769
diff
changeset
|
30 |
54faee206150
Command Line Options: Support FFmpeg per-codec AVOptions.
philipl
parents:
32769
diff
changeset
|
31 if (!v) |
54faee206150
Command Line Options: Support FFmpeg per-codec AVOptions.
philipl
parents:
32769
diff
changeset
|
32 return -1; |
54faee206150
Command Line Options: Support FFmpeg per-codec AVOptions.
philipl
parents:
32769
diff
changeset
|
33 |
26691 | 34 start= str= strdup(str); |
35 | |
36 while(str && *str){ | |
37 char *next_opt, *arg; | |
38 | |
39 next_opt= strchr(str, ','); | |
40 if(next_opt) *next_opt++= 0; | |
41 | |
42 arg = strchr(str, '='); | |
43 if(arg) *arg++= 0; | |
44 | |
32769
833b0eb23585
Use av_set_string3 instead of deprecated av_set_string.
reimar
parents:
31201
diff
changeset
|
45 if(av_set_string3(v, str, arg, 0, NULL) < 0){ |
26691 | 46 free(start); |
47 return -1; | |
48 } | |
49 str= next_opt; | |
50 } | |
51 | |
52 free(start); | |
53 return 0; | |
26699
f64717dfd9d5
Add newlines at end of file, this is required for text files and gcc
reimar
parents:
26691
diff
changeset
|
54 } |