1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-18 03:19:31 +02:00
Commit Graph

28983 Commits

Author SHA1 Message Date
Michael Niedermayer
a2beabc231 Merge remote branch 'qatar/master'
* qatar/master:
  daud: Don't write packets that are too large to have their size expressed in the bytestream.
DUPLICATE  pthread: validate_thread_parameters() ignored slice-threading being intentionally off
DUPLICATE  Use consistent condition for whether to run slice-threading execute function.
  avformat.h: fix a misplaced #endif
DUPLCIATE  vaapi: cope with VA-API 0.32, i.e. fix VC-1 decoding on Sandy Bridge.
DUPLICATE  vaapi: filter out DELAYED_PIC_REF flag to determine field.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-10 03:32:29 +02:00
Alex Converse
347b375a80 daud: Don't write packets that are too large to have their size expressed in the bytestream. 2011-04-09 17:32:09 -07:00
Reimar Döffinger
d459d8e28d Abort Ogg header parsing when we encounter a data packet.
Fixes ticket #15.
2011-04-10 01:35:48 +02:00
Alexander Strange
cf39b461d3 pthread: validate_thread_parameters() ignored slice-threading being intentionally off
The thread_type API allows you to request only FF_THREAD_FRAME (instead of
FRAME | SLICE), but it was being ignored.
We don't implement both of them at the same time, so there isn't an effect
on current codecs, except that you can request no kinds of threading now
(a bit useless).

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-04-09 08:23:22 -04:00
Reimar Döffinger
f82163cf1c Use consistent condition for whether to run slice-threading execute function.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-04-09 08:23:22 -04:00
Anton Khirnov
17ca374c7d avformat.h: fix a misplaced #endif 2011-04-09 13:35:10 +02:00
Gwenole Beauchesne
da21440d46 vaapi: cope with VA-API 0.32, i.e. fix VC-1 decoding on Sandy Bridge.
(cherry picked from commit a18e7b4fb7)

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2011-04-09 12:02:04 +02:00
Gwenole Beauchesne
09ce846206 vaapi: filter out DELAYED_PIC_REF flag to determine field.
This fixes ticket #23.

(cherry picked from commit 621f4c98df)

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2011-04-09 12:00:57 +02:00
Philip Langdale
ae7a4a1594 CrystalHD: Improve detection of h.264 content.
As previously discussed, the CrystalHD hardware returns exceptionally
useless information about interlaced h.264 content - to the extent
that it's not possible to distinguish most MBAFF and PAFF content until
it's too late.

In an attempt to compensate for this, I'm introducing two mechanisms:

1) Peeking at the picture number of the next picture

The hardware provides a capability to peek the next picture number. If
it is the same as the current picture number, then we are clearly dealing
with two fields and not a frame or fieldpair.

If this always worked, it would be all we need, but it's not guaranteed
to work. Sometimes, the next picture may not be decoded sufficiently
for the number to be known; alternately, a corruption in the stream may
cause the hardware to refuse to return the number even if the next
intact frame is decoded. In either case, the query will return 0.

If we are unable to peek the next picture number, we assume that the
picture is a frame/fieldpair and return it accordingly. If that turns
out to be incorrect, we discard the second field, and the user has
to live with the glitch. In testing, false detection can occur for
the first couple of seconds, and then the pipeline stabalizes and
we get correct detection.

2) Use the h264_parser to detect when individual input fields have
been combined into an output fieldpair.

I have multiple PAFF samples where this behaviour is detected. The
peeking mechanism described above will correctly detect that the
output is a fieldpair, but we need to know what the input type was
to ensure pipeline stability (only return one output frame per input
frame).

If we find ourselves with an output fieldpair, yet the input picture
type was a field, as reported by the parser, then we are dealing with
this case, and can make sure not to return anything on the next
decode() call.

Taken together, these allow us to remove the hard-coded hacks for
different h.264 types, and we can clearly describe the conditions
under which we can trust the hardware's claim that content is
interlaced.

Signed-off-by: Philip Langdale <philipl@overt.org>
2011-04-08 20:17:53 -07:00
Philip Langdale
bfde0f1b3d CrystalHD: Carry picture type from input to output picture.
Now that we know the type of the input picture, we have to bring
that information to the output picture to help identify its type.
We do this by adding a field to the opaque_list node.

