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
373a6dda
Commit
373a6dda
authored
Jul 05, 2014
by
Nidhi Makhijani
Committed by
Diego Biurrun
Jul 06, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cljr: split decoder and encoder
Signed-off-by:
Diego Biurrun
<
diego@biurrun.de
>
parent
02a7a5e3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
101 additions
and
75 deletions
+101
-75
Makefile
libavcodec/Makefile
+2
-2
cljrdec.c
libavcodec/cljrdec.c
+2
-73
cljrenc.c
libavcodec/cljrenc.c
+97
-0
No files found.
libavcodec/Makefile
View file @
373a6dda
...
...
@@ -141,8 +141,8 @@ OBJS-$(CONFIG_CAVS_DECODER) += cavs.o cavsdec.o cavsdsp.o \
OBJS-$(CONFIG_CDGRAPHICS_DECODER)
+=
cdgraphics.o
OBJS-$(CONFIG_CDXL_DECODER)
+=
cdxl.o
OBJS-$(CONFIG_CINEPAK_DECODER)
+=
cinepak.o
OBJS-$(CONFIG_CLJR_DECODER)
+=
cljr.o
OBJS-$(CONFIG_CLJR_ENCODER)
+=
cljr.o
OBJS-$(CONFIG_CLJR_DECODER)
+=
cljr
dec
.o
OBJS-$(CONFIG_CLJR_ENCODER)
+=
cljr
enc
.o
OBJS-$(CONFIG_CLLC_DECODER)
+=
cllc.o
OBJS-$(CONFIG_COOK_DECODER)
+=
cook.o
OBJS-$(CONFIG_COMFORTNOISE_DECODER)
+=
cngdec.o
celp_filters.o
...
...
libavcodec/cljr.c
→
libavcodec/cljr
dec
.c
View file @
373a6dda
/*
* Cirrus Logic AccuPak (CLJR)
codec
* Cirrus Logic AccuPak (CLJR)
decoder
* Copyright (c) 2003 Alex Beregszaszi
*
* This file is part of Libav.
...
...
@@ -21,15 +21,13 @@
/**
* @file
* Cirrus Logic AccuPak
codec
.
* Cirrus Logic AccuPak
decoder
.
*/
#include "avcodec.h"
#include "get_bits.h"
#include "internal.h"
#include "put_bits.h"
#if CONFIG_CLJR_DECODER
static
int
decode_frame
(
AVCodecContext
*
avctx
,
void
*
data
,
int
*
got_frame
,
AVPacket
*
avpkt
)
...
...
@@ -95,72 +93,3 @@ AVCodec ff_cljr_decoder = {
.
decode
=
decode_frame
,
.
capabilities
=
CODEC_CAP_DR1
,
};
#endif
#if CONFIG_CLJR_ENCODER
static
av_cold
int
encode_init
(
AVCodecContext
*
avctx
)
{
avctx
->
coded_frame
=
av_frame_alloc
();
if
(
!
avctx
->
coded_frame
)
return
AVERROR
(
ENOMEM
);
return
0
;
}
static
av_cold
int
encode_close
(
AVCodecContext
*
avctx
)
{
av_frame_free
(
&
avctx
->
coded_frame
);
return
0
;
}
static
int
encode_frame
(
AVCodecContext
*
avctx
,
AVPacket
*
pkt
,
const
AVFrame
*
p
,
int
*
got_packet
)
{
PutBitContext
pb
;
int
x
,
y
,
ret
;
if
((
ret
=
ff_alloc_packet
(
pkt
,
32
*
avctx
->
height
*
avctx
->
width
/
4
))
<
0
)
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"Error getting output packet.
\n
"
);
return
ret
;
}
avctx
->
coded_frame
->
pict_type
=
AV_PICTURE_TYPE_I
;
avctx
->
coded_frame
->
key_frame
=
1
;
init_put_bits
(
&
pb
,
pkt
->
data
,
pkt
->
size
);
for
(
y
=
0
;
y
<
avctx
->
height
;
y
++
)
{
uint8_t
*
luma
=
&
p
->
data
[
0
][
y
*
p
->
linesize
[
0
]];
uint8_t
*
cb
=
&
p
->
data
[
1
][
y
*
p
->
linesize
[
1
]];
uint8_t
*
cr
=
&
p
->
data
[
2
][
y
*
p
->
linesize
[
2
]];
for
(
x
=
0
;
x
<
avctx
->
width
;
x
+=
4
)
{
put_bits
(
&
pb
,
5
,
luma
[
3
]
>>
3
);
put_bits
(
&
pb
,
5
,
luma
[
2
]
>>
3
);
put_bits
(
&
pb
,
5
,
luma
[
1
]
>>
3
);
put_bits
(
&
pb
,
5
,
luma
[
0
]
>>
3
);
luma
+=
4
;
put_bits
(
&
pb
,
6
,
*
(
cb
++
)
>>
2
);
put_bits
(
&
pb
,
6
,
*
(
cr
++
)
>>
2
);
}
}
flush_put_bits
(
&
pb
);
pkt
->
size
=
put_bits_count
(
&
pb
)
/
8
;
pkt
->
flags
|=
AV_PKT_FLAG_KEY
;
*
got_packet
=
1
;
return
0
;
}
AVCodec
ff_cljr_encoder
=
{
.
name
=
"cljr"
,
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"Cirrus Logic AccuPak"
),
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
id
=
AV_CODEC_ID_CLJR
,
.
init
=
encode_init
,
.
encode2
=
encode_frame
,
.
close
=
encode_close
,
.
pix_fmts
=
(
const
enum
AVPixelFormat
[])
{
AV_PIX_FMT_YUV411P
,
AV_PIX_FMT_NONE
},
};
#endif
libavcodec/cljrenc.c
0 → 100644
View file @
373a6dda
/*
* Cirrus Logic AccuPak (CLJR) encoder
* Copyright (c) 2003 Alex Beregszaszi
*
* 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
*/
/**
* @file
* Cirrus Logic AccuPak encoder.
*/
#include "libavutil/common.h"
#include "avcodec.h"
#include "internal.h"
#include "put_bits.h"
static
av_cold
int
encode_init
(
AVCodecContext
*
avctx
)
{
avctx
->
coded_frame
=
av_frame_alloc
();
if
(
!
avctx
->
coded_frame
)
return
AVERROR
(
ENOMEM
);
return
0
;
}
static
av_cold
int
encode_close
(
AVCodecContext
*
avctx
)
{
av_frame_free
(
&
avctx
->
coded_frame
);
return
0
;
}
static
int
encode_frame
(
AVCodecContext
*
avctx
,
AVPacket
*
pkt
,
const
AVFrame
*
p
,
int
*
got_packet
)
{
PutBitContext
pb
;
int
x
,
y
,
ret
;
if
((
ret
=
ff_alloc_packet
(
pkt
,
32
*
avctx
->
height
*
avctx
->
width
/
4
))
<
0
)
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"Error getting output packet.
\n
"
);
return
ret
;
}
avctx
->
coded_frame
->
pict_type
=
AV_PICTURE_TYPE_I
;
avctx
->
coded_frame
->
key_frame
=
1
;
init_put_bits
(
&
pb
,
pkt
->
data
,
pkt
->
size
);
for
(
y
=
0
;
y
<
avctx
->
height
;
y
++
)
{
uint8_t
*
luma
=
&
p
->
data
[
0
][
y
*
p
->
linesize
[
0
]];
uint8_t
*
cb
=
&
p
->
data
[
1
][
y
*
p
->
linesize
[
1
]];
uint8_t
*
cr
=
&
p
->
data
[
2
][
y
*
p
->
linesize
[
2
]];
for
(
x
=
0
;
x
<
avctx
->
width
;
x
+=
4
)
{
put_bits
(
&
pb
,
5
,
luma
[
3
]
>>
3
);
put_bits
(
&
pb
,
5
,
luma
[
2
]
>>
3
);
put_bits
(
&
pb
,
5
,
luma
[
1
]
>>
3
);
put_bits
(
&
pb
,
5
,
luma
[
0
]
>>
3
);
luma
+=
4
;
put_bits
(
&
pb
,
6
,
*
(
cb
++
)
>>
2
);
put_bits
(
&
pb
,
6
,
*
(
cr
++
)
>>
2
);
}
}
flush_put_bits
(
&
pb
);
pkt
->
size
=
put_bits_count
(
&
pb
)
/
8
;
pkt
->
flags
|=
AV_PKT_FLAG_KEY
;
*
got_packet
=
1
;
return
0
;
}
AVCodec
ff_cljr_encoder
=
{
.
name
=
"cljr"
,
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"Cirrus Logic AccuPak"
),
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
id
=
AV_CODEC_ID_CLJR
,
.
init
=
encode_init
,
.
encode2
=
encode_frame
,
.
close
=
encode_close
,
.
pix_fmts
=
(
const
enum
AVPixelFormat
[])
{
AV_PIX_FMT_YUV411P
,
AV_PIX_FMT_NONE
},
};
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