]> git.sesse.net Git - ffmpeg/log
ffmpeg
13 years agoffplay: remove useless intermediary variable dst_pix_fmt in queue_picture()
Stefano Sabatini [Mon, 11 Apr 2011 23:32:38 +0000 (01:32 +0200)]
ffplay: remove useless intermediary variable dst_pix_fmt in queue_picture()

Simplify.

Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
13 years agoffplay: avoid forward declaration for packet_queue_put()
Stefano Sabatini [Mon, 11 Apr 2011 23:31:42 +0000 (01:31 +0200)]
ffplay: avoid forward declaration for packet_queue_put()

Define the function before it is used. Simplify.

Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
13 years agoffplay: compact expression in compute_mod()
Stefano Sabatini [Sun, 2 May 2010 20:23:48 +0000 (22:23 +0200)]
ffplay: compact expression in compute_mod()

Prefer "return X ? Y : Z" over "if (x) return Y; else return Z",
reduce line count.

Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
13 years agocompute rects duration in ASS decoder
Aurelien Jacobs [Thu, 16 Dec 2010 08:16:33 +0000 (09:16 +0100)]
compute rects duration in ASS decoder

Signed-off-by: Aurelien Jacobs <aurel@gnuage.org>
13 years agoadd avcodec_get_subtitle_defaults() to initialize AVSubtitle struct
Aurelien Jacobs [Tue, 5 Apr 2011 07:04:48 +0000 (09:04 +0200)]
add avcodec_get_subtitle_defaults() to initialize AVSubtitle struct

Call this new function before decode() to replace the custom and
inconsistant initialization in various decoders.
This function is equivalent to avcodec_get_frame_defaults() for AVFrame.

Signed-off-by: Aurelien Jacobs <aurel@gnuage.org>
13 years agooggdec: use av_freep() instead of av_free()
Michael Niedermayer [Mon, 11 Apr 2011 09:49:07 +0000 (11:49 +0200)]
oggdec: use av_freep() instead of av_free()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agovsrc_buffer.h: add file doxy
Stefano Sabatini [Mon, 11 Apr 2011 09:29:35 +0000 (11:29 +0200)]
vsrc_buffer.h: add file doxy

Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
13 years agovsrc_buffer.h: add multiple inclusion guards
Stefano Sabatini [Sun, 3 Apr 2011 15:46:43 +0000 (17:46 +0200)]
vsrc_buffer.h: add multiple inclusion guards

Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
13 years agovsrc_buffer: tweak error message in init()
Stefano Sabatini [Sun, 3 Apr 2011 14:48:33 +0000 (16:48 +0200)]
vsrc_buffer: tweak error message in init()

Change:
Expected 7 arguments, but only %d found in '%s'\n
to:
Expected 7 arguments, but %d found in '%s'\n

as the user may provide more than 7 arguments, in that case the error
is not misleading.

13 years agoMerge remote branch 'qatar/master'
Michael Niedermayer [Mon, 11 Apr 2011 02:02:45 +0000 (04:02 +0200)]
Merge remote branch 'qatar/master'

* qatar/master:
  avio: add more documentation for AVIOContext.
  Parse sprite data for WMVP and WVP2, and decode sprites for the latter
  Replace outdated info on the FAQ
  Redefine sameq
  pad: fix example explanation
  gradfun: add notice from the MPlayer manual
  eval: add support for trunc, ceil, and floor functions
  documentation: add setdar and setsar description to filters.texi
  avio: document some members of AVIOContext.
  avio: document avio_close().
  avio: cosmetics, vertically align comments.
  avio: cosmetics, group the reading functions.
  avio: cosmetics, merge all the FF_API_OLD_AVIO blocks.
  avio: cosmetics, move AVIOContext to start of the file.
  avio: update file header.
  os: fix OpenBSD/PowerPC compilation
  pixfmt: add PIX_FMT_BGR48LE and PIX_FMT_BGR48BE
  oggdec: fix demuxing chained audio streams
  fix typo