Signed-off-by: Philip Langdale <philipl@overt.org>
2011-04-08 20:17:50 -07:00
Philip Langdale
f6421e0b5c CrystalHD: Bring in h.264 parser to establish picture type.
As the hardware is unreliable, we will have to use the h.264 parser
to identify whether an input picture is a field or a frame. This
change loads the parser and extracts the picture type.

Signed-off-by: Philip Langdale <philipl@overt.org>
2011-04-08 20:17:47 -07:00
Philip Langdale
e99fd6ee19 CrystalHD: Change opaque_list_pop to return the node.
In preparation for adding additional fields to the node, return
the node instead of the pts value. This requires the caller to
free the node.

Signed-off-by: Philip Langdale <philipl@overt.org>
2011-04-08 20:17:42 -07:00
Philip Langdale
ca0eed7e37 CrystalHD: Fix whitespace after previous change.
'git diff -w' confirmed to return nothing.

Signed-off-by: Philip Langdale <philipl@overt.org>
2011-04-08 20:17:39 -07:00
Philip Langdale
9ce1d5f03b CrystalHD: Handle different h.264 MBAFF packing.
I found another MBAFF sample where the input:output pattern is
the same as mpeg2 and vc1 (fieldpair input, individual field output).
While I'm not sure how you can output individual fields from MBAFF,
if I apply the mpeg2/vc1 handling to this file, it plays correctly.

So, this changes the detection algorithm to handle the known cases.

Whitespace will be fixed in a separate change.

Signed-off-by: Philip Langdale <philipl@overt.org>
2011-04-08 20:17:35 -07:00
Michael Niedermayer
c0577ceb55 flv: Only parse keyframe index when the underlaying protocol allows seeking as we need to seek to read the index
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-09 03:23:49 +02:00
Kharkov Alexander
ba667e600f Fix support for flvtool2 "keyframes based" generated index in FLV format decoder
Current keyframes data parser unconditionally rewind metadata to the end
at the end of function. As result ALL metadata located after keyframes
index not parsed,
and as metadata object can have ANY placement inside metadata it can
lead to unpredictable result
(bitrate can not be found, etc.). As result FLV movie will not play at
all in such situation.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-09 03:23:49 +02:00
Lou Logan
f7f9e24d09 Replace outdated info on the FAQ
FAQ could use some work. This updates a few little details.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-09 03:23:49 +02:00
Michael Niedermayer
d4d09329ee Merge remote branch 'qatar/master'
* qatar/master:
  lavf: bump minor and add an APIChanges entry for avformat cleanup
  lavf: get rid of ffm-specific stuff in avformat.h
Not pulled:  avio: deprecate av_protocol_next().
  avio: add a function for iterating though protocol names.
  lavf: rename a parameter of av_sdp_create from buff->buf
  lavf: rename avf_sdp_create to av_sdp_create.
  lavf: make av_guess_image2_codec internal
  avio: make URLProtocol internal.
  avio: make URLContext internal.
  lavf: mark av_pkt_dump(_log) for remove on $next+1 bump.
  lavf: use designated initializers for all protocols
  applehttp: don't use deprecated url_ functions.
  avio: move two ff_udp_* functions from avio_internal to url.h
  asfdec: remove a forgotten declaration of nonexistent function
  avio: deprecate the typedef for URLInterruptCB

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-09 03:17:07 +02:00
Michael Niedermayer
a61bc91d42 Fix ticket21, temporary audio array was too small.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-09 01:00:44 +02:00
Anton Khirnov
0c68c80419 lavf: bump minor and add an APIChanges entry for avformat cleanup 2011-04-08 21:00:41 +02:00
Anton Khirnov
3ee53dabcf lavf: get rid of ffm-specific stuff in avformat.h 2011-04-08 20:58:19 +02:00
Anton Khirnov
cdc6a87f19 avio: deprecate av_protocol_next(). 2011-04-08 17:48:53 +02:00
Anton Khirnov
f8270bbf8c avio: add a function for iterating though protocol names. 2011-04-08 17:48:44 +02:00
Anton Khirnov
c234d40bd9 lavf: rename a parameter of av_sdp_create from buff->buf
This is more consistent with the rest of the API.
2011-04-08 16:45:41 +02:00
Anton Khirnov
c3675dfe1e lavf: rename avf_sdp_create to av_sdp_create.
The new name is more consistent with the rest of the API.
2011-04-08 16:45:40 +02:00
Anton Khirnov
a9bf9d8e53 lavf: make av_guess_image2_codec internal
It doesn't look very useful as a public function.
2011-04-08 16:44:29 +02:00
Anton Khirnov
5593f03148 avio: make URLProtocol internal. 2011-04-08 15:59:26 +02:00
Anton Khirnov
c486dade95 avio: make URLContext internal. 2011-04-08 15:59:19 +02:00
Anton Khirnov
c5704b2b9a lavf: mark av_pkt_dump(_log) for remove on $next+1 bump. 2011-04-08 15:44:09 +02:00
Michael Niedermayer
9d4cb45dbe Cleanup 'Fix spurious warning when stream has SPS and PPS units.'
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-08 12:29:30 +02:00
Anton Khirnov
f35ff97f2e lavf: use designated initializers for all protocols
This is more readable and makes it easier to reorder URLProtocol
members.
2011-04-08 11:08:26 +02:00
Anton Khirnov
a6aa7a1a14 applehttp: don't use deprecated url_ functions. 2011-04-08 09:18:48 +02:00
Anton Khirnov
d6bbe76124 avio: move two ff_udp_* functions from avio_internal to url.h 2011-04-08 07:08:22 +02:00
Anton Khirnov
acaceca2f1 asfdec: remove a forgotten declaration of nonexistent function 2011-04-08 07:08:12 +02:00
Anton Khirnov
026e175775 avio: deprecate the typedef for URLInterruptCB
There's no particular reason to pollute the namespace with a typedef for
it.
2011-04-08 07:07:58 +02:00
Alexander Strange
d0df2934ca Merge remote-tracking branch 'ffmpeg-mt/master'
* ffmpeg-mt/master:
DUPLICATE mingw32 compilation after 'unbreak avcodec_thread_init'
      pthread: validate_thread_parameters() ignored slice-threading being intentionally off
