Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
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
Commits
67b39ef6
Commit
67b39ef6
authored
May 24, 2010
by
Jean-Baptiste Kempf
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Contribs: update VPX support
parent
3ed9cb74
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
49 additions
and
49 deletions
+49
-49
extras/contrib/src/Makefile
extras/contrib/src/Makefile
+1
-1
extras/contrib/src/Patches/ffmpeg-libvpx.patch
extras/contrib/src/Patches/ffmpeg-libvpx.patch
+48
-48
No files found.
extras/contrib/src/Makefile
View file @
67b39ef6
...
...
@@ -1115,7 +1115,7 @@ ifdef HAVE_WIN64
FFMPEGCONF
+=
--disable-bzlib
--disable-decoder
=
dca
--disable-encoder
=
vorbis
--enable-libmp3lame
--enable-w32threads
--disable-dxva2
--disable-bsfs
else
ifdef
HAVE_WIN32
FFMPEGCONF
+=
--disable-bzlib
--disable-decoder
=
dca
--disable-encoder
=
vorbis
--enable-libmp3lame
--enable-w32threads
--enable-dxva2
--disable-bsfs
FFMPEGCONF
+=
--disable-bzlib
--disable-decoder
=
dca
--disable-encoder
=
vorbis
--enable-libmp3lame
--enable-w32threads
--enable-dxva2
--disable-bsfs
--enable-libvpx
else
FFMPEGCONF
+=
--enable-pthreads
endif
...
...
extras/contrib/src/Patches/ffmpeg-libvpx.patch
View file @
67b39ef6
...
...
@@ -1033,10 +1033,33 @@ Index: ffpresets/libvpx-720p.ffpreset
+altref=1
+maxrate=24M
+minrate=100k
Index: libavformat/matroskaenc.c
Index: libavformat/Makefile
===================================================================
--- libavformat/Makefile (revision 23210)
+++ libavformat/Makefile (working copy)
@@ -255,6 +255,8 @@
OBJS-$(CONFIG_W64_DEMUXER)
OBJS-$(CONFIG_WAV_DEMUXER) += wav.o riff.o raw.o
OBJS-$(CONFIG_WAV_MUXER) += wav.o riff.o
OBJS-$(CONFIG_WC3_DEMUXER) += wc3movie.o
+OBJS-$(CONFIG_WEBM_MUXER) += matroskaenc.o matroska.o \
+ riff.o
OBJS-$(CONFIG_WSAUD_DEMUXER) += westwood.o
OBJS-$(CONFIG_WSVQA_DEMUXER) += westwood.o
OBJS-$(CONFIG_WV_DEMUXER) += wv.o apetag.o id3v1.o
Index: libavformat/allformats.c
===================================================================
--- libavformat/matroskaenc.c (revision 23210)
+++ libavformat/matroskaenc.c (working copy)
--- libavformat/allformats.c (revision 23210)
+++ libavformat/allformats.c (working copy)
@@ -203,6 +203,7 @@
void av_register_all(void)
REGISTER_DEMUXER (W64, w64);
REGISTER_MUXDEMUX (WAV, wav);
REGISTER_DEMUXER (WC3, wc3);
+ REGISTER_MUXER (WEBM, webm);
REGISTER_DEMUXER (WSAUD, wsaud);
REGISTER_DEMUXER (WSVQA, wsvqa);
REGISTER_DEMUXER (WV, wv);
--- libavformat/matroskaenc.c.orig 2010-05-24 23:47:39.000000000 +0200
+++ libavformat/matroskaenc.c 2010-05-24 23:49:11.000000000 +0200
@@ -20,15 +20,21 @@
*/
...
...
@@ -1059,7 +1082,7 @@ Index: libavformat/matroskaenc.c
typedef struct ebml_master {
int64_t pos; ///< absolute offset in the file where the master's elements start
@@ -81,6 +87,12 @@
typedef struct MatroskaMuxContext {
@@ -81,6 +87,12 @@
mkv_track *tracks;
struct AVMD5 *md5_ctx;
...
...
@@ -1072,7 +1095,7 @@ Index: libavformat/matroskaenc.c
} MatroskaMuxContext;
@@ -429,6 +441,7 @@
static int put_xiph_codecpriv(AVFormatCo
@@ -429,6 +441,7 @@
return 0;
}
...
...
@@ -1080,7 +1103,7 @@ Index: libavformat/matroskaenc.c
static void get_aac_sample_rates(AVFormatContext *s, AVCodecContext *codec, int *sample_rate, int *output_sample_rate)
{
int sri;
@@ -455,6 +468,7 @@
static void get_aac_sample_rates(AVForma
@@ -455,6 +468,7 @@
*output_sample_rate = ff_mpeg4audio_sample_rates[sri];
}
}
...
...
@@ -1088,7 +1111,7 @@ Index: libavformat/matroskaenc.c
static int mkv_write_codecprivate(AVFormatContext *s, ByteIOContext *pb, AVCodecContext *codec, int native_id, int qt_id)
{
@@ -469,12 +483,15 @@
static int mkv_write_codecprivate(AVForm
@@ -469,12 +483,15 @@
if (native_id) {
if (codec->codec_id == CODEC_ID_VORBIS || codec->codec_id == CODEC_ID_THEORA)
ret = put_xiph_codecpriv(s, dyn_cp, codec);
...
...
@@ -1104,7 +1127,7 @@ Index: libavformat/matroskaenc.c
} else if (codec->codec_type == AVMEDIA_TYPE_VIDEO) {
if (qt_id) {
if (!codec->codec_tag)
@@ -503,6 +520,7 @@
static int mkv_write_codecprivate(AVForm
@@ -503,6 +520,7 @@
codec->codec_tag = tag;
ff_put_wav_header(dyn_cp, codec);
...
...
@@ -1112,7 +1135,7 @@ Index: libavformat/matroskaenc.c
}
codecpriv_size = url_close_dyn_buf(dyn_cp, &codecpriv);
@@ -537,8 +555,10 @@
static int mkv_write_tracks(AVFormatCont
@@ -537,8 +555,10 @@
if (!bit_depth)
bit_depth = av_get_bits_per_sample_format(codec->sample_fmt);
...
...
@@ -1123,7 +1146,7 @@ Index: libavformat/matroskaenc.c
track = start_ebml_master(pb, MATROSKA_ID_TRACKENTRY, 0);
put_ebml_uint (pb, MATROSKA_ID_TRACKNUMBER , i + 1);
@@ -56
6,8 +586,16 @@
static int mkv_write_tracks(AVFormatCont
@@ -56
5,9 +585,18 @@
switch (codec->codec_type) {
case AVMEDIA_TYPE_VIDEO:
...
...
@@ -1134,13 +1157,15 @@ Index: libavformat/matroskaenc.c
+ return -1;
+ }
+#endif
+
put_ebml_uint(pb, MATROSKA_ID_TRACKTYPE, MATROSKA_TRACK_TYPE_VIDEO);
put_ebml_uint(pb, MATROSKA_ID_TRACKDEFAULTDURATION, av_q2d(codec->time_base)*1E9);
+#if CONFIG_MATROSKA_MUXER
if (!native_id &&
ff_codec_get_tag(codec_movvideo_tags, codec->codec_id) &&
(!ff_codec_get_tag(ff_codec_bmp_tags, codec->codec_id)
@@ -583,7 +61
1,7 @@
static int mkv_write_tracks(AVFormatCont
@@ -583,7 +61
2,7 @@
put_ebml_string(pb, MATROSKA_ID_CODECID, "V_MS/VFW/FOURCC");
mkv->tracks[i].write_dts = 1;
}
...
...
@@ -1149,7 +1174,7 @@ Index: libavformat/matroskaenc.c
subinfo = start_ebml_master(pb, MATROSKA_ID_TRACKVIDEO, 0);
// XXX: interlace flag?
put_ebml_uint (pb, MATROSKA_ID_VIDEOPIXELWIDTH , codec->width);
@@ -597,6 +62
5,13 @@
static int mkv_write_tracks(AVFormatCont
@@ -597,6 +62
6,13 @@
break;
case AVMEDIA_TYPE_AUDIO:
...
...
@@ -1163,7 +1188,7 @@ Index: libavformat/matroskaenc.c
put_ebml_uint(pb, MATROSKA_ID_TRACKTYPE, MATROSKA_TRACK_TYPE_AUDIO);
if (!native_id)
@@ -693,7 +72
8,7 @@
static int mkv_write_header(AVFormatCont
@@ -693,7 +72
9,7 @@
put_ebml_uint (pb, EBML_ID_EBMLREADVERSION , 1);
put_ebml_uint (pb, EBML_ID_EBMLMAXIDLENGTH , 4);
put_ebml_uint (pb, EBML_ID_EBMLMAXSIZELENGTH , 8);
...
...
@@ -1172,7 +1197,7 @@ Index: libavformat/matroskaenc.c
put_ebml_uint (pb, EBML_ID_DOCTYPEVERSION , 2);
put_ebml_uint (pb, EBML_ID_DOCTYPEREADVERSION , 2);
end_ebml_master(pb, ebml_header);
@@ -746,6 +78
1,20 @@
static int mkv_write_header(AVFormatCont
@@ -746,6 +78
2,20 @@
if (mkv->cues == NULL)
return AVERROR(ENOMEM);
...
...
@@ -1193,7 +1218,7 @@ Index: libavformat/matroskaenc.c
put_flush_packet(pb);
return 0;
}
@@ -831,10 +88
0,12 @@
static void mkv_write_block(AVFormatCont
@@ -831,10 +88
1,12 @@
av_log(s, AV_LOG_DEBUG, "Writing block at offset %" PRIu64 ", size %d, "
"pts %" PRId64 ", dts %" PRId64 ", duration %d, flags %d\n",
url_ftell(pb), pkt->size, pkt->pts, pkt->dts, pkt->duration, flags);
...
...
@@ -1206,7 +1231,7 @@ Index: libavformat/matroskaenc.c
data = pkt->data;
put_ebml_id(pb, blockid);
put_ebml_num(pb, size+4, 0);
@@ -910,9 +96
1,10 @@
static int mkv_write_packet(AVFormatCont
@@ -910,9 +96
2,10 @@
if (ret < 0) return ret;
}
...
...
@@ -1219,7 +1244,7 @@ Index: libavformat/matroskaenc.c
av_log(s, AV_LOG_DEBUG, "Starting new cluster at offset %" PRIu64
" bytes, pts %" PRIu64 "\n", url_ftell(pb), ts);
end_ebml_master(pb, mkv->cluster);
@@ -924,7 +97
6,59 @@
static int mkv_write_packet(AVFormatCont
@@ -924,7 +97
7,59 @@
mkv->duration = FFMAX(mkv->duration, ts + duration);
return 0;
}
...
...
@@ -1248,10 +1273,10 @@ Index: libavformat/matroskaenc.c
+ if (codec->codec_type == AVMEDIA_TYPE_VIDEO && keyframe && mkv->cluster_pos) {
+ // Start a new cluster when we get a key frame
+ int64_t ts = mkv->tracks[pkt->stream_index].write_dts ? pkt->dts : pkt->pts;
+
+ av_log(s, AV_LOG_DEBUG, "Starting new cluster at offset %" PRIu64
+ " bytes, pts %" PRIu64 "\n", url_ftell(pb), ts);
+
+ end_ebml_master(pb, mkv->cluster);
+ mkv->cluster_pos = 0;
+ if (mkv->dyn_bc)
...
...
@@ -1279,7 +1304,7 @@ Index: libavformat/matroskaenc.c
static int mkv_write_trailer(AVFormatContext *s)
{
MatroskaMuxContext *mkv = s->priv_data;
@@ -932,6 +103
6,18 @@
static int mkv_write_trailer(AVFormatCon
@@ -932,6 +103
7,18 @@
int64_t currentpos, second_seekhead, cuespos;
int ret;
...
...
@@ -1298,7 +1323,7 @@ Index: libavformat/matroskaenc.c
if (mkv->dyn_bc) {
end_ebml_master(mkv->dyn_bc, mkv->cluster);
mkv_flush_dynbuf(s);
@@ -970,10 +108
6,15 @@
static int mkv_write_trailer(AVFormatCon
@@ -970,10 +108
7,15 @@
end_ebml_master(pb, mkv->segment);
av_free(mkv->md5_ctx);
av_free(mkv->tracks);
...
...
@@ -1314,7 +1339,7 @@ Index: libavformat/matroskaenc.c
AVOutputFormat matroska_muxer = {
"matroska",
NULL_IF_CONFIG_SMALL("Matroska file format"),
@@ -989,7 +111
0,23 @@
AVOutputFormat matroska_muxer = {
@@ -989,7 +111
1,23 @@
.codec_tag = (const AVCodecTag* const []){ff_codec_bmp_tags, ff_codec_wav_tags, 0},
.subtitle_codec = CODEC_ID_TEXT,
};
...
...
@@ -1339,33 +1364,8 @@ Index: libavformat/matroskaenc.c
AVOutputFormat matroska_audio_muxer = {
"matroska",
NULL_IF_CONFIG_SMALL("Matroska file format"),
@@ -1004,3 +114
1,4 @@
AVOutputFormat matroska_audio_muxer = {
@@ -1004,3 +114
2,4 @@
.flags = AVFMT_GLOBALHEADER,
.codec_tag = (const AVCodecTag* const []){ff_codec_wav_tags, 0},
};
+#endif
Index: libavformat/Makefile
===================================================================
--- libavformat/Makefile (revision 23210)
+++ libavformat/Makefile (working copy)
@@ -255,6 +255,8 @@
OBJS-$(CONFIG_W64_DEMUXER)
OBJS-$(CONFIG_WAV_DEMUXER) += wav.o riff.o raw.o
OBJS-$(CONFIG_WAV_MUXER) += wav.o riff.o
OBJS-$(CONFIG_WC3_DEMUXER) += wc3movie.o
+OBJS-$(CONFIG_WEBM_MUXER) += matroskaenc.o matroska.o \
+ riff.o
OBJS-$(CONFIG_WSAUD_DEMUXER) += westwood.o
OBJS-$(CONFIG_WSVQA_DEMUXER) += westwood.o
OBJS-$(CONFIG_WV_DEMUXER) += wv.o apetag.o id3v1.o
Index: libavformat/allformats.c
===================================================================
--- libavformat/allformats.c (revision 23210)
+++ libavformat/allformats.c (working copy)
@@ -203,6 +203,7 @@
void av_register_all(void)
REGISTER_DEMUXER (W64, w64);
REGISTER_MUXDEMUX (WAV, wav);
REGISTER_DEMUXER (WC3, wc3);
+ REGISTER_MUXER (WEBM, webm);
REGISTER_DEMUXER (WSAUD, wsaud);
REGISTER_DEMUXER (WSVQA, wsvqa);
REGISTER_DEMUXER (WV, wv);
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