Conflicts:
doc/filters.texi
libavformat/avio.h
libavutil/pixfmt.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoRevert "fbdev: simplify logic in fbdev_read_packet()"
Michael Niedermayer [Sun, 10 Apr 2011 22:37:00 +0000 (00:37 +0200)]
Revert "fbdev: simplify logic in fbdev_read_packet()"

This change is buggy.

This reverts commit d46c9f83cf495c901e6128ce1042190f620b89c4.

13 years agoffmpeg: rename configure_filters() to configure_video_filters()
Stefano Sabatini [Sun, 3 Apr 2011 19:54:57 +0000 (21:54 +0200)]
ffmpeg: rename configure_filters() to configure_video_filters()

Mostly useful for the audio-filters branch, to make more apparent the
distinction between configure_audio_filters() and
configure_video_filters().

Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
13 years agolavfi: add fieldorder filter
Mark Himsley [Sun, 10 Apr 2011 17:18:03 +0000 (19:18 +0200)]
lavfi: add fieldorder filter

Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
13 years agofbdev: simplify logic in fbdev_read_packet()
Stefano Sabatini [Sat, 12 Mar 2011 14:24:54 +0000 (15:24 +0100)]
fbdev: simplify logic in fbdev_read_packet()

Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
13 years agoH264: Allow templating hl_decode_mb based on pixel_size.
Michael Niedermayer [Sun, 10 Apr 2011 18:44:14 +0000 (20:44 +0200)]
H264: Allow templating hl_decode_mb based on pixel_size.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoH264: factor if() out of coef decoding loop of decode_cabac_residual_internal()
Michael Niedermayer [Sun, 10 Apr 2011 17:53:43 +0000 (19:53 +0200)]
H264: factor if() out of coef decoding loop of decode_cabac_residual_internal()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoH264: Split out hl_motion and template it, this seems a bit faster
Michael Niedermayer [Sun, 10 Apr 2011 15:04:13 +0000 (17:04 +0200)]
H264: Split out hl_motion and template it, this seems a bit faster
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoH264: replace pixel_size by pixel_shift
Michael Niedermayer [Sun, 10 Apr 2011 14:12:56 +0000 (16:12 +0200)]
H264: replace pixel_size by pixel_shift
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoh264: Print bpp Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Michael Niedermayer [Sat, 9 Apr 2011 22:28:57 +0000 (00:28 +0200)]
h264: Print bpp Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

13 years agoEnable decoding of high bit depth h264.
Oskar Arvidsson [Tue, 29 Mar 2011 15:49:00 +0000 (17:49 +0200)]
Enable decoding of high bit depth h264.

This patch completes the high bit depth h264 decoding support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoAdds 8-, 9- and 10-bit versions of some of the functions used by the h264 decoder.
Oskar Arvidsson [Tue, 29 Mar 2011 15:48:59 +0000 (17:48 +0200)]
Adds 8-, 9- and 10-bit versions of some of the functions used by the h264 decoder.

This patch lets e.g. dsputil_init chose dsp functions with respect to
the bit depth to decode. The naming scheme of bit depth dependent
functions is <base name>_<bit depth>[_<prefix>] (i.e. the old
clear_blocks_c is now named clear_blocks_8_c).

Note: Some of the functions for high bit depth is not dependent on the
bit depth, but only on the pixel size. This leaves some room for
optimizing binary size.

Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoAdd support for higher QP values in h264.
Oskar Arvidsson [Tue, 29 Mar 2011 15:48:58 +0000 (17:48 +0200)]
Add support for higher QP values in h264.

In high bit depth, the QP values may now be up to (51 + 6*(bit_depth-8)).

Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoH264: fix prefetch
Michael Niedermayer [Sun, 10 Apr 2011 14:12:18 +0000 (16:12 +0200)]
H264: fix prefetch
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoAdd the notion of pixel size in h264 related functions.
Oskar Arvidsson [Tue, 29 Mar 2011 15:48:57 +0000 (17:48 +0200)]
Add the notion of pixel size in h264 related functions.