DUPLICATE Remove unnecessary parameter from ff_thread_init() and fix behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-08 03:03:03 +02:00
Michael Niedermayer
c88caa522c Merge remote branch 'qatar/master'
* qatar/master:
  proto: include os_support.h in network.h
  matroskaenc: don't write an empty Cues element.
  lavc: add a FF_API_REQUEST_CHANNELS deprecation macro
  avio: move extern url_interrupt_cb declaration from avio.h to url.h
  avio: make av_register_protocol2 internal.
  avio: avio_ prefix for url_set_interrupt_cb.
  avio: AVIO_ prefixes for URL_ open flags.
  proto: introduce listen option in tcp
  doc: clarify configure features
  proto: factor ff_network_wait_fd and use it on udp

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-08 02:50:13 +02:00
Michael Niedermayer
db95e559f2 fix another forgotten mplayerhq.hu link
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-08 01:35:43 +02:00
Michael Niedermayer
610b963e82 Fix link to ffmpeg-devel
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-08 00:20:18 +02:00
Michael Niedermayer
ffb61814a0 Fix deblocking with thread_slices
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-08 00:20:18 +02:00
Michael Niedermayer
f6d71b3942 ffplay: Set EMU_EDGE if dr1, this is an alternative fix for ticket40.
Idea borrowed from mplayer.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-08 00:20:18 +02:00
Luca Barbato
a2031251c7 proto: include os_support.h in network.h
Fix compilation on systems without poll()
2011-04-07 21:03:12 +02:00
Anton Khirnov
9181976348 matroskaenc: don't write an empty Cues element. 2011-04-07 18:11:24 +02:00
Anton Khirnov
9f5ddd1e46 lavc: add a FF_API_REQUEST_CHANNELS deprecation macro
And hide request_channels AVOption under it.
2011-04-07 18:11:24 +02:00
Anton Khirnov
5cec897105 avio: move extern url_interrupt_cb declaration from avio.h to url.h 2011-04-07 18:11:24 +02:00
Anton Khirnov
8e76a19b63 avio: make av_register_protocol2 internal. 2011-04-07 18:11:24 +02:00
Anton Khirnov
80c6e238b0 avio: avio_ prefix for url_set_interrupt_cb. 2011-04-07 18:11:24 +02:00
Anton Khirnov
f87b1b373a avio: AVIO_ prefixes for URL_ open flags. 2011-04-07 18:07:16 +02:00
Peter Ross
de174d0d25 riff: add ATRAC3+ guid
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-07 17:54:52 +02:00
Peter Ross
aa9380c89c ff_get_wav_header: perform full lookup on WAVEFORMATEXTENSIBLE subformat guid
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-07 17:54:52 +02:00