Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
06b3185a
Commit
06b3185a
authored
Dec 20, 2000
by
Renaud Dartus
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added U8_Mono audio output
parent
065a61df
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
62 additions
and
142 deletions
+62
-142
src/audio_output/audio_output.c
src/audio_output/audio_output.c
+48
-129
src/input/input_programs.c
src/input/input_programs.c
+2
-1
src/interface/interface.c
src/interface/interface.c
+8
-8
src/interface/intf_ctrl.c
src/interface/intf_ctrl.c
+4
-4
No files found.
src/audio_output/audio_output.c
View file @
06b3185a
...
...
@@ -180,7 +180,7 @@ aout_thread_t *aout_CreateThread( int *pi_status )
return
(
NULL
);
}
/* Initialize the vo
mu
e level */
/* Initialize the vo
lum
e level */
p_aout
->
vol
=
VOLUME_DEFAULT
;
/* FIXME: maybe it would be cleaner to change SpawnThread prototype
...
...
@@ -546,7 +546,7 @@ static __inline__ int NextFrame( aout_thread_t * p_aout, aout_fifo_t * p_fifo, m
l_units
=
((
p_fifo
->
l_next_frame
-
p_fifo
->
l_start_frame
)
&
AOUT_FIFO_SIZE
)
*
(
p_fifo
->
l_frame_size
>>
(
p_fifo
->
b_stereo
));
l_rate
=
p_fifo
->
l_rate
+
((
aout_date
-
p_fifo
->
date
[
p_fifo
->
l_start_frame
])
/
256
);
//
intf_DbgMsg( "aout debug: %lli (%li);\n", aout_date - p_fifo->date[p_fifo->l_start_frame], l_rate );
intf_DbgMsg
(
"aout debug: %lli (%li);
\n
"
,
aout_date
-
p_fifo
->
date
[
p_fifo
->
l_start_frame
],
l_rate
);
InitializeIncrement
(
&
p_fifo
->
unit_increment
,
l_rate
,
p_aout
->
l_rate
);
...
...
@@ -569,13 +569,11 @@ void aout_Thread_S8_Stereo( aout_thread_t * p_aout )
void
aout_Thread_U8_Mono
(
aout_thread_t
*
p_aout
)
{
# if 0
int
i_fifo
;
long
l_buffer
,
l_buffer_limit
;
long
l_units
,
l_bytes
;
intf_DbgMsg
(
"adec debug: ********aout_Thread_U8_Mono********
\n
"
);
intf_DbgMsg
(
"adec debug: running audio output thread (%p) (pid == %i)
\n
"
,
p_aout
,
getpid
());
intf_DbgMsg
(
"adec debug: running audio output U8_M_thread (%p) (pid == %i)
\n
"
,
p_aout
,
getpid
());
/* As the s32_buffer was created with calloc(), we don't have to set this
* memory to zero and we can immediately jump into the thread's loop */
...
...
@@ -586,14 +584,14 @@ void aout_Thread_U8_Mono( aout_thread_t * p_aout )
{
switch
(
p_aout
->
fifo
[
i_fifo
].
i_type
)
{
case
AOUT_EMPTY_FIFO
:
case
AOUT_EMPTY_FIFO
:
break
;
case
AOUT_INTF_MONO_FIFO
:
case
AOUT_INTF_MONO_FIFO
:
if
(
p_aout
->
fifo
[
i_fifo
].
l_units
>
p_aout
->
l_units
)
{
l_buffer
=
0
;
while
(
l_buffer
<
(
p_aout
->
l_units
/*<< 1*/
)
)
/* p_aout->b_stereo == 1
*/
while
(
l_buffer
<
(
p_aout
->
l_units
)
)
/* p_aout->b_stereo == 0
*/
{
p_aout
->
s32_buffer
[
l_buffer
++
]
+=
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
p_aout
->
fifo
[
i_fifo
].
l_unit
]
);
...
...
@@ -606,10 +604,8 @@ void aout_Thread_U8_Mono( aout_thread_t * p_aout )
else
{
l_buffer
=
0
;
while
(
l_buffer
<
(
p_aout
->
fifo
[
i_fifo
].
l_units
/*<< 1*/
)
)
/* p_aout->b_stereo == 1
*/
while
(
l_buffer
<
(
p_aout
->
fifo
[
i_fifo
].
l_units
)
)
/* p_aout->b_stereo == 0
*/
{
p_aout
->
s32_buffer
[
l_buffer
++
]
+=
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
p_aout
->
fifo
[
i_fifo
].
l_unit
]
);
p_aout
->
s32_buffer
[
l_buffer
++
]
+=
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
p_aout
->
fifo
[
i_fifo
].
l_unit
]
);
UPDATE_INCREMENT
(
p_aout
->
fifo
[
i_fifo
].
unit_increment
,
p_aout
->
fifo
[
i_fifo
].
l_unit
)
...
...
@@ -624,12 +620,12 @@ void aout_Thread_U8_Mono( aout_thread_t * p_aout )
if
(
p_aout
->
fifo
[
i_fifo
].
l_units
>
p_aout
->
l_units
)
{
l_buffer
=
0
;
while
(
l_buffer
<
(
p_aout
->
l_units
/*<< 1*/
)
)
/* p_aout->b_stereo == 1
*/
while
(
l_buffer
<
(
p_aout
->
l_units
)
)
/* p_aout->b_stereo == 0
*/
{
/* I mix half left - half right */
p_aout
->
s32_buffer
[
l_buffer
++
]
+=
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
2
*
p_aout
->
fifo
[
i_fifo
].
l_unit
]
);
p_aout
->
s32_buffer
[
l_buffer
++
]
+=
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
2
*
p_aout
->
fifo
[
i_fifo
].
l_unit
+
1
]
);
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
2
*
p_aout
->
fifo
[
i_fifo
].
l_unit
]
)
/
2
+
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
2
*
p_aout
->
fifo
[
i_fifo
].
l_unit
+
1
]
)
/
2
;
UPDATE_INCREMENT
(
p_aout
->
fifo
[
i_fifo
].
unit_increment
,
p_aout
->
fifo
[
i_fifo
].
l_unit
)
}
p_aout
->
fifo
[
i_fifo
].
l_units
-=
p_aout
->
l_units
;
...
...
@@ -637,12 +633,12 @@ void aout_Thread_U8_Mono( aout_thread_t * p_aout )
else
{
l_buffer
=
0
;
while
(
l_buffer
<
(
p_aout
->
fifo
[
i_fifo
].
l_units
/*<< 1*/
)
)
/* p_aout->b_stereo == 1
*/
while
(
l_buffer
<
(
p_aout
->
fifo
[
i_fifo
].
l_units
)
)
/* p_aout->b_stereo == 0
*/
{
/* I mix half left - half right */
p_aout
->
s32_buffer
[
l_buffer
++
]
+=
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
2
*
p_aout
->
fifo
[
i_fifo
].
l_unit
]
);
p_aout
->
s32_buffer
[
l_buffer
++
]
+=
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
2
*
p_aout
->
fifo
[
i_fifo
].
l_unit
+
1
]
);
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
2
*
p_aout
->
fifo
[
i_fifo
].
l_unit
]
)
/
2
+
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
2
*
p_aout
->
fifo
[
i_fifo
].
l_unit
+
1
]
)
/
2
;
UPDATE_INCREMENT
(
p_aout
->
fifo
[
i_fifo
].
unit_increment
,
p_aout
->
fifo
[
i_fifo
].
l_unit
)
}
free
(
p_aout
->
fifo
[
i_fifo
].
buffer
);
/* !! */
...
...
@@ -675,13 +671,11 @@ void aout_Thread_U8_Mono( aout_thread_t * p_aout )
if
(
p_aout
->
fifo
[
i_fifo
].
l_units
>
l_units
)
{
l_buffer_limit
=
p_aout
->
l_units
/*<< 1*/
;
/* p_aout->b_stereo == 1
*/
l_buffer_limit
=
p_aout
->
l_units
;
/* p_aout->b_stereo == 0
*/
while
(
l_buffer
<
l_buffer_limit
)
{
p_aout
->
s32_buffer
[
l_buffer
++
]
+=
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
p_aout
->
fifo
[
i_fifo
].
l_unit
]
);
p_aout
->
s32_buffer
[
l_buffer
++
]
+=
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
p_aout
->
fifo
[
i_fifo
].
l_unit
]
);
UPDATE_INCREMENT
(
p_aout
->
fifo
[
i_fifo
].
unit_increment
,
p_aout
->
fifo
[
i_fifo
].
l_unit
)
if
(
p_aout
->
fifo
[
i_fifo
].
l_unit
>=
/* p_aout->fifo[i_fifo].b_stereo == 0 */
...
...
@@ -696,14 +690,12 @@ void aout_Thread_U8_Mono( aout_thread_t * p_aout )
}
else
{
l_buffer_limit
=
l_buffer
+
(
p_aout
->
fifo
[
i_fifo
].
l_units
<<
1
);
/* p_aout->b_stereo ==
1
*/
l_buffer_limit
=
l_buffer
+
(
p_aout
->
fifo
[
i_fifo
].
l_units
);
/* p_aout->b_stereo ==
0
*/
while
(
l_buffer
<
l_buffer_limit
)
{
p_aout
->
s32_buffer
[
l_buffer
++
]
+=
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
p_aout
->
fifo
[
i_fifo
].
l_unit
]
);
p_aout
->
s32_buffer
[
l_buffer
++
]
+=
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
p_aout
->
fifo
[
i_fifo
].
l_unit
]
);
UPDATE_INCREMENT
(
p_aout
->
fifo
[
i_fifo
].
unit_increment
,
p_aout
->
fifo
[
i_fifo
].
l_unit
)
if
(
p_aout
->
fifo
[
i_fifo
].
l_unit
>=
/* p_aout->fifo[i_fifo].b_stereo == 0 */
...
...
@@ -749,45 +741,23 @@ void aout_Thread_U8_Mono( aout_thread_t * p_aout )
break
;
}
}
#define SOUND 1
#define ADEBUG 0
#define COEFF 2
if
(
p_aout
->
fifo
[
i_fifo
].
l_units
>
l_units
)
{
l_buffer_limit
=
p_aout
->
l_units
/*<< 1*/
;
/* p_aout->b_stereo == 1 */
//intf_DbgMsg( "l_buffer_limit:%d\n",l_buffer_limit );
l_buffer_limit
=
p_aout
->
l_units
;
/* p_aout->b_stereo == 0 */
while
(
l_buffer
<
l_buffer_limit
)
{
#if SOUND
p_aout
->
s32_buffer
[
l_buffer
++
]
+=
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
COEFF
*
p_aout
->
fifo
[
i_fifo
].
l_unit
]
);
/* I mix half left - half right */
p_aout
->
s32_buffer
[
l_buffer
++
]
+=
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
COEFF
*
p_aout
->
fifo
[
i_fifo
].
l_unit
+
1
]
);
/*
//intf_DbgMsg( "1deb " );
l_buffer++;
p_aout->s32_buffer[l_buffer] += (s32)( ((s16 *)p_aout->fifo[i_fifo].buffer)[COEFF*p_aout->fifo[i_fifo].l_unit] ) / 2;
p_aout->s32_buffer[l_buffer] += (s32)( ((s16 *)p_aout->fifo[i_fifo].buffer)[COEFF*p_aout->fifo[i_fifo].l_unit+1] ) / 2;
l_buffer++;
//intf_DbgMsg( "1fin" );
*/
#endif
#if ADEBUG
//intf_DbgMsg( "p_aout->s32_buffer[l_buffer] 11 : %x (%d)",p_aout->s32_buffer[l_buffer-1],p_aout->s32_buffer[l_buffer-1] );
intf_DbgMsg
(
"p_aout->fifo %ld
\n
"
,
COEFF
*
p_aout
->
fifo
[
i_fifo
].
l_unit
);
intf_DbgMsg
(
"%d - p_aout->s32b %ld
\n
"
,
l_buffer
,
(
s32
)
(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
COEFF
*
p_aout
->
fifo
[
i_fifo
].
l_unit
]
)
);
//intf_DbgMsg( "p_aout->s32_buffer[l_buffer] 12 : %x (%d)\n",p_aout->s32_buffer[l_buffer-1],p_aout->s32_buffer[l_buffer-1] );
#endif
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
2
*
p_aout
->
fifo
[
i_fifo
].
l_unit
]
)
/
2
+
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
2
*
p_aout
->
fifo
[
i_fifo
].
l_unit
+
1
]
)
/
2
;
UPDATE_INCREMENT
(
p_aout
->
fifo
[
i_fifo
].
unit_increment
,
p_aout
->
fifo
[
i_fifo
].
l_unit
)
if
(
p_aout
->
fifo
[
i_fifo
].
l_unit
>=
/* p_aout->fifo[i_fifo].b_stereo == 1 */
((
AOUT_FIFO_SIZE
+
1
)
*
(
p_aout
->
fifo
[
i_fifo
].
l_frame_size
>>
2
/*1*/
))
)
((
AOUT_FIFO_SIZE
+
1
)
*
(
p_aout
->
fifo
[
i_fifo
].
l_frame_size
>>
1
))
)
{
p_aout
->
fifo
[
i_fifo
].
l_unit
-=
/* p_aout->fifo[i_fifo].b_stereo == 1 */
((
AOUT_FIFO_SIZE
+
1
)
*
(
p_aout
->
fifo
[
i_fifo
].
l_frame_size
>>
2
/*1*/
));
((
AOUT_FIFO_SIZE
+
1
)
*
(
p_aout
->
fifo
[
i_fifo
].
l_frame_size
>>
1
));
}
}
p_aout
->
fifo
[
i_fifo
].
l_units
-=
l_units
;
...
...
@@ -795,106 +765,56 @@ intf_DbgMsg( "%d - p_aout->s32b %ld\n", l_buffer, (s32) ( ((s16 *)p_aout->fifo[i
}
else
{
//#if 0
l_buffer_limit
=
l_buffer
+
(
p_aout
->
fifo
[
i_fifo
].
l_units
/*<< 1*/
);
//intf_DbgMsg( "l_buffer_limit:%d\n",l_buffer_limit );
/* p_aout->b_stereo == 1 */
l_buffer_limit
=
l_buffer
+
(
p_aout
->
fifo
[
i_fifo
].
l_units
);
/* p_aout->b_stereo == 0 */
while
(
l_buffer
<
l_buffer_limit
)
{
#if SOUND
p_aout
->
s32_buffer
[
l_buffer
++
]
+=
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
COEFF
*
p_aout
->
fifo
[
i_fifo
].
l_unit
]
);
/* I mix half left - half right */
p_aout
->
s32_buffer
[
l_buffer
++
]
+=
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
COEFF
*
p_aout
->
fifo
[
i_fifo
].
l_unit
+
1
]
);
/*
//intf_DbgMsg( "2deb " );
l_buffer++;
//intf_DbgMsg( "793 ");
// !!!!!! Seg Fault !!!!!!!
//intf_DbgMsg( "\n p->aout_buffer : %d\t%d\n",p_aout->s32_buffer[l_buffer],COEFF*p_aout->fifo[i_fifo].l_unit );
if( COEFF*p_aout->fifo[i_fifo].l_unit < 60000 )
{
p_aout->s32_buffer[l_buffer] += (s32)( ((s16 *)p_aout->fifo[i_fifo].buffer)[COEFF*p_aout->fifo[i_fifo].l_unit] ) / 2;
// intf_DbgMsg( "795 ");
p_aout->s32_buffer[l_buffer] += (s32)( ((s16 *)p_aout->fifo[i_fifo].buffer)[COEFF*p_aout->fifo[i_fifo].l_unit+1] ) / 2;
//intf_DbgMsg( "797 ");
l_buffer++;
}
//intf_DbgMsg( "2fin " );
*/
#endif
#if ADEBUG
//intf_DbgMsg( "p_aout->s32_buffer[l_buffer] 21 : %x (%d)",p_aout->s32_buffer[l_buffer-1],p_aout->s32_buffer[l_buffer-1] );
intf_DbgMsg
(
"p_aout->fifo %ld
\n
"
,
COEFF
*
p_aout
->
fifo
[
i_fifo
].
l_unit
);
intf_DbgMsg
(
"%d - p_aout->s32b %ld
\n
"
,
l_buffer
,
(
s32
)
(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
COEFF
*
p_aout
->
fifo
[
i_fifo
].
l_unit
]
)
);
//intf_DbgMsg( "p_aout->s32_buffer[l_buffer] 22 : %x (%d)\n",p_aout->s32_buffer[l_buffer-1],p_aout->s32_buffer[l_buffer-1] );
#endif
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
2
*
p_aout
->
fifo
[
i_fifo
].
l_unit
]
)
/
2
+
(
s32
)(
((
s16
*
)
p_aout
->
fifo
[
i_fifo
].
buffer
)[
2
*
p_aout
->
fifo
[
i_fifo
].
l_unit
+
1
]
)
/
2
;
UPDATE_INCREMENT
(
p_aout
->
fifo
[
i_fifo
].
unit_increment
,
p_aout
->
fifo
[
i_fifo
].
l_unit
)
//intf_DbgMsg( "807 ");
if
(
p_aout
->
fifo
[
i_fifo
].
l_unit
>=
/* p_aout->fifo[i_fifo].b_stereo == 1 */
((
AOUT_FIFO_SIZE
+
1
)
*
(
p_aout
->
fifo
[
i_fifo
].
l_frame_size
>>
2
/*1*/
))
)
((
AOUT_FIFO_SIZE
+
1
)
*
(
p_aout
->
fifo
[
i_fifo
].
l_frame_size
>>
1
))
)
{
//intf_DbgMsg( "811 ");
p_aout
->
fifo
[
i_fifo
].
l_unit
-=
/* p_aout->fifo[i_fifo].b_stereo == 1 */
((
AOUT_FIFO_SIZE
+
1
)
*
(
p_aout
->
fifo
[
i_fifo
].
l_frame_size
>>
2
/*1*/
));
((
AOUT_FIFO_SIZE
+
1
)
*
(
p_aout
->
fifo
[
i_fifo
].
l_frame_size
>>
1
));
}
}
//intf_DbgMsg( "816 ");
l_units
-=
p_aout
->
fifo
[
i_fifo
].
l_units
;
//intf_DbgMsg( "818 ");
vlc_mutex_lock
(
&
p_aout
->
fifo
[
i_fifo
].
data_lock
);
//intf_DbgMsg( "820 ");
p_aout
->
fifo
[
i_fifo
].
l_start_frame
=
p_aout
->
fifo
[
i_fifo
].
l_next_frame
;
//intf_DbgMsg( "822 ");
vlc_cond_signal
(
&
p_aout
->
fifo
[
i_fifo
].
data_wait
);
//intf_DbgMsg( "824 ");
vlc_mutex_unlock
(
&
p_aout
->
fifo
[
i_fifo
].
data_lock
);
//intf_DbgMsg( "826 ");
/* p_aout->fifo[i_fifo].b_start_frame = 1; */
p_aout
->
fifo
[
i_fifo
].
l_next_frame
+=
1
;
//intf_DbgMsg( "829 ");
p_aout
->
fifo
[
i_fifo
].
l_next_frame
&=
AOUT_FIFO_SIZE
;
//intf_DbgMsg( "831 ");
p_aout
->
fifo
[
i_fifo
].
b_next_frame
=
0
;
//#endif
//intf_DbgMsg( "837 ");
}
//intf_DbgMsg( "838 ");
/* !!!!!!!!!!!!! Seg Fault !!!!!!!!!!!!!!!!! */
}
//intf_DbgMsg( "839 ");
break
;
default:
//intf_DbgMsg( "841 ");
default:
intf_DbgMsg
(
"aout debug: unknown fifo type (%i)
\n
"
,
p_aout
->
fifo
[
i_fifo
].
i_type
);
//intf_DbgMsg( "842 ");
break
;
}
}
//intf_DbgMsg( "843 ");
vlc_mutex_unlock
(
&
p_aout
->
fifos_lock
);
//intf_DbgMsg( "845 ");
l_buffer_limit
=
p_aout
->
l_units
/*<< 1*/
;
/* p_aout->b_stereo == 1
*/
//intf_DbgMsg( "\nici commence l'envoi sur sb\n" );
l_buffer_limit
=
p_aout
->
l_units
;
/* p_aout->b_stereo == 0
*/
for
(
l_buffer
=
0
;
l_buffer
<
l_buffer_limit
;
l_buffer
++
)
{
//intf_DbgMsg( "3deb ");
//intf_DbgMsg( "p_aout->s_32_buffer[l_buffer] : %x (%d)\n",p_aout->s32_buffer[l_buffer],p_aout->s32_buffer[l_buffer] );
((
u8
*
)
p_aout
->
buffer
)[
l_buffer
]
=
(
u8
)(
(
p_aout
->
s32_buffer
[
/*2 **/
l_buffer
]
/
256
)
+
128
);
//intf_DbgMsg( "p_aout->buffer[l_buffer] : %x (%d)\n", ((u8 *)p_aout->buffer)[l_buffer], ((u8 *)p_aout->buffer)[l_buffer] );
p_aout
->
s32_buffer
[
/*2 **/
l_buffer
]
=
0
;
// p_aout->s32_buffer[2 * l_buffer + 1] = 0;
//intf_DbgMsg( "3fin ");
{
((
u8
*
)
p_aout
->
buffer
)[
l_buffer
]
=
(
u8
)(
(
(
p_aout
->
s32_buffer
[
l_buffer
]
/
AOUT_MAX_FIFOS
/
256
)
+
128
)
*
p_aout
->
vol
/
256
);
p_aout
->
s32_buffer
[
l_buffer
]
=
0
;
}
l_bytes
=
p_aout
->
p_sys_getbufinfo
(
p_aout
,
l_buffer_limit
);
p_aout
->
date
=
mdate
()
+
((((
mtime_t
)(
l_bytes
/
2
))
*
1000000
)
/
((
mtime_t
)
p_aout
->
l_rate
));
/* sizeof(u8) << (p_aout->b_stereo) == 2
*/
p_aout
->
date
=
mdate
()
+
((((
mtime_t
)(
l_bytes
/
1
))
*
1000000
)
/
((
mtime_t
)
p_aout
->
l_rate
));
/* sizeof(u8) << (p_aout->b_stereo) == 1
*/
p_aout
->
p_sys_playsamples
(
p_aout
,
(
byte_t
*
)
p_aout
->
buffer
,
l_buffer_limit
*
sizeof
(
u8
)
);
if
(
l_bytes
>
(
l_buffer_limit
*
sizeof
(
u8
)
)
)
if
(
l_bytes
>
(
l_buffer_limit
*
sizeof
(
u8
)
*
2
)
)
/* There are 2 channels (left & right) */
{
msleep
(
p_aout
->
l_msleep
);
}
...
...
@@ -928,7 +848,8 @@ intf_DbgMsg( "%d - p_aout->s32b %ld\n", l_buffer, (s32) ( ((s16 *)p_aout->fifo[i
}
}
vlc_mutex_unlock
(
&
p_aout
->
fifos_lock
);
#endif
}
void
aout_Thread_U8_Stereo
(
aout_thread_t
*
p_aout
)
...
...
@@ -937,8 +858,7 @@ void aout_Thread_U8_Stereo( aout_thread_t * p_aout )
long
l_buffer
,
l_buffer_limit
;
long
l_units
,
l_bytes
;
intf_DbgMsg
(
"adec debug: ********aout_Thread_U8_Stereo********
\n
"
);
intf_DbgMsg
(
"adec debug: running audio output thread (%p) (pid == %i)
\n
"
,
p_aout
,
getpid
());
intf_DbgMsg
(
"adec debug: running audio output U8_S_thread (%p) (pid == %i)
\n
"
,
p_aout
,
getpid
());
/* As the s32_buffer was created with calloc(), we don't have to set this
* memory to zero and we can immediately jump into the thread's loop */
...
...
@@ -1179,7 +1099,7 @@ void aout_Thread_U8_Stereo( aout_thread_t * p_aout )
for
(
l_buffer
=
0
;
l_buffer
<
l_buffer_limit
;
l_buffer
++
)
{
((
u8
*
)
p_aout
->
buffer
)[
l_buffer
]
=
(
u8
)(
(
(
p_aout
->
s32_buffer
[
l_buffer
]
/
256
)
+
128
)
*
p_aout
->
vol
/
256
);
((
u8
*
)
p_aout
->
buffer
)[
l_buffer
]
=
(
u8
)(
(
(
p_aout
->
s32_buffer
[
l_buffer
]
/
AOUT_MAX_FIFOS
/
256
)
+
128
)
*
p_aout
->
vol
/
256
);
p_aout
->
s32_buffer
[
l_buffer
]
=
0
;
}
l_bytes
=
p_aout
->
p_sys_getbufinfo
(
p_aout
,
l_buffer_limit
);
...
...
@@ -1232,8 +1152,7 @@ void aout_Thread_S16_Stereo( aout_thread_t * p_aout )
long
l_buffer
,
l_buffer_limit
;
long
l_units
,
l_bytes
;
intf_DbgMsg
(
"adec debug: ********aout_Thread_S16_Stereo********
\n
"
);
intf_DbgMsg
(
"adec debug: running audio output thread (%p) (pid == %i)
\n
"
,
p_aout
,
getpid
());
intf_DbgMsg
(
"adec debug: running audio output S16_S_thread (%p) (pid == %i)
\n
"
,
p_aout
,
getpid
());
/* As the s32_buffer was created with calloc(), we don't have to set this
* memory to zero and we can immediately jump into the thread's loop */
...
...
src/input/input_programs.c
View file @
06b3185a
...
...
@@ -2,7 +2,7 @@
* input_programs.c: es_descriptor_t, pgrm_descriptor_t management
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: input_programs.c,v 1.
6 2000/12/20 17:49:40 massiot
Exp $
* $Id: input_programs.c,v 1.
7 2000/12/20 22:23:23 reno
Exp $
*
* Authors:
*
...
...
@@ -197,6 +197,7 @@ es_descriptor_t * input_AddES( input_thread_t * p_input,
{
/* No slot is empty */
intf_ErrMsg
(
"Stream carries too many ES for our decoder"
);
input_DumpStream
(
p_input
);
}
else
{
...
...
src/interface/interface.c
View file @
06b3185a
...
...
@@ -73,7 +73,7 @@ typedef struct intf_channel_s
int
i_input_method
;
/* input method descriptor */
char
*
psz_input_source
;
/* source string (owned) */
int
i_input_port
;
/* port */
int
i_input_vlan
;
/* vlan
*/
int
i_input_vlan
_id
;
/* vlan id
*/
}
intf_channel_t
;
/*****************************************************************************
...
...
@@ -313,7 +313,7 @@ int intf_SelectChannel( intf_thread_t * p_intf, int i_channel )
/* Open a new input */
p_intf->p_input = input_CreateThread( p_channel->i_input_method, p_channel->psz_input_source,
p_channel->i_input_port, p_channel->i_input_vlan,
p_channel->i_input_port, p_channel->i_input_vlan
_id
,
p_intf->p_vout, p_main->p_aout, NULL );
return( p_intf->p_input == NULL );
}
...
...
@@ -537,7 +537,7 @@ int intf_ProcessKey( intf_thread_t *p_intf, int g_key )
* integer input method (see input.h)
* string input source
* integer input port
* integer input vlan
* integer input vlan
id
* The last field must end with a semicolon.
* Comments and empty lines are not explicitely allowed, but lines with parsing
* errors are ignored without warning.
...
...
@@ -589,11 +589,11 @@ static int LoadChannels( intf_thread_t *p_intf, char *psz_filename )
{
if
(
!
ParseChannel
(
p_channel
,
psz_line
)
)
{
intf_DbgMsg
(
"channel [%d] %s : method %d (%s:%d vlan %d)
\n
"
,
intf_DbgMsg
(
"channel [%d] %s : method %d (%s:%d vlan
id
%d)
\n
"
,
p_channel
->
i_channel
,
p_channel
->
psz_description
,
p_channel
->
i_input_method
,
p_channel
->
psz_input_source
,
p_channel
->
i_input_port
,
p_channel
->
i_input_vlan
);
p_channel
->
i_input_port
,
p_channel
->
i_input_vlan
_id
);
p_channel
++
;
}
}
...
...
@@ -658,7 +658,7 @@ static int ParseChannel( intf_channel_t *p_channel, char *psz_str )
p_channel
->
i_input_method
=
0
;
p_channel
->
psz_input_source
=
NULL
;
p_channel
->
i_input_port
=
0
;
p_channel
->
i_input_vlan
=
0
;
p_channel
->
i_input_vlan
_id
=
0
;
/* Parse string */
i_field
=
0
;
...
...
@@ -725,8 +725,8 @@ static int ParseChannel( intf_channel_t *p_channel, char *psz_str )
i_field
=
-
1
;
}
break
;
case
5
:
/* input vlan
*/
p_channel
->
i_
channel
=
strtol
(
psz_str
,
&
psz_end
,
0
);
case
5
:
/* input vlan id
*/
p_channel
->
i_
input_vlan_id
=
strtol
(
psz_str
,
&
psz_end
,
0
);
if
(
(
*
psz_str
==
'\0'
)
||
(
*
psz_end
!=
'\0'
)
)
{
i_field
=
-
1
;
...
...
src/interface/intf_ctrl.c
View file @
06b3185a
...
...
@@ -465,7 +465,7 @@ static int SpawnInput( int i_argc, intf_arg_t *p_argv )
int i_method = 0; /* method parameter */
char * p_source = NULL; /* source parameter */
int i_port = 0; /* port parameter */
int i_vlan
= 0; /* vlan
parameter */
int i_vlan
_id = 0; /* vlan id
parameter */
/* Parse parameters - see command list above */
for ( i_arg = 1; i_arg < i_argc; i_arg++ )
...
...
@@ -483,8 +483,8 @@ static int SpawnInput( int i_argc, intf_arg_t *p_argv )
case 4: /* port */
i_port = p_argv[i_arg].i_num;
break;
case 5:
/* VLAN
*/
i_vlan = p_argv[i_arg].i_num;
case 5:
/* VLAN id
*/
i_vlan
_id
= p_argv[i_arg].i_num;
break;
}
}
...
...
@@ -495,7 +495,7 @@ static int SpawnInput( int i_argc, intf_arg_t *p_argv )
input_DestroyThread( p_main->p_intf->p_input, NULL );
}
p_main->p_intf->p_input = input_CreateThread( i_method, p_source, i_port, i_vlan,
p_main->p_intf->p_input = input_CreateThread( i_method, p_source, i_port, i_vlan
_id
,
p_main->p_intf->p_vout, p_main->p_aout,
NULL );
return( INTF_NO_ERROR );
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment