summaryrefslogtreecommitdiffstats
path: root/libaf
diff options
context:
space:
mode:
authoranders <anders@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-01-17 01:00:07 +0000
committeranders <anders@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-01-17 01:00:07 +0000
commitc9052b1092848d1fd562f11582e91c3bc6d69702 (patch)
tree6ffa4446df690df42d72505ab74fbdf82630ddde /libaf
parentf687663a7547bd9a651941b3622a79864ca2dfd2 (diff)
downloadmpv-c9052b1092848d1fd562f11582e91c3bc6d69702.tar.bz2
mpv-c9052b1092848d1fd562f11582e91c3bc6d69702.tar.xz
Adding support for more logical libaf configuration
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8970 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libaf')
-rw-r--r--libaf/af.c15
-rw-r--r--libaf/af.h11
2 files changed, 19 insertions, 7 deletions
diff --git a/libaf/af.c b/libaf/af.c
index ca2dc7a75f..bfbd8c4bfb 100644
--- a/libaf/af.c
+++ b/libaf/af.c
@@ -310,9 +310,12 @@ void af_uninit(af_stream_t* s)
and output should contain the format of the current movie and the
formate of the preferred output respectively. The function is
reentrant i.e. if called with an already initialized stream the
- stream will be reinitialized. The return value is 0 if success and
- -1 if failure */
-int af_init(af_stream_t* s)
+ stream will be reinitialized. If the binary parameter
+ "force_output" is set, the output format will be converted to the
+ format given in "s", otherwise the output fromat in the last filter
+ will be copied "s". The return value is 0 if success and -1 if
+ failure */
+int af_init(af_stream_t* s, int force_output)
{
int i=0;
@@ -346,6 +349,12 @@ int af_init(af_stream_t* s)
if(AF_OK != af_reinit(s,s->first))
return -1;
+ // If force_output isn't set do not compensate for output format
+ if(!force_output){
+ memcpy(&s->output, s->last->data, sizeof(af_data_t));
+ return 0;
+ }
+
// Check output format
if((AF_INIT_TYPE_MASK & s->cfg.force) != AF_INIT_FORCE){
af_instance_t* af = NULL; // New filter
diff --git a/libaf/af.h b/libaf/af.h
index 4cf6dfa6d6..ba83f86c8e 100644
--- a/libaf/af.h
+++ b/libaf/af.h
@@ -124,10 +124,13 @@ typedef struct af_stream_s
if necessary according to the values set in input and output. Input
and output should contain the format of the current movie and the
formate of the preferred output respectively. The function is
- reentrant i.e. if called wit an already initialized stream the
- stream will be reinitialized. The return value is 0 if success and
- -1 if failure */
-int af_init(af_stream_t* s);
+ reentrant i.e. if called with an already initialized stream the
+ stream will be reinitialized. If the binary parameter
+ "force_output" is set, the output format will be converted to the
+ format given in "s", otherwise the output fromat in the last filter
+ will be copied "s". The return value is 0 if success and -1 if
+ failure */
+int af_init(af_stream_t* s, int force_output);
// Uninit and remove all filters
void af_uninit(af_stream_t* s);