Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
678082b4
Commit
678082b4
authored
Mar 22, 2014
by
Vittorio Giovara
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
X-Bitmap decoder
parent
792e4c21
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
127 additions
and
3 deletions
+127
-3
Changelog
Changelog
+1
-0
general.texi
doc/general.texi
+1
-1
Makefile
libavcodec/Makefile
+1
-0
allcodecs.c
libavcodec/allcodecs.c
+1
-1
version.h
libavcodec/version.h
+1
-1
xbmdec.c
libavcodec/xbmdec.c
+122
-0
No files found.
Changelog
View file @
678082b4
...
...
@@ -8,6 +8,7 @@ version <next>:
- Alias PIX image encoder and decoder
- BRender PIX image decoder
- Amazing Studio PAF playback support
- XBM decoder
version 10:
...
...
doc/general.texi
View file @
678082b4
...
...
@@ -471,7 +471,7 @@ following image formats are supported:
@tab Targa (.TGA) image format
@item WebP @tab E @tab X
@tab WebP image format, encoding supported through external library libwebp
@item XBM @tab X @tab
@item XBM @tab X @tab
X
@tab X BitMap image format
@item XWD @tab X @tab X
@tab X Window Dump image format
...
...
libavcodec/Makefile
View file @
678082b4
...
...
@@ -410,6 +410,7 @@ OBJS-$(CONFIG_WS_SND1_DECODER) += ws-snd1.o
OBJS-$(CONFIG_XAN_DPCM_DECODER)
+=
dpcm.o
OBJS-$(CONFIG_XAN_WC3_DECODER)
+=
xan.o
OBJS-$(CONFIG_XAN_WC4_DECODER)
+=
xxan.o
OBJS-$(CONFIG_XBM_DECODER)
+=
xbmdec.o
OBJS-$(CONFIG_XBM_ENCODER)
+=
xbmenc.o
OBJS-$(CONFIG_XL_DECODER)
+=
xl.o
OBJS-$(CONFIG_XSUB_DECODER)
+=
xsubdec.o
...
...
libavcodec/allcodecs.c
View file @
678082b4
...
...
@@ -271,7 +271,7 @@ void avcodec_register_all(void)
REGISTER_DECODER
(
WNV1
,
wnv1
);
REGISTER_DECODER
(
XAN_WC3
,
xan_wc3
);
REGISTER_DECODER
(
XAN_WC4
,
xan_wc4
);
REGISTER_ENC
ODER
(
XBM
,
xbm
);
REGISTER_ENC
DEC
(
XBM
,
xbm
);
REGISTER_DECODER
(
XL
,
xl
);
REGISTER_ENCDEC
(
XWD
,
xwd
);
REGISTER_DECODER
(
YOP
,
yop
);
...
...
libavcodec/version.h
View file @
678082b4
...
...
@@ -29,7 +29,7 @@
#include "libavutil/version.h"
#define LIBAVCODEC_VERSION_MAJOR 55
#define LIBAVCODEC_VERSION_MINOR
39
#define LIBAVCODEC_VERSION_MINOR
40
#define LIBAVCODEC_VERSION_MICRO 0
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
...
...
libavcodec/xbmdec.c
0 → 100644
View file @
678082b4
/*
* XBM image format
*
* This file is part of Libav.
*
* Libav is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* Libav is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with Libav; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavutil/avstring.h"
#include "avcodec.h"
#include "internal.h"
#include "mathops.h"
static
int
xbm_decode_frame
(
AVCodecContext
*
avctx
,
void
*
data
,
int
*
got_frame
,
AVPacket
*
avpkt
)
{
AVFrame
*
p
=
data
;
int
ret
,
linesize
,
i
;
int
width
=
0
;
int
height
=
0
;
const
uint8_t
*
ptr
=
avpkt
->
data
;
uint8_t
*
dst
;
avctx
->
pix_fmt
=
AV_PIX_FMT_MONOWHITE
;
while
(
!
width
||
!
height
)
{
ptr
+=
strcspn
(
ptr
,
"#"
);
if
(
ptr
>=
avpkt
->
data
+
avpkt
->
size
)
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"End of file reached.
\n
"
);
return
AVERROR_INVALIDDATA
;
}
if
(
strncmp
(
ptr
,
"#define"
,
7
)
!=
0
)
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"Unexpected preprocessor directive.
\n
"
);
return
AVERROR_INVALIDDATA
;
}
// skip the name
ptr
+=
strcspn
(
ptr
,
"_"
)
+
1
;
// get width or height
if
(
strncmp
(
ptr
,
"width"
,
5
)
==
0
)
{
ptr
+=
strcspn
(
ptr
,
" "
);
width
=
strtol
(
ptr
,
NULL
,
10
);
}
else
if
(
strncmp
(
ptr
,
"height"
,
6
)
==
0
)
{
ptr
+=
strcspn
(
ptr
,
" "
);
height
=
strtol
(
ptr
,
NULL
,
10
);
}
else
{
// skip offset and unknown variables
av_log
(
avctx
,
AV_LOG_VERBOSE
,
"Ignoring preprocessor directive.
\n
"
);
}
}
if
((
ret
=
ff_set_dimensions
(
avctx
,
width
,
height
))
<
0
)
return
ret
;
if
((
ret
=
ff_get_buffer
(
avctx
,
p
,
0
))
<
0
)
return
ret
;
// go to start of image data
ptr
+=
strcspn
(
ptr
,
"{"
);
linesize
=
(
avctx
->
width
+
7
)
/
8
;
for
(
i
=
0
;
i
<
avctx
->
height
;
i
++
)
{
int
eol
=
0
,
e
=
0
;
dst
=
p
->
data
[
0
]
+
i
*
p
->
linesize
[
0
];
if
(
ptr
>=
avpkt
->
data
+
avpkt
->
size
)
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"End of file reached.
\n
"
);
return
AVERROR_INVALIDDATA
;
}
do
{
int
val
;
uint8_t
*
endptr
;
ptr
+=
strcspn
(
ptr
,
"x"
)
-
1
;
// -1 to get 0x
val
=
strtol
(
ptr
,
(
char
**
)
&
endptr
,
16
);
if
(
endptr
-
ptr
==
4
)
{
// XBM X11 format
*
dst
++
=
ff_reverse
[
val
];
eol
=
linesize
;
}
else
if
(
endptr
-
ptr
==
6
)
{
// XBM X10 format
*
dst
++
=
ff_reverse
[
val
>>
8
];
*
dst
++
=
ff_reverse
[
val
&
0xFF
];
eol
=
linesize
/
2
;
// 2 bytes read
}
else
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"Unexpected data at %.8s.
\n
"
,
ptr
);
return
AVERROR_INVALIDDATA
;
}
ptr
=
endptr
;
}
while
(
++
e
<
eol
);
}
p
->
key_frame
=
1
;
p
->
pict_type
=
AV_PICTURE_TYPE_I
;
*
got_frame
=
1
;
return
avpkt
->
size
;
}
AVCodec
ff_xbm_decoder
=
{
.
name
=
"xbm"
,
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"XBM (X BitMap) image"
),
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
id
=
AV_CODEC_ID_XBM
,
.
decode
=
xbm_decode_frame
,
.
capabilities
=
CODEC_CAP_DR1
,
};
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