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
2692067a
Commit
2692067a
authored
May 26, 2005
by
Michael Niedermayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
AVPacket.pos
Originally committed as revision 4314 to
svn://svn.ffmpeg.org/ffmpeg/trunk
parent
4aa606ec
Show whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
88 additions
and
132 deletions
+88
-132
4xm.c
libavformat/4xm.c
+4
-6
amr.c
libavformat/amr.c
+2
-1
asf.c
libavformat/asf.c
+1
-0
au.c
libavformat/au.c
+2
-4
avformat.h
libavformat/avformat.h
+7
-6
avidec.c
libavformat/avidec.c
+1
-2
electronicarts.c
libavformat/electronicarts.c
+2
-6
ffm.c
libavformat/ffm.c
+1
-0
flic.c
libavformat/flic.c
+1
-0
flvdec.c
libavformat/flvdec.c
+1
-5
idcin.c
libavformat/idcin.c
+5
-9
idroq.c
libavformat/idroq.c
+3
-4
ipmovie.c
libavformat/ipmovie.c
+3
-7
matroska.c
libavformat/matroska.c
+2
-0
mov.c
libavformat/mov.c
+1
-16
mp3.c
libavformat/mp3.c
+1
-4
mpegts.c
libavformat/mpegts.c
+1
-0
nsvdec.c
libavformat/nsvdec.c
+2
-5
nut.c
libavformat/nut.c
+1
-2
psxstr.c
libavformat/psxstr.c
+1
-0
raw.c
libavformat/raw.c
+5
-15
rm.c
libavformat/rm.c
+2
-5
segafilm.c
libavformat/segafilm.c
+3
-3
sierravmd.c
libavformat/sierravmd.c
+1
-0
sol.c
libavformat/sol.c
+1
-5
swf.c
libavformat/swf.c
+2
-4
utils.c
libavformat/utils.c
+25
-0
wc3movie.c
libavformat/wc3movie.c
+2
-6
westwood.c
libavformat/westwood.c
+3
-9
yuv4mpeg.c
libavformat/yuv4mpeg.c
+2
-8
No files found.
libavformat/4xm.c
View file @
2692067a
...
...
@@ -277,6 +277,7 @@ static int fourxm_read_packet(AVFormatContext *s,
return
AVERROR_IO
;
pkt
->
stream_index
=
fourxm
->
video_stream_index
;
pkt
->
pts
=
fourxm
->
video_pts
;
pkt
->
pos
=
url_ftell
(
&
s
->
pb
);
memcpy
(
pkt
->
data
,
header
,
8
);
ret
=
get_buffer
(
&
s
->
pb
,
&
pkt
->
data
[
8
],
size
);
...
...
@@ -293,15 +294,12 @@ static int fourxm_read_packet(AVFormatContext *s,
size
-=
8
;
if
(
track_number
==
fourxm
->
selected_track
)
{
if
(
av_new_packet
(
pkt
,
size
))
ret
=
av_get_packet
(
&
s
->
pb
,
pkt
,
size
);
if
(
ret
<
0
)
return
AVERROR_IO
;
pkt
->
stream_index
=
fourxm
->
tracks
[
fourxm
->
selected_track
].
stream_index
;
pkt
->
pts
=
fourxm
->
audio_pts
;
ret
=
get_buffer
(
&
s
->
pb
,
pkt
->
data
,
size
);
if
(
ret
<
0
)
av_free_packet
(
pkt
);
else
packet_read
=
1
;
/* pts accounting */
...
...
libavformat/amr.c
View file @
2692067a
...
...
@@ -154,7 +154,7 @@ static int amr_read_packet(AVFormatContext *s,
return
AVERROR_IO
;
}
pkt
->
stream_index
=
0
;
pkt
->
pos
=
url_ftell
(
&
s
->
pb
);
pkt
->
data
[
0
]
=
toc
;
read
=
get_buffer
(
&
s
->
pb
,
pkt
->
data
+
1
,
size
);
...
...
@@ -189,6 +189,7 @@ static int amr_read_packet(AVFormatContext *s,
}
pkt
->
stream_index
=
0
;
pkt
->
pos
=
url_ftell
(
&
s
->
pb
);
pkt
->
data
[
0
]
=
toc
;
read
=
get_buffer
(
&
s
->
pb
,
pkt
->
data
+
1
,
size
-
1
);
...
...
libavformat/asf.c
View file @
2692067a
...
...
@@ -604,6 +604,7 @@ static int asf_read_packet(AVFormatContext *s, AVPacket *pkt)
asf_st
->
seq
=
asf
->
packet_seq
;
asf_st
->
pkt
.
pts
=
asf
->
packet_frag_timestamp
;
asf_st
->
pkt
.
stream_index
=
asf
->
stream_index
;
asf_st
->
pkt
.
pos
=
asf_st
->
packet_pos
=
asf
->
packet_pos
;
//printf("new packet: stream:%d key:%d packet_key:%d audio:%d size:%d\n",
//asf->stream_index, asf->packet_key_frame, asf_st->pkt.flags & PKT_FLAG_KEY,
...
...
libavformat/au.c
View file @
2692067a
...
...
@@ -161,13 +161,11 @@ static int au_read_packet(AVFormatContext *s,
if
(
url_feof
(
&
s
->
pb
))
return
AVERROR_IO
;
if
(
av_new_packet
(
pkt
,
MAX_SIZE
))
ret
=
av_get_packet
(
&
s
->
pb
,
pkt
,
MAX_SIZE
);
if
(
ret
<
0
)
return
AVERROR_IO
;
pkt
->
stream_index
=
0
;
ret
=
get_buffer
(
&
s
->
pb
,
pkt
->
data
,
pkt
->
size
);
if
(
ret
<
0
)
av_free_packet
(
pkt
);
/* note: we need to modify the packet size here to handle the last
packet */
pkt
->
size
=
ret
;
...
...
libavformat/avformat.h
View file @
2692067a
...
...
@@ -5,7 +5,7 @@
extern
"C"
{
#endif
#define LIBAVFORMAT_BUILD 462
4
#define LIBAVFORMAT_BUILD 462
5
#define LIBAVFORMAT_VERSION_INT FFMPEG_VERSION_INT
#define LIBAVFORMAT_VERSION FFMPEG_VERSION
...
...
@@ -28,17 +28,16 @@ extern "C" {
#endif
typedef
struct
AVPacket
{
int64_t
pts
;
/* presentation time stamp in AV_TIME_BASE units (or
pts_den units in muxers or demuxers) */
int64_t
dts
;
/* decompression time stamp in AV_TIME_BASE units (or
pts_den units in muxers or demuxers) */
int64_t
pts
;
///< presentation time stamp in time_base units
int64_t
dts
;
///< decompression time stamp in time_base units
uint8_t
*
data
;
int
size
;
int
stream_index
;
int
flags
;
int
duration
;
/* presentation duration (0 if not available) */
int
duration
;
///< presentation duration in time_base units (0 if not available)
void
(
*
destruct
)(
struct
AVPacket
*
);
void
*
priv
;
int64_t
pos
;
///< byte position in stream, -1 if unknown
}
AVPacket
;
#define PKT_FLAG_KEY 0x0001
...
...
@@ -49,6 +48,7 @@ static inline void av_init_packet(AVPacket *pkt)
{
pkt
->
pts
=
AV_NOPTS_VALUE
;
pkt
->
dts
=
AV_NOPTS_VALUE
;
pkt
->
pos
=
-
1
;
pkt
->
duration
=
0
;
pkt
->
flags
=
0
;
pkt
->
stream_index
=
0
;
...
...
@@ -56,6 +56,7 @@ static inline void av_init_packet(AVPacket *pkt)
}
int
av_new_packet
(
AVPacket
*
pkt
,
int
size
);
int
av_get_packet
(
ByteIOContext
*
s
,
AVPacket
*
pkt
,
int
size
);
int
av_dup_packet
(
AVPacket
*
pkt
);
/**
...
...
libavformat/avidec.c
View file @
2692067a
...
...
@@ -423,8 +423,7 @@ resync:
if
(
size
>
ast
->
remaining
)
size
=
ast
->
remaining
;
av_new_packet
(
pkt
,
size
);
get_buffer
(
pb
,
pkt
->
data
,
size
);
av_get_packet
(
pb
,
pkt
,
size
);
if
(
avi
->
dv_demux
)
{
dstr
=
pkt
->
destruct
;
...
...
libavformat/electronicarts.c
View file @
2692067a
...
...
@@ -234,10 +234,7 @@ static int ea_read_packet(AVFormatContext *s,
switch
(
chunk_type
)
{
/* audio data */
case
SCDl_TAG
:
if
(
av_new_packet
(
pkt
,
chunk_size
))
ret
=
AVERROR_IO
;
else
{
ret
=
get_buffer
(
pb
,
pkt
->
data
,
chunk_size
);
ret
=
av_get_packet
(
pb
,
pkt
,
chunk_size
);
if
(
ret
!=
chunk_size
)
ret
=
AVERROR_IO
;
else
{
...
...
@@ -251,7 +248,6 @@ static int ea_read_packet(AVFormatContext *s,
ea
->
audio_frame_counter
+=
((
chunk_size
-
12
)
*
2
)
/
ea
->
num_channels
;
}
}
packet_read
=
1
;
break
;
...
...
libavformat/ffm.c
View file @
2692067a
...
...
@@ -603,6 +603,7 @@ static int ffm_read_packet(AVFormatContext *s, AVPacket *pkt)
av_new_packet
(
pkt
,
size
);
pkt
->
stream_index
=
ffm
->
header
[
0
];
pkt
->
pos
=
url_ftell
(
&
s
->
pb
);
if
(
ffm
->
header
[
1
]
&
FLAG_KEY_FRAME
)
pkt
->
flags
|=
PKT_FLAG_KEY
;
...
...
libavformat/flic.c
View file @
2692067a
...
...
@@ -178,6 +178,7 @@ static int flic_read_packet(AVFormatContext *s,
}
pkt
->
stream_index
=
flic
->
video_stream_index
;
pkt
->
pts
=
flic
->
pts
;
pkt
->
pos
=
url_ftell
(
pb
);
memcpy
(
pkt
->
data
,
preamble
,
FLIC_PREAMBLE_SIZE
);
ret
=
get_buffer
(
pb
,
pkt
->
data
+
FLIC_PREAMBLE_SIZE
,
size
-
FLIC_PREAMBLE_SIZE
);
...
...
libavformat/flvdec.c
View file @
2692067a
...
...
@@ -147,12 +147,8 @@ static int flv_read_packet(AVFormatContext *s, AVPacket *pkt)
}
}
if
(
av_new_packet
(
pkt
,
size
)
<
0
)
return
AVERROR_IO
;
ret
=
get_buffer
(
&
s
->
pb
,
pkt
->
data
,
size
);
ret
=
av_get_packet
(
&
s
->
pb
,
pkt
,
size
);
if
(
ret
<=
0
)
{
av_free_packet
(
pkt
);
return
AVERROR_IO
;
}
/* note: we need to modify the packet size here to handle the last
...
...
libavformat/idcin.c
View file @
2692067a
...
...
@@ -255,26 +255,22 @@ static int idcin_read_packet(AVFormatContext *s,
/* skip the number of decoded bytes (always equal to width * height) */
url_fseek
(
pb
,
4
,
SEEK_CUR
);
chunk_size
-=
4
;
if
(
av_new_packet
(
pkt
,
chunk_size
))
ret
=
AVERROR_IO
;
ret
=
av_get_packet
(
pb
,
pkt
,
chunk_size
);
if
(
ret
!=
chunk_size
)
return
AVERROR_IO
;
pkt
->
stream_index
=
idcin
->
video_stream_index
;
pkt
->
pts
=
idcin
->
pts
;
ret
=
get_buffer
(
pb
,
pkt
->
data
,
chunk_size
);
if
(
ret
!=
chunk_size
)
ret
=
AVERROR_IO
;
}
else
{
/* send out the audio chunk */
if
(
idcin
->
current_audio_chunk
)
chunk_size
=
idcin
->
audio_chunk_size2
;
else
chunk_size
=
idcin
->
audio_chunk_size1
;
if
(
av_new_packet
(
pkt
,
chunk_size
))
ret
=
av_get_packet
(
pb
,
pkt
,
chunk_size
);
if
(
ret
!=
chunk_size
)
return
AVERROR_IO
;
pkt
->
stream_index
=
idcin
->
audio_stream_index
;
pkt
->
pts
=
idcin
->
pts
;
ret
=
get_buffer
(
&
s
->
pb
,
pkt
->
data
,
chunk_size
);
if
(
ret
!=
chunk_size
)
ret
=
AVERROR_IO
;
idcin
->
current_audio_chunk
^=
1
;
idcin
->
pts
+=
FRAME_PTS_INC
;
...
...
libavformat/idroq.c
View file @
2692067a
...
...
@@ -221,13 +221,11 @@ static int roq_read_packet(AVFormatContext *s,
url_fseek
(
pb
,
codebook_offset
,
SEEK_SET
);
/* load up the packet */
if
(
av_new_packet
(
pkt
,
chunk_size
))
ret
=
av_get_packet
(
pb
,
pkt
,
chunk_size
);
if
(
ret
!=
chunk_size
)
return
AVERROR_IO
;
pkt
->
stream_index
=
roq
->
video_stream_index
;
pkt
->
pts
=
roq
->
video_pts
;
ret
=
get_buffer
(
pb
,
pkt
->
data
,
chunk_size
);
if
(
ret
!=
chunk_size
)
ret
=
AVERROR_IO
;
roq
->
video_pts
+=
roq
->
frame_pts_inc
;
packet_read
=
1
;
...
...
@@ -254,6 +252,7 @@ static int roq_read_packet(AVFormatContext *s,
roq
->
audio_frame_count
+=
(
chunk_size
/
roq
->
audio_channels
);
}
pkt
->
pos
=
url_ftell
(
pb
);
ret
=
get_buffer
(
pb
,
pkt
->
data
+
RoQ_CHUNK_PREAMBLE_SIZE
,
chunk_size
);
if
(
ret
!=
chunk_size
)
...
...
libavformat/ipmovie.c
View file @
2692067a
...
...
@@ -140,16 +140,11 @@ static int load_ipmovie_packet(IPMVEContext *s, ByteIOContext *pb,
audio_pts
*=
s
->
audio_frame_count
;
audio_pts
/=
s
->
audio_sample_rate
;
if
(
av_new_packet
(
pkt
,
s
->
audio_chunk_size
))
return
CHUNK_
NOMEM
;
if
(
s
->
audio_chunk_size
!=
av_get_packet
(
pb
,
pkt
,
s
->
audio_chunk_size
))
return
CHUNK_
EOF
;
pkt
->
stream_index
=
s
->
audio_stream_index
;
pkt
->
pts
=
audio_pts
;
if
(
get_buffer
(
pb
,
pkt
->
data
,
s
->
audio_chunk_size
)
!=
s
->
audio_chunk_size
)
{
av_free_packet
(
pkt
);
return
CHUNK_EOF
;
}
/* audio frame maintenance */
if
(
s
->
audio_type
!=
CODEC_ID_INTERPLAY_DPCM
)
...
...
@@ -171,6 +166,7 @@ static int load_ipmovie_packet(IPMVEContext *s, ByteIOContext *pb,
if
(
av_new_packet
(
pkt
,
s
->
decode_map_chunk_size
+
s
->
video_chunk_size
))
return
CHUNK_NOMEM
;
pkt
->
pos
=
s
->
decode_map_chunk_offset
;
url_fseek
(
pb
,
s
->
decode_map_chunk_offset
,
SEEK_SET
);
s
->
decode_map_chunk_offset
=
0
;
...
...
libavformat/matroska.c
View file @
2692067a
...
...
@@ -2366,6 +2366,7 @@ matroska_parse_blockgroup (MatroskaDemuxContext *matroska,
uint32_t
*
lace_size
=
NULL
;
int
n
,
track
,
flags
,
laces
=
0
;
uint64_t
num
;
int64_t
pos
=
url_ftell
(
&
matroska
->
ctx
->
pb
);
if
((
res
=
ebml_read_binary
(
matroska
,
&
id
,
&
data
,
&
size
))
<
0
)
break
;
...
...
@@ -2507,6 +2508,7 @@ matroska_parse_blockgroup (MatroskaDemuxContext *matroska,
matroska
->
tracks
[
track
]
->
stream_index
;
pkt
->
pts
=
timecode
/
1000000
;
/* ns to ms */
pkt
->
pos
=
pos
;
matroska_queue_packet
(
matroska
,
pkt
);
}
...
...
libavformat/mov.c
View file @
2692067a
...
...
@@ -253,9 +253,6 @@ typedef struct MOVStreamContext {
int
time_scale
;
long
current_sample
;
long
left_in_chunk
;
/* how many samples before next chunk */
/* specific MPEG4 header which is added at the beginning of the stream */
unsigned
int
header_len
;
uint8_t
*
header_data
;
MOV_esds_t
esds
;
}
MOVStreamContext
;
...
...
@@ -1672,7 +1669,6 @@ static void mov_free_stream_context(MOVStreamContext *sc)
av_freep
(
&
sc
->
sample_to_chunk
);
av_freep
(
&
sc
->
sample_sizes
);
av_freep
(
&
sc
->
keyframes
);
av_freep
(
&
sc
->
header_data
);
av_freep
(
&
sc
->
stts_data
);
av_freep
(
&
sc
->
ctts_data
);
av_freep
(
&
sc
);
...
...
@@ -1974,18 +1970,7 @@ readchunk:
return
-
1
;
url_fseek
(
&
s
->
pb
,
offset
,
SEEK_SET
);
//av_log(NULL, AV_LOG_DEBUG, "READCHUNK hlen: %d %d off: %Ld pos:%Ld\n", size, sc->header_len, offset, url_ftell(&s->pb));
if
(
sc
->
header_len
>
0
)
{
av_new_packet
(
pkt
,
size
+
sc
->
header_len
);
memcpy
(
pkt
->
data
,
sc
->
header_data
,
sc
->
header_len
);
get_buffer
(
&
s
->
pb
,
pkt
->
data
+
sc
->
header_len
,
size
);
/* free header */
av_freep
(
&
sc
->
header_data
);
sc
->
header_len
=
0
;
}
else
{
av_new_packet
(
pkt
,
size
);
get_buffer
(
&
s
->
pb
,
pkt
->
data
,
pkt
->
size
);
}
av_get_packet
(
&
s
->
pb
,
pkt
,
size
);
pkt
->
stream_index
=
sc
->
ffindex
;
// If the keyframes table exists, mark any samples that are in the table as key frames.
...
...
libavformat/mp3.c
View file @
2692067a
...
...
@@ -297,13 +297,10 @@ static int mp3_read_packet(AVFormatContext *s, AVPacket *pkt)
size
=
MP3_PACKET_SIZE
;
if
(
av_new_packet
(
pkt
,
size
)
<
0
)
return
AVERROR_IO
;
ret
=
av_get_packet
(
&
s
->
pb
,
pkt
,
size
);
pkt
->
stream_index
=
0
;
ret
=
get_buffer
(
&
s
->
pb
,
pkt
->
data
,
size
);
if
(
ret
<=
0
)
{
av_free_packet
(
pkt
);
return
AVERROR_IO
;
}
/* note: we need to modify the packet size here to handle the last
...
...
libavformat/mpegts.c
View file @
2692067a
...
...
@@ -1234,6 +1234,7 @@ static int mpegts_raw_read_packet(AVFormatContext *s,
if
(
av_new_packet
(
pkt
,
TS_PACKET_SIZE
)
<
0
)
return
-
ENOMEM
;
pkt
->
pos
=
url_ftell
(
&
s
->
pb
);
ret
=
read_packet
(
&
s
->
pb
,
pkt
->
data
,
ts
->
raw_packet_size
);
if
(
ret
<
0
)
{
av_free_packet
(
pkt
);
...
...
libavformat/nsvdec.c
View file @
2692067a
...
...
@@ -592,8 +592,7 @@ null_chunk_retry:
if
(
vsize
/* && st[NSV_ST_VIDEO]*/
)
{
nst
=
st
[
NSV_ST_VIDEO
]
->
priv_data
;
pkt
=
&
nsv
->
ahead
[
NSV_ST_VIDEO
];
av_new_packet
(
pkt
,
vsize
);
get_buffer
(
pb
,
pkt
->
data
,
vsize
);
av_get_packet
(
pb
,
pkt
,
vsize
);
pkt
->
stream_index
=
st
[
NSV_ST_VIDEO
]
->
index
;
//NSV_ST_VIDEO;
pkt
->
dts
=
nst
->
frame_offset
++
;
pkt
->
flags
|=
PKT_FLAG_KEY
;
/* stupid format has no way to tell XXX: try the index */
...
...
@@ -633,9 +632,7 @@ null_chunk_retry:
PRINT
((
"NSV RAWAUDIO: bps %d, nchan %d, srate %ld
\n
"
,
bps
,
channels
,
samplerate
));
}
}
av_new_packet
(
pkt
,
asize
);
if
(
asize
)
get_buffer
(
pb
,
pkt
->
data
,
asize
);
av_get_packet
(
pb
,
pkt
,
asize
);
pkt
->
stream_index
=
st
[
NSV_ST_AUDIO
]
->
index
;
//NSV_ST_AUDIO;
//pkt->dts = nst->frame_offset;
//if (nst->sample_size)
...
...
libavformat/nut.c
View file @
2692067a
...
...
@@ -1236,8 +1236,7 @@ static int decode_frame(NUTContext *nut, AVPacket *pkt, int frame_code, int fram
return
1
;
}
av_new_packet
(
pkt
,
size
);
get_buffer
(
bc
,
pkt
->
data
,
size
);
av_get_packet
(
bc
,
pkt
,
size
);
pkt
->
stream_index
=
stream_id
;
if
(
key_frame
)
pkt
->
flags
|=
PKT_FLAG_KEY
;
...
...
libavformat/psxstr.c
View file @
2692067a
...
...
@@ -283,6 +283,7 @@ static int str_read_packet(AVFormatContext *s,
if
(
av_new_packet
(
pkt
,
frame_size
))
return
AVERROR_IO
;
pkt
->
pos
=
url_ftell
(
pb
)
-
RAW_CD_SECTOR_SIZE
;
pkt
->
stream_index
=
str
->
channels
[
channel
].
video_stream_index
;
// pkt->pts = str->pts;
...
...
libavformat/raw.c
View file @
2692067a
...
...
@@ -88,13 +88,10 @@ static int raw_read_packet(AVFormatContext *s, AVPacket *pkt)
size
=
RAW_PACKET_SIZE
;
if
(
av_new_packet
(
pkt
,
size
)
<
0
)
return
AVERROR_IO
;
ret
=
av_get_packet
(
&
s
->
pb
,
pkt
,
size
);
pkt
->
stream_index
=
0
;
ret
=
get_buffer
(
&
s
->
pb
,
pkt
->
data
,
size
);
if
(
ret
<=
0
)
{
av_free_packet
(
pkt
);
return
AVERROR_IO
;
}
/* note: we need to modify the packet size here to handle the last
...
...
@@ -112,6 +109,7 @@ static int raw_read_partial_packet(AVFormatContext *s, AVPacket *pkt)
if
(
av_new_packet
(
pkt
,
size
)
<
0
)
return
AVERROR_IO
;
pkt
->
pos
=
url_ftell
(
&
s
->
pb
);
pkt
->
stream_index
=
0
;
ret
=
get_partial_buffer
(
&
s
->
pb
,
pkt
->
data
,
size
);
if
(
ret
<=
0
)
{
...
...
@@ -618,18 +616,10 @@ static int rawvideo_read_packet(AVFormatContext *s, AVPacket *pkt)
if
(
packet_size
<
0
)
return
-
1
;
if
(
av_new_packet
(
pkt
,
packet_size
)
<
0
)
return
AVERROR_IO
;
ret
=
av_get_packet
(
&
s
->
pb
,
pkt
,
packet_size
);
pkt
->
stream_index
=
0
;
#if 0
/* bypass buffered I/O */
ret = url_read(url_fileno(&s->pb), pkt->data, pkt->size);
#else
ret
=
get_buffer
(
&
s
->
pb
,
pkt
->
data
,
pkt
->
size
);
#endif
if
(
ret
!=
pkt
->
size
)
{
av_free_packet
(
pkt
);
if
(
ret
!=
packet_size
)
{
return
AVERROR_IO
;
}
else
{
return
0
;
...
...
libavformat/rm.c
View file @
2692067a
...
...
@@ -812,11 +812,9 @@ static int rm_read_packet(AVFormatContext *s, AVPacket *pkt)
if
(
rm
->
old_format
)
{
/* just read raw bytes */
len
=
RAW_PACKET_SIZE
;
av_new_packet
(
pkt
,
len
);
len
=
av_get_packet
(
pb
,
pkt
,
len
);
pkt
->
stream_index
=
0
;
len
=
get_buffer
(
pb
,
pkt
->
data
,
len
);
if
(
len
<=
0
)
{
av_free_packet
(
pkt
);
return
AVERROR_IO
;
}
pkt
->
size
=
len
;
...
...
@@ -860,9 +858,8 @@ resync:
goto
resync
;
}
av_
new_packet
(
pkt
,
len
);
av_
get_packet
(
pb
,
pkt
,
len
);
pkt
->
stream_index
=
i
;
get_buffer
(
pb
,
pkt
->
data
,
len
);
#if 0
if (st->codec.codec_type == CODEC_TYPE_VIDEO) {
...
...
libavformat/segafilm.c
View file @
2692067a
...
...
@@ -233,6 +233,7 @@ static int film_read_packet(AVFormatContext *s,
return
AVERROR_NOMEM
;
if
(
pkt
->
size
<
10
)
return
-
1
;
pkt
->
pos
=
url_ftell
(
pb
);
ret
=
get_buffer
(
pb
,
pkt
->
data
,
10
);
/* skip the non-spec CVID bytes */
url_fseek
(
pb
,
film
->
cvid_extra_bytes
,
SEEK_CUR
);
...
...
@@ -254,6 +255,7 @@ static int film_read_packet(AVFormatContext *s,
film
->
stereo_buffer
=
av_malloc
(
film
->
stereo_buffer_size
);
}
pkt
->
pos
=
url_ftell
(
pb
);
ret
=
get_buffer
(
pb
,
film
->
stereo_buffer
,
sample
->
sample_size
);
if
(
ret
!=
sample
->
sample_size
)
ret
=
AVERROR_IO
;
...
...
@@ -272,9 +274,7 @@ static int film_read_packet(AVFormatContext *s,
}
}
}
else
{
if
(
av_new_packet
(
pkt
,
sample
->
sample_size
))
return
AVERROR_NOMEM
;
ret
=
get_buffer
(
pb
,
pkt
->
data
,
sample
->
sample_size
);
ret
=
av_get_packet
(
pb
,
pkt
,
sample
->
sample_size
);
if
(
ret
!=
sample
->
sample_size
)
ret
=
AVERROR_IO
;
}
...
...
libavformat/sierravmd.c
View file @
2692067a
...
...
@@ -269,6 +269,7 @@ static int vmd_read_packet(AVFormatContext *s,
if
(
av_new_packet
(
pkt
,
frame
->
frame_size
+
BYTES_PER_FRAME_RECORD
))
return
AVERROR_NOMEM
;
pkt
->
pos
=
url_ftell
(
pb
);
memcpy
(
pkt
->
data
,
frame
->
frame_record
,
BYTES_PER_FRAME_RECORD
);
ret
=
get_buffer
(
pb
,
pkt
->
data
+
BYTES_PER_FRAME_RECORD
,
frame
->
frame_size
);
...
...
libavformat/sol.c
View file @
2692067a
...
...
@@ -131,13 +131,9 @@ static int sol_read_packet(AVFormatContext *s,
if
(
url_feof
(
&
s
->
pb
))
return
-
EIO
;
if
(
av_new_packet
(
pkt
,
MAX_SIZE
))
return
-
EIO
;
ret
=
av_get_packet
(
&
s
->
pb
,
pkt
,
MAX_SIZE
);
pkt
->
stream_index
=
0
;
ret
=
get_buffer
(
&
s
->
pb
,
pkt
->
data
,
pkt
->
size
);
if
(
ret
<
0
)
av_free_packet
(
pkt
);
/* note: we need to modify the packet size here to handle the last
packet */
pkt
->
size
=
ret
;
...
...
libavformat/swf.c
View file @
2692067a
...
...
@@ -858,10 +858,9 @@ static int swf_read_packet(AVFormatContext *s, AVPacket *pkt)
if
(
st
->
id
==
0
)
{
if
(
get_le16
(
pb
)
==
swf
->
ch_id
)
{
frame
=
get_le16
(
pb
);
av_
new_packet
(
pkt
,
len
-
4
);
av_
get_packet
(
pb
,
pkt
,
len
-
4
);
pkt
->
pts
=
frame
*
swf
->
ms_per_frame
;
pkt
->
stream_index
=
st
->
index
;
get_buffer
(
pb
,
pkt
->
data
,
pkt
->
size
);
return
pkt
->
size
;
}
else
{
url_fskip
(
pb
,
len
-
2
);
...
...
@@ -874,9 +873,8 @@ static int swf_read_packet(AVFormatContext *s, AVPacket *pkt)
for
(
i
=
0
;
i
<
s
->
nb_streams
;
i
++
)
{
st
=
s
->
streams
[
i
];
if
(
st
->
id
==
1
)
{
av_
new_packet
(
pkt
,
len
);
av_
get_packet
(
pb
,
pkt
,
len
);
pkt
->
stream_index
=
st
->
index
;
get_buffer
(
pb
,
pkt
->
data
,
pkt
->
size
);
return
pkt
->
size
;
}
}
...
...
libavformat/utils.c
View file @
2692067a
...
...
@@ -195,6 +195,31 @@ int av_new_packet(AVPacket *pkt, int size)
return
0
;
}
/**
* Allocate and read the payload of a packet and intialized its fields to default values.
*
* @param pkt packet
* @param size wanted payload size
* @return >0 (read size) if OK. AVERROR_xxx otherwise.
*/
int
av_get_packet
(
ByteIOContext
*
s
,
AVPacket
*
pkt
,
int
size
)
{
int
ret
=
av_new_packet
(
pkt
,
size
);
if
(
ret
<
0
)
return
ret
;
pkt
->
pos
=
url_ftell
(
s
);
ret
=
get_buffer
(
s
,
pkt
->
data
,
size
);
if
(
ret
<=
0
)
av_free_packet
(
pkt
);
else
pkt
->
size
=
ret
;
return
ret
;
}
/* This is a hack - the packet memory allocation stuff is broken. The
packet is allocated if it was not really allocated */
int
av_dup_packet
(
AVPacket
*
pkt
)
...
...
libavformat/wc3movie.c
View file @
2692067a
...
...
@@ -318,11 +318,9 @@ static int wc3_read_packet(AVFormatContext *s,
case
VGA__TAG
:
/* send out video chunk */
if
(
av_new_packet
(
pkt
,
size
))
ret
=
AVERROR_IO
;
ret
=
av_get_packet
(
pb
,
pkt
,
size
);
pkt
->
stream_index
=
wc3
->
video_stream_index
;
pkt
->
pts
=
wc3
->
pts
;
ret
=
get_buffer
(
pb
,
pkt
->
data
,
size
);
if
(
ret
!=
size
)
ret
=
AVERROR_IO
;
packet_read
=
1
;
...
...
@@ -349,11 +347,9 @@ static int wc3_read_packet(AVFormatContext *s,
case
AUDI_TAG
:
/* send out audio chunk */
if
(
av_new_packet
(
pkt
,
size
))
ret
=
AVERROR_IO
;
ret
=
av_get_packet
(
pb
,
pkt
,
size
);
pkt
->
stream_index
=
wc3
->
audio_stream_index
;
pkt
->
pts
=
wc3
->
pts
;
ret
=
get_buffer
(
pb
,
pkt
->
data
,
size
);
if
(
ret
!=
size
)
ret
=
AVERROR_IO
;
...
...
libavformat/westwood.c
View file @
2692067a
...
...
@@ -170,15 +170,12 @@ static int wsaud_read_packet(AVFormatContext *s,
return
AVERROR_INVALIDDATA
;
chunk_size
=
LE_16
(
&
preamble
[
0
]);
if
(
av_new_packet
(
pkt
,
chunk_size
))
ret
=
av_get_packet
(
pb
,
pkt
,
chunk_size
);
if
(
ret
!=
chunk_size
)
return
AVERROR_IO
;
pkt
->
stream_index
=
wsaud
->
audio_stream_index
;
pkt
->
pts
=
wsaud
->
audio_frame_counter
;
pkt
->
pts
/=
wsaud
->
audio_samplerate
;
if
((
ret
=
get_buffer
(
pb
,
pkt
->
data
,
chunk_size
))
!=
chunk_size
)
{
av_free_packet
(
pkt
);
ret
=
AVERROR_IO
;
}
/* 2 samples/byte, 1 or 2 samples per frame depending on stereo */
wsaud
->
audio_frame_counter
+=
(
chunk_size
*
2
)
/
wsaud
->
audio_channels
;
...
...
@@ -322,11 +319,8 @@ static int wsvqa_read_packet(AVFormatContext *s,
if
((
chunk_type
==
SND2_TAG
)
||
(
chunk_type
==
VQFR_TAG
))
{
if
(
av_new_packet
(
pkt
,
chunk_size
))
return
AVERROR_IO
;
ret
=
get_buffer
(
pb
,
pkt
->
data
,
chunk_size
);
av_get_packet
(
pb
,
pkt
,
chunk_size
);
if
(
ret
!=
chunk_size
)
{
av_free_packet
(
pkt
);
ret
=
AVERROR_IO
;
}
...
...
libavformat/yuv4mpeg.c
View file @
2692067a
...
...
@@ -356,17 +356,11 @@ static int yuv4_read_packet(AVFormatContext *s, AVPacket *pkt)
if
(
packet_size
<
0
)
return
-
1
;
if
(
av_
new_packet
(
pkt
,
packet_size
)
<
0
)
if
(
av_
get_packet
(
&
s
->
pb
,
pkt
,
packet_size
)
!=
packet_size
)
return
AVERROR_IO
;
pkt
->
stream_index
=
0
;
ret
=
get_buffer
(
&
s
->
pb
,
pkt
->
data
,
pkt
->
size
);
if
(
ret
!=
pkt
->
size
)
{
av_free_packet
(
pkt
);
return
AVERROR_IO
;
}
else
{
return
0
;
}
}
static
int
yuv4_read_close
(
AVFormatContext
*
s
)
...
...
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