In high bit depth the pixels will not be stored in uint8_t like in the
normal case, but in uint16_t. The pixel size is thus 1 in normal bit
depth and 2 in high bit depth.

Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoMake the h264 loop filter bit depth aware.
Oskar Arvidsson [Tue, 29 Mar 2011 15:48:56 +0000 (17:48 +0200)]
Make the h264 loop filter bit depth aware.

Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoTemplate dsputil_internal.h with respect to pixel size, etc.
Oskar Arvidsson [Tue, 29 Mar 2011 15:48:55 +0000 (17:48 +0200)]
Template dsputil_internal.h with respect to pixel size, etc.

Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoTemplate h264idct_internal.h with respect to pixel size, etc.
Oskar Arvidsson [Tue, 29 Mar 2011 15:48:54 +0000 (17:48 +0200)]
Template h264idct_internal.h with respect to pixel size, etc.

Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoTemplate h264pred_internal.h with respect to bit depth, etc.
Oskar Arvidsson [Tue, 29 Mar 2011 15:48:53 +0000 (17:48 +0200)]
Template h264pred_internal.h with respect to bit depth, etc.

Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoTemplate h264dsp_internal.h with respect to pixel size, etc.
Oskar Arvidsson [Tue, 29 Mar 2011 15:48:52 +0000 (17:48 +0200)]
Template h264dsp_internal.h with respect to pixel size, etc.

Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoMove some functions in dsputil.c into a new file dsputil_internal.h.
Oskar Arvidsson [Tue, 29 Mar 2011 15:48:51 +0000 (17:48 +0200)]
Move some functions in dsputil.c into a new file dsputil_internal.h.

The functions moved are used when decoding h264.
Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoMove the functions in h264idct into a new file h264idct_internal.h.
Oskar Arvidsson [Tue, 29 Mar 2011 15:48:50 +0000 (17:48 +0200)]
Move the functions in h264idct into a new file h264idct_internal.h.

Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoMove the functions in h264pred.c into a new file h264pred_internal.h.
Oskar Arvidsson [Tue, 29 Mar 2011 15:48:49 +0000 (17:48 +0200)]
Move the functions in h264pred.c into a new file h264pred_internal.h.

Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoMove the functions in h264dsp.c into a new file h264dsp_internal.h
Oskar Arvidsson [Tue, 29 Mar 2011 15:48:48 +0000 (17:48 +0200)]
Move the functions in h264dsp.c into a new file h264dsp_internal.h

Preparatory patch for high bit depth h264 decoding support.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoAdd pixel formats for 9- and 10-bit yuv420p.
Oskar Arvidsson [Tue, 29 Mar 2011 15:48:47 +0000 (17:48 +0200)]
Add pixel formats for 9- and 10-bit yuv420p.

Also add support for these formats in libswscale.

Needed for high bit depth h264 decoding.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoChoose h264 chroma dc dequant function dynamically.
Oskar Arvidsson [Tue, 29 Mar 2011 15:48:46 +0000 (17:48 +0200)]
Choose h264 chroma dc dequant function dynamically.

Needed for high bit depth h264 decoding.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoH264: Fix slice threads
Michael Niedermayer [Sun, 10 Apr 2011 12:26:59 +0000 (14:26 +0200)]
H264: Fix slice threads
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoavio: add more documentation for AVIOContext.
Anton Khirnov [Sun, 10 Apr 2011 06:14:26 +0000 (08:14 +0200)]
avio: add more documentation for AVIOContext.

13 years agoFix input buffer size check in adpcm_ea decoder.
Reimar Döffinger [Thu, 7 Apr 2011 23:19:21 +0000 (01:19 +0200)]
Fix input buffer size check in adpcm_ea decoder.

Unfortunately the output buffer size check assumes that the
input buffer is never over-consumed, thus this actually
also allowed to write outside the output buffer if "lucky".

