Mercurial > mplayer.hg
annotate libmpcodecs/ve_x264.c @ 26763:c13288eeb9f6
Add support for AppleIR Remote as an input under Linux systems.
This requires Linux 2.6 with evdev and appleir drivers.
The keymapping is done to mimics the one that was done for MacOSX.
WARNING: Most distributions do not seems to bother and only let root
access to the device. Modify udev rules accordingly if you want regular
user to be able to use the remote.
author | ben |
---|---|
date | Sun, 18 May 2008 11:53:00 +0000 |
parents | 63630c09e237 |
children | 0f1b5b68af32 |
rev | line source |
---|---|
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
1 /***************************************************************************** |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
2 * |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
3 * - H.264 encoder for mencoder using x264 - |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
4 * |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
5 * Copyright (C) 2004 LINUX4MEDIA GmbH |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
6 * Copyright (C) 2004 Ark Linux |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
7 * |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
8 * Written by Bernhard Rosenkraenzer <bero@arklinux.org> |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
9 * |
26647
bd0554dbc8e5
Relicense file as GPL v2+; bero granted permission on IRC.
diego
parents:
25607
diff
changeset
|
10 * This file is part of MPlayer. |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
11 * |
26647
bd0554dbc8e5
Relicense file as GPL v2+; bero granted permission on IRC.
diego
parents:
25607
diff
changeset
|
12 * MPlayer is free software; you can redistribute it and/or modify |
bd0554dbc8e5
Relicense file as GPL v2+; bero granted permission on IRC.
diego
parents:
25607
diff
changeset
|
13 * it under the terms of the GNU General Public License as published by |
bd0554dbc8e5
Relicense file as GPL v2+; bero granted permission on IRC.
diego
parents:
25607
diff
changeset
|
14 * the Free Software Foundation; either version 2 of the License, or |
bd0554dbc8e5
Relicense file as GPL v2+; bero granted permission on IRC.
diego
parents:
25607
diff
changeset
|
15 * (at your option) any later version. |
bd0554dbc8e5
Relicense file as GPL v2+; bero granted permission on IRC.
diego
parents:
25607
diff
changeset
|
16 * |
bd0554dbc8e5
Relicense file as GPL v2+; bero granted permission on IRC.
diego
parents:
25607
diff
changeset
|
17 * MPlayer is distributed in the hope that it will be useful, |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
26647
bd0554dbc8e5
Relicense file as GPL v2+; bero granted permission on IRC.
diego
parents:
25607
diff
changeset
|
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
20 * GNU General Public License for more details. |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
21 * |
26647
bd0554dbc8e5
Relicense file as GPL v2+; bero granted permission on IRC.
diego
parents:
25607
diff
changeset
|
22 * You should have received a copy of the GNU General Public License along |
bd0554dbc8e5
Relicense file as GPL v2+; bero granted permission on IRC.
diego
parents:
25607
diff
changeset
|
23 * with MPlayer; if not, write to the Free Software Foundation, Inc., |
bd0554dbc8e5
Relicense file as GPL v2+; bero granted permission on IRC.
diego
parents:
25607
diff
changeset
|
24 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
25 * |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
26 *****************************************************************************/ |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
27 |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
28 #include <stdio.h> |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
29 #include <stdlib.h> |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
30 #include <string.h> |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
31 #include <errno.h> |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
32 |
17012 | 33 #include "config.h" |
34 #include "mp_msg.h" | |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
35 |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
36 #include "m_option.h" |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
37 #include "codec-cfg.h" |
22600
3c2b4a866c6a
Add explicit location for headers from the stream/ directory.
diego
parents:
22158
diff
changeset
|
38 #include "stream/stream.h" |
22601
ed8f90096c65
Add explicit location for headers from the libmpdemux/ directory.
diego
parents:
22600
diff
changeset
|
39 #include "libmpdemux/demuxer.h" |
ed8f90096c65
Add explicit location for headers from the libmpdemux/ directory.
diego
parents:
22600
diff
changeset
|
40 #include "libmpdemux/stheader.h" |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
41 |
22600
3c2b4a866c6a
Add explicit location for headers from the stream/ directory.
diego
parents:
22158
diff
changeset
|
42 #include "stream/stream.h" |
22601
ed8f90096c65
Add explicit location for headers from the libmpdemux/ directory.
diego
parents:
22600
diff
changeset
|
43 #include "libmpdemux/muxer.h" |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
44 |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
45 #include "img_format.h" |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
46 #include "mp_image.h" |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
47 #include "vf.h" |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
48 |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
49 #include <x264.h> |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
50 |
25607
9d0b189ce1b2
Fix illegal identifiers: Names starting with __ or _ and uppercase are reserved
diego
parents:
25570
diff
changeset
|
51 typedef struct h264_module_t { |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
52 muxer_stream_t *mux; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
53 x264_t * x264; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
54 x264_picture_t pic; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
55 } h264_module_t; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
56 |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
57 extern char* passtmpfile; |
15964
d244178a3105
x264 fast first pass, patch by Robert Swain < robert POUM swain AH gmail POUM com >
gpoirier
parents:
15744
diff
changeset
|
58 static int turbo = 0; |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
59 static x264_param_t param; |
20317 | 60 static int parse_error = 0; |
16366
e054a3c93a26
custom quantization matrix for x264, original patch by Robert Swain < robert POUM swain AH gmail POUM com>
gpoirier
parents:
16016
diff
changeset
|
61 |
19577
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
62 static int encode_nals(uint8_t *buf, int size, x264_nal_t *nals, int nnal){ |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
63 uint8_t *p = buf; |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
64 int i; |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
65 |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
66 for(i = 0; i < nnal; i++){ |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
67 int s = x264_nal_encode(p, &size, 1, nals + i); |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
68 if(s < 0) |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
69 return -1; |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
70 p += s; |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
71 } |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
72 |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
73 return p - buf; |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
74 } |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
75 |
17906
20aca9baf5d8
passing pts through the filter layer (lets see if pts or cola comes out at the end)
michael
parents:
17902
diff
changeset
|
76 static int put_image(struct vf_instance_s *vf, mp_image_t *mpi, double pts); |
14784
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
77 static int encode_frame(struct vf_instance_s *vf, x264_picture_t *pic_in); |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
78 |
25232
893db6cc97b2
Add appropriate const specifiers to some custom parse functions.
reimar
parents:
22601
diff
changeset
|
79 void x264enc_set_param(const m_option_t* opt, char* arg) |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
80 { |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
81 static int initted = 0; |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
82 if(!initted) { |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
83 x264_param_default(¶m); |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
84 x264_param_parse(¶m, "psnr", "no"); |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
85 x264_param_parse(¶m, "ssim", "no"); |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
86 initted = 1; |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
87 } |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
88 |
22032
62d7b935df2e
fix a segfault if -x264encopts is the last commandline option (with no argument)
lorenm
parents:
21660
diff
changeset
|
89 if(!arg) { |
62d7b935df2e
fix a segfault if -x264encopts is the last commandline option (with no argument)
lorenm
parents:
21660
diff
changeset
|
90 parse_error = 1; |
62d7b935df2e
fix a segfault if -x264encopts is the last commandline option (with no argument)
lorenm
parents:
21660
diff
changeset
|
91 return; |
62d7b935df2e
fix a segfault if -x264encopts is the last commandline option (with no argument)
lorenm
parents:
21660
diff
changeset
|
92 } |
62d7b935df2e
fix a segfault if -x264encopts is the last commandline option (with no argument)
lorenm
parents:
21660
diff
changeset
|
93 |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
94 while(*arg) { |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
95 char *name = arg; |
20054
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
96 char *value; |
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
97 int ret; |
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
98 |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
99 arg += strcspn(arg, ":"); |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
100 if(*arg) { |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
101 *arg = 0; |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
102 arg++; |
20054
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
103 } |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
104 |
20054
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
105 value = strchr( name, '=' ); |
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
106 if(value) { |
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
107 *value = 0; |
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
108 value++; |
16366
e054a3c93a26
custom quantization matrix for x264, original patch by Robert Swain < robert POUM swain AH gmail POUM com>
gpoirier
parents:
16016
diff
changeset
|
109 } |
20054
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
110 |
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
111 if(!strcmp(name, "turbo")) { |
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
112 turbo = value ? atoi(value) : 1; |
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
113 continue; |
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
114 } |
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
115 |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
116 ret = x264_param_parse(¶m, name, value); |
20054
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
117 if(ret == X264_PARAM_BAD_NAME) |
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
118 mp_msg(MSGT_CFGPARSER, MSGL_ERR, "Option x264encopts: Unknown suboption %s\n", name); |
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
119 if(ret == X264_PARAM_BAD_VALUE) |
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
120 mp_msg(MSGT_CFGPARSER, MSGL_ERR, "Option x264encopts: Bad argument %s=%s\n", name, value ? value : "(null)"); |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
121 |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
122 /* mark this option as done, so it's not reparsed if there's another -x264encopts */ |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
123 *name = 0; |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
124 |
20317 | 125 parse_error |= ret; |
16366
e054a3c93a26
custom quantization matrix for x264, original patch by Robert Swain < robert POUM swain AH gmail POUM com>
gpoirier
parents:
16016
diff
changeset
|
126 } |
e054a3c93a26
custom quantization matrix for x264, original patch by Robert Swain < robert POUM swain AH gmail POUM com>
gpoirier
parents:
16016
diff
changeset
|
127 |
20340
9d88396480bb
x264: don't enable turbo in the middle pass of a 3pass encode. (broke in r20060)
lorenm
parents:
20333
diff
changeset
|
128 if(param.rc.b_stat_write && !param.rc.b_stat_read) { |
15964
d244178a3105
x264 fast first pass, patch by Robert Swain < robert POUM swain AH gmail POUM com >
gpoirier
parents:
15744
diff
changeset
|
129 /* Adjust or disable some flags to gain speed in the first pass */ |
d244178a3105
x264 fast first pass, patch by Robert Swain < robert POUM swain AH gmail POUM com >
gpoirier
parents:
15744
diff
changeset
|
130 if(turbo == 1) |
d244178a3105
x264 fast first pass, patch by Robert Swain < robert POUM swain AH gmail POUM com >
gpoirier
parents:
15744
diff
changeset
|
131 { |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
132 param.i_frame_reference = ( param.i_frame_reference + 1 ) >> 1; |
21531
a90aa203186c
Get rid of min/max macros from aviheader.h, they do not belong here.
reimar
parents:
20340
diff
changeset
|
133 param.analyse.i_subpel_refine = FFMAX( FFMIN( 3, param.analyse.i_subpel_refine - 1 ), 1 ); |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
134 param.analyse.inter &= ( ~X264_ANALYSE_PSUB8x8 ); |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
135 param.analyse.inter &= ( ~X264_ANALYSE_BSUB16x16 ); |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
136 param.analyse.i_trellis = 0; |
15964
d244178a3105
x264 fast first pass, patch by Robert Swain < robert POUM swain AH gmail POUM com >
gpoirier
parents:
15744
diff
changeset
|
137 } |
20054
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
138 else if(turbo >= 2) |
15964
d244178a3105
x264 fast first pass, patch by Robert Swain < robert POUM swain AH gmail POUM com >
gpoirier
parents:
15744
diff
changeset
|
139 { |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
140 param.i_frame_reference = 1; |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
141 param.analyse.i_subpel_refine = 1; |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
142 param.analyse.i_me_method = X264_ME_DIA; |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
143 param.analyse.inter = 0; |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
144 param.analyse.b_transform_8x8 = 0; |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
145 param.analyse.b_weighted_bipred = 0; |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
146 param.analyse.i_trellis = 0; |
15964
d244178a3105
x264 fast first pass, patch by Robert Swain < robert POUM swain AH gmail POUM com >
gpoirier
parents:
15744
diff
changeset
|
147 } |
d244178a3105
x264 fast first pass, patch by Robert Swain < robert POUM swain AH gmail POUM com >
gpoirier
parents:
15744
diff
changeset
|
148 } |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
149 } |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
150 |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
151 static int config(struct vf_instance_s* vf, int width, int height, int d_width, int d_height, unsigned int flags, unsigned int outfmt) { |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
152 h264_module_t *mod=(h264_module_t*)vf->priv; |
20317 | 153 |
154 if(parse_error) | |
155 return 0; | |
156 | |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
157 mod->mux->bih->biWidth = width; |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
158 mod->mux->bih->biHeight = height; |
25570 | 159 mod->mux->bih->biSizeImage = width * height * 3; |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
160 mod->mux->aspect = (float)d_width/d_height; |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
161 |
20333
7f84082900a3
Add a call to x264enc_set_param in config, otherwise mencoder -ovc x264
reimar
parents:
20317
diff
changeset
|
162 // make sure param is initialized |
7f84082900a3
Add a call to x264enc_set_param in config, otherwise mencoder -ovc x264
reimar
parents:
20317
diff
changeset
|
163 x264enc_set_param(NULL, ""); |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
164 param.i_width = width; |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
165 param.i_height = height; |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
166 param.i_fps_num = mod->mux->h.dwRate; |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
167 param.i_fps_den = mod->mux->h.dwScale; |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
168 param.vui.i_sar_width = d_width*height; |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
169 param.vui.i_sar_height = d_height*width; |
15964
d244178a3105
x264 fast first pass, patch by Robert Swain < robert POUM swain AH gmail POUM com >
gpoirier
parents:
15744
diff
changeset
|
170 |
20297
b69c85b29cb5
make -passlogfile work with x264 again (broke in r20060)
lorenm
parents:
20252
diff
changeset
|
171 x264_param_parse(¶m, "stats", passtmpfile); |
b69c85b29cb5
make -passlogfile work with x264 again (broke in r20060)
lorenm
parents:
20252
diff
changeset
|
172 |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
173 switch(outfmt) { |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
174 case IMGFMT_I420: |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
175 param.i_csp = X264_CSP_I420; |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
176 break; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
177 case IMGFMT_YV12: |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
178 param.i_csp = X264_CSP_YV12; |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
179 break; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
180 default: |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
181 mp_msg(MSGT_MENCODER, MSGL_ERR, "Wrong colorspace.\n"); |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
182 return 0; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
183 } |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
184 |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
185 mod->x264 = x264_encoder_open(¶m); |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
186 if(!mod->x264) { |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
187 mp_msg(MSGT_MENCODER, MSGL_ERR, "x264_encoder_open failed.\n"); |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
188 return 0; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
189 } |
19577
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
190 |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
191 if(!param.b_repeat_headers){ |
19577
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
192 uint8_t *extradata; |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
193 x264_nal_t *nal; |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
194 int extradata_size, nnal, i, s = 0; |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
195 |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
196 x264_encoder_headers(mod->x264, &nal, &nnal); |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
197 |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
198 /* 5 bytes NAL header + worst case escaping */ |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
199 for(i = 0; i < nnal; i++) |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
200 s += 5 + nal[i].i_payload * 4 / 3; |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
201 |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
202 extradata = malloc(s); |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
203 extradata_size = encode_nals(extradata, s, nal, nnal); |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
204 |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
205 mod->mux->bih= realloc(mod->mux->bih, sizeof(BITMAPINFOHEADER) + extradata_size); |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
206 memcpy(mod->mux->bih + 1, extradata, extradata_size); |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
207 mod->mux->bih->biSize= sizeof(BITMAPINFOHEADER) + extradata_size; |
7e19b1207b81
"global header" support, this is pretty much just copy and pasted code from
michael
parents:
19125
diff
changeset
|
208 } |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
209 |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
210 if (param.i_bframe > 1 && param.b_bframe_pyramid) |
17659 | 211 mod->mux->decoder_delay = 2; |
212 else | |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
213 mod->mux->decoder_delay = param.i_bframe ? 1 : 0; |
17659 | 214 |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
215 return 1; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
216 } |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
217 |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
218 static int control(struct vf_instance_s* vf, int request, void *data) |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
219 { |
20054
8760c8681eac
Remove the x264 option parser, and pass the options on to libx264 as a string instead. This provides automatic support for all current and future x264 options.
lorenm
parents:
19623
diff
changeset
|
220 h264_module_t *mod=(h264_module_t*)vf->priv; |
14784
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
221 switch(request){ |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
222 case VFCTRL_FLUSH_FRAMES: |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
223 if(param.i_bframe) |
14784
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
224 while(encode_frame(vf, NULL) > 0); |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
225 return CONTROL_TRUE; |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
226 default: |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
227 return CONTROL_UNKNOWN; |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
228 } |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
229 } |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
230 |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
231 static int query_format(struct vf_instance_s* vf, unsigned int fmt) |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
232 { |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
233 switch(fmt) { |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
234 case IMGFMT_I420: |
26754
63630c09e237
cosmetics: Remove pointless parentheses from return calls.
diego
parents:
26647
diff
changeset
|
235 return VFCAP_CSP_SUPPORTED | VFCAP_CSP_SUPPORTED_BY_HW; |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
236 case IMGFMT_YV12: |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
237 case IMGFMT_422P: |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
238 case IMGFMT_444P: |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
239 case IMGFMT_YVYU: |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
240 case IMGFMT_RGB: |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
241 case IMGFMT_BGR: |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
242 case IMGFMT_BGR32: |
14943 | 243 /* These colorspaces are supported, but they'll just have |
244 * to be converted to I420 internally */ | |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
245 return 0; /* VFCAP_CSP_SUPPORTED */ |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
246 } |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
247 return 0; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
248 } |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
249 |
17906
20aca9baf5d8
passing pts through the filter layer (lets see if pts or cola comes out at the end)
michael
parents:
17902
diff
changeset
|
250 static int put_image(struct vf_instance_s *vf, mp_image_t *mpi, double pts) |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
251 { |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
252 h264_module_t *mod=(h264_module_t*)vf->priv; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
253 int i; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
254 |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
255 memset(&mod->pic, 0, sizeof(x264_picture_t)); |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
256 mod->pic.img.i_csp=param.i_csp; |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
257 mod->pic.img.i_plane=3; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
258 for(i=0; i<4; i++) { |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
259 mod->pic.img.plane[i] = mpi->planes[i]; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
260 mod->pic.img.i_stride[i] = mpi->stride[i]; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
261 } |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
262 |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
263 mod->pic.i_type = X264_TYPE_AUTO; |
14784
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
264 |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
265 return encode_frame(vf, &mod->pic) >= 0; |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
266 } |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
267 |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
268 static int encode_frame(struct vf_instance_s *vf, x264_picture_t *pic_in) |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
269 { |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
270 h264_module_t *mod=(h264_module_t*)vf->priv; |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
271 x264_picture_t pic_out; |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
272 x264_nal_t *nal; |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
273 int i_nal; |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
274 int i_size = 0; |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
275 int i; |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
276 |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
277 if(x264_encoder_encode(mod->x264, &nal, &i_nal, pic_in, &pic_out) < 0) { |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
278 mp_msg(MSGT_MENCODER, MSGL_ERR, "x264_encoder_encode failed\n"); |
14784
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
279 return -1; |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
280 } |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
281 |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
282 for(i=0; i < i_nal; i++) { |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
283 int i_data = mod->mux->buffer_size - i_size; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
284 i_size += x264_nal_encode(mod->mux->buffer + i_size, &i_data, 1, &nal[i]); |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
285 } |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
286 if(i_size>0) { |
14784
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
287 int keyframe = (pic_out.i_type == X264_TYPE_IDR) || |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
288 (pic_out.i_type == X264_TYPE_I |
20252
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
289 && param.i_frame_reference == 1 |
eaaf13b39595
fix multiple instances of -x264encopts on the commandline (broke in r20060)
lorenm
parents:
20054
diff
changeset
|
290 && !param.i_bframe); |
17487
fa17424b4c7b
change muxer_write_chunk() so that pts/dts _could_ be passed from encoder to muxer
michael
parents:
17402
diff
changeset
|
291 muxer_write_chunk(mod->mux, i_size, keyframe?0x10:0, MP_NOPTS_VALUE, MP_NOPTS_VALUE); |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
292 } |
17659 | 293 else |
294 ++mod->mux->encoder_delay; | |
14784
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
295 |
53d306774ce2
sync to x264 r137: adaptive B-frame decision, flush delayed frames.
lorenm
parents:
14759
diff
changeset
|
296 return i_size; |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
297 } |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
298 |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
299 static void uninit(struct vf_instance_s *vf) |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
300 { |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
301 h264_module_t *mod=(h264_module_t*)vf->priv; |
22158
a6a93224cf4d
Avoid crash when uninit is called without ever calling config in x264 encoder
reimar
parents:
22032
diff
changeset
|
302 if (mod->x264) |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
303 x264_encoder_close(mod->x264); |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
304 } |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
305 |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
306 static int vf_open(vf_instance_t *vf, char *args) { |
13334 | 307 h264_module_t *mod; |
308 | |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
309 vf->config = config; |
14878 | 310 vf->default_caps = VFCAP_CONSTANT; |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
311 vf->control = control; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
312 vf->query_format = query_format; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
313 vf->put_image = put_image; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
314 vf->uninit = uninit; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
315 vf->priv = malloc(sizeof(h264_module_t)); |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
316 |
13334 | 317 mod=(h264_module_t*)vf->priv; |
13166
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
318 mod->mux = (muxer_stream_t*)args; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
319 mod->mux->bih = malloc(sizeof(BITMAPINFOHEADER)); |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
320 memset(mod->mux->bih, 0, sizeof(BITMAPINFOHEADER)); |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
321 mod->mux->bih->biSize = sizeof(BITMAPINFOHEADER); |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
322 mod->mux->bih->biPlanes = 1; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
323 mod->mux->bih->biBitCount = 24; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
324 mod->mux->bih->biCompression = mmioFOURCC('h', '2', '6', '4'); |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
325 |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
326 return 1; |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
327 } |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
328 |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
329 vf_info_t ve_info_x264 = { |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
330 "H.264 encoder", |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
331 "x264", |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
332 "Bernhard Rosenkraenzer <bero@arklinux.org>", |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
333 "(C) 2004 LINUX4MEDIA GmbH; (C) 2004 Ark Linux", |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
334 vf_open |
d198f255bee9
x264 encoder support. Original patch send by Bernhard Rosenkraenzer <bero at arklinux dot org>, modifications by Loren Merritt <lorenm at u.washington dot edu>, Jeff Clagg <snacky at ikaruga.co dot uk> and me
iive
parents:
diff
changeset
|
335 }; |