Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
ffmpeg
Project
Project
Details
Activity
Releases
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
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Stefan Westerfeld
ffmpeg
Commits
01343683
Commit
01343683
authored
Jan 24, 2023
by
Paul B Mahol
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avcodec: add CBD2 DPCM decoder
parent
0c7da969
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
25 additions
and
1 deletion
+25
-1
Changelog
Changelog
+1
-0
Makefile
libavcodec/Makefile
+1
-0
allcodecs.c
libavcodec/allcodecs.c
+1
-0
codec_desc.c
libavcodec/codec_desc.c
+7
-0
codec_id.h
libavcodec/codec_id.h
+1
-0
dpcm.c
libavcodec/dpcm.c
+10
-0
utils.c
libavcodec/utils.c
+1
-0
version.h
libavcodec/version.h
+1
-1
aiff.c
libavformat/aiff.c
+1
-0
aiffdec.c
libavformat/aiffdec.c
+1
-0
No files found.
Changelog
View file @
01343683
...
...
@@ -30,6 +30,7 @@ version <next>:
- adrc audio filter
- afdelaysrc audio filter
- WADY DPCM decoder and demuxer
- CBD2 DPCM decoder
version 5.1:
...
...
libavcodec/Makefile
View file @
01343683
...
...
@@ -278,6 +278,7 @@ OBJS-$(CONFIG_BRENDER_PIX_DECODER) += brenderpix.o
OBJS-$(CONFIG_C93_DECODER)
+=
c93.o
OBJS-$(CONFIG_CAVS_DECODER)
+=
cavs.o
cavsdec.o
cavsdsp.o
\
cavsdata.o
OBJS-$(CONFIG_CBD2_DECODER)
+=
dpcm.o
OBJS-$(CONFIG_CCAPTION_DECODER)
+=
ccaption_dec.o
ass.o
OBJS-$(CONFIG_CDGRAPHICS_DECODER)
+=
cdgraphics.o
OBJS-$(CONFIG_CDTOONS_DECODER)
+=
cdtoons.o
...
...
libavcodec/allcodecs.c
View file @
01343683
...
...
@@ -620,6 +620,7 @@ extern const FFCodec ff_pcm_vidc_encoder;
extern
const
FFCodec
ff_pcm_vidc_decoder
;
/* DPCM codecs */
extern
const
FFCodec
ff_cbd2_dpcm_decoder
;
extern
const
FFCodec
ff_derf_dpcm_decoder
;
extern
const
FFCodec
ff_gremlin_dpcm_decoder
;
extern
const
FFCodec
ff_interplay_dpcm_decoder
;
...
...
libavcodec/codec_desc.c
View file @
01343683
...
...
@@ -2626,6 +2626,13 @@ static const AVCodecDescriptor codec_descriptors[] = {
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"DPCM Marble WADY"
),
.
props
=
AV_CODEC_PROP_INTRA_ONLY
|
AV_CODEC_PROP_LOSSY
,
},
{
.
id
=
AV_CODEC_ID_CBD2_DPCM
,
.
type
=
AVMEDIA_TYPE_AUDIO
,
.
name
=
"cbd2_dpcm"
,
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"DPCM Cuberoot-Delta-Exact"
),
.
props
=
AV_CODEC_PROP_INTRA_ONLY
|
AV_CODEC_PROP_LOSSY
,
},
/* audio codecs */
{
...
...
libavcodec/codec_id.h
View file @
01343683
...
...
@@ -431,6 +431,7 @@ enum AVCodecID {
AV_CODEC_ID_GREMLIN_DPCM
,
AV_CODEC_ID_DERF_DPCM
,
AV_CODEC_ID_WADY_DPCM
,
AV_CODEC_ID_CBD2_DPCM
,
/* audio codecs */
AV_CODEC_ID_MP2
=
0x15000
,
...
...
libavcodec/dpcm.c
View file @
01343683
...
...
@@ -194,6 +194,13 @@ static av_cold int dpcm_decode_init(AVCodecContext *avctx)
}
break
;
case
AV_CODEC_ID_CBD2_DPCM
:
for
(
i
=
-
128
;
i
<
128
;
i
++
)
{
int16_t
cube
=
(
i
*
i
*
i
)
/
64
;
s
->
array
[
i
+
128
]
=
cube
;
}
break
;
case
AV_CODEC_ID_GREMLIN_DPCM
:
{
int
delta
=
0
;
int
code
=
64
;
...
...
@@ -265,6 +272,7 @@ static int dpcm_decode_frame(AVCodecContext *avctx, AVFrame *frame,
case
AV_CODEC_ID_WADY_DPCM
:
case
AV_CODEC_ID_DERF_DPCM
:
case
AV_CODEC_ID_GREMLIN_DPCM
:
case
AV_CODEC_ID_CBD2_DPCM
:
case
AV_CODEC_ID_SDX2_DPCM
:
out
=
buf_size
;
break
;
...
...
@@ -386,6 +394,7 @@ static int dpcm_decode_frame(AVCodecContext *avctx, AVFrame *frame,
}
break
;
case
AV_CODEC_ID_CBD2_DPCM
:
case
AV_CODEC_ID_SDX2_DPCM
:
while
(
output_samples
<
samples_end
)
{
int8_t
n
=
bytestream2_get_byteu
(
&
gb
);
...
...
@@ -468,6 +477,7 @@ const FFCodec ff_ ## name_ ## _decoder = { \
FF_CODEC_DECODE_CB(dpcm_decode_frame), \
}
DPCM_DECODER
(
AV_CODEC_ID_CBD2_DPCM
,
cbd2_dpcm
,
"DPCM Cuberoot-Delta-Exact"
);
DPCM_DECODER
(
AV_CODEC_ID_DERF_DPCM
,
derf_dpcm
,
"DPCM Xilam DERF"
);
DPCM_DECODER
(
AV_CODEC_ID_GREMLIN_DPCM
,
gremlin_dpcm
,
"DPCM Gremlin"
);
DPCM_DECODER
(
AV_CODEC_ID_INTERPLAY_DPCM
,
interplay_dpcm
,
"DPCM Interplay"
);
...
...
libavcodec/utils.c
View file @
01343683
...
...
@@ -514,6 +514,7 @@ int av_get_exact_bits_per_sample(enum AVCodecID codec_id)
case
AV_CODEC_ID_PCM_SGA
:
case
AV_CODEC_ID_PCM_U8
:
case
AV_CODEC_ID_SDX2_DPCM
:
case
AV_CODEC_ID_CBD2_DPCM
:
case
AV_CODEC_ID_DERF_DPCM
:
case
AV_CODEC_ID_WADY_DPCM
:
return
8
;
...
...
libavcodec/version.h
View file @
01343683
...
...
@@ -29,7 +29,7 @@
#include "version_major.h"
#define LIBAVCODEC_VERSION_MINOR 5
7
#define LIBAVCODEC_VERSION_MINOR 5
8
#define LIBAVCODEC_VERSION_MICRO 100
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
...
...
libavformat/aiff.c
View file @
01343683
...
...
@@ -46,6 +46,7 @@ const AVCodecTag ff_codec_aiff_tags[] = {
{
AV_CODEC_ID_QDMC
,
MKTAG
(
'Q'
,
'D'
,
'M'
,
'C'
)
},
{
AV_CODEC_ID_QDM2
,
MKTAG
(
'Q'
,
'D'
,
'M'
,
'2'
)
},
{
AV_CODEC_ID_QCELP
,
MKTAG
(
'Q'
,
'c'
,
'l'
,
'p'
)
},
{
AV_CODEC_ID_CBD2_DPCM
,
MKTAG
(
'C'
,
'B'
,
'D'
,
'2'
)
},
{
AV_CODEC_ID_SDX2_DPCM
,
MKTAG
(
'S'
,
'D'
,
'X'
,
'2'
)
},
{
AV_CODEC_ID_ADPCM_IMA_WS
,
MKTAG
(
'A'
,
'D'
,
'P'
,
'4'
)
},
{
AV_CODEC_ID_NONE
,
0
},
...
...
libavformat/aiffdec.c
View file @
01343683
...
...
@@ -164,6 +164,7 @@ static int get_aiff_header(AVFormatContext *s, int64_t size,
case
AV_CODEC_ID_ADPCM_IMA_WS
:
case
AV_CODEC_ID_ADPCM_G722
:
case
AV_CODEC_ID_MACE6
:
case
AV_CODEC_ID_CBD2_DPCM
:
case
AV_CODEC_ID_SDX2_DPCM
:
par
->
block_align
=
1
*
channels
;
break
;
...
...
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