13 years agoParse sprite data for WMVP and WVP2, and decode sprites for the latter
Alberto Delmás [Fri, 8 Apr 2011 18:00:48 +0000 (20:00 +0200)]
Parse sprite data for WMVP and WVP2, and decode sprites for the latter

Signed-off-by: Anton Khirnov <anton@khirnov.net>
13 years agoReplace outdated info on the FAQ
Lou Logan [Sat, 9 Apr 2011 11:50:07 +0000 (13:50 +0200)]
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>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
13 years agoRedefine sameq
Lou Logan [Sat, 9 Apr 2011 11:50:05 +0000 (13:50 +0200)]
Redefine sameq

I think the documentation of sameq is causing confusion and misuse of
this option.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
13 years agopad: fix example explanation
Stefano Sabatini [Sat, 9 Apr 2011 11:50:01 +0000 (13:50 +0200)]
pad: fix example explanation

"row" and "column" term positions in the explanation were inverted.

Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
13 years agogradfun: add notice from the MPlayer manual
Stefano Sabatini [Sat, 9 Apr 2011 11:49:57 +0000 (13:49 +0200)]
gradfun: add notice from the MPlayer manual

Add notice telling that the filter is designed for playback only.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
13 years agoeval: add support for trunc, ceil, and floor functions
Stefano Sabatini [Sat, 9 Apr 2011 11:49:54 +0000 (13:49 +0200)]
eval: add support for trunc, ceil, and floor functions

Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
13 years agodocumentation: add setdar and setsar description to filters.texi
Stefano Sabatini [Sat, 9 Apr 2011 11:49:48 +0000 (13:49 +0200)]
documentation: add setdar and setsar description to filters.texi

Signed-off-by: Anton Khirnov <anton@khirnov.net>
13 years agoavio: document some members of AVIOContext.
Anton Khirnov [Sat, 9 Apr 2011 10:20:04 +0000 (12:20 +0200)]
avio: document some members of AVIOContext.

13 years agoavio: document avio_close().
Anton Khirnov [Sat, 9 Apr 2011 10:43:51 +0000 (12:43 +0200)]
avio: document avio_close().

13 years agoavio: cosmetics, vertically align comments.
Anton Khirnov [Sat, 9 Apr 2011 10:21:36 +0000 (12:21 +0200)]
avio: cosmetics, vertically align comments.

13 years agoavio: cosmetics, group the reading functions.
Anton Khirnov [Sat, 9 Apr 2011 06:55:53 +0000 (08:55 +0200)]
avio: cosmetics, group the reading functions.

13 years agoavio: cosmetics, merge all the FF_API_OLD_AVIO blocks.
Anton Khirnov [Sat, 9 Apr 2011 06:52:35 +0000 (08:52 +0200)]
avio: cosmetics, merge all the FF_API_OLD_AVIO blocks.

13 years agoavio: cosmetics, move AVIOContext to start of the file.
Anton Khirnov [Sat, 9 Apr 2011 06:44:14 +0000 (08:44 +0200)]
avio: cosmetics, move AVIOContext to start of the file.

13 years agoavio: update file header.
Anton Khirnov [Sat, 9 Apr 2011 06:30:15 +0000 (08:30 +0200)]
avio: update file header.

13 years agoos: fix OpenBSD/PowerPC compilation
Brad [Sat, 2 Apr 2011 21:16:59 +0000 (17:16 -0400)]
os: fix OpenBSD/PowerPC compilation

When attempting to re-enable the AltiVec support it was noticed
that we need to undefine _POSIX_C_SOURCE to appease the headers
for ff_get_cpu_flags_ppc() to be able to compile.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
13 years agopixfmt: add PIX_FMT_BGR48LE and PIX_FMT_BGR48BE
Peter Ross [Sat, 9 Apr 2011 11:49:45 +0000 (13:49 +0200)]
pixfmt: add PIX_FMT_BGR48LE and PIX_FMT_BGR48BE

