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
e16affa0
Commit
e16affa0
authored
Aug 14, 2000
by
Sam Hocevar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* fixed 8bpp YUV.
* fixed the fscked up Bresenham algorithm in all YUV functions.
parent
b7c5bd56
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
80 additions
and
73 deletions
+80
-73
ChangeLog
ChangeLog
+2
-1
TODO
TODO
+1
-1
plugins/yuv/video_yuv.c
plugins/yuv/video_yuv.c
+36
-36
plugins/yuv/video_yuv16.c
plugins/yuv/video_yuv16.c
+4
-4
plugins/yuv/video_yuv32.c
plugins/yuv/video_yuv32.c
+4
-4
plugins/yuv/video_yuv8.c
plugins/yuv/video_yuv8.c
+2
-2
plugins/yuv/video_yuv_macros.h
plugins/yuv/video_yuv_macros.h
+1
-1
plugins/yuv/video_yuv_macros_8bpp.h
plugins/yuv/video_yuv_macros_8bpp.h
+2
-3
plugins/yuvmmx/video_yuv.c
plugins/yuvmmx/video_yuv.c
+16
-16
plugins/yuvmmx/video_yuv16.c
plugins/yuvmmx/video_yuv16.c
+1
-1
plugins/yuvmmx/video_yuv32.c
plugins/yuvmmx/video_yuv32.c
+1
-1
src/video_parser/vpar_synchro.c
src/video_parser/vpar_synchro.c
+10
-3
No files found.
ChangeLog
View file @
e16affa0
...
...
@@ -7,7 +7,8 @@
* now scaling is on by default, so that people won't tell that the vlc
cannot do scaling :-)
* fixed a few long lines.
* _almost_ fixed 8bpp YUV.
* fixed 8bpp YUV.
* fixed the fscked up Bresenham algorithm in all YUV functions.
Tue Aug 8 11:24:01 CEST 2000
0.1.99f :
...
...
TODO
View file @
e16affa0
...
...
@@ -110,7 +110,7 @@ Urgency: Important
Description
:
Fix
8
bpp
YUV
The
8
bpp
YUV
function
is
broken
,
there
is
some
serious
alpha
blending
,
and
it
scales
pretty
badly
.
Fix
it
.
Status
:
Todo
Status
:
Done
14
Aug
2000
(
sam
)
Task
:
0x15
Difficulty
:
Medium
...
...
plugins/yuv/video_yuv.c
View file @
e16affa0
...
...
@@ -468,96 +468,96 @@ void SetOffset( int i_width, int i_height, int i_pic_width, int i_pic_height,
/*
* Prepare horizontal offset array
*/
if
(
i_pic_width
-
i_width
>
0
)
if
(
i_pic_width
-
i_width
==
0
)
{
/* No horizontal scaling: YUV conversion is done directly to picture */
*
pb_h_scaling
=
0
;
}
else
if
(
i_pic_width
-
i_width
>
0
)
{
/* Prepare scaling array for horizontal extension */
*
pb_h_scaling
=
1
;
i_scale_count
=
i_pic_width
;
if
(
b_double
)
if
(
!
b_double
)
{
int
i_dummy
=
0
;
for
(
i_x
=
i_width
;
i_x
--
;
)
{
while
(
(
i_scale_count
-=
i_width
)
>
0
)
{
*
p_offset
++
=
0
;
*
p_offset
++
=
0
;
}
*
p_offset
++
=
1
;
*
p_offset
++
=
i_dummy
&
1
;
i_dummy
++
;
i_scale_count
+=
i_pic_width
;
}
}
else
{
int
i_dummy
=
0
;
for
(
i_x
=
i_width
;
i_x
--
;
)
{
while
(
(
i_scale_count
-=
i_width
)
>
0
)
{
*
p_offset
++
=
0
;
*
p_offset
++
=
0
;
}
*
p_offset
++
=
1
;
*
p_offset
++
=
i_dummy
;
i_dummy
=
1
-
i_dummy
;
i_scale_count
+=
i_pic_width
;
}
}
}
else
if
(
i_pic_width
-
i_width
<
0
)
else
/* if( i_pic_width - i_width < 0 ) */
{
/* Prepare scaling array for horizontal reduction */
*
pb_h_scaling
=
1
;
i_scale_count
=
i_pic
_width
;
if
(
b_double
)
i_scale_count
=
i
_width
;
if
(
!
b_double
)
{
int
i_remainder
=
0
;
int
i_jump
;
for
(
i_x
=
i_pic_width
;
i_x
--
;
)
{
i_jump
=
1
;
while
(
(
i_scale_count
-=
i_pic_width
)
>
=
0
)
*
p_offset
=
1
;
while
(
(
i_scale_count
-=
i_pic_width
)
>
0
)
{
i_jump
+=
1
;
*
p_offset
+=
1
;
}
*
p_offset
++
=
i_jump
;
*
p_offset
++
=
(
i_jump
+=
i_remainder
)
>>
1
;
i_remainder
=
i_jump
&
1
;
p_offset
++
;
i_scale_count
+=
i_width
;
}
}
else
{
int
i_remainder
=
0
;
int
i_jump
;
for
(
i_x
=
i_pic_width
;
i_x
--
;
)
{
*
p_offset
=
1
;
while
(
(
i_scale_count
-=
i_pic_width
)
>
=
0
)
i_jump
=
1
;
while
(
(
i_scale_count
-=
i_pic_width
)
>
0
)
{
*
p_offset
+=
1
;
i_jump
+=
1
;
}
p_offset
++
;
*
p_offset
++
=
i_jump
;
*
p_offset
++
=
(
i_jump
+=
i_remainder
)
>>
1
;
i_remainder
=
i_jump
&
1
;
i_scale_count
+=
i_width
;
}
}
}
else
{
/* No horizontal scaling: YUV conversion is done directly to picture */
*
pb_h_scaling
=
0
;
}
/*
* Set vertical scaling indicator
*/
if
(
i_pic_height
-
i_height
>
0
)
if
(
i_pic_height
-
i_height
==
0
)
{
*
pi_v_scaling
=
1
;
*
pi_v_scaling
=
0
;
}
else
if
(
i_pic_height
-
i_height
<
0
)
else
if
(
i_pic_height
-
i_height
>
0
)
{
*
pi_v_scaling
=
-
1
;
*
pi_v_scaling
=
1
;
}
else
else
/* if( i_pic_height - i_height < 0 ) */
{
*
pi_v_scaling
=
0
;
*
pi_v_scaling
=
-
1
;
}
}
plugins/yuv/video_yuv16.c
View file @
e16affa0
...
...
@@ -76,7 +76,7 @@ void ConvertY4Gray16( YUV_ARGS_16BPP )
/*
* Perform conversion
*/
i_scale_count
=
i_pic
_height
;
i_scale_count
=
(
i_vertical_scaling
==
1
)
?
i_pic_height
:
i
_height
;
for
(
i_y
=
0
;
i_y
<
i_height
;
i_y
++
)
{
/* Mark beginnning of line for possible later line copy, and initialize
...
...
@@ -138,7 +138,7 @@ void ConvertYUV420RGB16( YUV_ARGS_16BPP )
/*
* Perform conversion
*/
i_scale_count
=
i_pic
_height
;
i_scale_count
=
(
i_vertical_scaling
==
1
)
?
i_pic_height
:
i
_height
;
for
(
i_y
=
0
;
i_y
<
i_height
;
i_y
++
)
{
/* Mark beginnning of line for possible later line copy, and initialize
...
...
@@ -200,7 +200,7 @@ void ConvertYUV422RGB16( YUV_ARGS_16BPP )
/*
* Perform conversion
*/
i_scale_count
=
i_pic
_height
;
i_scale_count
=
(
i_vertical_scaling
==
1
)
?
i_pic_height
:
i
_height
;
for
(
i_y
=
0
;
i_y
<
i_height
;
i_y
++
)
{
/* Mark beginnning of line for possible later line copy, and initialize
...
...
@@ -261,7 +261,7 @@ void ConvertYUV444RGB16( YUV_ARGS_16BPP )
/*
* Perform conversion
*/
i_scale_count
=
i_pic
_height
;
i_scale_count
=
(
i_vertical_scaling
==
1
)
?
i_pic_height
:
i
_height
;
for
(
i_y
=
0
;
i_y
<
i_height
;
i_y
++
)
{
/* Mark beginnning of line for possible later line copy, and initialize
...
...
plugins/yuv/video_yuv32.c
View file @
e16affa0
...
...
@@ -76,7 +76,7 @@ void ConvertY4Gray32( YUV_ARGS_32BPP )
/*
* Perform conversion
*/
i_scale_count
=
i_pic
_height
;
i_scale_count
=
(
i_vertical_scaling
==
1
)
?
i_pic_height
:
i
_height
;
for
(
i_y
=
0
;
i_y
<
i_height
;
i_y
++
)
{
/* Mark beginnning of line for possible later line copy, and initialize
...
...
@@ -138,7 +138,7 @@ void ConvertYUV420RGB32( YUV_ARGS_32BPP )
/*
* Perform conversion
*/
i_scale_count
=
i_pic
_height
;
i_scale_count
=
(
i_vertical_scaling
==
1
)
?
i_pic_height
:
i
_height
;
for
(
i_y
=
0
;
i_y
<
i_height
;
i_y
++
)
{
/* Mark beginnning of line for possible later line copy, and initialize
...
...
@@ -200,7 +200,7 @@ void ConvertYUV422RGB32( YUV_ARGS_32BPP )
/*
* Perform conversion
*/
i_scale_count
=
i_pic
_height
;
i_scale_count
=
(
i_vertical_scaling
==
1
)
?
i_pic_height
:
i
_height
;
for
(
i_y
=
0
;
i_y
<
i_height
;
i_y
++
)
{
/* Mark beginnning of line for possible later line copy, and initialize
...
...
@@ -261,7 +261,7 @@ void ConvertYUV444RGB32( YUV_ARGS_32BPP )
/*
* Perform conversion
*/
i_scale_count
=
i_pic
_height
;
i_scale_count
=
(
i_vertical_scaling
==
1
)
?
i_pic_height
:
i
_height
;
for
(
i_y
=
0
;
i_y
<
i_height
;
i_y
++
)
{
/* Mark beginnning of line for possible later line copy, and initialize
...
...
plugins/yuv/video_yuv8.c
View file @
e16affa0
...
...
@@ -77,7 +77,7 @@ void ConvertY4Gray8( YUV_ARGS_8BPP )
/*
* Perform conversion
*/
i_scale_count
=
i_pic
_height
;
i_scale_count
=
(
i_vertical_scaling
==
1
)
?
i_pic_height
:
i
_height
;
for
(
i_y
=
0
;
i_y
<
i_height
;
i_y
++
)
{
/* Mark beginnning of line for possible later line copy, and initialize
...
...
@@ -146,7 +146,7 @@ void ConvertYUV420RGB8( YUV_ARGS_8BPP )
/*
* Perform conversion
*/
i_scale_count
=
i_pic
_height
;
i_scale_count
=
(
i_vertical_scaling
==
1
)
?
i_pic_height
:
i
_height
;
i_real_y
=
0
;
for
(
i_y
=
0
;
i_y
<
i_height
;
i_y
++
)
{
...
...
plugins/yuv/video_yuv_macros.h
View file @
e16affa0
...
...
@@ -107,7 +107,7 @@
switch( i_vertical_scaling ) \
{ \
case -1:
/* vertical scaling factor is < 1 */
\
while( (i_scale_count -= i_pic_height) >
= 0 )
\
while( (i_scale_count -= i_pic_height) >
0 )
\
{ \
/* Height reduction: skip next source line */
\
p_y += i_width; \
...
...
plugins/yuv/video_yuv_macros_8bpp.h
View file @
e16affa0
...
...
@@ -136,7 +136,7 @@
switch( i_vertical_scaling ) \
{ \
case -1:
/* vertical scaling factor is < 1 */
\
while( (i_scale_count -= i_pic_height) >
= 0 )
\
while( (i_scale_count -= i_pic_height) >
0 )
\
{ \
/* Height reduction: skip next source line */
\
p_y += i_width; \
...
...
@@ -160,11 +160,10 @@
case 1:
/* vertical scaling factor is > 1 */
\
while( (i_scale_count -= i_height) > 0 ) \
{ \
SCALE_WIDTH_DITHER( CHROMA ); \
p_y -= i_width; \
p_u -= i_chroma_width; \
p_v -= i_chroma_width; \
p_pic += i_pic_line_width;
\
SCALE_WIDTH_DITHER( CHROMA );
\
} \
i_scale_count += i_pic_height; \
break; \
...
...
plugins/yuvmmx/video_yuv.c
View file @
e16affa0
...
...
@@ -352,7 +352,12 @@ void SetOffset( int i_width, int i_height, int i_pic_width, int i_pic_height,
/*
* Prepare horizontal offset array
*/
if
(
i_pic_width
-
i_width
>
0
)
if
(
i_pic_width
-
i_width
==
0
)
{
/* No horizontal scaling: YUV conversion is done directly to picture */
*
pb_h_scaling
=
0
;
}
else
if
(
i_pic_width
-
i_width
>
0
)
{
/* Prepare scaling array for horizontal extension */
*
pb_h_scaling
=
1
;
...
...
@@ -367,15 +372,15 @@ void SetOffset( int i_width, int i_height, int i_pic_width, int i_pic_height,
i_scale_count
+=
i_pic_width
;
}
}
else
if
(
i_pic_width
-
i_width
<
0
)
else
/* if( i_pic_width - i_width < 0 ) */
{
/* Prepare scaling array for horizontal reduction */
*
pb_h_scaling
=
1
;
i_scale_count
=
i_pic
_width
;
i_scale_count
=
i
_width
;
for
(
i_x
=
i_pic_width
;
i_x
--
;
)
{
*
p_offset
=
1
;
while
(
(
i_scale_count
-=
i_pic_width
)
>
=
0
)
while
(
(
i_scale_count
-=
i_pic_width
)
>
0
)
{
*
p_offset
+=
1
;
}
...
...
@@ -383,26 +388,21 @@ void SetOffset( int i_width, int i_height, int i_pic_width, int i_pic_height,
i_scale_count
+=
i_width
;
}
}
else
{
/* No horizontal scaling: YUV conversion is done directly to picture */
*
pb_h_scaling
=
0
;
}
/*
* Set vertical scaling indicator
*/
if
(
i_pic_height
-
i_height
>
0
)
if
(
i_pic_height
-
i_height
==
0
)
{
*
pi_v_scaling
=
1
;
*
pi_v_scaling
=
0
;
}
else
if
(
i_pic_height
-
i_height
<
0
)
else
if
(
i_pic_height
-
i_height
>
0
)
{
*
pi_v_scaling
=
-
1
;
*
pi_v_scaling
=
1
;
}
else
else
/* if( i_pic_height - i_height < 0 ) */
{
*
pi_v_scaling
=
0
;
*
pi_v_scaling
=
-
1
;
}
}
plugins/yuvmmx/video_yuv16.c
View file @
e16affa0
...
...
@@ -84,7 +84,7 @@ void ConvertYUV420RGB16( YUV_ARGS_16BPP )
/*
* Perform conversion
*/
i_scale_count
=
i_pic
_height
;
i_scale_count
=
(
i_vertical_scaling
==
1
)
?
i_pic_height
:
i
_height
;
for
(
i_y
=
0
;
i_y
<
i_height
;
i_y
++
)
{
/* Mark beginnning of line for possible later line copy, and initialize
...
...
plugins/yuvmmx/video_yuv32.c
View file @
e16affa0
...
...
@@ -84,7 +84,7 @@ void ConvertYUV420RGB32( YUV_ARGS_32BPP )
/*
* Perform conversion
*/
i_scale_count
=
i_pic
_height
;
i_scale_count
=
(
i_vertical_scaling
==
1
)
?
i_pic_height
:
i
_height
;
for
(
i_y
=
0
;
i_y
<
i_height
;
i_y
++
)
{
/* Mark beginnning of line for possible later line copy, and initialize
...
...
src/video_parser/vpar_synchro.c
View file @
e16affa0
...
...
@@ -161,20 +161,27 @@ void vpar_SynchroUpdateStructures( vpar_thread_t * p_vpar,
#if 1
if
(
p_vpar
->
synchro
.
b_all_I
)
intf_ErrMsg
(
" I: 1024/1024 "
);
if
(
p_vpar
->
synchro
.
b_all_P
)
intf_ErrMsg
(
"P: %i/%i "
,
p_vpar
->
synchro
.
i_P_seen
,
p_vpar
->
synchro
.
i_P_seen
);
else
if
(
p_vpar
->
synchro
.
displayable_p
>
0
)
intf_ErrMsg
(
"P: %i/%i "
,
p_vpar
->
synchro
.
displayable_p
,
p_vpar
->
synchro
.
i_P_seen
);
else
intf_ErrMsg
(
" "
);
if
(
p_vpar
->
synchro
.
b_all_B
)
intf_ErrMsg
(
"B: %i/%i"
,
p_vpar
->
synchro
.
i_B_seen
,
p_vpar
->
synchro
.
i_B_seen
);
else
if
(
p_vpar
->
synchro
.
displayable_b
>
0
)
intf_ErrMsg
(
"B: %i/%i"
,
p_vpar
->
synchro
.
displayable_b
,
p_vpar
->
synchro
.
i_B_seen
);
// intf_ErrMsg( " " );
intf_ErrMsg
(
"
\n
"
);
else
intf_ErrMsg
(
" "
);
intf_ErrMsg
(
" Decoding: "
);
/*intf_ErrMsg( "\n" );*/
#endif
p_vpar
->
synchro
.
i_P_seen
=
0
;
p_vpar
->
synchro
.
i_B_seen
=
0
;
...
...
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