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
492cd3a9
Commit
492cd3a9
authored
Dec 09, 2002
by
Michael Niedermayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
AVVideoFrame -> AVFrame
Originally committed as revision 1327 to
svn://svn.ffmpeg.org/ffmpeg/trunk
parent
f694168d
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
120 additions
and
98 deletions
+120
-98
ffmpeg.c
ffmpeg.c
+9
-9
ffserver.c
ffserver.c
+2
-2
ac3enc.c
libavcodec/ac3enc.c
+9
-1
adpcm.c
libavcodec/adpcm.c
+6
-2
apiexample.c
libavcodec/apiexample.c
+4
-4
avcodec.h
libavcodec/avcodec.h
+14
-21
dv.c
libavcodec/dv.c
+3
-3
h263dec.c
libavcodec/h263dec.c
+4
-4
huffyuv.c
libavcodec/huffyuv.c
+8
-8
mpeg12.c
libavcodec/mpeg12.c
+6
-6
mpegaudio.c
libavcodec/mpegaudio.c
+8
-1
mpegvideo.c
libavcodec/mpegvideo.c
+13
-13
mpegvideo.h
libavcodec/mpegvideo.h
+1
-1
oggvorbis.c
libavcodec/oggvorbis.c
+7
-2
pcm.c
libavcodec/pcm.c
+6
-1
rv10.c
libavcodec/rv10.c
+3
-3
svq1.c
libavcodec/svq1.c
+3
-3
utils.c
libavcodec/utils.c
+8
-8
asf.c
libavformat/asf.c
+1
-1
avienc.c
libavformat/avienc.c
+1
-1
ffm.c
libavformat/ffm.c
+1
-1
rm.c
libavformat/rm.c
+2
-2
utils.c
libavformat/utils.c
+1
-1
No files found.
ffmpeg.c
View file @
492cd3a9
...
...
@@ -629,9 +629,9 @@ static void do_video_out(AVFormatContext *s,
/* XXX: pb because no interleaving */
for
(
i
=
0
;
i
<
nb_frames
;
i
++
)
{
if
(
enc
->
codec_id
!=
CODEC_ID_RAWVIDEO
)
{
AV
Video
Frame
big_picture
;
AVFrame
big_picture
;
memset
(
&
big_picture
,
0
,
sizeof
(
AV
Video
Frame
));
memset
(
&
big_picture
,
0
,
sizeof
(
AVFrame
));
*
(
AVPicture
*
)
&
big_picture
=
*
final_picture
;
/* handles sameq here. This is not correct because it may
...
...
@@ -709,9 +709,9 @@ static void do_video_stats(AVFormatContext *os, AVOutputStream *ost,
total_size
+=
frame_size
;
if
(
enc
->
codec_type
==
CODEC_TYPE_VIDEO
)
{
frame_number
=
ost
->
frame_number
;
fprintf
(
fvstats
,
"frame= %5d q= %2.1f "
,
frame_number
,
enc
->
coded_
pictur
e
->
quality
);
fprintf
(
fvstats
,
"frame= %5d q= %2.1f "
,
frame_number
,
enc
->
coded_
fram
e
->
quality
);
if
(
enc
->
flags
&
CODEC_FLAG_PSNR
)
fprintf
(
fvstats
,
"PSNR= %6.2f "
,
psnr
(
enc
->
coded_
pictur
e
->
error
[
0
]
/
(
enc
->
width
*
enc
->
height
*
255
.
0
*
255
.
0
)));
fprintf
(
fvstats
,
"PSNR= %6.2f "
,
psnr
(
enc
->
coded_
fram
e
->
error
[
0
]
/
(
enc
->
width
*
enc
->
height
*
255
.
0
*
255
.
0
)));
fprintf
(
fvstats
,
"f_size= %6d "
,
frame_size
);
/* compute pts value */
...
...
@@ -723,7 +723,7 @@ static void do_video_stats(AVFormatContext *os, AVOutputStream *ost,
avg_bitrate
=
(
double
)(
total_size
*
8
)
/
ti1
/
1000
.
0
;
fprintf
(
fvstats
,
"s_size= %8.0fkB time= %0.3f br= %7.1fkbits/s avg_br= %7.1fkbits/s "
,
(
double
)
total_size
/
1024
,
ti1
,
bitrate
,
avg_bitrate
);
fprintf
(
fvstats
,
"type= %s
\n
"
,
enc
->
coded_
pictur
e
->
key_frame
==
1
?
"I"
:
"P"
);
fprintf
(
fvstats
,
"type= %s
\n
"
,
enc
->
coded_
fram
e
->
key_frame
==
1
?
"I"
:
"P"
);
}
}
...
...
@@ -767,14 +767,14 @@ void print_report(AVFormatContext **output_files,
enc
=
&
ost
->
st
->
codec
;
if
(
vid
&&
enc
->
codec_type
==
CODEC_TYPE_VIDEO
)
{
sprintf
(
buf
+
strlen
(
buf
),
"q=%2.1f "
,
enc
->
coded_
pictur
e
->
quality
);
enc
->
coded_
fram
e
->
quality
);
}
if
(
!
vid
&&
enc
->
codec_type
==
CODEC_TYPE_VIDEO
)
{
frame_number
=
ost
->
frame_number
;
sprintf
(
buf
+
strlen
(
buf
),
"frame=%5d q=%2.1f "
,
frame_number
,
enc
->
coded_
picture
?
enc
->
coded_pictur
e
->
quality
:
0
);
frame_number
,
enc
->
coded_
frame
?
enc
->
coded_fram
e
->
quality
:
0
);
if
(
enc
->
flags
&
CODEC_FLAG_PSNR
)
sprintf
(
buf
+
strlen
(
buf
),
"PSNR= %6.2f "
,
psnr
(
enc
->
coded_
pictur
e
->
error
[
0
]
/
(
enc
->
width
*
enc
->
height
*
255
.
0
*
255
.
0
)));
sprintf
(
buf
+
strlen
(
buf
),
"PSNR= %6.2f "
,
psnr
(
enc
->
coded_
fram
e
->
error
[
0
]
/
(
enc
->
width
*
enc
->
height
*
255
.
0
*
255
.
0
)));
vid
=
1
;
}
/* compute min output value */
...
...
@@ -1287,7 +1287,7 @@ static int av_encode(AVFormatContext **output_files,
ist
->
st
->
codec
.
height
);
ret
=
len
;
}
else
{
AV
Video
Frame
big_picture
;
AVFrame
big_picture
;
data_size
=
(
ist
->
st
->
codec
.
width
*
ist
->
st
->
codec
.
height
*
3
)
/
2
;
ret
=
avcodec_decode_video
(
&
ist
->
st
->
codec
,
...
...
ffserver.c
View file @
492cd3a9
...
...
@@ -1955,7 +1955,7 @@ int av_read_frame(AVFormatContext *s, AVPacket *pkt)
/* we use the codec indication because it is
more accurate than the demux flags */
pkt
->
flags
=
0
;
if
(
st
->
codec
.
coded_
pictur
e
->
key_frame
)
if
(
st
->
codec
.
coded_
fram
e
->
key_frame
)
pkt
->
flags
|=
PKT_FLAG_KEY
;
return
0
;
}
...
...
@@ -2211,7 +2211,7 @@ static int http_prepare_data(HTTPContext *c)
codec
=
&
ctx
->
streams
[
pkt
.
stream_index
]
->
codec
;
}
codec
->
key_frame
=
((
pkt
.
flags
&
PKT_FLAG_KEY
)
!=
0
);
codec
->
coded_frame
->
key_frame
=
((
pkt
.
flags
&
PKT_FLAG_KEY
)
!=
0
);
#ifdef PJSG
if
(
codec
->
codec_type
==
CODEC_TYPE_AUDIO
)
{
...
...
libavcodec/ac3enc.c
View file @
492cd3a9
...
...
@@ -826,7 +826,6 @@ static int AC3_encode_init(AVCodecContext *avctx)
};
avctx
->
frame_size
=
AC3_FRAME_SIZE
;
avctx
->
key_frame
=
1
;
/* always key frame */
/* number of channels */
if
(
channels
<
1
||
channels
>
6
)
...
...
@@ -890,6 +889,9 @@ static int AC3_encode_init(AVCodecContext *avctx)
}
ac3_crc_init
();
avctx
->
coded_frame
=
avcodec_alloc_frame
();
avctx
->
coded_frame
->
key_frame
=
1
;
return
0
;
}
...
...
@@ -1447,6 +1449,11 @@ static int AC3_encode_frame(AVCodecContext *avctx,
return
output_frame_end
(
s
);
}
static
int
AC3_encode_close
(
AVCodecContext
*
avctx
)
{
av_freep
(
&
avctx
->
coded_frame
);
}
#if 0
/*************************************************************************/
/* TEST */
...
...
@@ -1546,5 +1553,6 @@ AVCodec ac3_encoder = {
sizeof
(
AC3EncodeContext
),
AC3_encode_init
,
AC3_encode_frame
,
AC3_encode_close
,
NULL
,
};
libavcodec/adpcm.c
View file @
492cd3a9
...
...
@@ -126,12 +126,17 @@ static int adpcm_encode_init(AVCodecContext *avctx)
return
-
1
;
break
;
}
avctx
->
coded_frame
=
avcodec_alloc_frame
();
avctx
->
coded_frame
->
key_frame
=
1
;
return
0
;
}
static
int
adpcm_encode_close
(
AVCodecContext
*
avctx
)
{
/* nothing to free */
av_freep
(
&
avctx
->
coded_frame
);
return
0
;
}
...
...
@@ -253,7 +258,6 @@ static int adpcm_encode_frame(AVCodecContext *avctx,
default:
return
-
1
;
}
avctx
->
key_frame
=
1
;
return
dst
-
frame
;
}
...
...
libavcodec/apiexample.c
View file @
492cd3a9
...
...
@@ -164,7 +164,7 @@ void video_encode_example(const char *filename)
AVCodecContext
*
c
=
NULL
;
int
i
,
out_size
,
size
,
x
,
y
,
outbuf_size
;
FILE
*
f
;
AV
Video
Frame
*
picture
;
AVFrame
*
picture
;
UINT8
*
outbuf
,
*
picture_buf
;
printf
(
"Video encoding
\n
"
);
...
...
@@ -177,7 +177,7 @@ void video_encode_example(const char *filename)
}
c
=
avcodec_alloc_context
();
picture
=
avcodec_alloc_
pictur
e
();
picture
=
avcodec_alloc_
fram
e
();
/* put sample parameters */
c
->
bit_rate
=
400000
;
...
...
@@ -278,7 +278,7 @@ void video_decode_example(const char *outfilename, const char *filename)
AVCodecContext
*
c
=
NULL
;
int
frame
,
size
,
got_picture
,
len
;
FILE
*
f
;
AV
Video
Frame
*
picture
;
AVFrame
*
picture
;
UINT8
inbuf
[
INBUF_SIZE
],
*
inbuf_ptr
;
char
buf
[
1024
];
...
...
@@ -292,7 +292,7 @@ void video_decode_example(const char *outfilename, const char *filename)
}
c
=
avcodec_alloc_context
();
picture
=
avcodec_alloc_
pictur
e
();
picture
=
avcodec_alloc_
fram
e
();
if
(
codec
->
capabilities
&
CODEC_CAP_TRUNCATED
)
c
->
flags
|=
CODEC_FLAG_TRUNCATED
;
/* we dont send complete frames */
...
...
libavcodec/avcodec.h
View file @
492cd3a9
...
...
@@ -5,8 +5,8 @@
#define LIBAVCODEC_VERSION_INT 0x000406
#define LIBAVCODEC_VERSION "0.4.6"
#define LIBAVCODEC_BUILD 464
4
#define LIBAVCODEC_BUILD_STR "464
4
"
#define LIBAVCODEC_BUILD 464
5
#define LIBAVCODEC_BUILD_STR "464
5
"
enum
CodecID
{
CODEC_ID_NONE
,
...
...
@@ -159,7 +159,7 @@ static const int Motion_Est_QTab[] = { ME_ZERO, ME_PHODS, ME_LOG,
#define FRAME_RATE_BASE 10000
#define FF_COMMON_
PICTUR
E \
#define FF_COMMON_
FRAM
E \
uint8_t *data[4];\
int linesize[4];\
/**\
...
...
@@ -279,9 +279,9 @@ static const int Motion_Est_QTab[] = { ME_ZERO, ME_PHODS, ME_LOG,
#define FF_B_TYPE 3 // Bi-dir predicted
#define FF_S_TYPE 4 // S(GMC)-VOP MPEG4
typedef
struct
AV
Video
Frame
{
FF_COMMON_
PICTUR
E
}
AV
Video
Frame
;
typedef
struct
AVFrame
{
FF_COMMON_
FRAM
E
}
AVFrame
;
typedef
struct
AVCodecContext
{
/**
...
...
@@ -395,13 +395,6 @@ typedef struct AVCodecContext {
int
real_pict_num
;
/* returns the real picture number of
previous encoded frame */
/**
* 1 -> keyframe, 0-> not (this if for audio only, for video, AVVideoFrame.key_frame should be used)
* encoding: set by lavc (for the outputed bitstream, not the input frame)
* decoding: set by lavc (for the decoded bitstream, not the displayed frame)
*/
int
key_frame
;
/**
* number of frames the decoded output will be delayed relative to
* the encoded input
...
...
@@ -574,7 +567,7 @@ typedef struct AVCodecContext {
* encoding: unused
* decoding: set by lavc, user can override
*/
int
(
*
get_buffer
)(
struct
AVCodecContext
*
c
,
AV
Video
Frame
*
pic
);
int
(
*
get_buffer
)(
struct
AVCodecContext
*
c
,
AVFrame
*
pic
);
/**
* called to release buffers which where allocated with get_buffer.
...
...
@@ -583,7 +576,7 @@ typedef struct AVCodecContext {
* encoding: unused
* decoding: set by lavc, user can override
*/
void
(
*
release_buffer
)(
struct
AVCodecContext
*
c
,
AV
Video
Frame
*
pic
);
void
(
*
release_buffer
)(
struct
AVCodecContext
*
c
,
AVFrame
*
pic
);
/**
* is 1 if the decoded stream contains b frames, 0 otherwise
...
...
@@ -820,7 +813,7 @@ typedef struct AVCodecContext {
* encoding: set by lavc
* decoding: set by lavc
*/
AV
VideoFrame
*
coded_pictur
e
;
AV
Frame
*
coded_fram
e
;
/**
* debug
...
...
@@ -1001,16 +994,16 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode);
void
avcodec_get_context_defaults
(
AVCodecContext
*
s
);
AVCodecContext
*
avcodec_alloc_context
(
void
);
AV
VideoFrame
*
avcodec_alloc_pictur
e
(
void
);
AV
Frame
*
avcodec_alloc_fram
e
(
void
);
int
avcodec_default_get_buffer
(
AVCodecContext
*
s
,
AV
Video
Frame
*
pic
);
void
avcodec_default_release_buffer
(
AVCodecContext
*
s
,
AV
Video
Frame
*
pic
);
int
avcodec_default_get_buffer
(
AVCodecContext
*
s
,
AVFrame
*
pic
);
void
avcodec_default_release_buffer
(
AVCodecContext
*
s
,
AVFrame
*
pic
);
int
avcodec_open
(
AVCodecContext
*
avctx
,
AVCodec
*
codec
);
int
avcodec_decode_audio
(
AVCodecContext
*
avctx
,
INT16
*
samples
,
int
*
frame_size_ptr
,
UINT8
*
buf
,
int
buf_size
);
int
avcodec_decode_video
(
AVCodecContext
*
avctx
,
AV
Video
Frame
*
picture
,
int
avcodec_decode_video
(
AVCodecContext
*
avctx
,
AVFrame
*
picture
,
int
*
got_picture_ptr
,
UINT8
*
buf
,
int
buf_size
);
int
avcodec_parse_frame
(
AVCodecContext
*
avctx
,
UINT8
**
pdata
,
...
...
@@ -1019,7 +1012,7 @@ int avcodec_parse_frame(AVCodecContext *avctx, UINT8 **pdata,
int
avcodec_encode_audio
(
AVCodecContext
*
avctx
,
UINT8
*
buf
,
int
buf_size
,
const
short
*
samples
);
int
avcodec_encode_video
(
AVCodecContext
*
avctx
,
UINT8
*
buf
,
int
buf_size
,
const
AV
Video
Frame
*
pict
);
const
AVFrame
*
pict
);
int
avcodec_close
(
AVCodecContext
*
avctx
);
...
...
libavcodec/dv.c
View file @
492cd3a9
...
...
@@ -33,7 +33,7 @@ typedef struct DVVideoDecodeContext {
int
sampling_411
;
/* 0 = 420, 1 = 411 */
int
width
,
height
;
UINT8
*
current_picture
[
3
];
/* picture structure */
AV
Video
Frame
picture
;
AVFrame
picture
;
int
linesize
[
3
];
DCTELEM
block
[
5
*
6
][
64
]
__align8
;
UINT8
dv_zigzag
[
2
][
64
];
...
...
@@ -595,8 +595,8 @@ static int dvvideo_decode_frame(AVCodecContext *avctx,
emms_c
();
/* return image */
*
data_size
=
sizeof
(
AV
Video
Frame
);
*
(
AV
Video
Frame
*
)
data
=
s
->
picture
;
*
data_size
=
sizeof
(
AVFrame
);
*
(
AVFrame
*
)
data
=
s
->
picture
;
avctx
->
release_buffer
(
avctx
,
&
s
->
picture
);
...
...
libavcodec/h263dec.c
View file @
492cd3a9
...
...
@@ -349,7 +349,7 @@ static int h263_decode_frame(AVCodecContext *avctx,
{
MpegEncContext
*
s
=
avctx
->
priv_data
;
int
ret
,
i
;
AV
Video
Frame
*
pict
=
data
;
AVFrame
*
pict
=
data
;
float
new_aspect
;
#ifdef PRINT_FRAME_TIME
...
...
@@ -676,9 +676,9 @@ retry:
}
#endif
if
(
s
->
pict_type
==
B_TYPE
||
s
->
low_delay
){
*
pict
=
*
(
AV
Video
Frame
*
)
&
s
->
current_picture
;
*
pict
=
*
(
AVFrame
*
)
&
s
->
current_picture
;
}
else
{
*
pict
=
*
(
AV
Video
Frame
*
)
&
s
->
last_picture
;
*
pict
=
*
(
AVFrame
*
)
&
s
->
last_picture
;
}
/* Return the Picture timestamp as the frame number */
...
...
@@ -687,7 +687,7 @@ retry:
/* dont output the last pic after seeking */
if
(
s
->
last_picture
.
data
[
0
]
||
s
->
low_delay
)
*
data_size
=
sizeof
(
AV
Video
Frame
);
*
data_size
=
sizeof
(
AVFrame
);
#ifdef PRINT_FRAME_TIME
printf
(
"%Ld
\n
"
,
rdtsc
()
-
time
);
#endif
...
...
libavcodec/huffyuv.c
View file @
492cd3a9
...
...
@@ -57,7 +57,7 @@ typedef struct HYuvContext{
uint8_t
len
[
3
][
256
];
uint32_t
bits
[
3
][
256
];
VLC
vlc
[
3
];
AV
Video
Frame
picture
;
AVFrame
picture
;
uint8_t
__align8
bitstream_buffer
[
1024
*
1024
*
3
];
//FIXME dynamic alloc or some other solution
DSPContext
dsp
;
}
HYuvContext
;
...
...
@@ -332,7 +332,7 @@ static int decode_init(AVCodecContext *avctx)
width
=
s
->
width
=
avctx
->
width
;
height
=
s
->
height
=
avctx
->
height
;
avctx
->
coded_
pictur
e
=
&
s
->
picture
;
avctx
->
coded_
fram
e
=
&
s
->
picture
;
s
->
bgr32
=
1
;
assert
(
width
&&
height
);
...
...
@@ -460,7 +460,7 @@ static int encode_init(AVCodecContext *avctx)
avctx
->
stats_out
=
av_mallocz
(
1024
*
10
);
s
->
version
=
2
;
avctx
->
coded_
pictur
e
=
&
s
->
picture
;
avctx
->
coded_
fram
e
=
&
s
->
picture
;
s
->
picture
.
pict_type
=
FF_I_TYPE
;
s
->
picture
.
key_frame
=
1
;
...
...
@@ -670,9 +670,9 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, uint8
const
int
width2
=
s
->
width
>>
1
;
const
int
height
=
s
->
height
;
int
fake_ystride
,
fake_ustride
,
fake_vstride
;
AV
Video
Frame
*
const
p
=
&
s
->
picture
;
AVFrame
*
const
p
=
&
s
->
picture
;
AV
Video
Frame
*
picture
=
data
;
AVFrame
*
picture
=
data
;
*
data_size
=
0
;
...
...
@@ -893,7 +893,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, uint8
avctx
->
release_buffer
(
avctx
,
p
);
*
data_size
=
sizeof
(
AV
Video
Frame
);
*
data_size
=
sizeof
(
AVFrame
);
return
(
get_bits_count
(
&
s
->
gb
)
+
7
)
>>
3
;
}
...
...
@@ -920,14 +920,14 @@ static int decode_end(AVCodecContext *avctx)
static
int
encode_frame
(
AVCodecContext
*
avctx
,
unsigned
char
*
buf
,
int
buf_size
,
void
*
data
){
HYuvContext
*
s
=
avctx
->
priv_data
;
AV
Video
Frame
*
pict
=
data
;
AVFrame
*
pict
=
data
;
const
int
width
=
s
->
width
;
const
int
width2
=
s
->
width
>>
1
;
const
int
height
=
s
->
height
;
const
int
fake_ystride
=
s
->
interlaced
?
pict
->
linesize
[
0
]
*
2
:
pict
->
linesize
[
0
];
const
int
fake_ustride
=
s
->
interlaced
?
pict
->
linesize
[
1
]
*
2
:
pict
->
linesize
[
1
];
const
int
fake_vstride
=
s
->
interlaced
?
pict
->
linesize
[
2
]
*
2
:
pict
->
linesize
[
2
];
AV
Video
Frame
*
const
p
=
&
s
->
picture
;
AVFrame
*
const
p
=
&
s
->
picture
;
int
i
,
size
;
init_put_bits
(
&
s
->
pb
,
buf
,
buf_size
,
NULL
,
NULL
);
...
...
libavcodec/mpeg12.c
View file @
492cd3a9
...
...
@@ -1595,7 +1595,7 @@ static void mpeg_decode_extension(AVCodecContext *avctx,
* DECODE_SLICE_EOP if the end of the picture is reached
*/
static
int
mpeg_decode_slice
(
AVCodecContext
*
avctx
,
AV
Video
Frame
*
pict
,
AVFrame
*
pict
,
int
start_code
,
UINT8
*
buf
,
int
buf_size
)
{
...
...
@@ -1703,7 +1703,7 @@ eos: //end of slice
MPV_frame_end
(
s
);
if
(
s
->
pict_type
==
B_TYPE
||
s
->
low_delay
)
{
*
pict
=
*
(
AV
Video
Frame
*
)
&
s
->
current_picture
;
*
pict
=
*
(
AVFrame
*
)
&
s
->
current_picture
;
}
else
{
s
->
picture_number
++
;
/* latency of 1 frame for I and P frames */
...
...
@@ -1711,7 +1711,7 @@ eos: //end of slice
if
(
s
->
picture_number
==
1
)
{
return
DECODE_SLICE_OK
;
}
else
{
*
pict
=
*
(
AV
Video
Frame
*
)
&
s
->
last_picture
;
*
pict
=
*
(
AVFrame
*
)
&
s
->
last_picture
;
}
}
return
DECODE_SLICE_EOP
;
...
...
@@ -1839,7 +1839,7 @@ static int mpeg_decode_frame(AVCodecContext *avctx,
Mpeg1Context
*
s
=
avctx
->
priv_data
;
UINT8
*
buf_end
,
*
buf_ptr
,
*
buf_start
;
int
len
,
start_code_found
,
ret
,
code
,
start_code
,
input_size
;
AV
Video
Frame
*
picture
=
data
;
AVFrame
*
picture
=
data
;
MpegEncContext
*
s2
=
&
s
->
mpeg_enc_ctx
;
dprintf
(
"fill_buffer
\n
"
);
...
...
@@ -1849,9 +1849,9 @@ static int mpeg_decode_frame(AVCodecContext *avctx,
/* special case for last picture */
if
(
buf_size
==
0
)
{
if
(
s2
->
picture_number
>
0
)
{
*
picture
=
*
(
AV
Video
Frame
*
)
&
s2
->
next_picture
;
*
picture
=
*
(
AVFrame
*
)
&
s2
->
next_picture
;
*
data_size
=
sizeof
(
AV
Video
Frame
);
*
data_size
=
sizeof
(
AVFrame
);
}
return
0
;
}
...
...
libavcodec/mpegaudio.c
View file @
492cd3a9
...
...
@@ -70,7 +70,6 @@ int MPA_encode_init(AVCodecContext *avctx)
s
->
freq
=
freq
;
s
->
bit_rate
=
bitrate
*
1000
;
avctx
->
frame_size
=
MPA_FRAME_SIZE
;
avctx
->
key_frame
=
1
;
/* always key frame */
/* encoding freq */
s
->
lsf
=
0
;
...
...
@@ -169,6 +168,9 @@ int MPA_encode_init(AVCodecContext *avctx)
total_quant_bits
[
i
]
=
12
*
v
;
}
avctx
->
coded_frame
=
avcodec_alloc_frame
();
avctx
->
coded_frame
->
key_frame
=
1
;
return
0
;
}
...
...
@@ -765,6 +767,10 @@ int MPA_encode_frame(AVCodecContext *avctx,
return
pbBufPtr
(
&
s
->
pb
)
-
s
->
pb
.
buf
;
}
static
int
MPA_encode_close
(
AVCodecContext
*
avctx
)
{
av_freep
(
&
avctx
->
coded_frame
);
}
AVCodec
mp2_encoder
=
{
"mp2"
,
...
...
@@ -773,6 +779,7 @@ AVCodec mp2_encoder = {
sizeof
(
MpegAudioContext
),
MPA_encode_init
,
MPA_encode_frame
,
MPA_encode_close
,
NULL
,
};
...
...
libavcodec/mpegvideo.c
View file @
492cd3a9
...
...
@@ -282,7 +282,7 @@ static int alloc_picture(MpegEncContext *s, Picture *pic, int shared){
assert
(
!
pic
->
data
[
0
]);
r
=
s
->
avctx
->
get_buffer
(
s
->
avctx
,
(
AV
Video
Frame
*
)
pic
);
r
=
s
->
avctx
->
get_buffer
(
s
->
avctx
,
(
AVFrame
*
)
pic
);
if
(
r
<
0
||
!
pic
->
age
||
!
pic
->
type
||
!
pic
->
data
[
0
]){
fprintf
(
stderr
,
"get_buffer() failed (%d %d %d %X)
\n
"
,
r
,
pic
->
age
,
pic
->
type
,
(
int
)
pic
->
data
[
0
]);
...
...
@@ -327,7 +327,7 @@ static void free_picture(MpegEncContext *s, Picture *pic){
int
i
;
if
(
pic
->
data
[
0
]
&&
pic
->
type
!=
FF_BUFFER_TYPE_SHARED
){
s
->
avctx
->
release_buffer
(
s
->
avctx
,
(
AV
Video
Frame
*
)
pic
);
s
->
avctx
->
release_buffer
(
s
->
avctx
,
(
AVFrame
*
)
pic
);
}
av_freep
(
&
pic
->
mb_var
);
...
...
@@ -383,7 +383,7 @@ int MPV_common_init(MpegEncContext *s)
CHECKED_ALLOCZ
(
s
->
edge_emu_buffer
,
(
s
->
width
+
64
)
*
2
*
17
*
2
);
//(width + edge + align)*interlaced*MBsize*tolerance
s
->
avctx
->
coded_
picture
=
(
AVVideo
Frame
*
)
&
s
->
current_picture
;
s
->
avctx
->
coded_
frame
=
(
AV
Frame
*
)
&
s
->
current_picture
;
if
(
s
->
encoding
)
{
int
mv_table_size
=
(
s
->
mb_width
+
2
)
*
(
s
->
mb_height
+
2
);
...
...
@@ -843,7 +843,7 @@ static int find_unused_picture(MpegEncContext *s, int shared){
int
MPV_frame_start
(
MpegEncContext
*
s
,
AVCodecContext
*
avctx
)
{
int
i
;
AV
Video
Frame
*
pic
;
AVFrame
*
pic
;
s
->
mb_skiped
=
0
;
...
...
@@ -853,7 +853,7 @@ int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
//printf("%8X %d %d %X %X\n", s->picture[i].data[0], s->picture[i].type, i, s->next_picture.data[0], s->last_picture.data[0]);
if
(
s
->
picture
[
i
].
data
[
0
]
==
s
->
last_picture
.
data
[
0
]){
// s->picture[i].reference=0;
avctx
->
release_buffer
(
avctx
,
(
AV
Video
Frame
*
)
&
s
->
picture
[
i
]);
avctx
->
release_buffer
(
avctx
,
(
AVFrame
*
)
&
s
->
picture
[
i
]);
break
;
}
}
...
...
@@ -865,7 +865,7 @@ int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
for
(
i
=
0
;
i
<
MAX_PICTURE_COUNT
;
i
++
){
if
(
s
->
picture
[
i
].
data
[
0
]
&&
s
->
picture
[
i
].
data
[
0
]
!=
s
->
next_picture
.
data
[
0
]
&&
s
->
picture
[
i
].
reference
){
fprintf
(
stderr
,
"releasing zombie picture
\n
"
);
avctx
->
release_buffer
(
avctx
,
(
AV
Video
Frame
*
)
&
s
->
picture
[
i
]);
avctx
->
release_buffer
(
avctx
,
(
AVFrame
*
)
&
s
->
picture
[
i
]);
}
}
}
...
...
@@ -874,7 +874,7 @@ alloc:
if
(
!
s
->
encoding
){
i
=
find_unused_picture
(
s
,
0
);
pic
=
(
AV
Video
Frame
*
)
&
s
->
picture
[
i
];
pic
=
(
AVFrame
*
)
&
s
->
picture
[
i
];
pic
->
reference
=
s
->
pict_type
!=
B_TYPE
;
pic
->
coded_picture_number
=
s
->
current_picture
.
coded_picture_number
+
1
;
...
...
@@ -946,7 +946,7 @@ void MPV_frame_end(MpegEncContext *s)
/* release non refernce frames */
for
(
i
=
0
;
i
<
MAX_PICTURE_COUNT
;
i
++
){
if
(
s
->
picture
[
i
].
data
[
0
]
&&
!
s
->
picture
[
i
].
reference
/*&& s->picture[i].type!=FF_BUFFER_TYPE_SHARED*/
)
s
->
avctx
->
release_buffer
(
s
->
avctx
,
(
AV
Video
Frame
*
)
&
s
->
picture
[
i
]);
s
->
avctx
->
release_buffer
(
s
->
avctx
,
(
AVFrame
*
)
&
s
->
picture
[
i
]);
}
}
...
...
@@ -984,8 +984,8 @@ static int get_intra_count(MpegEncContext *s, uint8_t *src, uint8_t *ref, int st
}
static
int
load_input_picture
(
MpegEncContext
*
s
,
AV
Video
Frame
*
pic_arg
){
AV
Video
Frame
*
pic
;
static
int
load_input_picture
(
MpegEncContext
*
s
,
AVFrame
*
pic_arg
){
AVFrame
*
pic
;
int
i
;
const
int
encoding_delay
=
s
->
max_b_frames
;
int
direct
=
1
;
...
...
@@ -1000,7 +1000,7 @@ static int load_input_picture(MpegEncContext *s, AVVideoFrame *pic_arg){
if
(
direct
){
i
=
find_unused_picture
(
s
,
1
);
pic
=
(
AV
Video
Frame
*
)
&
s
->
picture
[
i
];
pic
=
(
AVFrame
*
)
&
s
->
picture
[
i
];
pic
->
reference
=
1
;
for
(
i
=
0
;
i
<
4
;
i
++
){
...
...
@@ -1011,7 +1011,7 @@ static int load_input_picture(MpegEncContext *s, AVVideoFrame *pic_arg){
}
else
{
i
=
find_unused_picture
(
s
,
0
);
pic
=
(
AV
Video
Frame
*
)
&
s
->
picture
[
i
];
pic
=
(
AVFrame
*
)
&
s
->
picture
[
i
];
pic
->
reference
=
1
;
alloc_picture
(
s
,
(
Picture
*
)
pic
,
0
);
...
...
@@ -1194,7 +1194,7 @@ int MPV_encode_picture(AVCodecContext *avctx,
unsigned
char
*
buf
,
int
buf_size
,
void
*
data
)
{
MpegEncContext
*
s
=
avctx
->
priv_data
;
AV
Video
Frame
*
pic_arg
=
data
;
AVFrame
*
pic_arg
=
data
;
int
i
;
init_put_bits
(
&
s
->
pb
,
buf
,
buf_size
,
NULL
,
NULL
);
...
...
libavcodec/mpegvideo.h
View file @
492cd3a9
...
...
@@ -110,7 +110,7 @@ typedef struct ScanTable{
}
ScanTable
;
typedef
struct
Picture
{
FF_COMMON_
PICTURE
FF_COMMON_
FRAME
int
mb_var_sum
;
/* sum of MB variance for current frame */
int
mc_mb_var_sum
;
/* motion compensated MB variance for current frame */
...
...
libavcodec/oggvorbis.c
View file @
492cd3a9
...
...
@@ -24,9 +24,9 @@ typedef struct OggVorbisContext {
int
oggvorbis_init_encoder
(
vorbis_info
*
vi
,
AVCodecContext
*
avccontext
)
{
if
(
avccontext
->
quality
)
/* VBR requested */
if
(
avccontext
->
coded_frame
->
quality
)
/* VBR requested */
return
vorbis_encode_init_vbr
(
vi
,
avccontext
->
channels
,
avccontext
->
sample_rate
,
(
float
)
avccontext
->
quality
/
1000
)
;
avccontext
->
sample_rate
,
(
float
)
avccontext
->
coded_frame
->
quality
/
1000
)
;
return
vorbis_encode_init
(
vi
,
avccontext
->
channels
,
avccontext
->
sample_rate
,
-
1
,
avccontext
->
bit_rate
,
-
1
)
;
...
...
@@ -45,6 +45,9 @@ static int oggvorbis_encode_init(AVCodecContext *avccontext) {
vorbis_block_init
(
&
context
->
vd
,
&
context
->
vb
)
;
avccontext
->
frame_size
=
OGGVORBIS_FRAME_SIZE
;
avccontext
->
coded_frame
=
avcodec_alloc_frame
();
avccontext
->
coded_frame
->
key_frame
=
1
;
return
0
;
}
...
...
@@ -113,6 +116,8 @@ static int oggvorbis_encode_close(AVCodecContext *avccontext) {
vorbis_block_clear
(
&
context
->
vb
);
vorbis_dsp_clear
(
&
context
->
vd
);
vorbis_info_clear
(
&
context
->
vi
);
av_freep
(
&
avccontext
->
coded_frame
);
return
0
;
}
...
...
libavcodec/pcm.c
View file @
492cd3a9
...
...
@@ -128,11 +128,17 @@ static int pcm_encode_init(AVCodecContext *avctx)
default:
break
;
}
avctx
->
coded_frame
=
avcodec_alloc_frame
();
avctx
->
coded_frame
->
key_frame
=
1
;
return
0
;
}
static
int
pcm_encode_close
(
AVCodecContext
*
avctx
)
{
av_freep
(
&
avctx
->
coded_frame
);
switch
(
avctx
->
codec
->
id
)
{
case
CODEC_ID_PCM_ALAW
:
if
(
--
linear_to_alaw_ref
==
0
)
...
...
@@ -237,7 +243,6 @@ static int pcm_encode_frame(AVCodecContext *avctx,
default:
return
-
1
;
}
avctx
->
key_frame
=
1
;
//avctx->frame_size = (dst - frame) / (sample_size * avctx->channels);
return
dst
-
frame
;
...
...
libavcodec/rv10.c
View file @
492cd3a9
...
...
@@ -472,7 +472,7 @@ static int rv10_decode_frame(AVCodecContext *avctx,
{
MpegEncContext
*
s
=
avctx
->
priv_data
;
int
i
;
AV
Video
Frame
*
pict
=
data
;
AVFrame
*
pict
=
data
;
#ifdef DEBUG
printf
(
"*****frame %d size=%d
\n
"
,
avctx
->
frame_number
,
buf_size
);
...
...
@@ -505,9 +505,9 @@ static int rv10_decode_frame(AVCodecContext *avctx,
if
(
s
->
mb_y
>=
s
->
mb_height
){
MPV_frame_end
(
s
);
*
pict
=
*
(
AV
Video
Frame
*
)
&
s
->
current_picture
;
*
pict
=
*
(
AVFrame
*
)
&
s
->
current_picture
;
*
data_size
=
sizeof
(
AV
Video
Frame
);
*
data_size
=
sizeof
(
AVFrame
);
}
else
{
*
data_size
=
0
;
}
...
...
libavcodec/svq1.c
View file @
492cd3a9
...
...
@@ -1063,7 +1063,7 @@ static int svq1_decode_frame(AVCodecContext *avctx,
MpegEncContext
*
s
=
avctx
->
priv_data
;
uint8_t
*
current
,
*
previous
;
int
result
,
i
,
x
,
y
,
width
,
height
;
AV
Video
Frame
*
pict
=
data
;
AVFrame
*
pict
=
data
;
/* initialize bit buffer */
init_get_bits
(
&
s
->
gb
,
buf
,
buf_size
);
...
...
@@ -1161,12 +1161,12 @@ static int svq1_decode_frame(AVCodecContext *avctx,
}
}
*
pict
=
*
(
AV
Video
Frame
*
)
&
s
->
current_picture
;
*
pict
=
*
(
AVFrame
*
)
&
s
->
current_picture
;
MPV_frame_end
(
s
);
*
data_size
=
sizeof
(
AV
Video
Frame
);
*
data_size
=
sizeof
(
AVFrame
);
return
buf_size
;
}
...
...
libavcodec/utils.c
View file @
492cd3a9
...
...
@@ -120,7 +120,7 @@ typedef struct DefaultPicOpaque{
uint8_t
*
data
[
4
];
}
DefaultPicOpaque
;
int
avcodec_default_get_buffer
(
AVCodecContext
*
s
,
AV
Video
Frame
*
pic
){
int
avcodec_default_get_buffer
(
AVCodecContext
*
s
,
AVFrame
*
pic
){
int
i
;
const
int
width
=
s
->
width
;
const
int
height
=
s
->
height
;
...
...
@@ -202,7 +202,7 @@ int avcodec_default_get_buffer(AVCodecContext *s, AVVideoFrame *pic){
return
0
;
}
void
avcodec_default_release_buffer
(
AVCodecContext
*
s
,
AV
Video
Frame
*
pic
){
void
avcodec_default_release_buffer
(
AVCodecContext
*
s
,
AVFrame
*
pic
){
int
i
;
assert
(
pic
->
type
==
FF_BUFFER_TYPE_INTERNAL
);
...
...
@@ -249,11 +249,11 @@ AVCodecContext *avcodec_alloc_context(void){
}
/**
* allocates a AVP
ictur
e and set it to defaults.
* allocates a AVP
Fram
e and set it to defaults.
* this can be deallocated by simply calling free()
*/
AV
VideoFrame
*
avcodec_alloc_pictur
e
(
void
){
AV
VideoFrame
*
pic
=
av_mallocz
(
sizeof
(
AVVideo
Frame
));
AV
Frame
*
avcodec_alloc_fram
e
(
void
){
AV
Frame
*
pic
=
av_mallocz
(
sizeof
(
AV
Frame
));
return
pic
;
}
...
...
@@ -290,7 +290,7 @@ int avcodec_encode_audio(AVCodecContext *avctx, UINT8 *buf, int buf_size,
}
int
avcodec_encode_video
(
AVCodecContext
*
avctx
,
UINT8
*
buf
,
int
buf_size
,
const
AV
Video
Frame
*
pict
)
const
AVFrame
*
pict
)
{
int
ret
;
...
...
@@ -305,7 +305,7 @@ int avcodec_encode_video(AVCodecContext *avctx, UINT8 *buf, int buf_size,
/* decode a frame. return -1 if error, otherwise return the number of
bytes used. If no frame could be decompressed, *got_picture_ptr is
zero. Otherwise, it is non zero */
int
avcodec_decode_video
(
AVCodecContext
*
avctx
,
AV
Video
Frame
*
picture
,
int
avcodec_decode_video
(
AVCodecContext
*
avctx
,
AVFrame
*
picture
,
int
*
got_picture_ptr
,
UINT8
*
buf
,
int
buf_size
)
{
...
...
@@ -672,7 +672,7 @@ void avcodec_flush_buffers(AVCodecContext *avctx)
for
(
i
=
0
;
i
<
MAX_PICTURE_COUNT
;
i
++
){
if
(
s
->
picture
[
i
].
data
[
0
]
&&
(
s
->
picture
[
i
].
type
==
FF_BUFFER_TYPE_INTERNAL
||
s
->
picture
[
i
].
type
==
FF_BUFFER_TYPE_USER
))
avctx
->
release_buffer
(
avctx
,
(
AV
Video
Frame
*
)
&
s
->
picture
[
i
]);
avctx
->
release_buffer
(
avctx
,
(
AVFrame
*
)
&
s
->
picture
[
i
]);
}
break
;
default:
...
...
libavformat/asf.c
View file @
492cd3a9
...
...
@@ -556,7 +556,7 @@ static void put_frame_header(AVFormatContext *s, ASFStream *stream, int timestam
int
val
;
val
=
stream
->
num
;
if
(
s
->
streams
[
val
-
1
]
->
codec
.
coded_
pictur
e
->
key_frame
/* && frag_offset == 0 */
)
if
(
s
->
streams
[
val
-
1
]
->
codec
.
coded_
fram
e
->
key_frame
/* && frag_offset == 0 */
)
val
|=
0x80
;
put_byte
(
pb
,
val
);
put_byte
(
pb
,
stream
->
seq
);
...
...
libavformat/avienc.c
View file @
492cd3a9
...
...
@@ -320,7 +320,7 @@ static int avi_write_packet(AVFormatContext *s, int stream_index,
if
(
enc
->
codec_type
==
CODEC_TYPE_VIDEO
)
{
tag
[
2
]
=
'd'
;
tag
[
3
]
=
'c'
;
flags
=
enc
->
coded_
pictur
e
->
key_frame
?
0x10
:
0x00
;
flags
=
enc
->
coded_
fram
e
->
key_frame
?
0x10
:
0x00
;
}
else
{
tag
[
2
]
=
'w'
;
tag
[
3
]
=
'b'
;
...
...
libavformat/ffm.c
View file @
492cd3a9
...
...
@@ -232,7 +232,7 @@ static int ffm_write_packet(AVFormatContext *s, int stream_index,
/* packet size & key_frame */
header
[
0
]
=
stream_index
;
header
[
1
]
=
0
;
if
(
st
->
codec
.
coded_
picture
&&
st
->
codec
.
coded_picture
->
key_frame
)
if
(
st
->
codec
.
coded_
frame
->
key_frame
)
//if st->codec.coded_frame==NULL then there is a bug somewhere else
header
[
1
]
|=
FLAG_KEY_FRAME
;
header
[
2
]
=
(
size
>>
16
)
&
0xff
;
header
[
3
]
=
(
size
>>
8
)
&
0xff
;
...
...
libavformat/rm.c
View file @
492cd3a9
...
...
@@ -333,7 +333,7 @@ static int rm_write_audio(AVFormatContext *s, UINT8 *buf, int size)
/* XXX: suppress this malloc */
buf1
=
(
UINT8
*
)
av_malloc
(
size
*
sizeof
(
UINT8
)
);
write_packet_header
(
s
,
stream
,
size
,
stream
->
enc
->
key_frame
);
write_packet_header
(
s
,
stream
,
size
,
stream
->
enc
->
coded_frame
->
key_frame
);
/* for AC3, the words seems to be reversed */
for
(
i
=
0
;
i
<
size
;
i
+=
2
)
{
...
...
@@ -352,7 +352,7 @@ static int rm_write_video(AVFormatContext *s, UINT8 *buf, int size)
RMContext
*
rm
=
s
->
priv_data
;
ByteIOContext
*
pb
=
&
s
->
pb
;
StreamInfo
*
stream
=
rm
->
video_stream
;
int
key_frame
=
stream
->
enc
->
coded_
pictur
e
->
key_frame
;
int
key_frame
=
stream
->
enc
->
coded_
fram
e
->
key_frame
;
/* XXX: this is incorrect: should be a parameter */
...
...
libavformat/utils.c
View file @
492cd3a9
...
...
@@ -458,7 +458,7 @@ int av_find_stream_info(AVFormatContext *ic)
AVCodec
*
codec
;
AVStream
*
st
;
AVPacket
*
pkt
;
AV
Video
Frame
picture
;
AVFrame
picture
;
AVPacketList
*
pktl
=
NULL
,
**
ppktl
;
short
samples
[
AVCODEC_MAX_AUDIO_FRAME_SIZE
/
2
];
UINT8
*
ptr
;
...
...
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