Commit graph

973 commits

Author SHA1 Message Date
Tim-Philipp Müller
7417ad6d5f lamemp3enc: implement sinkpad get_caps() function to proxy rate and channels restrictions from downstream
The element downstream of mp3enc might only accept certain sample rates or channels,
make sure we relay any restrictions that do exist to upstream when it does a
get_caps() on the sink pad. That way upstream elements like audioresample or
audioconvert can pick a sample rate / channel configuration that will be accepted,
instead of just negotiating to the highest, which might then be rejected.

https://bugzilla.gnome.org/show_bug.cgi?id=641151
2011-02-03 18:27:05 +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
Edward Hervey
72389b1941 mpeg2dec: Use the proper component value for height 2011-01-14 17:37:09 +01: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
Tim-Philipp Müller
9a2de96836 mpeg2dec: use gst_pad_alloc_buffer() when cropping buffers 2010-12-29 22:17:50 +00:00
Tim-Philipp Müller
a3eaf04778 mpeg2dec: minor formatting clean-up 2010-12-29 22:10:58 +00:00
Tim-Philipp Müller
40a470c785 mpeg2dec: refactor cropping code to use libgstvideo functions
https://bugzilla.gnome.org/show_bug.cgi?id=571146
2010-12-29 22:09:47 +00:00
Tim-Philipp Müller
fd68911826 mpeg2dec: use GstVideoFormat instead of custom enum 2010-12-29 20:19:34 +00:00
Tim-Philipp Müller
0f41e3bca0 mpeg2dec: fix LIBADD order in Makefile.am 2010-12-29 20:15:03 +00: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
Sebastian Dröge
3dae13383d mad: If gst_pad_alloc_buffer() returns a buffer with the wrong size allocate a new one
Fixes bug #635461.
2010-12-16 10:32:37 +01:00
Edward Hervey
2a84e4332a mad: Remove dead assignments 2010-11-25 19:51:40 +01:00
Tim-Philipp Müller
d0ecf5ea69 dvdreadsrc: remove bogus comment 2010-11-13 12:38:45 +00:00
Thomas Green
c29b56fae9 dvdreadsrc: fix handling of multi-angle streams
We would output all angles interleaved instead of just
the selected angle.

https://bugzilla.gnome.org/show_bug.cgi?id=539254
2010-11-13 12:34:37 +00:00
Guillaume Emont
ff60a26cf8 mpeg2dec: convert the position to stream time before answering to a position query 2010-10-25 13:55:39 +01: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
Sebastian Dröge
0fa75d404b mpeg2dec: Use gst_pad_peer_query() instead of getting the peer pad manually 2010-10-19 16:31:23 +02:00
Guillaume Emont
7fb7129a83 mpeg2dec: fix position query by trusting upstream
Position queries are badly handled for DVDs (probably due to the division in
chapters): the time returned was the time since the start of chapter.

Now ask upstream for position queries, fall back to the old code if upstream
cannot answer the query.
2010-10-19 16:31:23 +02:00
Stefan Kost
26cd4ee3a0 various: canonicalize property names 2010-10-19 12:24:13 +03:00
Stefan Kost
3bb4b5069e various (ext): add a missing G_PARAM_STATIC_STRINGS flags 2010-10-19 10:06:33 +03:00
Mark Nauwelaerts
7bba22772e mad: support reverse playback 2010-10-04 10:33:28 +02:00
Tim-Philipp Müller
7192b9f6b3 dvdreadsrc: improve error messages on read errors
Provide proper i18n-ed error messages when a read error happens,
and point out that the error could be happening because the
DVD is scrambled.

https://bugzilla.gnome.org/show_bug.cgi?id=613633
2010-09-26 19:32:46 +01:00
Tim-Philipp Müller
c33e70af70 siddec: don't use GST_FLOW_IS_FATAL
GST_FLOW_IS_FATAL has been deprecated in core git.
2010-09-06 23:51:23 +01:00
Sebastian Dröge
31010493ea mpeg2dec: Don't use GST_FLOW_IS_FATAL()
And don't post error messages if allocating a buffer resulted
in WRONG_STATE or UNEXPECTED.
2010-09-04 14:57:51 +02: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
Tim-Philipp Müller
d462cdee4d mad: use right automake variable, should be ID3TAG_{LIBS,CFLAGS} not ID3_{LIBS,CFLAGS}
Spotted by syntr0py.
2010-07-22 13:26:21 +01:00
Mark Nauwelaerts
bd6d9402e0 x264enc: only set timebase on versions where it exists 2010-07-20 19:44:51 +02:00
David Hoyt
35f0e23a46 x264enc: set appropriate time base
Fixes #624786.
2010-07-20 16:44:46 +02:00
Mark Nauwelaerts
49f1373f1b x264enc: add new h264 caps attribute alignment
See #606662.
2010-06-22 11:42:18 +02:00
Mark Nauwelaerts
27025d0ebd x264enc: conditionally expose enhanced upstream capabilities
API: GstX264Enc:sliced-threads
API: GstX264Enc:sync-lookahead
API: GstX264Enc:intra-refresh
API: GstX264Enc:mb-tree
API: GstX264Enc:rc-lookahead

See #607798.
2010-06-18 18:47:49 +02:00
Sebastian Dröge
e0cd55c805 a52dec: Call orc_init() before trying to get target flags 2010-06-14 15:33:14 +02:00
Sebastian Dröge
21d90d5539 a52dec: Remove debug printf... 2010-06-14 14:34:56 +02:00
Sebastian Dröge
359260bd5b a52dec: Use orc for CPU feature detection and don't check for liboil 2010-06-14 14:34:25 +02:00
Olivier Crête
2339add6d5 x264enc: Only set i_weighted_pred on versions where it exists 2010-06-01 13:44:06 -04:00
Tristan Matthews
c60638ab56 lamemp3enc: implement latency query
The encoder's latency is deduced from the framesize. Fixes #618896.
2010-06-01 11:28:55 +02:00
Olivier Crête
d6df52f99a x264enc: disable I weighted pred
If it is enabled, then it will be main profile instead of baseline.
This ensures maximum compatibility of the output stream until the
encoder configuration interface gets an overhaul with explicit
output profile selection.

Fixes #619776.
2010-05-28 12:15:42 +01:00
Olivier Crête
7f685c4a21 x264enc: Re-send the received upstream event as-is downstream
https://bugzilla.gnome.org/show_bug.cgi?id=606689
2010-05-10 15:07:29 +02:00