PIX_FMT_BGR48LE is used by PhantomCINE demuxer.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
13 years agooggdec: fix demuxing chained audio streams
Clément Bœsch [Mon, 4 Apr 2011 22:29:01 +0000 (00:29 +0200)]
oggdec: fix demuxing chained audio streams

Chained ogg served by icecast and mpd should demux
properly now.

Fixes issue2337

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
13 years agofix typo
Compn [Sat, 9 Apr 2011 11:49:56 +0000 (13:49 +0200)]
fix typo

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
13 years agoAdd "Did you provide a clear git commit log message?" to the patch checklist
Ronald S. Bultje [Sat, 9 Apr 2011 22:06:28 +0000 (00:06 +0200)]
Add "Did you provide a clear git commit log message?" to the patch checklist
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agox11: fix memleak
Carl Eugen Hoyos [Fri, 1 Apr 2011 15:56:45 +0000 (15:56 +0000)]
x11: fix memleak

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoreplace movw instruction in ac3dsp_armv6.S
pin xue [Sat, 9 Apr 2011 08:05:11 +0000 (16:05 +0800)]
replace movw instruction in ac3dsp_armv6.S

AS      libavcodec/arm/ac3dsp_armv6.o
ffmpeg-src/libavcodec/arm/ac3dsp_armv6.S: Assembler messages:
ffmpeg-src/libavcodec/arm/ac3dsp_armv6.S:40: Error: selected processor
does not support `movw r8,#0x1fe0'
make[1]: *** [libavcodec/arm/ac3dsp_armv6.o] Error 1

MOVW is ARMv7 way to load constant:
   * movw, or move wide, will move a 16-bit constant into a register,
implicitly zeroing the top 16 bits of the target register.
   * movt, or move top, will move a 16-bit constant into the top half
of a given register without altering the bottom 16 bits
To load 32 bit constant, movw  lower16; movt upper16; is better than
ldr if available, because:
While this approach takes two instructions, it does not require any
extra space to store the constant so both the movw/movt method and the
ldr method will end up using the same amount of memory. Memory
bandwidth is precious in and the movw/movt approach avoids an extra
read on the data side, not to mention the read could have missed the
cache.

But here it is armv6 optimization, so that we have to use ldr.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoMerge remote branch 'qatar/master'
Michael Niedermayer [Sun, 10 Apr 2011 01:31:53 +0000 (03:31 +0200)]
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>
13 years agodaud: Don't write packets that are too large to have their size expressed in the...
Alex Converse [Fri, 8 Apr 2011 21:35:17 +0000 (14:35 -0700)]
daud: Don't write packets that are too large to have their size expressed in the bytestream.

13 years agoAbort Ogg header parsing when we encounter a data packet.
Reimar Döffinger [Thu, 7 Apr 2011 23:17:21 +0000 (01:17 +0200)]
Abort Ogg header parsing when we encounter a data packet.

Fixes ticket #15.

13 years agopthread: validate_thread_parameters() ignored slice-threading being intentionally off
Alexander Strange [Sun, 3 Apr 2011 19:54:14 +0000 (15:54 -0400)]
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>
13 years agoUse consistent condition for whether to run slice-threading execute function.
Reimar Döffinger [Sat, 2 Apr 2011 00:24:46 +0000 (20:24 -0400)]
Use consistent condition for whether to run slice-threading execute function.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
13 years agoavformat.h: fix a misplaced #endif
Anton Khirnov [Sat, 9 Apr 2011 05:30:33 +0000 (07:30 +0200)]
avformat.h: fix a misplaced #endif

13 years agovaapi: cope with VA-API 0.32, i.e. fix VC-1 decoding on Sandy Bridge.
Gwenole Beauchesne [Tue, 29 Mar 2011 08:52:15 +0000 (10:52 +0200)]
vaapi: cope with VA-API 0.32, i.e. fix VC-1 decoding on Sandy Bridge.

(cherry picked from commit a18e7b4fb77d3799cf21110b5e6dda4691a295b3)

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
13 years agovaapi: filter out DELAYED_PIC_REF flag to determine field.
Gwenole Beauchesne [Tue, 29 Mar 2011 09:07:29 +0000 (11:07 +0200)]
vaapi: filter out DELAYED_PIC_REF flag to determine field.

This fixes ticket #23.

(cherry picked from commit 621f4c98df4ee9fd604a614f31e09eef9dd7d3ca)

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
13 years agoCrystalHD: Improve detection of h.264 content.
Philip Langdale [Sat, 26 Mar 2011 17:34:20 +0000 (10:34 -0700)]
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>
13 years agoCrystalHD: Carry picture type from input to output picture.
Philip Langdale [Sat, 26 Mar 2011 05:48:41 +0000 (22:48 -0700)]
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>
13 years agoCrystalHD: Bring in h.264 parser to establish picture type.
Philip Langdale [Sat, 26 Mar 2011 05:46:22 +0000 (22:46 -0700)]
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>
13 years agoCrystalHD: Change opaque_list_pop to return the node.
Philip Langdale [Sat, 26 Mar 2011 05:43:53 +0000 (22:43 -0700)]
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>
13 years agoCrystalHD: Fix whitespace after previous change.
Philip Langdale [Sun, 27 Mar 2011 16:39:16 +0000 (09:39 -0700)]
CrystalHD: Fix whitespace after previous change.

'git diff -w' confirmed to return nothing.

Signed-off-by: Philip Langdale <philipl@overt.org>
13 years agoCrystalHD: Handle different h.264 MBAFF packing.
Philip Langdale [Sun, 27 Mar 2011 16:37:49 +0000 (09:37 -0700)]
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>
13 years agoflv: Only parse keyframe index when the underlaying protocol allows seeking as we...
Michael Niedermayer [Fri, 8 Apr 2011 22:03:01 +0000 (00:03 +0200)]
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>
13 years agoFix support for flvtool2 "keyframes based" generated index in FLV format decoder
Kharkov Alexander [Fri, 8 Apr 2011 09:20:45 +0000 (16:20 +0700)]
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>
13 years agoReplace outdated info on the FAQ
Lou Logan [Thu, 7 Apr 2011 22:26:49 +0000 (14:26 -0800)]
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>
13 years agoMerge remote branch 'qatar/master'
Michael Niedermayer [Sat, 9 Apr 2011 01:09:49 +0000 (03:09 +0200)]
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>
13 years agoFix ticket21, temporary audio array was too small.
Michael Niedermayer [Fri, 8 Apr 2011 23:00:44 +0000 (01:00 +0200)]
Fix ticket21, temporary audio array was too small.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agolavf: bump minor and add an APIChanges entry for avformat cleanup
Anton Khirnov [Fri, 8 Apr 2011 09:46:52 +0000 (11:46 +0200)]
lavf: bump minor and add an APIChanges entry for avformat cleanup

13 years agolavf: get rid of ffm-specific stuff in avformat.h
Anton Khirnov [Fri, 8 Apr 2011 09:21:13 +0000 (11:21 +0200)]
lavf: get rid of ffm-specific stuff in avformat.h

13 years agoavio: deprecate av_protocol_next().
Anton Khirnov [Mon, 4 Apr 2011 18:28:58 +0000 (20:28 +0200)]
avio: deprecate av_protocol_next().

13 years agoavio: add a function for iterating though protocol names.
Anton Khirnov [Mon, 4 Apr 2011 06:18:54 +0000 (08:18 +0200)]
avio: add a function for iterating though protocol names.

13 years agolavf: rename a parameter of av_sdp_create from buff->buf
Anton Khirnov [Fri, 8 Apr 2011 10:22:39 +0000 (12:22 +0200)]
lavf: rename a parameter of av_sdp_create from buff->buf

This is more consistent with the rest of the API.

13 years agolavf: rename avf_sdp_create to av_sdp_create.
Anton Khirnov [Fri, 8 Apr 2011 09:36:12 +0000 (11:36 +0200)]
lavf: rename avf_sdp_create to av_sdp_create.

The new name is more consistent with the rest of the API.

13 years agolavf: make av_guess_image2_codec internal
Anton Khirnov [Tue, 5 Apr 2011 11:13:53 +0000 (13:13 +0200)]
lavf: make av_guess_image2_codec internal

It doesn't look very useful as a public function.

13 years agoavio: make URLProtocol internal.
Anton Khirnov [Thu, 7 Apr 2011 19:01:17 +0000 (21:01 +0200)]
avio: make URLProtocol internal.

13 years agoavio: make URLContext internal.
Anton Khirnov [Thu, 7 Apr 2011 18:25:52 +0000 (20:25 +0200)]
avio: make URLContext internal.

13 years agolavf: mark av_pkt_dump(_log) for remove on $next+1 bump.
Anton Khirnov [Tue, 5 Apr 2011 10:59:27 +0000 (12:59 +0200)]
lavf: mark av_pkt_dump(_log) for remove on $next+1 bump.

13 years agoCleanup 'Fix spurious warning when stream has SPS and PPS units.'
Michael Niedermayer [Fri, 8 Apr 2011 10:26:45 +0000 (12:26 +0200)]
Cleanup 'Fix spurious warning when stream has SPS and PPS units.'
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agolavf: use designated initializers for all protocols
Anton Khirnov [Fri, 8 Apr 2011 05:41:47 +0000 (07:41 +0200)]
lavf: use designated initializers for all protocols

This is more readable and makes it easier to reorder URLProtocol
members.

13 years agoapplehttp: don't use deprecated url_ functions.
Anton Khirnov [Fri, 8 Apr 2011 04:57:54 +0000 (06:57 +0200)]
applehttp: don't use deprecated url_ functions.

13 years agoavio: move two ff_udp_* functions from avio_internal to url.h
Anton Khirnov [Thu, 7 Apr 2011 18:15:43 +0000 (20:15 +0200)]
avio: move two ff_udp_* functions from avio_internal to url.h

13 years agoasfdec: remove a forgotten declaration of nonexistent function
Anton Khirnov [Thu, 7 Apr 2011 18:13:36 +0000 (20:13 +0200)]
asfdec: remove a forgotten declaration of nonexistent function

13 years agoavio: deprecate the typedef for URLInterruptCB
Anton Khirnov [Thu, 7 Apr 2011 17:17:55 +0000 (19:17 +0200)]
avio: deprecate the typedef for URLInterruptCB

There's no particular reason to pollute the namespace with a typedef for
it.

13 years ago Merge remote-tracking branch 'ffmpeg-mt/master'
Alexander Strange [Fri, 8 Apr 2011 01:03:03 +0000 (03:03 +0200)]
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>
13 years agoMerge remote branch 'qatar/master'
Michael Niedermayer [Fri, 8 Apr 2011 00:50:13 +0000 (02:50 +0200)]
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>
13 years agofix another forgotten mplayerhq.hu link
Michael Niedermayer [Thu, 7 Apr 2011 23:35:43 +0000 (01:35 +0200)]
fix another forgotten mplayerhq.hu link
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoFix link to ffmpeg-devel
Michael Niedermayer [Thu, 7 Apr 2011 22:17:53 +0000 (00:17 +0200)]
Fix link to ffmpeg-devel
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoFix deblocking with thread_slices
Michael Niedermayer [Thu, 7 Apr 2011 22:15:09 +0000 (00:15 +0200)]
Fix deblocking with thread_slices
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years agoffplay: Set EMU_EDGE if dr1, this is an alternative fix for ticket40.
Michael Niedermayer [Thu, 7 Apr 2011 13:12:03 +0000 (15:12 +0200)]
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>