Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-1.1
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-1.1
Commits
2dfaaa53
Commit
2dfaaa53
authored
Aug 17, 2004
by
Gildas Bazin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* modules/codec/ffmpeg/demux.c: a few fixes.
parent
4ecf0e8c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
38 additions
and
6 deletions
+38
-6
modules/codec/ffmpeg/demux.c
modules/codec/ffmpeg/demux.c
+38
-6
No files found.
modules/codec/ffmpeg/demux.c
View file @
2dfaaa53
...
@@ -29,6 +29,7 @@
...
@@ -29,6 +29,7 @@
#include <vlc/vlc.h>
#include <vlc/vlc.h>
#include <vlc/input.h>
#include <vlc/input.h>
#include "vlc_meta.h"
/* ffmpeg header */
/* ffmpeg header */
#ifdef HAVE_FFMPEG_AVCODEC_H
#ifdef HAVE_FFMPEG_AVCODEC_H
...
@@ -39,6 +40,8 @@
...
@@ -39,6 +40,8 @@
#include "ffmpeg.h"
#include "ffmpeg.h"
//#define AVFORMAT_DEBUG 1
/* Version checking */
/* Version checking */
#if (LIBAVFORMAT_BUILD >= 4611) && defined(HAVE_LIBAVFORMAT)
#if (LIBAVFORMAT_BUILD >= 4611) && defined(HAVE_LIBAVFORMAT)
...
@@ -82,10 +85,7 @@ int E_(OpenDemux)( vlc_object_t *p_this )
...
@@ -82,10 +85,7 @@ int E_(OpenDemux)( vlc_object_t *p_this )
demux_sys_t
*
p_sys
;
demux_sys_t
*
p_sys
;
AVProbeData
pd
;
AVProbeData
pd
;
AVInputFormat
*
fmt
;
AVInputFormat
*
fmt
;
int
i
,
b_forced
;
int
i
;
b_forced
=
(
p_demux
->
psz_demux
&&
*
p_demux
->
psz_demux
&&
!
strcmp
(
p_demux
->
psz_demux
,
"ffmpeg"
)
)
?
1
:
0
;
/* Init Probe data */
/* Init Probe data */
pd
.
filename
=
p_demux
->
psz_path
;
pd
.
filename
=
p_demux
->
psz_path
;
...
@@ -106,7 +106,7 @@ int E_(OpenDemux)( vlc_object_t *p_this )
...
@@ -106,7 +106,7 @@ int E_(OpenDemux)( vlc_object_t *p_this )
}
}
/* Don't try to handle MPEG unless forced */
/* Don't try to handle MPEG unless forced */
if
(
!
b_forced
&&
if
(
!
p_demux
->
b_force
&&
(
!
strcmp
(
fmt
->
name
,
"mpeg"
)
||
(
!
strcmp
(
fmt
->
name
,
"mpeg"
)
||
!
strcmp
(
fmt
->
name
,
"vcd"
)
||
!
strcmp
(
fmt
->
name
,
"vcd"
)
||
!
strcmp
(
fmt
->
name
,
"vob"
)
||
!
strcmp
(
fmt
->
name
,
"vob"
)
||
...
@@ -267,8 +267,10 @@ static int Demux( demux_t *p_demux )
...
@@ -267,8 +267,10 @@ static int Demux( demux_t *p_demux )
p_frame
->
i_pts
=
(
pkt
.
pts
==
AV_NOPTS_VALUE
)
?
p_frame
->
i_pts
=
(
pkt
.
pts
==
AV_NOPTS_VALUE
)
?
0
:
(
pkt
.
pts
-
i_start_time
)
*
1000000
/
AV_TIME_BASE
;
0
:
(
pkt
.
pts
-
i_start_time
)
*
1000000
/
AV_TIME_BASE
;
#ifdef AVFORMAT_DEBUG
msg_Dbg
(
p_demux
,
"tk[%d] dts="
I64Fd
" pts="
I64Fd
,
msg_Dbg
(
p_demux
,
"tk[%d] dts="
I64Fd
" pts="
I64Fd
,
pkt
.
stream_index
,
p_frame
->
i_dts
,
p_frame
->
i_pts
);
pkt
.
stream_index
,
p_frame
->
i_dts
,
p_frame
->
i_pts
);
#endif
if
(
pkt
.
dts
>
0
&&
if
(
pkt
.
dts
>
0
&&
(
pkt
.
stream_index
==
p_sys
->
i_pcr_tk
||
p_sys
->
i_pcr_tk
<
0
)
)
(
pkt
.
stream_index
==
p_sys
->
i_pcr_tk
||
p_sys
->
i_pcr_tk
<
0
)
)
...
@@ -350,6 +352,33 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
...
@@ -350,6 +352,33 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
p_sys
->
i_pcr
=
-
1
;
/* Invalidate time display */
p_sys
->
i_pcr
=
-
1
;
/* Invalidate time display */
return
VLC_SUCCESS
;
return
VLC_SUCCESS
;
case
DEMUX_GET_META
:
{
vlc_meta_t
**
pp_meta
=
(
vlc_meta_t
**
)
va_arg
(
args
,
vlc_meta_t
**
);
vlc_meta_t
*
meta
;
if
(
!
p_sys
->
ic
->
title
[
0
]
||
!
p_sys
->
ic
->
author
[
0
]
||
!
p_sys
->
ic
->
copyright
[
0
]
||
!
p_sys
->
ic
->
comment
[
0
]
||
/*!p_sys->ic->album[0] ||*/
!
p_sys
->
ic
->
genre
[
0
]
)
{
return
VLC_EGENERIC
;
}
*
pp_meta
=
meta
=
vlc_meta_New
();
if
(
p_sys
->
ic
->
title
[
0
]
)
vlc_meta_Add
(
meta
,
VLC_META_TITLE
,
p_sys
->
ic
->
title
);
if
(
p_sys
->
ic
->
author
[
0
]
)
vlc_meta_Add
(
meta
,
VLC_META_AUTHOR
,
p_sys
->
ic
->
author
);
if
(
p_sys
->
ic
->
copyright
[
0
]
)
vlc_meta_Add
(
meta
,
VLC_META_COPYRIGHT
,
p_sys
->
ic
->
copyright
);
if
(
p_sys
->
ic
->
comment
[
0
]
)
vlc_meta_Add
(
meta
,
VLC_META_DESCRIPTION
,
p_sys
->
ic
->
comment
);
if
(
p_sys
->
ic
->
genre
[
0
]
)
vlc_meta_Add
(
meta
,
VLC_META_GENRE
,
p_sys
->
ic
->
genre
);
return
VLC_SUCCESS
;
}
default:
default:
return
VLC_EGENERIC
;
return
VLC_EGENERIC
;
}
}
...
@@ -362,7 +391,8 @@ static int IORead( void *opaque, uint8_t *buf, int buf_size )
...
@@ -362,7 +391,8 @@ static int IORead( void *opaque, uint8_t *buf, int buf_size )
{
{
URLContext
*
p_url
=
opaque
;
URLContext
*
p_url
=
opaque
;
demux_t
*
p_demux
=
p_url
->
priv_data
;
demux_t
*
p_demux
=
p_url
->
priv_data
;
return
stream_Read
(
p_demux
->
s
,
buf
,
buf_size
);
int
i_ret
=
stream_Read
(
p_demux
->
s
,
buf
,
buf_size
);
return
i_ret
?
i_ret
:
-
1
;
}
}
static
int
IOSeek
(
void
*
opaque
,
offset_t
offset
,
int
whence
)
static
int
IOSeek
(
void
*
opaque
,
offset_t
offset
,
int
whence
)
...
@@ -371,7 +401,9 @@ static int IOSeek( void *opaque, offset_t offset, int whence )
...
@@ -371,7 +401,9 @@ static int IOSeek( void *opaque, offset_t offset, int whence )
demux_t
*
p_demux
=
p_url
->
priv_data
;
demux_t
*
p_demux
=
p_url
->
priv_data
;
int64_t
i_absolute
;
int64_t
i_absolute
;
#ifdef AVFORMAT_DEBUG
msg_Warn
(
p_demux
,
"IOSeek offset: "
I64Fd
", whence: %i"
,
offset
,
whence
);
msg_Warn
(
p_demux
,
"IOSeek offset: "
I64Fd
", whence: %i"
,
offset
,
whence
);
#endif
switch
(
whence
)
switch
(
whence
)
{
{
...
...
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