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
c16ddcc9
Commit
c16ddcc9
authored
Sep 04, 2013
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avisynth: K&R formatting cosmetics
parent
97b052e5
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
150 additions
and
145 deletions
+150
-145
avisynth.c
libavformat/avisynth.c
+150
-145
No files found.
libavformat/avisynth.c
View file @
c16ddcc9
...
@@ -19,14 +19,14 @@
...
@@ -19,14 +19,14 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
*/
#include <windows.h>
#include <vfw.h>
#include "libavutil/internal.h"
#include "libavutil/internal.h"
#include "avformat.h"
#include "avformat.h"
#include "internal.h"
#include "internal.h"
#include "riff.h"
#include "riff.h"
#include <windows.h>
#include <vfw.h>
typedef
struct
{
typedef
struct
{
PAVISTREAM
handle
;
PAVISTREAM
handle
;
AVISTREAMINFO
info
;
AVISTREAMINFO
info
;
...
@@ -57,18 +57,18 @@ static int avisynth_read_header(AVFormatContext *s)
...
@@ -57,18 +57,18 @@ static int avisynth_read_header(AVFormatContext *s)
/* AviSynth cannot accept UTF-8 file names. */
/* AviSynth cannot accept UTF-8 file names. */
MultiByteToWideChar
(
CP_UTF8
,
0
,
s
->
filename
,
-
1
,
filename_wchar
,
1024
);
MultiByteToWideChar
(
CP_UTF8
,
0
,
s
->
filename
,
-
1
,
filename_wchar
,
1024
);
WideCharToMultiByte
(
CP_THREAD_ACP
,
0
,
filename_wchar
,
-
1
,
filename_char
,
1024
,
NULL
,
NULL
);
WideCharToMultiByte
(
CP_THREAD_ACP
,
0
,
filename_wchar
,
-
1
,
filename_char
,
res
=
AVIFileOpen
(
&
avs
->
file
,
filename_char
,
OF_READ
|
OF_SHARE_DENY_WRITE
,
NULL
);
1024
,
NULL
,
NULL
);
if
(
res
!=
S_OK
)
res
=
AVIFileOpen
(
&
avs
->
file
,
filename_char
,
{
OF_READ
|
OF_SHARE_DENY_WRITE
,
NULL
);
if
(
res
!=
S_OK
)
{
av_log
(
s
,
AV_LOG_ERROR
,
"AVIFileOpen failed with error %ld"
,
res
);
av_log
(
s
,
AV_LOG_ERROR
,
"AVIFileOpen failed with error %ld"
,
res
);
AVIFileExit
();
AVIFileExit
();
return
-
1
;
return
-
1
;
}
}
res
=
AVIFileInfo
(
avs
->
file
,
&
info
,
sizeof
(
info
));
res
=
AVIFileInfo
(
avs
->
file
,
&
info
,
sizeof
(
info
));
if
(
res
!=
S_OK
)
if
(
res
!=
S_OK
)
{
{
av_log
(
s
,
AV_LOG_ERROR
,
"AVIFileInfo failed with error %ld"
,
res
);
av_log
(
s
,
AV_LOG_ERROR
,
"AVIFileInfo failed with error %ld"
,
res
);
AVIFileExit
();
AVIFileExit
();
return
-
1
;
return
-
1
;
...
@@ -76,19 +76,17 @@ static int avisynth_read_header(AVFormatContext *s)
...
@@ -76,19 +76,17 @@ static int avisynth_read_header(AVFormatContext *s)
avs
->
streams
=
av_mallocz
(
info
.
dwStreams
*
sizeof
(
AviSynthStream
));
avs
->
streams
=
av_mallocz
(
info
.
dwStreams
*
sizeof
(
AviSynthStream
));
for
(
id
=
0
;
id
<
info
.
dwStreams
;
id
++
)
for
(
id
=
0
;
id
<
info
.
dwStreams
;
id
++
)
{
{
stream
=
&
avs
->
streams
[
id
];
stream
=
&
avs
->
streams
[
id
];
stream
->
read
=
0
;
stream
->
read
=
0
;
if
(
AVIFileGetStream
(
avs
->
file
,
&
stream
->
handle
,
0
,
id
)
==
S_OK
)
if
(
AVIFileGetStream
(
avs
->
file
,
&
stream
->
handle
,
0
,
id
)
==
S_OK
&&
{
AVIStreamInfo
(
stream
->
handle
,
&
stream
->
info
,
if
(
AVIStreamInfo
(
stream
->
handle
,
&
stream
->
info
,
sizeof
(
stream
->
info
))
==
S_OK
)
sizeof
(
stream
->
info
))
==
S_OK
)
{
{
if
(
stream
->
info
.
fccType
==
streamtypeAUDIO
)
{
if
(
stream
->
info
.
fccType
==
streamtypeAUDIO
)
{
WAVEFORMATEX
wvfmt
;
WAVEFORMATEX
wvfmt
;
LONG
struct_size
=
sizeof
(
WAVEFORMATEX
);
LONG
struct_size
=
sizeof
(
WAVEFORMATEX
);
if
(
AVIStreamReadFormat
(
stream
->
handle
,
0
,
&
wvfmt
,
&
struct_size
)
!=
S_OK
)
if
(
AVIStreamReadFormat
(
stream
->
handle
,
0
,
&
wvfmt
,
&
struct_size
)
!=
S_OK
)
continue
;
continue
;
st
=
avformat_new_stream
(
s
,
NULL
);
st
=
avformat_new_stream
(
s
,
NULL
);
...
@@ -101,21 +99,26 @@ static int avisynth_read_header(AVFormatContext *s)
...
@@ -101,21 +99,26 @@ static int avisynth_read_header(AVFormatContext *s)
st
->
codec
->
bit_rate
=
wvfmt
.
nAvgBytesPerSec
*
8
;
st
->
codec
->
bit_rate
=
wvfmt
.
nAvgBytesPerSec
*
8
;
st
->
codec
->
bits_per_coded_sample
=
wvfmt
.
wBitsPerSample
;
st
->
codec
->
bits_per_coded_sample
=
wvfmt
.
wBitsPerSample
;
stream
->
chunck_samples
=
wvfmt
.
nSamplesPerSec
*
(
uint64_t
)
info
.
dwScale
/
(
uint64_t
)
info
.
dwRate
;
stream
->
chunck_samples
=
wvfmt
.
nSamplesPerSec
*
stream
->
chunck_size
=
stream
->
chunck_samples
*
wvfmt
.
nChannels
*
wvfmt
.
wBitsPerSample
/
8
;
(
uint64_t
)
info
.
dwScale
/
(
uint64_t
)
info
.
dwRate
;
stream
->
chunck_size
=
stream
->
chunck_samples
*
wvfmt
.
nChannels
*
wvfmt
.
wBitsPerSample
/
8
;
st
->
codec
->
codec_tag
=
wvfmt
.
wFormatTag
;
st
->
codec
->
codec_tag
=
wvfmt
.
wFormatTag
;
st
->
codec
->
codec_id
=
ff_wav_codec_get_id
(
wvfmt
.
wFormatTag
,
st
->
codec
->
bits_per_coded_sample
);
st
->
codec
->
codec_id
=
}
ff_wav_codec_get_id
(
wvfmt
.
wFormatTag
,
else
if
(
stream
->
info
.
fccType
==
streamtypeVIDEO
)
st
->
codec
->
bits_per_coded_sample
);
{
}
else
if
(
stream
->
info
.
fccType
==
streamtypeVIDEO
)
{
BITMAPINFO
imgfmt
;
BITMAPINFO
imgfmt
;
LONG
struct_size
=
sizeof
(
BITMAPINFO
);
LONG
struct_size
=
sizeof
(
BITMAPINFO
);
stream
->
chunck_size
=
stream
->
info
.
dwSampleSize
;
stream
->
chunck_size
=
stream
->
info
.
dwSampleSize
;
stream
->
chunck_samples
=
1
;
stream
->
chunck_samples
=
1
;
if
(
AVIStreamReadFormat
(
stream
->
handle
,
0
,
&
imgfmt
,
&
struct_size
)
!=
S_OK
)
if
(
AVIStreamReadFormat
(
stream
->
handle
,
0
,
&
imgfmt
,
&
struct_size
)
!=
S_OK
)
continue
;
continue
;
st
=
avformat_new_stream
(
s
,
NULL
);
st
=
avformat_new_stream
(
s
,
NULL
);
...
@@ -128,14 +131,16 @@ static int avisynth_read_header(AVFormatContext *s)
...
@@ -128,14 +131,16 @@ static int avisynth_read_header(AVFormatContext *s)
st
->
codec
->
height
=
imgfmt
.
bmiHeader
.
biHeight
;
st
->
codec
->
height
=
imgfmt
.
bmiHeader
.
biHeight
;
st
->
codec
->
bits_per_coded_sample
=
imgfmt
.
bmiHeader
.
biBitCount
;
st
->
codec
->
bits_per_coded_sample
=
imgfmt
.
bmiHeader
.
biBitCount
;
st
->
codec
->
bit_rate
=
(
uint64_t
)
stream
->
info
.
dwSampleSize
*
(
uint64_t
)
stream
->
info
.
dwRate
*
8
/
(
uint64_t
)
stream
->
info
.
dwScale
;
st
->
codec
->
bit_rate
=
(
uint64_t
)
stream
->
info
.
dwSampleSize
*
(
uint64_t
)
stream
->
info
.
dwRate
*
8
/
(
uint64_t
)
stream
->
info
.
dwScale
;
st
->
codec
->
codec_tag
=
imgfmt
.
bmiHeader
.
biCompression
;
st
->
codec
->
codec_tag
=
imgfmt
.
bmiHeader
.
biCompression
;
st
->
codec
->
codec_id
=
ff_codec_get_id
(
ff_codec_bmp_tags
,
imgfmt
.
bmiHeader
.
biCompression
);
st
->
codec
->
codec_id
=
ff_codec_get_id
(
ff_codec_bmp_tags
,
imgfmt
.
bmiHeader
.
biCompression
);
st
->
duration
=
stream
->
info
.
dwLength
;
st
->
duration
=
stream
->
info
.
dwLength
;
}
}
else
{
else
{
AVIStreamRelease
(
stream
->
handle
);
AVIStreamRelease
(
stream
->
handle
);
continue
;
continue
;
}
}
...
@@ -148,7 +153,6 @@ static int avisynth_read_header(AVFormatContext *s)
...
@@ -148,7 +153,6 @@ static int avisynth_read_header(AVFormatContext *s)
st
->
start_time
=
stream
->
info
.
dwStart
;
st
->
start_time
=
stream
->
info
.
dwStart
;
}
}
}
}
}
return
0
;
return
0
;
}
}
...
@@ -170,9 +174,11 @@ static int avisynth_read_packet(AVFormatContext *s, AVPacket *pkt)
...
@@ -170,9 +174,11 @@ static int avisynth_read_packet(AVFormatContext *s, AVPacket *pkt)
if
(
av_new_packet
(
pkt
,
stream
->
chunck_size
))
if
(
av_new_packet
(
pkt
,
stream
->
chunck_size
))
return
AVERROR
(
EIO
);
return
AVERROR
(
EIO
);
pkt
->
stream_index
=
stream_id
;
pkt
->
stream_index
=
stream_id
;
pkt
->
pts
=
avs
->
streams
[
stream_id
].
read
/
avs
->
streams
[
stream_id
].
chunck_samples
;
pkt
->
pts
=
avs
->
streams
[
stream_id
].
read
/
avs
->
streams
[
stream_id
].
chunck_samples
;
res
=
AVIStreamRead
(
stream
->
handle
,
stream
->
read
,
stream
->
chunck_samples
,
pkt
->
data
,
stream
->
chunck_size
,
&
read_size
,
NULL
);
res
=
AVIStreamRead
(
stream
->
handle
,
stream
->
read
,
stream
->
chunck_samples
,
pkt
->
data
,
stream
->
chunck_size
,
&
read_size
,
NULL
);
pkt
->
pts
=
stream
->
read
;
pkt
->
pts
=
stream
->
read
;
pkt
->
size
=
read_size
;
pkt
->
size
=
read_size
;
...
@@ -180,9 +186,10 @@ static int avisynth_read_packet(AVFormatContext *s, AVPacket *pkt)
...
@@ -180,9 +186,10 @@ static int avisynth_read_packet(AVFormatContext *s, AVPacket *pkt)
stream
->
read
+=
stream
->
chunck_samples
;
stream
->
read
+=
stream
->
chunck_samples
;
// prepare for the next stream to read
// prepare for the next stream to read
do
{
do
avs
->
next_stream
=
(
avs
->
next_stream
+
1
)
%
avs
->
nb_streams
;
avs
->
next_stream
=
(
avs
->
next_stream
+
1
)
%
avs
->
nb_streams
;
}
while
(
avs
->
next_stream
!=
stream_id
&&
s
->
streams
[
avs
->
next_stream
]
->
discard
>=
AVDISCARD_ALL
);
while
(
avs
->
next_stream
!=
stream_id
&&
s
->
streams
[
avs
->
next_stream
]
->
discard
>=
AVDISCARD_ALL
);
return
(
res
==
S_OK
)
?
pkt
->
size
:
-
1
;
return
(
res
==
S_OK
)
?
pkt
->
size
:
-
1
;
}
}
...
@@ -192,10 +199,8 @@ static int avisynth_read_close(AVFormatContext *s)
...
@@ -192,10 +199,8 @@ static int avisynth_read_close(AVFormatContext *s)
AviSynthContext
*
avs
=
s
->
priv_data
;
AviSynthContext
*
avs
=
s
->
priv_data
;
int
i
;
int
i
;
for
(
i
=
0
;
i
<
avs
->
nb_streams
;
i
++
)
for
(
i
=
0
;
i
<
avs
->
nb_streams
;
i
++
)
{
AVIStreamRelease
(
avs
->
streams
[
i
].
handle
);
AVIStreamRelease
(
avs
->
streams
[
i
].
handle
);
}
av_free
(
avs
->
streams
);
av_free
(
avs
->
streams
);
AVIFileRelease
(
avs
->
file
);
AVIFileRelease
(
avs
->
file
);
...
@@ -203,15 +208,15 @@ static int avisynth_read_close(AVFormatContext *s)
...
@@ -203,15 +208,15 @@ static int avisynth_read_close(AVFormatContext *s)
return
0
;
return
0
;
}
}
static
int
avisynth_read_seek
(
AVFormatContext
*
s
,
int
stream_index
,
int64_t
pts
,
int
flags
)
static
int
avisynth_read_seek
(
AVFormatContext
*
s
,
int
stream_index
,
int64_t
pts
,
int
flags
)
{
{
AviSynthContext
*
avs
=
s
->
priv_data
;
AviSynthContext
*
avs
=
s
->
priv_data
;
int
stream_id
;
int
stream_id
;
for
(
stream_id
=
0
;
stream_id
<
avs
->
nb_streams
;
stream_id
++
)
for
(
stream_id
=
0
;
stream_id
<
avs
->
nb_streams
;
stream_id
++
)
{
avs
->
streams
[
stream_id
].
read
=
avs
->
streams
[
stream_id
].
read
=
pts
*
avs
->
streams
[
stream_id
].
chunck_samples
;
pts
*
avs
->
streams
[
stream_id
].
chunck_samples
;
}
return
0
;
return
0
;
}
}
...
...
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