Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
VLC
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
12
Merge Requests
12
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
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
Steve Lhomme
VLC
Commits
5a8df6b0
Commit
5a8df6b0
authored
Aug 29, 2003
by
Laurent Aimar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* all: removed old encoding way.
parent
ecc97852
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
1 addition
and
1348 deletions
+1
-1348
Makefile.am
Makefile.am
+0
-1
configure.ac
configure.ac
+1
-12
include/encoder.h
include/encoder.h
+0
-82
modules/encoder/.cvsignore
modules/encoder/.cvsignore
+0
-11
modules/encoder/Modules.am
modules/encoder/Modules.am
+0
-1
modules/encoder/ffmpeg/.cvsignore
modules/encoder/ffmpeg/.cvsignore
+0
-11
modules/encoder/ffmpeg/Modules.am
modules/encoder/ffmpeg/Modules.am
+0
-6
modules/encoder/ffmpeg/audio.c
modules/encoder/ffmpeg/audio.c
+0
-64
modules/encoder/ffmpeg/encoder.c
modules/encoder/ffmpeg/encoder.c
+0
-68
modules/encoder/ffmpeg/video.c
modules/encoder/ffmpeg/video.c
+0
-314
modules/encoder/xvid.c
modules/encoder/xvid.c
+0
-357
modules/video_output/encoder.c
modules/video_output/encoder.c
+0
-421
No files found.
Makefile.am
View file @
5a8df6b0
...
@@ -71,7 +71,6 @@ HEADERS_include = \
...
@@ -71,7 +71,6 @@ HEADERS_include = \
include/darwin_specific.h
\
include/darwin_specific.h
\
include/charset.h
\
include/charset.h
\
include/codecs.h
\
include/codecs.h
\
include/encoder.h
\
include/ninput.h
\
include/ninput.h
\
include/input_ext-dec.h
\
include/input_ext-dec.h
\
include/input_ext-intf.h
\
include/input_ext-intf.h
\
...
...
configure.ac
View file @
5a8df6b0
dnl Autoconf settings for vlc
dnl Autoconf settings for vlc
dnl $Id: configure.ac,v 1.
69 2003/08/27 08:27:52 gbazin
Exp $
dnl $Id: configure.ac,v 1.
70 2003/08/29 19:50:12 fenrir
Exp $
AC_INIT(vlc,0.6.3-cvs)
AC_INIT(vlc,0.6.3-cvs)
...
@@ -1621,11 +1621,6 @@ then
...
@@ -1621,11 +1621,6 @@ then
fi
fi
fi
fi
dnl Duplicate the ffmpeg CPPFLAGS and LDFLAGS for the encoder
AX_ADD_CPPFLAGS([encoder_ffmpeg],[${CPPFLAGS_ffmpeg}])
dnl XXX: we don't link with -lavcodec blah blah blah
dnl AX_ADD_LDFLAGS([encoder_ffmpeg],[${LDFLAGS_ffmpeg}])
ac_have_vorbis_headers=yes
ac_have_vorbis_headers=yes
AC_CHECK_HEADERS(vorbis/vorbisenc.h vorbis/codec.h,,
AC_CHECK_HEADERS(vorbis/vorbisenc.h vorbis/codec.h,,
ac_have_vorbis_headers=no)
ac_have_vorbis_headers=no)
...
@@ -1743,10 +1738,6 @@ then
...
@@ -1743,10 +1738,6 @@ then
LDFLAGS="${LDFLAGS_save}"
LDFLAGS="${LDFLAGS_save}"
CPPFLAGS="${CPPFLAGS_save}"
CPPFLAGS="${CPPFLAGS_save}"
fi
fi
dnl Duplicate the xvid CPPFLAGS and LDFLAGS for the encoder
AX_ADD_LDFLAGS([encoder_xvid],[${LDFLAGS_xvid}])
AX_ADD_CPPFLAGS([encoder_xvid],[${CPPFLAGS_xvid}])
fi
fi
dnl
dnl
...
@@ -3318,8 +3309,6 @@ AC_OUTPUT([
...
@@ -3318,8 +3309,6 @@ AC_OUTPUT([
modules/demux/mp4/Makefile
modules/demux/mp4/Makefile
modules/demux/mpeg/Makefile
modules/demux/mpeg/Makefile
modules/demux/util/Makefile
modules/demux/util/Makefile
modules/encoder/Makefile
modules/encoder/ffmpeg/Makefile
modules/gui/Makefile
modules/gui/Makefile
modules/gui/beos/Makefile
modules/gui/beos/Makefile
modules/gui/pda/Makefile
modules/gui/pda/Makefile
...
...
include/encoder.h
deleted
100644 → 0
View file @
ecc97852
/*****************************************************************************
* encoder.h :
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* $Id: encoder.h,v 1.1 2003/01/22 10:41:57 fenrir Exp $
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
* 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., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
#ifndef _ENCODER_H
#define _ENCODER_H
typedef
struct
encoder_sys_t
encoder_sys_t
;
typedef
struct
video_encoder_s
{
VLC_COMMON_MEMBERS
module_t
*
p_module
;
vlc_fourcc_t
i_codec
;
/* in */
vlc_fourcc_t
i_chroma
;
/* in/out */
int
i_width
;
/* in/out */
int
i_height
;
/* in/out */
int
i_aspect
;
/* in/out */
size_t
i_buffer_size
;
/* in/out */
encoder_sys_t
*
p_sys
;
int
(
*
pf_init
)
(
struct
video_encoder_s
*
p_enc
);
int
(
*
pf_encode
)
(
struct
video_encoder_s
*
p_enc
,
picture_t
*
p_pic
,
void
*
p_data
,
size_t
*
pi_data
);
void
(
*
pf_end
)
(
struct
video_encoder_s
*
p_enc
);
}
video_encoder_t
;
/*
* Video decoder:
*
* = at loading a video decoder must
* * see if i_codec is supporte, if not => failling
* * modify i_width/i_height/i_chroma/i_aspect if required (for example,
* if a video codec required %8 size)
* * init/check the library
* * set pf_init, pf_encode and pf_end
* * set i_buffer_size to the max buffer size required to output a single frame
*
* = pf_init must
* * start encoding processing
* * doesn't change any parameters (i_chroma/i_width/i_height/i_aspect)
* * check for passed parameters (no one for the moment)
*
* = pf_encode must
* * encode a single frame
* * doesn't change any parameters (...)
* * doesn't look for passed paramters
*
* = pf_end must
* * end the encoding process
* * revert all that pf_init (and pf_encode) has done (memory...)
*
* = at unloading, a video decoder must revert all that was done while loading
*
* XXX: pf_init/pf_end could be called multiple time without the plugin unloaded.
* XXX: all memory allocated by video encoder MUST be unallocated by video encoder
*
*/
#endif
modules/encoder/.cvsignore
deleted
100644 → 0
View file @
ecc97852
.deps
.dirstamp
*.lo
*.la
*.dll
*.dylib
*.sl
*.so
Makefile.am
Makefile.in
Makefile
modules/encoder/Modules.am
deleted
100644 → 0
View file @
ecc97852
SOURCES_encoder_xvid = xvid.c
modules/encoder/ffmpeg/.cvsignore
deleted
100644 → 0
View file @
ecc97852
.deps
.dirstamp
*.lo
*.la
*.dll
*.dylib
*.sl
*.so
Makefile.am
Makefile.in
Makefile
modules/encoder/ffmpeg/Modules.am
deleted
100644 → 0
View file @
ecc97852
SOURCES_encoder_ffmpeg = \
encoder.c \
video.c \
audio.c \
$(NULL)
modules/encoder/ffmpeg/audio.c
deleted
100644 → 0
View file @
ecc97852
/*****************************************************************************
* audio.c : audio encoder using ffmpeg library
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* $Id: audio.c,v 1.2 2003/04/20 11:57:13 gbazin Exp $
*
* Authors: Laurent Aimar
*
* 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., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
#include <vlc/vlc.h>
#include <vlc/vout.h>
#include <vlc/input.h>
#include <vlc/decoder.h>
#include <stdlib.h>
#include "codecs.h"
/* ffmpeg header */
#ifdef HAVE_FFMPEG_AVCODEC_H
# include <ffmpeg/avcodec.h>
#else
# include <avcodec.h>
#endif
/*****************************************************************************
* Local prototypes
*****************************************************************************/
int
E_
(
OpenEncoderAudio
)
(
vlc_object_t
*
);
void
E_
(
CloseEncoderAudio
)(
vlc_object_t
*
);
struct
encoder_sys_t
{
void
*
audio_handle
;
};
int
E_
(
OpenEncoderAudio
)
(
vlc_object_t
*
p_this
)
{
return
VLC_EGENERIC
;
}
void
E_
(
CloseEncoderAudio
)(
vlc_object_t
*
p_this
)
{
;
}
modules/encoder/ffmpeg/encoder.c
deleted
100644 → 0
View file @
ecc97852
/*****************************************************************************
* encoder.c : audio/video encoder using ffmpeg library
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* $Id: encoder.c,v 1.4 2003/04/27 23:16:35 gbazin Exp $
*
* Authors: Laurent Aimar
*
* 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., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
#include <vlc/vlc.h>
#include <vlc/vout.h>
#include <vlc/input.h>
#include <vlc/decoder.h>
#include <stdlib.h>
#include "codecs.h"
#include "encoder.h"
/*****************************************************************************
* Local prototypes
*****************************************************************************/
int
E_
(
OpenEncoderVideo
)(
vlc_object_t
*
);
void
E_
(
CloseEncoderVideo
)(
vlc_object_t
*
);
int
E_
(
OpenEncoderAudio
)
(
vlc_object_t
*
);
void
E_
(
CloseEncoderAudio
)(
vlc_object_t
*
);
/*****************************************************************************
* Module descriptor
*****************************************************************************/
vlc_module_begin
();
set_description
(
_
(
"ffmpeg video encoder"
)
);
add_shortcut
(
"ffmpeg"
);
set_capability
(
"video encoder"
,
100
);
set_callbacks
(
E_
(
OpenEncoderVideo
),
E_
(
CloseEncoderVideo
)
);
add_category_hint
(
"video setting"
,
NULL
,
VLC_TRUE
);
add_integer
(
"encoder-ffmpeg-video-bitrate"
,
1000
,
NULL
,
"bitrate (kb/s)"
,
"bitrate (kb/s)"
,
VLC_TRUE
);
add_integer
(
"encoder-ffmpeg-video-max-key-interval"
,
10
,
NULL
,
"max key interval"
,
"maximum value of frames between two keyframes"
,
VLC_TRUE
);
add_integer
(
"encoder-ffmpeg-video-min-quant"
,
2
,
NULL
,
"min quantizer"
,
"range 1-31"
,
VLC_TRUE
);
add_integer
(
"encoder-ffmpeg-video-max-quant"
,
31
,
NULL
,
"max quantizer"
,
"range 1-31"
,
VLC_TRUE
);
add_submodule
();
set_description
(
_
(
"ffmpeg audio encoder"
)
);
set_capability
(
"audio encoder"
,
50
);
set_callbacks
(
E_
(
OpenEncoderAudio
),
E_
(
CloseEncoderAudio
)
);
add_category_hint
(
"audio setting"
,
NULL
,
VLC_TRUE
);
add_integer
(
"encoder-ffmpeg-audio-bitrate"
,
64
,
NULL
,
"bitrate (kb/s)"
,
"bitrate (kb/s)"
,
VLC_TRUE
);
vlc_module_end
();
modules/encoder/ffmpeg/video.c
deleted
100644 → 0
View file @
ecc97852
/*****************************************************************************
* video.c : video encoder using ffmpeg library
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* $Id: video.c,v 1.5 2003/07/28 20:25:30 jpsaman Exp $
*
* Authors: Laurent Aimar
*
* 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., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
#include <vlc/vlc.h>
#include <vlc/vout.h>
#include <vlc/input.h>
#include <vlc/decoder.h>
#include <stdlib.h>
#include "codecs.h"
#include "encoder.h"
/* ffmpeg header */
#ifdef HAVE_FFMPEG_AVCODEC_H
# include <ffmpeg/avcodec.h>
#else
# include <avcodec.h>
#endif
int
E_
(
OpenEncoderVideo
)
(
vlc_object_t
*
);
void
E_
(
CloseEncoderVideo
)(
vlc_object_t
*
);
/*****************************************************************************
* Local prototypes
*****************************************************************************/
static
int
Init
(
video_encoder_t
*
p_encoder
);
static
int
Encode
(
video_encoder_t
*
p_encoder
,
picture_t
*
p_pic
,
void
*
p_data
,
size_t
*
pi_data
);
static
void
End
(
video_encoder_t
*
p_encoder
);
/*****************************************************************************
* Local definitions
*****************************************************************************/
struct
encoder_sys_t
{
char
*
psz_codec
;
AVCodecContext
*
p_context
;
AVCodec
*
p_codec
;
AVFrame
*
p_frame
;
};
/*****************************************************************************
* OpenEncoderVideo:
*****************************************************************************
*
*****************************************************************************/
int
E_
(
OpenEncoderVideo
)
(
vlc_object_t
*
p_this
)
{
video_encoder_t
*
p_encoder
=
(
video_encoder_t
*
)
p_this
;
/* *** check supported codec *** */
switch
(
p_encoder
->
i_codec
)
{
case
VLC_FOURCC
(
'm'
,
'p'
,
'1'
,
'v'
):
case
VLC_FOURCC
(
'm'
,
'p'
,
'g'
,
'v'
):
case
VLC_FOURCC
(
'm'
,
'p'
,
'4'
,
'v'
):
case
VLC_FOURCC
(
'h'
,
'u'
,
'f'
,
'f'
):
break
;
default:
return
VLC_EGENERIC
;
}
/* *** init library */
avcodec_init
();
avcodec_register_all
();
/* *** fix parameters *** */
switch
(
p_encoder
->
i_chroma
)
{
/* Planar YUV formats */
case
VLC_FOURCC
(
'I'
,
'4'
,
'4'
,
'4'
):
case
VLC_FOURCC
(
'I'
,
'4'
,
'2'
,
'2'
):
case
VLC_FOURCC
(
'Y'
,
'V'
,
'1'
,
'2'
):
case
VLC_FOURCC
(
'I'
,
'4'
,
'2'
,
'0'
):
case
VLC_FOURCC
(
'I'
,
'Y'
,
'U'
,
'V'
):
case
VLC_FOURCC
(
'I'
,
'4'
,
'1'
,
'1'
):
case
VLC_FOURCC
(
'I'
,
'4'
,
'1'
,
'0'
):
/* Packed YUV formats */
case
VLC_FOURCC
(
'Y'
,
'U'
,
'Y'
,
'2'
):
case
VLC_FOURCC
(
'U'
,
'Y'
,
'V'
,
'Y'
):
/* Packed RGB formats */
case
VLC_FOURCC
(
'R'
,
'V'
,
'3'
,
'2'
):
case
VLC_FOURCC
(
'R'
,
'V'
,
'2'
,
'4'
):
case
VLC_FOURCC
(
'R'
,
'V'
,
'1'
,
'6'
):
case
VLC_FOURCC
(
'R'
,
'V'
,
'1'
,
'5'
):
case
VLC_FOURCC
(
'R'
,
'G'
,
'B'
,
'2'
):
break
;
default:
return
VLC_EGENERIC
;
}
#if 0
p_encoder->i_width = ( p_encoder->i_width + 15 )&0xfffff8;
p_encoder->i_height = ( p_encoder->i_height + 15 )&0xfffff8;
#endif
/* *** set exported functions *** */
p_encoder
->
pf_init
=
Init
;
p_encoder
->
pf_encode
=
Encode
;
p_encoder
->
pf_end
=
End
;
return
VLC_SUCCESS
;
}
/*****************************************************************************
* CloseEncoderVideo:
*****************************************************************************
*
*****************************************************************************/
void
E_
(
CloseEncoderVideo
)(
vlc_object_t
*
p_this
)
{
;
}
/*****************************************************************************
* Init:
*****************************************************************************
*
*****************************************************************************/
static
int
Init
(
video_encoder_t
*
p_encoder
)
{
encoder_sys_t
*
p_sys
;
int
i_codec
;
/* *** allocate memory *** */
if
(
!
(
p_encoder
->
p_sys
=
p_sys
=
malloc
(
sizeof
(
encoder_sys_t
)
)
)
)
{
msg_Err
(
p_encoder
,
"out of memory"
);
return
VLC_EGENERIC
;
}
memset
(
p_sys
,
0
,
sizeof
(
encoder_sys_t
)
);
/* *** ask for the codec *** */
switch
(
p_encoder
->
i_codec
)
{
case
VLC_FOURCC
(
'm'
,
'p'
,
'1'
,
'v'
):
case
VLC_FOURCC
(
'm'
,
'p'
,
'g'
,
'v'
):
p_encoder
->
p_sys
->
psz_codec
=
"MPEG I"
;
i_codec
=
CODEC_ID_MPEG1VIDEO
;
break
;
case
VLC_FOURCC
(
'm'
,
'p'
,
'4'
,
'v'
):
p_encoder
->
p_sys
->
psz_codec
=
"MPEG-4"
;
i_codec
=
CODEC_ID_MPEG4
;
break
;
case
VLC_FOURCC
(
'h'
,
'u'
,
'f'
,
'f'
):
p_encoder
->
p_sys
->
psz_codec
=
"Huff YUV"
;
i_codec
=
CODEC_ID_HUFFYUV
;
break
;
default:
return
VLC_EGENERIC
;
}
if
(
(
p_sys
->
p_codec
=
avcodec_find_encoder
(
i_codec
)
)
==
NULL
)
{
msg_Err
(
p_encoder
,
"cannot find encoder for %s"
,
p_encoder
->
p_sys
->
psz_codec
);
return
VLC_EGENERIC
;
}
msg_Dbg
(
p_encoder
,
"encoding with %s"
,
p_encoder
->
p_sys
->
psz_codec
);
#define p_frame p_sys->p_frame
#define p_context p_sys->p_context
/* *** set context properties *** */
p_context
=
avcodec_alloc_context
();
p_context
->
bit_rate
=
config_GetInt
(
p_encoder
,
"encoder-ffmpeg-video-bitrate"
)
*
1000
;
p_context
->
width
=
p_encoder
->
i_width
;
p_context
->
height
=
p_encoder
->
i_height
;
#if LIBAVCODEC_BUILD >= 4662
p_context
->
frame_rate
=
25
*
DEFAULT_FRAME_RATE_BASE
;
#else
p_context
->
frame_rate
=
25
*
FRAME_RATE_BASE
;
#endif
p_context
->
gop_size
=
config_GetInt
(
p_encoder
,
"encoder-ffmpeg-video-max-key-interval"
);
p_context
->
qmin
=
__MAX
(
__MIN
(
config_GetInt
(
p_encoder
,
"encoder-ffmpeg-video-min-quant"
),
31
),
1
);
p_context
->
qmax
=
__MAX
(
__MIN
(
config_GetInt
(
p_encoder
,
"encoder-ffmpeg-video-max-quant"
),
31
),
1
);
if
(
avcodec_open
(
p_context
,
p_encoder
->
p_sys
->
p_codec
)
<
0
)
{
msg_Err
(
p_encoder
,
"failed to open %s codec"
,
p_encoder
->
p_sys
->
psz_codec
);
return
VLC_EGENERIC
;
}
p_frame
=
avcodec_alloc_frame
();
switch
(
p_encoder
->
i_chroma
)
{
/* Planar YUV formats */
case
VLC_FOURCC
(
'I'
,
'4'
,
'4'
,
'4'
):
p_frame
->
pict_type
=
PIX_FMT_YUV444P
;
break
;
case
VLC_FOURCC
(
'I'
,
'4'
,
'2'
,
'2'
):
p_frame
->
pict_type
=
PIX_FMT_YUV422P
;
break
;
case
VLC_FOURCC
(
'Y'
,
'V'
,
'1'
,
'2'
):
case
VLC_FOURCC
(
'I'
,
'4'
,
'2'
,
'0'
):
case
VLC_FOURCC
(
'I'
,
'Y'
,
'U'
,
'V'
):
p_frame
->
pict_type
=
PIX_FMT_YUV420P
;
break
;
case
VLC_FOURCC
(
'I'
,
'4'
,
'1'
,
'1'
):
p_frame
->
pict_type
=
PIX_FMT_YUV411P
;
break
;
case
VLC_FOURCC
(
'I'
,
'4'
,
'1'
,
'0'
):
p_frame
->
pict_type
=
PIX_FMT_YUV410P
;
break
;
/* Packed YUV formats */
case
VLC_FOURCC
(
'Y'
,
'U'
,
'Y'
,
'2'
):
case
VLC_FOURCC
(
'U'
,
'Y'
,
'V'
,
'Y'
):
p_frame
->
pict_type
=
PIX_FMT_YUV422
;
break
;
/* Packed RGB formats */
case
VLC_FOURCC
(
'R'
,
'V'
,
'3'
,
'2'
):
p_frame
->
pict_type
=
PIX_FMT_RGBA32
;
break
;
case
VLC_FOURCC
(
'R'
,
'V'
,
'2'
,
'4'
):
p_frame
->
pict_type
=
PIX_FMT_RGB24
;
//p_frame->pict_type = PIX_FMT_BGR24;
break
;
case
VLC_FOURCC
(
'R'
,
'V'
,
'1'
,
'6'
):
p_frame
->
pict_type
=
PIX_FMT_RGB565
;
break
;
case
VLC_FOURCC
(
'R'
,
'V'
,
'1'
,
'5'
):
p_frame
->
pict_type
=
PIX_FMT_RGB555
;
break
;
case
VLC_FOURCC
(
'R'
,
'G'
,
'B'
,
'2'
):
p_frame
->
pict_type
=
PIX_FMT_GRAY8
;
break
;
default:
return
VLC_EGENERIC
;
}
return
VLC_SUCCESS
;
#undef p_context
#undef p_frame
}
/*****************************************************************************
* Encode:
*****************************************************************************
*
*****************************************************************************/
static
int
Encode
(
video_encoder_t
*
p_encoder
,
picture_t
*
p_pic
,
void
*
p_data
,
size_t
*
pi_data
)
{
#define p_frame p_encoder->p_sys->p_frame
#define p_context p_encoder->p_sys->p_context
int
i
;
for
(
i
=
0
;
i
<
p_pic
->
i_planes
;
i
++
)
{
p_frame
->
linesize
[
i
]
=
p_pic
->
p
[
i
].
i_pitch
;
p_frame
->
data
[
i
]
=
p_pic
->
p
[
i
].
p_pixels
;
}
*
pi_data
=
avcodec_encode_video
(
p_context
,
p_data
,
*
pi_data
,
p_frame
);
return
VLC_SUCCESS
;
#undef p_context
#undef p_frame
}
/*****************************************************************************
* End:
*****************************************************************************
*
*****************************************************************************/
static
void
End
(
video_encoder_t
*
p_encoder
)
{
avcodec_close
(
p_encoder
->
p_sys
->
p_context
);
free
(
p_encoder
->
p_sys
->
p_context
);
p_encoder
->
p_sys
->
p_context
=
NULL
;
p_encoder
->
p_sys
->
p_codec
=
NULL
;
}
modules/encoder/xvid.c
deleted
100644 → 0
View file @
ecc97852
/*****************************************************************************
* xvid.c: an encoder for libxvidcore, the Xvid video codec
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* $Id: xvid.c,v 1.3 2003/02/22 16:10:31 fenrir Exp $
*
* Authors: Laurent Aimar
*
* 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., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
#include <vlc/vlc.h>
#include <vlc/vout.h>