Mathieu Duponchelle
0243810e1e
x264enc: Don't unref future state but the old one
...
Being silly will lead us nowhere.
2013-09-05 22:56:48 +02:00
Sebastian Dröge
55037ab411
x264enc: Check if we have an input state before using it
...
Flushing might happen before caps were set on the encoder,
which would lead to crashes here.
Thanks to Matej Knopp for analyzing this.
https://bugzilla.gnome.org/show_bug.cgi?id=707414
2013-09-04 16:33:18 +02:00
Matej Knopp
ae45623450
x264enc: fix unsigned comparison warning
2013-09-04 10:47:55 +02:00
Tim-Philipp Müller
6572393629
x264enc: log when we output a lower profile than requested
2013-08-27 14:13:06 +01:00
Sebastian Dröge
aab5534573
x264enc: Consider subset relations of profiles when setting srcpad caps
...
constrained-baseline is a subset of baseline, is a subset of main,
is a subset of high profile.
https://bugzilla.gnome.org/show_bug.cgi?id=705425
2013-08-21 18:35:09 +02:00
Tim-Philipp Müller
e0ae81ebac
x264enc: propagate flow return back to base class and upstream
...
https://bugzilla.gnome.org/show_bug.cgi?id=705425
2013-08-21 12:35:32 +01:00
Tim-Philipp Müller
71ce5136d1
x264enc: minor clean-up
...
We requires x264 build >= 120 now.
2013-08-17 23:09:15 +01:00
Sebastian Dröge
f541f94262
ext: Use new flush vfunc of video codec base classes and remove reset implementations
2013-08-15 15:27:48 +02:00
Edward Hervey
767005d8c0
x264: Fix dts comparision
...
We were assigning to a guint64 value (frame->dts) the sum of a unsigned
and signed value... resulting it the result never being < 0.
Instead just check if it is smaller before assigning to frame->dts.
2013-07-26 16:47:30 +02:00
Sebastian Dröge
a4a89275f8
x264enc: React properly to flushing/resetting the encoder
...
https://bugzilla.gnome.org/show_bug.cgi?id=656007
2013-07-25 12:48:55 +02:00
Tim-Philipp Müller
62ac56668a
x264enc: output byte-stream if downstream has ANY caps
...
It's what people expect when they pipe the output to
filesink or into a tcp connection or pipe.
2013-04-30 10:04:23 +01:00
Tom Greenwood
2e38f24b56
x264enc: Fix for 0/1 framerate - now uses VFR in this case
...
Previously did a division by zero.
https://bugzilla.gnome.org/show_bug.cgi?id=695728
2013-03-25 10:08:44 +01:00
Tim-Philipp Müller
5f83e4101f
x264enc: simplify template caps
...
No need to make an array for one single element.
2013-02-08 00:15:01 +00:00
Tim-Philipp Müller
201e3f74be
x264enc: put all theoretically possible formats in template caps
...
and decide at runtime which subset of these (8-bit or 10-bit video
formats) is supported. libx264 will be compiled for one of these
two options, and it is possible to switch by pointing the dynamic
linker to a different libx264 build at runtime. If we want our
template caps to be correct, they should contain all then, with
the actually supported ones determined at runtime.
https://bugzilla.gnome.org/show_bug.cgi?id=691935
2013-02-08 00:11:03 +00:00
Tim-Philipp Müller
e765deb01b
x264enc: detect supported bit depth and pixel formats at runtime
...
http://bugs.debian.org/667573
https://bugzilla.gnome.org/show_bug.cgi?id=691935
2013-02-07 13:37:44 +00:00
Sebastian Dröge
fcd55cfd12
x264enc: Add support for 10-bit color formats
...
Requires x264 to be built with 10-bit support, which disables
9-bit support. Also only advertise the color formats that were
compiled into x264.
2012-11-15 16:42:09 +01:00
Sebastian Dröge
d098eb0941
x264enc: Add support for Y444, Y42B and NV12
2012-11-15 16:21:49 +01:00
Tim-Philipp Müller
9c690b2018
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 20:40:37 +00:00
Tim-Philipp Müller
4935096912
x264enc: when setting fallback decoder latency, set valid min_latency
...
Min. latency needs to be a valid time, so pass 0 as default
value in the fallback case where we can't determine any latency,
and avoid nasty criticals at runtime.
2012-09-26 01:05:52 +01:00
Mark Nauwelaerts
b06e81b532
x264enc: clean up some debug statements
2012-09-09 16:04:56 +02:00
Mark Nauwelaerts
839e75d5d1
x264enc: handle possibly negative DTS provided by codec
...
... by arranging for an offset such that DTS == PTS for keyframes,
which is expected elsewhere to go along with semantics of PTS and DTS.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=679443
2012-09-07 17:38:40 +02:00
Sebastian Dröge
9390195cfe
x264enc: Use new video encoder base class API for handling tags
2012-08-09 16:30:10 +02:00
Sebastian Dröge
32857a7621
tag: Update for taglist/tag event API changes
2012-07-28 00:35:59 +02:00
Wim Taymans
f711750bba
update for query api changes
2012-07-06 11:50:55 +02:00
Wim Taymans
ef07bb9d47
update for allocation query changes
2012-07-06 11:05:17 +02:00
Matej Knopp
711d2b18a7
x264enc: Fix unitialized variable and taglist event
2012-06-21 08:45:22 +01:00
Wim Taymans
e956902511
fix compilation
2012-06-20 10:39:24 +02:00
Sebastian Dröge
d424827283
x264enc: Fix compiler warning
2012-06-19 15:19:28 +01:00
Sebastian Dröge
f664108a6e
x264enc: Port to 0.11 again
2012-06-19 09:26:02 +01:00
Nicolas Dufresne
3527ccc07e
x264enc: Don't set latency while holding object lock
...
This reverts commit 30a0b50e9ca0d625e61f994d4f8acd022dcddf38.
https://bugzilla.gnome.org/show_bug.cgi?id=675762
2012-06-18 16:01:20 +01:00
Nicolas Dufresne
017bb86d82
x264enc: Use video encoder stream lock to avoid deadlock
2012-06-18 16:01:20 +01:00
Nicolas Dufresne
43093dffea
x264enc: Port to new way of passing frame reference
2012-06-18 16:01:20 +01:00
Nicolas Dufresne
2656e42bb7
x264enc: Set default stream-format to avc as it's a better format
2012-06-18 16:01:20 +01:00
Nicolas Dufresne
c3cc8d416c
x264enc: Fix setting latency
...
Fixes setting latency when framerate is dynamic and round up the latency
to avoid rounding issues.
2012-06-18 16:01:20 +01:00
Nicolas Dufresne
6e920bc4aa
x264enc: gst_video_encoder_get_frame() is now transfer full
2012-06-18 16:01:20 +01:00
Nicolas Dufresne
31b5e86ebd
x264enc: don't leak output state
2012-06-18 16:01:20 +01:00
Nicolas Dufresne
565b21aefb
x264enc: Remove x264 backward compatibility support
2012-06-18 16:01:20 +01:00
Nicolas Dufresne
16ddcae4e3
x264enc: Report latency base on x264 buffer size
2012-06-18 16:01:20 +01:00
Nicolas Dufresne
4fbb1a042e
x264enc: Port to GstVideoEncoder baseclass
...
Conflicts:
configure.ac
ext/x264/gstx264enc.c
ext/x264/gstx264enc.h
Back to 0.10 state, needs to be ported to 0.11 again.
2012-06-18 16:00:53 +01:00
Tim-Philipp Müller
004abdaddf
x264: bump x264 requirement to build 106 or later
...
Build 106 is from September 2010.
https://bugzilla.gnome.org/show_bug.cgi?id=676257
2012-05-17 21:16:08 +01:00
Tim-Philipp Müller
08d20e4da8
Use new gst_element_class_set_static_metadata()
2012-04-10 00:47:44 +01:00
Sebastian Dröge
29a893b494
gst: Update for GST_PLUGIN_DEFINE() API changes
2012-04-05 17:40:12 +02:00
Wim Taymans
6d371c89c1
x264enc: remove deprecated properties
2012-03-21 13:18:11 +01:00
Wim Taymans
7cd283ebc6
update for memory api changes
2012-03-15 13:38:16 +01:00
Wim Taymans
c65625be9e
fix for caps api changes
2012-03-11 19:07:19 +01:00
Alessandro Decina
b09945ab27
x264enc: fix compiler warning
2012-02-27 06:33:48 +01:00
Wim Taymans
829301f1e4
x264: convert g_print to LOG
2012-02-22 02:17:55 +01:00
Wim Taymans
ca1c36a8b4
x264enc: handle pts and dts
2012-02-22 02:07:29 +01:00
Matej Knopp
0f9e7c3863
x264enc: unmap video frame after encoding
...
Fixes major memory leak.
https://bugzilla.gnome.org/show_bug.cgi?id=669863
2012-02-11 13:33:24 +00:00
Wim Taymans
05a446b3c4
x264enc: fix after merge
2012-02-10 17:02:38 +01:00
Wim Taymans
49f4bc87d9
Merge branch 'master' into 0.11
...
Conflicts:
ext/x264/gstx264enc.c
2012-02-10 17:00:33 +01:00
Robert Swain
ed561dcdb1
x264enc: Add baseline profile to caps
...
libx264 does not yet support the features that create the difference
between baseline and constrained baseline profile. Hence it currently
supports both though it can only technically encode constrained
baseline.
2012-02-09 11:55:07 +01:00
Alessandro Decina
4322fd0752
x264enc: implement force-key-unit API
2012-01-26 19:44:05 +01:00
Sebastian Dröge
74de5954af
Merge branch 'master' into 0.11
...
Conflicts:
ext/a52dec/gsta52dec.c
2012-01-25 13:03:33 +01:00
Vincent Penquerc'h
69541031da
x264enc: remove useless and semantically (though not practically) wrong code
...
The object will be freed, so it's pointless to set the pointers
to NULL anyway.
2012-01-13 13:48:23 +00:00
Vincent Penquerc'h
e842b58405
x264enc: remove leaking "optimization"
2012-01-13 13:48:23 +00:00
Vincent Penquerc'h
213ce049ad
various: fix pad template ref leaks
...
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:10:01 +00:00
Wim Taymans
2679b9432a
add parent to pad functions
2011-11-17 15:25:58 +01:00
Wim Taymans
ee240c1ac0
add parent to query function
2011-11-16 17:28:56 +01:00
Wim Taymans
7f70d16daf
_peer_get_caps() -> _peer_query_caps()
2011-11-15 17:23:39 +01:00
Wim Taymans
1754aa707a
update for _get_caps() -> _query_caps()
2011-11-15 16:52:55 +01:00
Wim Taymans
2aac4ddabf
change getcaps to query
2011-11-15 16:34:39 +01:00
Wim Taymans
f49f9bd1a8
update for removed fixate function
2011-11-10 11:04:06 +01:00
Wim Taymans
29e0834191
x264enc: port to 0.11
2011-09-27 17:51:31 +02:00
Thiago Santos
19f1c38d4e
x264enc: Properly set the stream format in setcaps
...
Do not forget to set the selected format to the options string
when getting it from caps
https://bugzilla.gnome.org/show_bug.cgi?id=655223
2011-07-30 19:06:54 -03:00
Stefan Sauer
3f8a245796
x264enc: fix the build for older x264enc
...
b_fake_interlaced was introduced in x264 commit 1b48874d06 = X264_BUILD 96.
2011-07-19 15:10:49 +02:00
Olivier Crête
3cb99f46b7
x264enc: Read stream-format from the right place
...
Read the stream-format from "stream-format" and not from profile, also rename
the "bytestream" variable to "stream_format" so it's easier to understand.
2011-07-18 20:41:20 -04:00
Thiago Santos
7aafba6f82
x264enc: Select stream-format based on caps
...
Makes x264 select its stream-format based on what's available
on caps, the user selected option will be chosen as a fallback
when both options are available.
https://bugzilla.gnome.org/show_bug.cgi?id=644233
2011-07-13 14:04:53 -04:00
Olivier Crête
ac47d20fae
x264: Allow renegotiation but prefer current caps
2011-07-13 14:02:26 -04:00
Olivier Crête
e27dda7c62
x264: Use profile and level from caps
...
Enforces the profile and level from the downstream caps, also
sets them on the fixated caps
https://bugzilla.gnome.org/show_bug.cgi?id=644233
2011-07-12 16:51:50 -04:00
Brian Gitonga Marete
48f899257d
x264enc: fix subme property annotation - subme maximum is 10, not 6.
...
Although the element accepts subme values > 6, the annotation which is
visible through gst-inspect (for example) erroneously indicates 6 as the
maximum. Fix this by indicating 10 (which is the x264 max) as the maximum.
https://bugzilla.gnome.org/show_bug.cgi?id=653473
2011-06-27 13:08:30 +01:00
Sebastian Dröge
27b0ee204c
x264enc: Copy the template caps, it's not allowed to increase the refcount of const caps
2011-05-04 12:39:17 +02:00
Mark Nauwelaerts
0bc0a31c96
x264enc: do not leak peer pad reference
2011-05-04 12:30:39 +02:00
Sjoerd Simons
0d362e5572
x264enc: No need to copy, reffing is enough
2011-05-03 15:27:43 +01:00
Sjoerd Simons
cd5fc6ed8d
x264enc: get_caps function should return a copy of the caps
2011-05-03 15:24:15 +01:00
Tim-Philipp Müller
4d3311566c
dvdread, sidplay, x264enc: fix unused-but-set-variable warnings with gcc 4.6
2011-04-14 15:03:56 +01:00
Sebastian Dröge
e8d00e7334
x264enc: Implement getcaps function
...
This allows to set width/height/etc restrictions downstream.
2011-04-13 20:32:50 +02:00
Olivier Crête
62e35a6b40
x264enc: Allow changing the bitrate and quantitizers dynamically
...
https://bugzilla.gnome.org/show_bug.cgi?id=621663
2011-03-29 20:08:40 -04:00
Olivier Crête
a4df8f9031
x264enc: Set max bitrate in quality mode
...
https://bugzilla.gnome.org/show_bug.cgi?id=621663
2011-03-29 20:08:40 -04:00
Olivier Crête
1370f3f161
x264enc: Make it clear that constant quantizer is for debugging only
...
https://bugzilla.gnome.org/show_bug.cgi?id=621663
2011-03-29 20:08:40 -04:00
Sjoerd Simons
0d20df6d2b
x264enc: Don't register flags with a value of 0
...
Flags with a value of 0 aren't meaningful and will cause
g_value_transform to go into an endless loop when trying to
convert the flags to a string
2011-02-14 17:52:12 +00:00
Miguel Angel Cabrera Moya
ead8d56f5f
x264enc: make tag event writable before modifying tag list in place
...
To modify an event tag is necessary to be sure that x264enc
has its own copy.
Also fix indentation.
https://bugzilla.gnome.org/show_bug.cgi?id=640272
2011-01-24 13:07:08 +00:00
Thiago Santos
7b97c2de6a
x264enc: Handle codec/encoder tags
...
Make x264enc drop video-codec and codec tags and replace
encoder/encoder-version with x264 and its build number
Fixes #621465
2011-01-04 10:37:26 -03:00
Tristan Matthews
71567bb0f9
x264: vbv-buf-capacity should have a minimum of 0
...
x264 will clip this value internally, and users should be allowed to
specify a lower value than 300 ms.
https://bugzilla.gnome.org/show_bug.cgi?id=635291
2010-12-29 18:32:57 +00:00
Tim-Philipp Müller
09bffa4be1
x264enc: also accept YV12 input
2010-12-27 11:38:24 +00:00
Mark Nauwelaerts
9f27fc1eec
x264enc: add a note to the docs about encoder latency and queues
...
https://bugzilla.gnome.org/show_bug.cgi?id=636107
2010-12-26 22:11:52 +00:00
Robert Swain
6f2db739ae
x264enc: Work around a rate control issue in libx264
...
When variable framerate is disabled in libx264 (which occurs when using
the zerolatency tuning), libx264 ignores timestamps but still uses the
timebase leading to messed up rate control with our nanosecond timebase.
We work around this issue by setting the timebase to the reciprocal of
the framerate and we validate that the framerate is suitable.
This has been fixed upstream in libx264 but there are non-fixed versions
in the wild so this workaround is still needed.
Fixes bug #632861
2010-10-22 15:55:34 +02:00
Stefan Kost
3bb4b5069e
various (ext): add a missing G_PARAM_STATIC_STRINGS flags
2010-10-19 10:06:33 +03:00
Robert Swain
f45ff93586
x264enc: Fix b-pyramid libx264 API boolean arg for non-boolean issue
...
In X264_BUILD >= 78, b-pyramid became a non-boolean so passing a boolean
argument to the option string value causes an error. For < 78 we pass the
boolean value, for >= 78 we use the x264_b_pyramid_names[] array which will
result in passing 'none' for false and 'strict' for true. Other modes can be
set through the option-string property for now.
https://bugzilla.gnome.org/show_bug.cgi?id=626577
2010-08-11 16:47:12 +01:00
Tim-Philipp Müller
5225f5cc16
x264: fix printf format warning in debug message
2010-08-09 00:31:15 +01:00
Robert Swain
a441e5b6ef
x264enc: Fix flushing of delayed frames
...
x264_encoder_encode() should be called with a NULL picture until at least
x264_encoder_delayed_frames() returns 0. This fixes what appeared to be a
regression in make check due to the recent change in defaults which enabled
b-frames and b-pyramid, both of which I believe increase the number of delayed
frames when encoding.
2010-07-30 09:59:08 +02:00
Robert Swain
60d647dcf5
x264enc: Improve x264enc defaults
...
- medium x264 speed/quality preset
- threads defaults to 0 which automatically uses 1.5x number of cpu cores
Addresses part of bug #607798
2010-07-26 14:29:02 +02:00
Robert Swain
30fff25b68
x264enc: Fix property description typos
2010-07-25 13:39:44 +02:00
Robert Swain
3554c95548
x264enc: Add some more debug info
2010-07-25 13:39:44 +02:00
Robert Swain
b27ce43ab8
x264enc: Add speed-preset and [psy-]tuning properties
...
Use of a rate control method (pass, bitrate, quantizer, etc properties), a
preset and possibly a profile and/or tuning are now the recommended way to
configure x264 through x264enc.
If a preset/tuning are specified then these will define the default values and
the property defaults will be ignored. After this the option-string property is
applied, followed by the user-set properties, fast first pass restrictions and
finally the profile restrictions.
Addresses part of bug #607798
2010-07-25 13:39:44 +02:00
Robert Swain
f269e0679f
x264enc: Refactor code in preparation for presets/tunings
...
- Make defaults append the appropriate default value to a string. This is
needed to differentiate between something user-set and the actual prop
default.
- Add an internal option string to which _set_property () cases append for the
majority of properties.
- Use gst_x264_enc_parse_options () to clean up application of settings. This
will make order of application with respect to the presets and tunings quite
simple.
Addresses part of bug #607798
2010-07-25 13:37:47 +02:00
Robert Swain
ac6b656ed3
x264enc: Update available me types
...
Use the x264_motion_est_names[] array to populate the enum of ME types. This is
now self-maintaining.
2010-07-25 13:37:47 +02:00
Robert Swain
d6f766d10f
x264enc: Use new libx264 API to affect fast first pass
...
Uses new x264 API to apply reduced complexity values to the parameters to
increase encoding speed in the first pass of a multi-pass encode. This does
not impact on final quality.
Addresses part of bug #607798
2010-07-25 13:37:47 +02:00
Robert Swain
76cc4dbc07
x264enc: Add profile property
...
In X264_BUILD >= 86 there is a new API for applying restrictions to an H.264
Profile. This makes it easier to achieve Baseline Profile for example.
Addresses part of bug #607798
2010-07-25 13:37:45 +02:00
Robert Swain
f2be62695c
x264enc: Add option-string property
...
Adds support for an x264 format option-string to specify advanced parameters
Addresses part of bug #607798
2010-07-23 09:35:48 +02:00