Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
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-gpu
Commits
3a49e9f3
Commit
3a49e9f3
authored
Jun 03, 2008
by
Antoine Cellerier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Split should now be complete (postproc still needs to be fixed).
parent
11aac010
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
94 additions
and
185 deletions
+94
-185
modules/codec/ffmpeg/Modules.am
modules/codec/ffmpeg/Modules.am
+2
-0
modules/codec/ffmpeg/avcodec.c
modules/codec/ffmpeg/avcodec.c
+2
-58
modules/codec/ffmpeg/avcodec.h
modules/codec/ffmpeg/avcodec.h
+0
-2
modules/codec/ffmpeg/avformat.c
modules/codec/ffmpeg/avformat.c
+4
-92
modules/codec/ffmpeg/avutil.h
modules/codec/ffmpeg/avutil.h
+80
-0
modules/codec/ffmpeg/imgresample.c
modules/codec/ffmpeg/imgresample.c
+1
-25
modules/codec/ffmpeg/mux.c
modules/codec/ffmpeg/mux.c
+3
-7
modules/codec/ffmpeg/swscale.c
modules/codec/ffmpeg/swscale.c
+1
-1
modules/codec/ffmpeg/video.c
modules/codec/ffmpeg/video.c
+1
-0
No files found.
modules/codec/ffmpeg/Modules.am
View file @
3a49e9f3
...
...
@@ -4,6 +4,7 @@ SOURCES_avcodec = \
video.c \
audio.c \
deinterlace.c \
avutil.h \
fourcc.h \
chroma.h \
$(NULL)
...
...
@@ -20,6 +21,7 @@ SOURCES_avformat = \
avformat.c \
avformat.h \
demux.c \
avutil.h \
fourcc.h \
chroma.h \
$(NULL)
...
...
modules/codec/ffmpeg/avcodec.c
View file @
3a49e9f3
...
...
@@ -49,6 +49,7 @@
#include "avcodec.h"
#include "fourcc.h"
#include "avutil.h"
/*****************************************************************************
* decoder_sys_t: decoder descriptor
...
...
@@ -333,63 +334,6 @@ static void CloseDecoder( vlc_object_t *p_this )
free
(
p_sys
);
}
/*****************************************************************************
*
*****************************************************************************/
void
LibavcodecCallback
(
void
*
p_opaque
,
int
i_level
,
const
char
*
psz_format
,
va_list
va
)
{
int
i_vlc_level
;
AVCodecContext
*
p_avctx
=
(
AVCodecContext
*
)
p_opaque
;
AVClass
*
p_avc
;
vlc_object_t
*
p_this
;
char
*
psz_new_format
;
const
char
*
psz_item_name
;
p_avc
=
p_avctx
?
p_avctx
->
av_class
:
0
;
#define cln p_avc->class_name
/* Make sure we can get p_this back */
if
(
!
p_avctx
||
!
p_avc
||
!
cln
||
cln
[
0
]
!=
'A'
||
cln
[
1
]
!=
'V'
||
cln
[
2
]
!=
'C'
||
cln
[
3
]
!=
'o'
||
cln
[
4
]
!=
'd'
||
cln
[
5
]
!=
'e'
||
cln
[
6
]
!=
'c'
)
{
if
(
i_level
==
AV_LOG_ERROR
)
vfprintf
(
stderr
,
psz_format
,
va
);
return
;
}
#undef cln
p_this
=
(
vlc_object_t
*
)
p_avctx
->
opaque
;
switch
(
i_level
)
{
case
AV_LOG_QUIET
:
i_vlc_level
=
VLC_MSG_ERR
;
break
;
case
AV_LOG_ERROR
:
i_vlc_level
=
VLC_MSG_WARN
;
break
;
case
AV_LOG_INFO
:
i_vlc_level
=
VLC_MSG_DBG
;
break
;
case
AV_LOG_DEBUG
:
/* Print debug messages if they were requested */
if
(
p_avctx
->
debug
)
vfprintf
(
stderr
,
psz_format
,
va
);
return
;
default:
return
;
}
psz_item_name
=
p_avc
->
item_name
(
p_opaque
);
psz_new_format
=
malloc
(
strlen
(
psz_format
)
+
strlen
(
psz_item_name
)
+
18
+
5
);
snprintf
(
psz_new_format
,
strlen
(
psz_format
)
+
strlen
(
psz_item_name
)
+
18
+
5
,
"%s (%s@%p)"
,
psz_format
,
p_avc
->
item_name
(
p_opaque
),
p_opaque
);
msg_GenericVa
(
p_this
,
i_vlc_level
,
MODULE_STRING
,
psz_new_format
,
va
);
free
(
psz_new_format
);
}
void
InitLibavcodec
(
vlc_object_t
*
p_object
)
{
static
int
b_ffmpeginit
=
0
;
...
...
@@ -400,7 +344,7 @@ void InitLibavcodec( vlc_object_t *p_object )
{
avcodec_init
();
avcodec_register_all
();
av_log_set_callback
(
Libav
codec
Callback
);
av_log_set_callback
(
Libav
util
Callback
);
b_ffmpeginit
=
1
;
msg_Dbg
(
p_object
,
"libavcodec initialized (interface %d )"
,
...
...
modules/codec/ffmpeg/avcodec.h
View file @
3a49e9f3
...
...
@@ -21,8 +21,6 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#include <vlc_codecs.h>
/* BITMAPINFOHEADER */
picture_t
*
DecodeVideo
(
decoder_t
*
,
block_t
**
);
aout_buffer_t
*
DecodeAudio
(
decoder_t
*
,
block_t
**
);
...
...
modules/codec/ffmpeg/avformat.c
View file @
3a49e9f3
...
...
@@ -34,17 +34,10 @@
#include <vlc_codec.h>
/* ffmpeg header */
#define HAVE_MMX 1
#ifdef HAVE_LIBAVCODEC_AVCODEC_H
# include <libavcodec/avcodec.h>
#elif defined(HAVE_FFMPEG_AVCODEC_H)
# include <ffmpeg/avcodec.h>
#else
# include <avcodec.h>
#endif
#if LIBAVCODEC_BUILD < 5000
# error You must have a libavcodec >= 5000 (get CVS)
#ifdef HAVE_LIBAVFORMAT_AVFORMAT_H
# include <libavformat/avformat.h>
#elif defined(HAVE_FFMPEG_AVFORMAT_H)
# include <ffmpeg/avformat.h>
#endif
#include "avformat.h"
...
...
@@ -70,84 +63,3 @@ vlc_module_begin();
set_callbacks
(
OpenMux
,
CloseMux
);
#endif
vlc_module_end
();
/*****************************************************************************
*
*****************************************************************************/
void
LibavcodecCallback
(
void
*
p_opaque
,
int
i_level
,
const
char
*
psz_format
,
va_list
va
)
{
int
i_vlc_level
;
AVCodecContext
*
p_avctx
=
(
AVCodecContext
*
)
p_opaque
;
AVClass
*
p_avc
;
vlc_object_t
*
p_this
;
char
*
psz_new_format
;
const
char
*
psz_item_name
;
p_avc
=
p_avctx
?
p_avctx
->
av_class
:
0
;
#define cln p_avc->class_name
/* Make sure we can get p_this back */
if
(
!
p_avctx
||
!
p_avc
||
!
cln
||
cln
[
0
]
!=
'A'
||
cln
[
1
]
!=
'V'
||
cln
[
2
]
!=
'C'
||
cln
[
3
]
!=
'o'
||
cln
[
4
]
!=
'd'
||
cln
[
5
]
!=
'e'
||
cln
[
6
]
!=
'c'
)
{
if
(
i_level
==
AV_LOG_ERROR
)
vfprintf
(
stderr
,
psz_format
,
va
);
return
;
}
#undef cln
p_this
=
(
vlc_object_t
*
)
p_avctx
->
opaque
;
switch
(
i_level
)
{
case
AV_LOG_QUIET
:
i_vlc_level
=
VLC_MSG_ERR
;
break
;
case
AV_LOG_ERROR
:
i_vlc_level
=
VLC_MSG_WARN
;
break
;
case
AV_LOG_INFO
:
i_vlc_level
=
VLC_MSG_DBG
;
break
;
case
AV_LOG_DEBUG
:
/* Print debug messages if they were requested */
if
(
p_avctx
->
debug
)
vfprintf
(
stderr
,
psz_format
,
va
);
return
;
default:
return
;
}
psz_item_name
=
p_avc
->
item_name
(
p_opaque
);
psz_new_format
=
malloc
(
strlen
(
psz_format
)
+
strlen
(
psz_item_name
)
+
18
+
5
);
snprintf
(
psz_new_format
,
strlen
(
psz_format
)
+
strlen
(
psz_item_name
)
+
18
+
5
,
"%s (%s@%p)"
,
psz_format
,
p_avc
->
item_name
(
p_opaque
),
p_opaque
);
msg_GenericVa
(
p_this
,
i_vlc_level
,
MODULE_STRING
,
psz_new_format
,
va
);
free
(
psz_new_format
);
}
void
InitLibavcodec
(
vlc_object_t
*
p_object
)
{
static
int
b_ffmpeginit
=
0
;
vlc_mutex_t
*
lock
=
var_AcquireMutex
(
"avcodec"
);
/* *** init ffmpeg library (libavcodec) *** */
if
(
!
b_ffmpeginit
)
{
avcodec_init
();
avcodec_register_all
();
av_log_set_callback
(
LibavcodecCallback
);
b_ffmpeginit
=
1
;
msg_Dbg
(
p_object
,
"libavcodec initialized (interface %d )"
,
LIBAVCODEC_VERSION_INT
);
}
else
{
msg_Dbg
(
p_object
,
"libavcodec already initialized"
);
}
vlc_mutex_unlock
(
lock
);
}
modules/codec/ffmpeg/avutil.h
0 → 100644
View file @
3a49e9f3
/*****************************************************************************
* avutil.h: avutil helper functions
*****************************************************************************
* Copyright (C) 1999-2008 the VideoLAN team
* $Id$
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
* Gildas Bazin <gbazin@videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/*****************************************************************************
* Export libavutil messages to the VLC message system
*****************************************************************************/
void
LibavutilCallback
(
void
*
p_opaque
,
int
i_level
,
const
char
*
psz_format
,
va_list
va
)
{
int
i_vlc_level
;
AVCodecContext
*
p_avctx
=
(
AVCodecContext
*
)
p_opaque
;
AVClass
*
p_avc
;
vlc_object_t
*
p_this
;
char
*
psz_new_format
;
const
char
*
psz_item_name
;
p_avc
=
p_avctx
?
p_avctx
->
av_class
:
0
;
#define cln p_avc->class_name
/* Make sure we can get p_this back */
if
(
!
p_avctx
||
!
p_avc
||
!
cln
||
cln
[
0
]
!=
'A'
||
cln
[
1
]
!=
'V'
||
cln
[
2
]
!=
'C'
||
cln
[
3
]
!=
'o'
||
cln
[
4
]
!=
'd'
||
cln
[
5
]
!=
'e'
||
cln
[
6
]
!=
'c'
)
{
if
(
i_level
==
AV_LOG_ERROR
)
vfprintf
(
stderr
,
psz_format
,
va
);
return
;
}
#undef cln
p_this
=
(
vlc_object_t
*
)
p_avctx
->
opaque
;
switch
(
i_level
)
{
case
AV_LOG_QUIET
:
i_vlc_level
=
VLC_MSG_ERR
;
break
;
case
AV_LOG_ERROR
:
i_vlc_level
=
VLC_MSG_WARN
;
break
;
case
AV_LOG_INFO
:
i_vlc_level
=
VLC_MSG_DBG
;
break
;
case
AV_LOG_DEBUG
:
/* Print debug messages if they were requested */
if
(
p_avctx
->
debug
)
vfprintf
(
stderr
,
psz_format
,
va
);
return
;
default:
return
;
}
psz_item_name
=
p_avc
->
item_name
(
p_opaque
);
psz_new_format
=
malloc
(
strlen
(
psz_format
)
+
strlen
(
psz_item_name
)
+
18
+
5
);
snprintf
(
psz_new_format
,
strlen
(
psz_format
)
+
strlen
(
psz_item_name
)
+
18
+
5
,
"%s (%s@%p)"
,
psz_format
,
p_avc
->
item_name
(
p_opaque
),
p_opaque
);
msg_GenericVa
(
p_this
,
i_vlc_level
,
MODULE_STRING
,
psz_new_format
,
va
);
free
(
psz_new_format
);
}
modules/codec/ffmpeg/imgresample.c
View file @
3a49e9f3
/*****************************************************************************
*
ffmpeg.c: video decoder using ffmpeg library
*
imageresample.c: scaling and chroma conversion using the old libavcodec API
*****************************************************************************
* Copyright (C) 1999-2001 the VideoLAN team
* $Id$
...
...
@@ -33,32 +33,8 @@
#include <vlc_plugin.h>
#include <vlc_codec.h>
/* ffmpeg header */
#define HAVE_MMX 1
#ifdef HAVE_LIBAVCODEC_AVCODEC_H
# include <libavcodec/avcodec.h>
#elif defined(HAVE_FFMPEG_AVCODEC_H)
# include <ffmpeg/avcodec.h>
#else
# include <avcodec.h>
#endif
#if LIBAVCODEC_BUILD < 5000
# error You must have a libavcodec >= 5000 (get CVS)
#endif
#include "imgresample.h"
/****************************************************************************
* Local prototypes
****************************************************************************/
static
const
int
pi_mode_values
[]
=
{
0
,
1
,
2
,
4
,
8
,
5
,
6
,
9
,
10
};
static
const
char
*
const
ppsz_mode_descriptions
[]
=
{
N_
(
"Fast bilinear"
),
N_
(
"Bilinear"
),
N_
(
"Bicubic (good quality)"
),
N_
(
"Experimental"
),
N_
(
"Nearest neighbour (bad quality)"
),
N_
(
"Area"
),
N_
(
"Luma bicubic / chroma bilinear"
),
N_
(
"Gauss"
),
N_
(
"SincR"
),
N_
(
"Lanczos"
),
N_
(
"Bicubic spline"
)
};
/*****************************************************************************
* Module descriptor
*****************************************************************************/
...
...
modules/codec/ffmpeg/mux.c
View file @
3a49e9f3
...
...
@@ -42,12 +42,10 @@
#include "avformat.h"
#include "fourcc.h"
#include "avutil.h"
//#define AVFORMAT_DEBUG 1
/* Version checking */
#if defined(HAVE_LIBAVFORMAT_AVFORMAT_H) || defined(HAVE_FFMPEG_AVFORMAT_H)
static
const
char
*
const
ppsz_mux_options
[]
=
{
"mux"
,
NULL
};
...
...
@@ -95,7 +93,7 @@ int OpenMux( vlc_object_t *p_this )
/* Should we call it only once ? */
av_register_all
();
av_log_set_callback
(
Libav
codec
Callback
);
av_log_set_callback
(
Libav
util
Callback
);
config_ChainParse
(
p_mux
,
"ffmpeg-"
,
ppsz_mux_options
,
p_mux
->
p_cfg
);
...
...
@@ -224,7 +222,7 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
}
codec
=
stream
->
codec
;
/* This is used by Libav
codecCallback (ffmpeg.c
) to print messages */
/* This is used by Libav
utilCallback (avutil.h
) to print messages */
codec
->
opaque
=
(
void
*
)
p_mux
;
switch
(
p_input
->
p_fmt
->
i_cat
)
...
...
@@ -505,5 +503,3 @@ static offset_t IOSeek( void *opaque, offset_t offset, int whence )
return
0
;
}
#endif
/* HAVE_FFMPEG_AVFORMAT_H */
modules/codec/ffmpeg/swscale.c
View file @
3a49e9f3
...
...
@@ -38,7 +38,7 @@
* Local prototypes
****************************************************************************/
static
const
int
pi_mode_values
[]
=
{
0
,
1
,
2
,
4
,
8
,
5
,
6
,
9
,
10
};
static
const
char
*
const
ppsz_mode_descriptions
[]
=
const
char
*
const
ppsz_mode_descriptions
[]
=
{
N_
(
"Fast bilinear"
),
N_
(
"Bilinear"
),
N_
(
"Bicubic (good quality)"
),
N_
(
"Experimental"
),
N_
(
"Nearest neighbour (bad quality)"
),
N_
(
"Area"
),
N_
(
"Luma bicubic / chroma bilinear"
),
N_
(
"Gauss"
),
...
...
modules/codec/ffmpeg/video.c
View file @
3a49e9f3
...
...
@@ -33,6 +33,7 @@
#include <vlc_codec.h>
#include <vlc_vout.h>
#include <vlc_input.h>
/* hmmm, just for INPUT_RATE_DEFAULT */
#include <vlc_codecs.h>
/* BITMAPINFOHEADER */
/* ffmpeg header */
#ifdef HAVE_LIBAVCODEC_AVCODEC_H
...
...
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