[-]
[+]
|
Changed |
ffmpeg.changes
|
|
[-]
[+]
|
Changed |
ffmpeg.spec
^
|
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/Doxyfile
^
|
@@ -1,4 +1,4 @@
-# Doxyfile 1.5.6
+# Doxyfile 1.7.1
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project
@@ -31,7 +31,7 @@
# This could be handy for archiving the generated documentation or
# if some version control system is used.
-PROJECT_NUMBER =
+PROJECT_NUMBER = 0.8.4
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
@@ -54,11 +54,11 @@
# information to generate all constant output in the proper language.
# The default language is English, other supported languages are:
# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek,
-# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages),
-# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish,
-# Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish,
-# and Ukrainian.
+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak,
+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
OUTPUT_LANGUAGE = English
@@ -155,13 +155,6 @@
MULTILINE_CPP_IS_BRIEF = NO
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member
-# documentation.
-
-DETAILS_AT_TOP = NO
-
# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
# member inherits the documentation from any documented member that it
# re-implements.
@@ -214,6 +207,18 @@
OPTIMIZE_OUTPUT_VHDL = NO
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given extension.
+# Doxygen has a built-in mapping, but you can override or extend it using this
+# tag. The format is ext=language, where ext is a file extension, and language
+# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
+# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
+# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
+# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
+# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
+
+EXTENSION_MAPPING =
+
# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
# to include (a tag file for) the STL sources as input, then you should
# set this tag to YES in order to let doxygen match functions declarations and
@@ -268,6 +273,22 @@
TYPEDEF_HIDES_STRUCT = NO
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
+# determine which symbols to keep in memory and which to flush to disk.
+# When the cache is full, less often used symbols will be written to disk.
+# For small to medium size projects (<1000 input files) the default value is
+# probably good enough. For larger projects a too small cache size can cause
+# doxygen to be busy swapping symbols to and from disk most of the time
+# causing a significant performance penality.
+# If the system has enough physical memory increasing the cache will improve the
+# performance by keeping more symbols in memory. Note that the value works on
+# a logarithmic scale so increasing the size by one will rougly double the
+# memory usage. The cache size is given by this formula:
+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
+# corresponding to a cache size of 2^16 = 65536 symbols
+
+SYMBOL_CACHE_SIZE = 0
+
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
@@ -366,6 +387,12 @@
SHOW_INCLUDE_FILES = YES
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
+# will list include files with double quotes in the documentation
+# rather than with sharp brackets.
+
+FORCE_LOCAL_INCLUDES = NO
+
# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
# is inserted in the documentation for inline members.
@@ -385,6 +412,16 @@
SORT_BRIEF_DOCS = NO
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
+# will sort the (brief and detailed) documentation of class members so that
+# constructors and destructors are listed first. If set to NO (the default)
+# the constructors will appear in the respective orders defined by
+# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
+# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
+# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
# hierarchy of group names into alphabetical order. If set to NO (the default)
# the group names will appear in their defined order.
@@ -459,7 +496,8 @@
SHOW_FILES = YES
# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
-# Namespaces page. This will remove the Namespaces entry from the Quick Index
+# Namespaces page.
+# This will remove the Namespaces entry from the Quick Index
# and from the Folder Tree View (if specified). The default is YES.
SHOW_NAMESPACES = YES
@@ -474,6 +512,15 @@
FILE_VERSION_FILTER =
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. The create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option.
+# You can optionally specify a file name after the option, if omitted
+# DoxygenLayout.xml will be used as the name of the layout file.
+
+LAYOUT_FILE =
+
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
@@ -577,7 +624,8 @@
# against the file with absolute path, so to exclude all test directories
# for example use the pattern */test/*
-EXCLUDE_PATTERNS = *.git *.d
+EXCLUDE_PATTERNS = *.git \
+ *.d
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
@@ -591,14 +639,15 @@
# directories that contain example code fragments that are included (see
# the \include command).
-EXAMPLE_PATH =
+EXAMPLE_PATH = libavcodec/ \
+ libavformat/
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank all files are included.
-EXAMPLE_PATTERNS =
+EXAMPLE_PATTERNS = *-example.c
# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
# searched for input files to be used with the \include or \dontinclude
@@ -618,14 +667,17 @@
# by executing (via popen()) the command <filter> <input-file>, where <filter>
# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
# input file. Doxygen will then use the output that the filter program writes
-# to standard output. If FILTER_PATTERNS is specified, this tag will be
+# to standard output.
+# If FILTER_PATTERNS is specified, this tag will be
# ignored.
INPUT_FILTER =
# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis. Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match. The filters are a list of the form:
+# basis.
+# Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match.
+# The filters are a list of the form:
# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
# is applied to all files.
@@ -675,7 +727,8 @@
# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code. Otherwise they will link to the documentstion.
+# link to the source code.
+# Otherwise they will link to the documentation.
REFERENCES_LINK_SOURCE = YES
@@ -758,18 +811,50 @@
HTML_STYLESHEET =
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
+# Doxygen will adjust the colors in the stylesheet and background images
+# according to this color. Hue is specified as an angle on a colorwheel,
+# see http://en.wikipedia.org/wiki/Hue for more information.
+# For instance the value 0 represents red, 60 is yellow, 120 is green,
+# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
+# The allowed range is 0 to 359.
+
+HTML_COLORSTYLE_HUE = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
+# the colors in the HTML output. For a value of 0 the output will use
+# grayscales only. A value of 255 will produce the most vivid colors.
+
+HTML_COLORSTYLE_SAT = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
+# the luminance component of the colors in the HTML output. Values below
+# 100 gradually make the output lighter, whereas values above 100 make
+# the output darker. The value divided by 100 is the actual gamma applied,
+# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
+# and 100 does not change the gamma.
+
+HTML_COLORSTYLE_GAMMA = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting
+# this to NO can help when comparing the output of multiple runs.
+
+HTML_TIMESTAMP = YES
+
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
# files or namespaces will be aligned in HTML using tables. If set to
# NO a bullet list will be used.
HTML_ALIGN_MEMBERS = YES
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
-# of the generated HTML documentation.
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded. For this to work a browser that supports
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
-GENERATE_HTMLHELP = NO
+HTML_DYNAMIC_SECTIONS = NO
# If the GENERATE_DOCSET tag is set to YES, additional index files
# will be generated that can be used as input for Apple's Xcode 3
@@ -779,6 +864,8 @@
# directory and running "make install" will install the docset in
# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
# it at startup.
+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
GENERATE_DOCSET = NO
@@ -796,13 +883,22 @@
DOCSET_BUNDLE_ID = org.doxygen.Project
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded. For this to work a browser that supports
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
-HTML_DYNAMIC_SECTIONS = NO
+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
+
+# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
+
+DOCSET_PUBLISHER_NAME = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP = NO
# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
# be used to specify the file name of the resulting .chm file. You
@@ -841,6 +937,76 @@
TOC_EXPAND = NO
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
+# that can be used as input for Qt's qhelpgenerator to generate a
+# Qt Compressed Help (.qch) of the generated HTML documentation.
+
+GENERATE_QHP = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
+# be used to specify the file name of the resulting .qch file.
+# The path specified is relative to the HTML output folder.
+
+QCH_FILE =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#namespace
+
+QHP_NAMESPACE = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#virtual-folders
+
+QHP_VIRTUAL_FOLDER = doc
+
+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
+# add. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#custom-filters
+
+QHP_CUST_FILTER_NAME =
+
+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see
+# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
+# Qt Help Project / Custom Filters</a>.
+
+QHP_CUST_FILTER_ATTRS =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's
+# filter section matches.
+# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
+# Qt Help Project / Filter Attributes</a>.
+
+QHP_SECT_FILTER_ATTRS =
+
+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
+# be used to specify the location of Qt's qhelpgenerator.
+# If non-empty doxygen will try to run qhelpgenerator on the generated
+# .qhp file.
+
+QHG_LOCATION =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
+# will be generated, which together with the HTML files, form an Eclipse help
+# plugin. To install this plugin and make it available under the help contents
+# menu in Eclipse, the contents of the directory containing the HTML and XML
+# files needs to be copied into the plugins directory of eclipse. The name of
+# the directory within the plugins directory should be the same as
+# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
+# the help appears.
+
+GENERATE_ECLIPSEHELP = NO
+
+# A unique identifier for the eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have
+# this name.
+
+ECLIPSE_DOC_ID = org.doxygen.Project
+
# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
# top of each HTML page. The value NO (the default) enables the index and
# the value YES disables it.
@@ -854,27 +1020,30 @@
# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
# structure should be generated to display hierarchical information.
-# If the tag value is set to FRAME, a side panel will be generated
+# If the tag value is set to YES, a side panel will be generated
# containing a tree-like index structure (just like the one that
# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
-# probably better off using the HTML help feature. Other possible values
-# for this tag are: HIERARCHIES, which will generate the Groups, Directories,
-# and Class Hiererachy pages using a tree view instead of an ordered list;
-# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which
-# disables this behavior completely. For backwards compatibility with previous
-# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE
-# respectively.
+# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
+# Windows users are probably better off using the HTML help feature.
GENERATE_TREEVIEW = NO
+# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
+# and Class Hierarchy pages using a tree view instead of an ordered list.
+
+USE_INLINE_TREES = NO
+
# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
# used to set the initial width (in pixels) of the frame in which the tree
# is shown.
TREEVIEW_WIDTH = 250
+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
+# links to external symbols imported via tag files in a separate window.
+
+EXT_LINKS_IN_WINDOW = NO
+
# Use this tag to change the font size of Latex formulas included
# as images in the HTML documentation. The default is 10. Note that
# when you change the font size after a successful doxygen run you need
@@ -883,6 +1052,34 @@
FORMULA_FONTSIZE = 10
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are
+# not supported properly for IE 6.0, but are supported on all modern browsers.
+# Note that when changing this option you need to delete any form_*.png files
+# in the HTML output before the changes have effect.
+
+FORMULA_TRANSPARENT = YES
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box
+# for the HTML output. The underlying search engine uses javascript
+# and DHTML and should work on any modern browser. Note that when using
+# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
+# (GENERATE_DOCSET) there is already a search function so this one should
+# typically be disabled. For large projects the javascript based search engine
+# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
+
+SEARCHENGINE = NO
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a PHP enabled web server instead of at the web client
+# using Javascript. Doxygen will generate the search PHP script and index
+# file to put on the web server. The advantage of the server
+# based approach is that it scales better to large projects and allows
+# full text search. The disadvances is that it is more difficult to setup
+# and does not have live searching capabilities.
+
+SERVER_BASED_SEARCH = NO
+
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
@@ -900,6 +1097,9 @@
# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
# invoked. If left blank `latex' will be used as the default command name.
+# Note that when enabling USE_PDFLATEX this option is only used for
+# generating bitmaps for formulas in the HTML output, but not in the
+# Makefile that is written to the output directory.
LATEX_CMD_NAME = latex
@@ -959,6 +1159,13 @@
LATEX_HIDE_INDICES = NO
+# If LATEX_SOURCE_CODE is set to YES then doxygen will include
+# source code with syntax highlighting in the LaTeX output.
+# Note that which sources are shown also depends on other settings
+# such as SOURCE_BROWSER.
+
+LATEX_SOURCE_CODE = NO
+
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
@@ -1095,8 +1302,10 @@
PERLMOD_LATEX = NO
# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader. This is useful
-# if you want to understand what is going on. On the other hand, if this
+# nicely formatted so it can be parsed by a human reader.
+# This is useful
+# if you want to understand what is going on.
+# On the other hand, if this
# tag is set to NO the size of the Perl module output will be much smaller
# and Perl will parse it just the same.
@@ -1158,16 +1367,22 @@
# undefined via #undef or recursively expanded use the := operator
# instead of the = operator.
-PREDEFINED = __attribute__(x)="" "RENAME(x)=x ## _TMPL" "DEF(x)=x ## _TMPL" \
- HAVE_AV_CONFIG_H HAVE_MMX HAVE_MMX2 HAVE_AMD3DNOW \
+PREDEFINED = "__attribute__(x)=" \
+ "RENAME(x)=x ## _TMPL" \
+ "DEF(x)=x ## _TMPL" \
+ HAVE_AV_CONFIG_H \
+ HAVE_MMX \
+ HAVE_MMX2 \
+ HAVE_AMD3DNOW \
+ "DECLARE_ALIGNED(a,t,n)=t n" \
+ "offsetof(x,y)=0x42"
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
# this tag can be used to specify a list of macro names that should be expanded.
# The macro definition that is found in the sources will be used.
# Use the PREDEFINED tag if you want to use a different macro definition.
-#EXPAND_AS_DEFINED = FF_COMMON_FRAME
-EXPAND_AS_DEFINED = declare_idct(idct, table, idct_row_head, idct_row, idct_row_tail, idct_row_mid)
+EXPAND_AS_DEFINED = declare_idct
# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
# doxygen's preprocessor will remove all function-like macros that are alone
@@ -1185,9 +1400,11 @@
# Optionally an initial location of the external documentation
# can be added for each tagfile. The format of a tag file without
# this location is as follows:
-# TAGFILES = file1 file2 ...
+#
+# TAGFILES = file1 file2 ...
# Adding location for the tag files is done as follows:
-# TAGFILES = file1=loc1 "file2 = loc2" ...
+#
+# TAGFILES = file1=loc1 "file2 = loc2" ...
# where "loc1" and "loc2" can be relative or absolute paths or
# URLs. If a location is present for each tag, the installdox tool
# does not have to be run to correct the links.
@@ -1255,6 +1472,14 @@
HAVE_DOT = NO
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
+# allowed to run in parallel. When set to 0 (the default) doxygen will
+# base this on the number of processors available in the system. You can set it
+# explicitly to a value larger than 0 to get control over the balance
+# between CPU load and processing speed.
+
+DOT_NUM_THREADS = 0
+
# By default doxygen will write a font called FreeSans.ttf to the output
# directory and reference it in all dot files that doxygen generates. This
# font does not include all possible unicode characters however, so when you need
@@ -1266,6 +1491,11 @@
DOT_FONTNAME = FreeSans
+# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
+# The default size is 10pt.
+
+DOT_FONTSIZE = 10
+
# By default doxygen will tell dot to use the output directory to look for the
# FreeSans.ttf font (which doxygen will put there itself). If you specify a
# different font using DOT_FONTNAME you can set the path where dot
@@ -1383,10 +1613,10 @@
MAX_DOT_GRAPH_DEPTH = 0
# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is enabled by default, which results in a transparent
-# background. Warning: Depending on the platform used, enabling this option
-# may lead to badly anti-aliased labels on the edges of a graph (i.e. they
-# become hard to read).
+# background. This is disabled by default, because dot on Windows does not
+# seem to support this out of the box. Warning: Depending on the platform used,
+# enabling this option may lead to badly anti-aliased labels on the edges of
+# a graph (i.e. they become hard to read).
DOT_TRANSPARENT = YES
@@ -1408,12 +1638,3 @@
# the various graphs.
DOT_CLEANUP = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE = NO
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/MAINTAINERS
^
|
@@ -373,6 +373,7 @@
Benoit Fouet B22A 4F4F 43EF 636B BB66 FCDC 0023 AE1E 2985 49C8
Daniel Verkamp 78A6 07ED 782C 653E C628 B8B9 F0EB 8DD8 2F0E 21C7
Diego Biurrun 8227 1E31 B6D9 4994 7427 E220 9CAE D6CC 4757 FCC5
+Gwenole Beauchesne 2E63 B3A6 3E44 37E2 017D 2704 53C7 6266 B153 99C4
Jaikrishnan Menon 61A1 F09F 01C9 2D45 78E1 C862 25DC 8831 AF70 D368
Justin Ruggles 3136 ECC0 C10D 6C04 5F43 CA29 FCBE CD2A 3787 1EBF
Loren Merritt ABD9 08F4 C920 3F65 D8BE 35D7 1540 DAA7 060F 56DE
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/Makefile
^
|
@@ -178,7 +178,7 @@
clean:: testclean
$(RM) $(ALLPROGS) $(ALLPROGS_G)
$(RM) $(CLEANSUFFIXES)
- $(RM) doc/*.html doc/*.pod doc/*.1
+ $(RM) doc/*.html doc/*.pod doc/*.1 doc/*.d doc/*~
$(RM) $(TOOLS)
$(RM) $(CLEANSUFFIXES:%=tools/%)
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/RELEASE
^
|
@@ -1 +1 @@
-0.7
+0.8.4
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/VERSION
^
|
@@ -1 +1 @@
-0.8
+0.8.4
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/cmdutils.c
^
|
@@ -574,12 +574,13 @@
print_all_libs_info(stderr, INDENT|SHOW_VERSION);
}
-void show_version(void) {
+int opt_version(const char *opt, const char *arg) {
printf("%s " FFMPEG_VERSION "\n", program_name);
print_all_libs_info(stdout, SHOW_VERSION);
+ return 0;
}
-void show_license(void)
+int opt_license(const char *opt, const char *arg)
{
printf(
#if CONFIG_NONFREE
@@ -646,9 +647,10 @@
program_name, program_name, program_name
#endif
);
+ return 0;
}
-void show_formats(void)
+int opt_formats(const char *opt, const char *arg)
{
AVInputFormat *ifmt=NULL;
AVOutputFormat *ofmt=NULL;
@@ -695,9 +697,10 @@
name,
long_name ? long_name:" ");
}
+ return 0;
}
-void show_codecs(void)
+int opt_codecs(const char *opt, const char *arg)
{
AVCodec *p=NULL, *p2;
const char *last_name;
@@ -771,9 +774,10 @@
"even though both encoding and decoding are supported. For example, the h263\n"
"decoder corresponds to the h263 and h263p encoders, for file formats it is even\n"
"worse.\n");
+ return 0;
}
-void show_bsfs(void)
+int opt_bsfs(const char *opt, const char *arg)
{
AVBitStreamFilter *bsf=NULL;
@@ -781,9 +785,10 @@
while((bsf = av_bitstream_filter_next(bsf)))
printf("%s\n", bsf->name);
printf("\n");
+ return 0;
}
-void show_protocols(void)
+int opt_protocols(const char *opt, const char *arg)
{
URLProtocol *up=NULL;
@@ -799,9 +804,10 @@
up->url_write ? 'O' : '.',
up->url_seek ? 'S' : '.',
up->name);
+ return 0;
}
-void show_filters(void)
+int opt_filters(const char *opt, const char *arg)
{
AVFilter av_unused(**filter) = NULL;
@@ -810,9 +816,10 @@
while ((filter = av_filter_next(filter)) && *filter)
printf("%-16s %s\n", (*filter)->name, (*filter)->description);
#endif
+ return 0;
}
-void show_pix_fmts(void)
+int opt_pix_fmts(const char *opt, const char *arg)
{
enum PixelFormat pix_fmt;
@@ -843,6 +850,7 @@
pix_desc->nb_components,
av_get_bits_per_pixel(pix_desc));
}
+ return 0;
}
int read_yesno(void)
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/cmdutils.h
^
|
@@ -62,7 +62,7 @@
/**
* Trivial log callback.
- * Only suitable for show_help and similar since it lacks prefix handling.
+ * Only suitable for opt_help and similar since it lacks prefix handling.
*/
void log_callback_help(void* ptr, int level, const char* fmt, va_list vl);
@@ -177,50 +177,58 @@
* Print the version of the program to stdout. The version message
* depends on the current versions of the repository and of the libav*
* libraries.
+ * This option processing function does not utilize the arguments.
*/
-void show_version(void);
+int opt_version(const char *opt, const char *arg);
/**
* Print the license of the program to stdout. The license depends on
* the license of the libraries compiled into the program.
+ * This option processing function does not utilize the arguments.
*/
-void show_license(void);
+int opt_license(const char *opt, const char *arg);
/**
* Print a listing containing all the formats supported by the
* program.
+ * This option processing function does not utilize the arguments.
*/
-void show_formats(void);
+int opt_formats(const char *opt, const char *arg);
/**
* Print a listing containing all the codecs supported by the
* program.
+ * This option processing function does not utilize the arguments.
*/
-void show_codecs(void);
+int opt_codecs(const char *opt, const char *arg);
/**
* Print a listing containing all the filters supported by the
* program.
+ * This option processing function does not utilize the arguments.
*/
-void show_filters(void);
+int opt_filters(const char *opt, const char *arg);
/**
* Print a listing containing all the bit stream filters supported by the
* program.
+ * This option processing function does not utilize the arguments.
*/
-void show_bsfs(void);
+int opt_bsfs(const char *opt, const char *arg);
/**
* Print a listing containing all the protocols supported by the
* program.
+ * This option processing function does not utilize the arguments.
*/
-void show_protocols(void);
+int opt_protocols(const char *opt, const char *arg);
/**
* Print a listing containing all the pixel formats supported by the
* program.
+ * This option processing function does not utilize the arguments.
*/
-void show_pix_fmts(void);
+int opt_pix_fmts(const char *opt, const char *arg);
/**
* Return a positive value if a line read from standard input
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/cmdutils_common_opts.h
^
|
@@ -1,13 +1,13 @@
- { "L", OPT_EXIT, {(void*)show_license}, "show license" },
- { "h", OPT_EXIT, {(void*)show_help}, "show help" },
- { "?", OPT_EXIT, {(void*)show_help}, "show help" },
- { "help", OPT_EXIT, {(void*)show_help}, "show help" },
- { "-help", OPT_EXIT, {(void*)show_help}, "show help" },
- { "version", OPT_EXIT, {(void*)show_version}, "show version" },
- { "formats" , OPT_EXIT, {(void*)show_formats }, "show available formats" },
- { "codecs" , OPT_EXIT, {(void*)show_codecs }, "show available codecs" },
- { "bsfs" , OPT_EXIT, {(void*)show_bsfs }, "show available bit stream filters" },
- { "protocols", OPT_EXIT, {(void*)show_protocols}, "show available protocols" },
- { "filters", OPT_EXIT, {(void*)show_filters }, "show available filters" },
- { "pix_fmts" , OPT_EXIT, {(void*)show_pix_fmts }, "show available pixel formats" },
+ { "L", OPT_EXIT, {(void*)opt_license}, "show license" },
+ { "h", OPT_EXIT, {(void*)opt_help}, "show help" },
+ { "?", OPT_EXIT, {(void*)opt_help}, "show help" },
+ { "help", OPT_EXIT, {(void*)opt_help}, "show help" },
+ { "-help", OPT_EXIT, {(void*)opt_help}, "show help" },
+ { "version", OPT_EXIT, {(void*)opt_version}, "show version" },
+ { "formats" , OPT_EXIT, {(void*)opt_formats }, "show available formats" },
+ { "codecs" , OPT_EXIT, {(void*)opt_codecs }, "show available codecs" },
+ { "bsfs" , OPT_EXIT, {(void*)opt_bsfs }, "show available bit stream filters" },
+ { "protocols", OPT_EXIT, {(void*)opt_protocols}, "show available protocols" },
+ { "filters", OPT_EXIT, {(void*)opt_filters }, "show available filters" },
+ { "pix_fmts" , OPT_EXIT, {(void*)opt_pix_fmts }, "show available pixel formats" },
{ "loglevel", HAS_ARG, {(void*)opt_loglevel}, "set libav* logging level", "loglevel" },
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/configure
^
|
@@ -177,7 +177,7 @@
--enable-libopenjpeg enable JPEG 2000 decoding via OpenJPEG [no]
--enable-librtmp enable RTMP[E] support via librtmp [no]
--enable-libschroedinger enable Dirac support via libschroedinger [no]
- --enable-libspeex enable Speex decoding via libspeex [no]
+ --enable-libspeex enable Speex encoding and decoding via libspeex [no]
--enable-libtheora enable Theora encoding via libtheora [no]
--enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no]
--enable-libvo-amrwbenc enable AMR-WB encoding via libvo-amrwbenc [no]
@@ -1417,6 +1417,7 @@
libschroedinger_decoder_deps="libschroedinger"
libschroedinger_encoder_deps="libschroedinger"
libspeex_decoder_deps="libspeex"
+libspeex_encoder_deps="libspeex"
libtheora_encoder_deps="libtheora"
libvo_aacenc_encoder_deps="libvo_aacenc"
libvo_amrwbenc_encoder_deps="libvo_amrwbenc"
@@ -1512,7 +1513,7 @@
# programs
ffmpeg_deps="avcodec avformat swscale"
-ffmpeg_select="buffer_filter"
+ffmpeg_select="buffer_filter buffersink_filter"
ffplay_deps="avcodec avformat swscale sdl"
ffplay_select="rdft"
ffprobe_deps="avcodec avformat"
@@ -2537,6 +2538,7 @@
add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_BSD_SOURCE
;;
gnu)
+ add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600
;;
qnx)
add_cppflags -D_QNX_SOURCE
@@ -3064,7 +3066,6 @@
if enabled small; then
add_cflags $size_cflags
- optimizations="small"
elif enabled optimizations; then
add_cflags $speed_cflags
else
@@ -3118,6 +3119,8 @@
add_cflags -W${armcc_opt},--diag_suppress=1207
add_cflags -W${armcc_opt},--diag_suppress=1293 # assignment in condition
add_cflags -W${armcc_opt},--diag_suppress=3343 # hardfp compat
+ add_cflags -W${armcc_opt},--diag_suppress=167 # pointer sign
+ add_cflags -W${armcc_opt},--diag_suppress=513 # pointer sign
elif enabled tms470; then
add_cflags -pds=824 -pds=837
elif enabled pathscale; then
@@ -3204,6 +3207,7 @@
fi
echo "debug symbols ${debug-no}"
echo "strip symbols ${stripping-no}"
+echo "optimize for size ${small-no}"
echo "optimizations ${optimizations-no}"
echo "static ${static-no}"
echo "shared ${shared-no}"
@@ -3270,6 +3274,7 @@
doc
libavcodec
libavcodec/$arch
+ libavcodec/mlib
libavdevice
libavfilter
libavfilter/$arch
@@ -3281,6 +3286,7 @@
libpostproc
libswscale
libswscale/$arch
+ libswscale/mlib
tests
tools
"
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/doc/developer.texi
^
|
@@ -54,10 +54,8 @@
accept patches to remove their use unless they absolutely do not impair
clarity and performance.
-All code must compile with GCC 2.95 and GCC 3.3. Currently, FFmpeg also
-compiles with several other compilers, such as the Compaq ccc compiler
-or Sun Studio 9, and we would like to keep it that way unless it would
-be exceedingly involved. To ensure compatibility, please do not use any
+All code must compile with recent versions of GCC and a number of other
+currently supported compilers. To ensure compatibility, please do not use
additional C99 features or GCC extensions. Especially watch out for:
@itemize @bullet
@item
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/doc/faq.texi
^
|
@@ -447,6 +447,11 @@
See @url{http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html#faq-32.3}
+@section I'm using libavutil from within my C++ application but the compiler complains about 'UINT64_C' was not declared in this scope
+
+Libav is a pure C project using C99 math features, in order to enable C++
+to use them you have to append -D__STDC_CONSTANT_MACROS to your CXXFLAGS
+
@section I have a file in memory / a API different from *open/*read/ libc how do I use it with libavformat?
You have to implement a URLProtocol, see @file{libavformat/file.c} in
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/doc/ffmpeg.texi
^
|
@@ -713,8 +713,39 @@
Copy chapters from @var{infile} to @var{outfile}. If no chapter mapping is specified,
then chapters are copied from the first input file with at least one chapter to all
output files. Use a negative file index to disable any chapter copying.
-@item -debug
+@item -debug @var{category}
Print specific debug info.
+@var{category} is a number or a string containing one of the following values:
+@table @samp
+@item bitstream
+@item buffers
+picture buffer allocations
+@item bugs
+@item dct_coeff
+@item er
+error recognition
+@item mb_type
+macroblock (MB) type
+@item mmco
+memory management control operations (H.264)
+@item mv
+motion vector
+@item pict
+picture info
+@item pts
+@item qp
+per-block quantization parameter (QP)
+@item rc
+rate control
+@item skip
+@item startcode
+@item thread_ops
+threading operations
+@item vis_mb_type
+visualize block types
+@item vis_qp
+visualize quantization parameter (QP), lower QP are tinted greener
+@end table
@item -benchmark
Show benchmarking information at the end of an encode.
Shows CPU time used and maximum memory consumption.
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/doc/general.texi
^
|
@@ -961,7 +961,7 @@
@item Build FFmpeg with
@example
-./configure --enable-shared --enable-memalign-hack
+./configure --enable-shared
make
make install
@end example
@@ -998,9 +998,11 @@
Note that using import libraries created by dlltool requires
the linker optimization option to be set to
-"References: Keep Unreferenced Data (/OPT:NOREF)", otherwise
+"References: Keep Unreferenced Data (@code{/OPT:NOREF})", otherwise
the resulting binaries will fail during runtime. This isn't
required when using import libraries generated by lib.exe.
+This issue is reported upstream at
+@url{http://sourceware.org/bugzilla/show_bug.cgi?id=12633}.
@subsection Cross compilation for Windows with Linux
@@ -1036,7 +1038,7 @@
Then run
@example
-./configure --enable-static --disable-shared
+./configure
@end example
to make a static build.
@@ -1083,12 +1085,12 @@
For a static build run
@example
-./configure --target-os=mingw32 --enable-memalign-hack --enable-static --disable-shared --extra-cflags=-mno-cygwin --extra-libs=-mno-cygwin
+./configure --target-os=mingw32 --extra-cflags=-mno-cygwin --extra-libs=-mno-cygwin
@end example
and for a build with shared libraries
@example
-./configure --target-os=mingw32 --enable-memalign-hack --enable-shared --disable-static --extra-cflags=-mno-cygwin --extra-libs=-mno-cygwin
+./configure --target-os=mingw32 --enable-shared --disable-static --extra-cflags=-mno-cygwin --extra-libs=-mno-cygwin
@end example
@bye
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/ffmpeg.c
^
|
@@ -343,6 +343,7 @@
int eof_reached; /* true if eof reached */
int ist_index; /* index of first stream in ist_table */
int buffer_size; /* current total buffer size */
+ int nb_streams; /* nb streams we are aware of */
} AVInputFile;
#if HAVE_TERMIOS_H
@@ -1859,7 +1860,7 @@
ret = 0;
/* encode any samples remaining in fifo */
if (fifo_bytes > 0) {
- int osize = av_get_bits_per_sample_fmt(enc->sample_fmt) >> 3;
+ int osize = av_get_bytes_per_sample(enc->sample_fmt);
int fs_tmp = enc->frame_size;
av_fifo_generic_read(ost->fifo, audio_buf, fifo_bytes, NULL);
@@ -2045,7 +2046,7 @@
int si = stream_maps[i].stream_index;
if (fi < 0 || fi > nb_input_files - 1 ||
- si < 0 || si > input_files[fi].ctx->nb_streams - 1) {
+ si < 0 || si > input_files[fi].nb_streams - 1) {
fprintf(stderr,"Could not find input stream #%d.%d\n", fi, si);
ret = AVERROR(EINVAL);
goto fail;
@@ -2053,7 +2054,7 @@
fi = stream_maps[i].sync_file_index;
si = stream_maps[i].sync_stream_index;
if (fi < 0 || fi > nb_input_files - 1 ||
- si < 0 || si > input_files[fi].ctx->nb_streams - 1) {
+ si < 0 || si > input_files[fi].nb_streams - 1) {
fprintf(stderr,"Could not find sync stream #%d.%d\n", fi, si);
ret = AVERROR(EINVAL);
goto fail;
@@ -2303,16 +2304,19 @@
fprintf(stderr, "Video pixel format is unknown, stream cannot be encoded\n");
ffmpeg_exit(1);
}
+
+ if (!codec->width || !codec->height) {
+ codec->width = icodec->width;
+ codec->height = icodec->height;
+ }
+
ost->video_resample = codec->width != icodec->width ||
codec->height != icodec->height ||
codec->pix_fmt != icodec->pix_fmt;
if (ost->video_resample) {
codec->bits_per_raw_sample= frame_bits_per_raw_sample;
}
- if (!codec->width || !codec->height) {
- codec->width = icodec->width;
- codec->height = icodec->height;
- }
+
ost->resample_height = icodec->height;
ost->resample_width = icodec->width;
ost->resample_pix_fmt= icodec->pix_fmt;
@@ -2728,7 +2732,7 @@
}
/* the following test is needed in case new streams appear
dynamically in stream : we ignore them */
- if (pkt.stream_index >= input_files[file_index].ctx->nb_streams)
+ if (pkt.stream_index >= input_files[file_index].nb_streams)
goto discard_packet;
ist_index = input_files[file_index].ist_index + pkt.stream_index;
ist = &input_streams[ist_index];
@@ -2941,7 +2945,7 @@
return AVERROR(EINVAL);
}
} else {
- show_pix_fmts();
+ opt_pix_fmts(NULL, NULL);
ffmpeg_exit(0);
}
return 0;
@@ -3465,6 +3469,7 @@
input_files = grow_array(input_files, sizeof(*input_files), &nb_input_files, nb_input_files + 1);
input_files[nb_input_files - 1].ctx = ic;
input_files[nb_input_files - 1].ist_index = nb_input_streams - ic->nb_streams;
+ input_files[nb_input_files - 1].nb_streams = ic->nb_streams;
top_field_first = -1;
video_channel = 0;
@@ -4071,16 +4076,18 @@
}
}
-static void opt_inter_matrix(const char *arg)
+static int opt_inter_matrix(const char *opt, const char *arg)
{
inter_matrix = av_mallocz(sizeof(uint16_t) * 64);
parse_matrix_coeffs(inter_matrix, arg);
+ return 0;
}
-static void opt_intra_matrix(const char *arg)
+static int opt_intra_matrix(const char *opt, const char *arg)
{
intra_matrix = av_mallocz(sizeof(uint16_t) * 64);
parse_matrix_coeffs(intra_matrix, arg);
+ return 0;
}
static void show_usage(void)
@@ -4090,7 +4097,7 @@
printf("\n");
}
-static void show_help(void)
+static int opt_help(const char *opt, const char *arg)
{
AVCodec *c;
AVOutputFormat *oformat = NULL;
@@ -4145,6 +4152,7 @@
}
av_opt_show2(sws_opts, NULL, AV_OPT_FLAG_ENCODING_PARAM|AV_OPT_FLAG_DECODING_PARAM, 0);
+ return 0;
}
static int opt_target(const char *opt, const char *arg)
@@ -4375,10 +4383,14 @@
{
}
-static void opt_passlogfile(const char *arg)
+static int opt_passlogfile(const char *opt, const char *arg)
{
pass_logfilename_prefix = arg;
- opt_default("passlogfile", arg);
+#if CONFIG_LIBX264_ENCODER
+ return opt_default("passlogfile", arg);
+#else
+ return 0;
+#endif
}
static const OptionDef options[] = {
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/ffplay.c
^
|
@@ -27,6 +27,7 @@
#include "libavutil/colorspace.h"
#include "libavutil/pixdesc.h"
#include "libavutil/imgutils.h"
+#include "libavutil/dict.h"
#include "libavutil/parseutils.h"
#include "libavutil/samplefmt.h"
#include "libavutil/avassert.h"
@@ -211,7 +212,7 @@
int refresh;
} VideoState;
-static void show_help(void);
+static int opt_help(const char *opt, const char *arg);
/* options specified by the user */
static AVInputFormat *file_iformat;
@@ -1778,8 +1779,10 @@
if (ret < 0) goto the_end;
+#if CONFIG_AVFILTER
if (!picref)
continue;
+#endif
pts = pts_int*av_q2d(is->video_st->time_base);
@@ -2295,15 +2298,13 @@
static int read_thread(void *arg)
{
VideoState *is = arg;
- AVFormatContext *ic;
+ AVFormatContext *ic = NULL;
int err, i, ret;
int st_index[AVMEDIA_TYPE_NB];
AVPacket pkt1, *pkt = &pkt1;
- AVFormatParameters params, *ap = ¶ms;
int eof=0;
int pkt_in_play_range = 0;
-
- ic = avformat_alloc_context();
+ AVDictionaryEntry *t;
memset(st_index, -1, sizeof(st_index));
is->video_stream = -1;
@@ -2313,30 +2314,17 @@
global_video_state = is;
avio_set_interrupt_cb(decode_interrupt_cb);
- memset(ap, 0, sizeof(*ap));
-
- ap->prealloced_context = 1;
- ap->width = frame_width;
- ap->height= frame_height;
- ap->time_base= (AVRational){1, 25};
- ap->pix_fmt = frame_pix_fmt;
- ic->flags |= AVFMT_FLAG_PRIV_OPT;
-
-
- err = av_open_input_file(&ic, is->filename, is->iformat, 0, ap);
- if (err >= 0) {
- set_context_opts(ic, avformat_opts, AV_OPT_FLAG_DECODING_PARAM, NULL);
- err = av_demuxer_open(ic, ap);
- if(err < 0){
- avformat_free_context(ic);
- ic= NULL;
- }
- }
+ err = avformat_open_input(&ic, is->filename, is->iformat, &format_opts);
if (err < 0) {
print_error(is->filename, err);
ret = -1;
goto fail;
}
+ if ((t = av_dict_get(format_opts, "", NULL, AV_DICT_IGNORE_SUFFIX))) {
+ av_log(NULL, AV_LOG_ERROR, "Option %s not found.\n", t->key);
+ ret = AVERROR_OPTION_NOT_FOUND;
+ goto fail;
+ }
is->ic = ic;
if(genpts)
@@ -2964,7 +2952,7 @@
printf("\n");
}
-static void show_help(void)
+static int opt_help(const char *opt, const char *arg)
{
av_log_set_callback(log_callback_help);
show_usage();
@@ -2996,6 +2984,7 @@
"down/up seek backward/forward 1 minute\n"
"mouse click seek to percentage in file corresponding to fraction of width\n"
);
+ return 0;
}
/* Called from the main */
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/ffprobe.c
^
|
@@ -353,7 +353,7 @@
return 0;
}
-static void show_help(void)
+static int opt_help(const char *opt, const char *arg)
{
av_log_set_callback(log_callback_help);
show_usage();
@@ -361,6 +361,7 @@
printf("\n");
av_opt_show2(avformat_opts, NULL,
AV_OPT_FLAG_DECODING_PARAM, 0);
+ return 0;
}
static void opt_pretty(void)
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/ffserver.c
^
|
@@ -4654,12 +4654,13 @@
logfilename[0] = '-';
}
-static void show_help(void)
+static int opt_help(const char *opt, const char *arg)
{
printf("usage: ffserver [options]\n"
"Hyper fast multi format Audio/Video streaming server\n");
printf("\n");
show_help_options(options, "Main options:\n", 0, 0);
+ return 0;
}
static const OptionDef options[] = {
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/Makefile
^
|
@@ -587,6 +587,7 @@
libschroedinger.o \
libdirac_libschro.o
OBJS-$(CONFIG_LIBSPEEX_DECODER) += libspeexdec.o
+OBJS-$(CONFIG_LIBSPEEX_ENCODER) += libspeexenc.o
OBJS-$(CONFIG_LIBTHEORA_ENCODER) += libtheoraenc.o
OBJS-$(CONFIG_LIBVO_AACENC_ENCODER) += libvo-aacenc.o mpeg4audio.o
OBJS-$(CONFIG_LIBVO_AMRWBENC_ENCODER) += libvo-amrwbenc.o
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/aac.h
^
|
@@ -258,7 +258,7 @@
DynamicRangeControl che_drc;
/**
- * @defgroup elements Channel element related data.
+ * @name Channel element related data
* @{
*/
enum ChannelPosition che_pos[4][MAX_ELEM_ID]; /**< channel element channel mapping with the
@@ -270,14 +270,15 @@
/** @} */
/**
- * @defgroup temporary aligned temporary buffers (We do not want to have these on the stack.)
+ * @name temporary aligned temporary buffers
+ * (We do not want to have these on the stack.)
* @{
*/
DECLARE_ALIGNED(32, float, buf_mdct)[1024];
/** @} */
/**
- * @defgroup tables Computed / set up during initialization.
+ * @name Computed / set up during initialization
* @{
*/
FFTContext mdct;
@@ -289,7 +290,7 @@
/** @} */
/**
- * @defgroup output Members used for output interleaving.
+ * @name Members used for output interleaving
* @{
*/
float *output_data[MAX_CHANNELS]; ///< Points to each element's 'ret' buffer (PCM output).
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/aac_adtstoasc_bsf.c
^
|
@@ -72,7 +72,7 @@
int pce_size = 0;
uint8_t pce_data[MAX_PCE_SIZE];
if (!hdr.chan_config) {
- init_get_bits(&gb, buf, buf_size);
+ init_get_bits(&gb, buf, buf_size * 8);
if (get_bits(&gb, 3) != 5) {
av_log_missing_feature(avctx, "PCE based channel configuration, where the PCE is not the first syntax element is", 0);
return -1;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/aacdec.c
^
|
@@ -1755,12 +1755,10 @@
} else {
memset(in, 0, 448 * sizeof(float));
ac->dsp.vector_fmul(in + 448, in + 448, swindow_prev, 128);
- memcpy(in + 576, in + 576, 448 * sizeof(float));
}
if (ics->window_sequence[0] != LONG_START_SEQUENCE) {
ac->dsp.vector_fmul_reverse(in + 1024, in + 1024, lwindow, 1024);
} else {
- memcpy(in + 1024, in + 1024, 448 * sizeof(float));
ac->dsp.vector_fmul_reverse(in + 1024 + 448, in + 1024 + 448, swindow, 128);
memset(in + 1024 + 576, 0, 448 * sizeof(float));
}
@@ -2078,7 +2076,7 @@
ChannelElement *che = NULL, *che_prev = NULL;
enum RawDataBlockType elem_type, elem_type_prev = TYPE_END;
int err, elem_id, data_size_tmp;
- int samples = 0, multiplier;
+ int samples = 0, multiplier, audio_found = 0;
if (show_bits(gb, 12) == 0xfff) {
if (parse_adts_frame_header(ac, gb) < 0) {
@@ -2109,10 +2107,12 @@
case TYPE_SCE:
err = decode_ics(ac, &che->ch[0], gb, 0, 0);
+ audio_found = 1;
break;
case TYPE_CPE:
err = decode_cpe(ac, gb, che);
+ audio_found = 1;
break;
case TYPE_CCE:
@@ -2121,6 +2121,7 @@
case TYPE_LFE:
err = decode_ics(ac, &che->ch[0], gb, 0, 0);
+ audio_found = 1;
break;
case TYPE_DSE:
@@ -2197,7 +2198,7 @@
samples, avctx->channels);
}
- if (ac->output_configured)
+ if (ac->output_configured && audio_found)
ac->output_configured = OC_LOCKED;
return 0;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/aacps.c
^
|
@@ -813,14 +813,17 @@
const float (*H_LUT)[8][4] = (PS_BASELINE || ps->icc_mode < 3) ? HA : HB;
//Remapping
- memcpy(H11[0][0], H11[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H11[0][0][0]));
- memcpy(H11[1][0], H11[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H11[1][0][0]));
- memcpy(H12[0][0], H12[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H12[0][0][0]));
- memcpy(H12[1][0], H12[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H12[1][0][0]));
- memcpy(H21[0][0], H21[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H21[0][0][0]));
- memcpy(H21[1][0], H21[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H21[1][0][0]));
- memcpy(H22[0][0], H22[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H22[0][0][0]));
- memcpy(H22[1][0], H22[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H22[1][0][0]));
+ if (ps->num_env_old) {
+ memcpy(H11[0][0], H11[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H11[0][0][0]));
+ memcpy(H11[1][0], H11[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H11[1][0][0]));
+ memcpy(H12[0][0], H12[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H12[0][0][0]));
+ memcpy(H12[1][0], H12[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H12[1][0][0]));
+ memcpy(H21[0][0], H21[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H21[0][0][0]));
+ memcpy(H21[1][0], H21[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H21[1][0][0]));
+ memcpy(H22[0][0], H22[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H22[0][0][0]));
+ memcpy(H22[1][0], H22[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H22[1][0][0]));
+ }
+
if (is34) {
remap34(&iid_mapped, ps->iid_par, ps->nr_iid_par, ps->num_env, 1);
remap34(&icc_mapped, ps->icc_par, ps->nr_icc_par, ps->num_env, 1);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/ac3.h
^
|
@@ -94,7 +94,7 @@
* Coded AC-3 header values up to the lfeon element, plus derived values.
*/
typedef struct {
- /** @defgroup coded Coded elements
+ /** @name Coded elements
* @{
*/
uint16_t sync_word;
@@ -112,7 +112,7 @@
int num_blocks; ///< number of audio blocks
/** @} */
- /** @defgroup derived Derived values
+ /** @name Derived values
* @{
*/
uint8_t sr_shift;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/ac3dec.h
^
|
@@ -69,7 +69,7 @@
AVCodecContext *avctx; ///< parent context
GetBitContext gbc; ///< bitstream reader
-///@defgroup bsi bit stream information
+///@name Bit stream information
///@{
int frame_type; ///< frame type (strmtyp)
int substreamid; ///< substream identification
@@ -87,7 +87,7 @@
int eac3; ///< indicates if current frame is E-AC-3
///@}
-///@defgroup audfrm frame syntax parameters
+///@name Frame syntax parameters
int snr_offset_strategy; ///< SNR offset strategy (snroffststr)
int block_switch_syntax; ///< block switch syntax enabled (blkswe)
int dither_flag_syntax; ///< dither flag syntax enabled (dithflage)
@@ -97,7 +97,7 @@
int skip_syntax; ///< skip field syntax enabled (skipflde)
///@}
-///@defgroup cpl standard coupling
+///@name Standard coupling
int cpl_in_use[AC3_MAX_BLOCKS]; ///< coupling in use (cplinu)
int cpl_strategy_exists[AC3_MAX_BLOCKS];///< coupling strategy exists (cplstre)
int channel_in_cpl[AC3_MAX_CHANNELS]; ///< channel in coupling (chincpl)
@@ -110,7 +110,7 @@
int cpl_coords[AC3_MAX_CHANNELS][AC3_MAX_CPL_BANDS]; ///< coupling coordinates (cplco)
///@}
-///@defgroup spx spectral extension
+///@name Spectral extension
///@{
int spx_in_use; ///< spectral extension in use (spxinu)
uint8_t channel_uses_spx[AC3_MAX_CHANNELS]; ///< channel uses spectral extension (chinspx)
@@ -126,12 +126,12 @@
float spx_signal_blend[AC3_MAX_CHANNELS][SPX_MAX_BANDS];///< spx signal blending factor (sblendfact)
///@}
-///@defgroup aht adaptive hybrid transform
+///@name Adaptive hybrid transform
int channel_uses_aht[AC3_MAX_CHANNELS]; ///< channel AHT in use (chahtinu)
int pre_mantissa[AC3_MAX_CHANNELS][AC3_MAX_COEFS][AC3_MAX_BLOCKS]; ///< pre-IDCT mantissas
///@}
-///@defgroup channel channel
+///@name Channel
int fbw_channels; ///< number of full-bandwidth channels
int channels; ///< number of total channels
int lfe_ch; ///< index of LFE channel
@@ -141,27 +141,27 @@
int out_channels; ///< number of output channels
///@}
-///@defgroup dynrng dynamic range
+///@name Dynamic range
float dynamic_range[2]; ///< dynamic range
///@}
-///@defgroup bandwidth bandwidth
+///@name Bandwidth
int start_freq[AC3_MAX_CHANNELS]; ///< start frequency bin (strtmant)
int end_freq[AC3_MAX_CHANNELS]; ///< end frequency bin (endmant)
///@}
-///@defgroup rematrixing rematrixing
+///@name Rematrixing
int num_rematrixing_bands; ///< number of rematrixing bands (nrematbnd)
int rematrixing_flags[4]; ///< rematrixing flags (rematflg)
///@}
-///@defgroup exponents exponents
+///@name Exponents
int num_exp_groups[AC3_MAX_CHANNELS]; ///< Number of exponent groups (nexpgrp)
int8_t dexps[AC3_MAX_CHANNELS][AC3_MAX_COEFS]; ///< decoded exponents
int exp_strategy[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS]; ///< exponent strategies (expstr)
///@}
-///@defgroup bitalloc bit allocation
+///@name Bit allocation
AC3BitAllocParameters bit_alloc_params; ///< bit allocation parameters
int first_cpl_leak; ///< first coupling leak state (firstcplleak)
int snr_offset[AC3_MAX_CHANNELS]; ///< signal-to-noise ratio offsets (snroffst)
@@ -177,25 +177,25 @@
uint8_t dba_values[AC3_MAX_CHANNELS][8]; ///< delta values for each segment
///@}
-///@defgroup dithering zero-mantissa dithering
+///@name Zero-mantissa dithering
int dither_flag[AC3_MAX_CHANNELS]; ///< dither flags (dithflg)
AVLFG dith_state; ///< for dither generation
///@}
-///@defgroup imdct IMDCT
+///@name IMDCT
int block_switch[AC3_MAX_CHANNELS]; ///< block switch flags (blksw)
FFTContext imdct_512; ///< for 512 sample IMDCT
FFTContext imdct_256; ///< for 256 sample IMDCT
///@}
-///@defgroup opt optimization
+///@name Optimization
DSPContext dsp; ///< for optimization
AC3DSPContext ac3dsp;
FmtConvertContext fmt_conv; ///< optimized conversion functions
float mul_bias; ///< scaling for float_to_int16 conversion
///@}
-///@defgroup arrays aligned arrays
+///@name Aligned arrays
DECLARE_ALIGNED(16, int, fixed_coeffs)[AC3_MAX_CHANNELS][AC3_MAX_COEFS]; ///< fixed-point transform coefficients
DECLARE_ALIGNED(32, float, transform_coeffs)[AC3_MAX_CHANNELS][AC3_MAX_COEFS]; ///< transform coefficients
DECLARE_ALIGNED(32, float, delay)[AC3_MAX_CHANNELS][AC3_BLOCK_SIZE]; ///< delay - added to the next block
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/allcodecs.c
^
|
@@ -380,7 +380,7 @@
REGISTER_DECODER (LIBOPENCORE_AMRWB, libopencore_amrwb);
REGISTER_DECODER (LIBOPENJPEG, libopenjpeg);
REGISTER_ENCDEC (LIBSCHROEDINGER, libschroedinger);
- REGISTER_DECODER (LIBSPEEX, libspeex);
+ REGISTER_ENCDEC (LIBSPEEX, libspeex);
REGISTER_ENCODER (LIBTHEORA, libtheora);
REGISTER_ENCODER (LIBVO_AACENC, libvo_aacenc);
REGISTER_ENCODER (LIBVO_AMRWBENC, libvo_amrwbenc);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/amrnbdec.c
^
|
@@ -204,7 +204,7 @@
}
-/// @defgroup amr_lpc_decoding AMR pitch LPC coefficient decoding functions
+/// @name AMR pitch LPC coefficient decoding functions
/// @{
/**
@@ -341,7 +341,7 @@
/// @}
-/// @defgroup amr_pitch_vector_decoding AMR pitch vector decoding functions
+/// @name AMR pitch vector decoding functions
/// @{
/**
@@ -403,7 +403,7 @@
/// @}
-/// @defgroup amr_algebraic_code_book AMR algebraic code book (fixed) vector decoding functions
+/// @name AMR algebraic code book (fixed) vector decoding functions
/// @{
/**
@@ -547,7 +547,7 @@
/// @}
-/// @defgroup amr_gain_decoding AMR gain decoding functions
+/// @name AMR gain decoding functions
/// @{
/**
@@ -633,7 +633,7 @@
/// @}
-/// @defgroup amr_pre_processing AMR pre-processing functions
+/// @name AMR preprocessing functions
/// @{
/**
@@ -751,7 +751,7 @@
/// @}
-/// @defgroup amr_synthesis AMR synthesis functions
+/// @name AMR synthesis functions
/// @{
/**
@@ -812,7 +812,7 @@
/// @}
-/// @defgroup amr_update AMR update functions
+/// @name AMR update functions
/// @{
/**
@@ -837,7 +837,7 @@
/// @}
-/// @defgroup amr_postproc AMR Post processing functions
+/// @name AMR Postprocessing functions
/// @{
/**
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/apedec.c
^
|
@@ -217,7 +217,7 @@
}
/**
- * @defgroup rangecoder APE range decoder
+ * @name APE range decoding functions
* @{
*/
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/arm/fft_fixed_neon.S
^
|
@@ -56,7 +56,7 @@
vhsub.s16 \r0, \d0, \d1 @ t3, t4, t8, t7
vhsub.s16 \r1, \d1, \d0
vhadd.s16 \d0, \d0, \d1 @ t1, t2, t6, t5
- vmov.i64 \d1, #0xffff<<32
+ vmov.i64 \d1, #0xffff00000000
vbit \r0, \r1, \d1
vrev64.16 \r1, \r0 @ t7, t8, t4, t3
vtrn.32 \r0, \r1 @ t3, t4, t7, t8
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/ass.h
^
|
@@ -25,8 +25,7 @@
#include "avcodec.h"
/**
- * Default values for ASS style.
- * @defgroup ass_default
+ * @name Default values for ASS style
* @{
*/
#define ASS_DEFAULT_FONT "Arial"
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/avcodec.h
^
|
@@ -2535,7 +2535,7 @@
#if FF_API_FLAC_GLOBAL_OPTS
/**
- * @defgroup flac_opts FLAC options
+ * @name FLAC options
* @deprecated Use FLAC encoder private options instead.
* @{
*/
@@ -2606,7 +2606,6 @@
/**
* Bits per sample/pixel of internal libavcodec pixel/sample format.
- * This field is applicable only when sample_fmt is AV_SAMPLE_FMT_S32.
* - encoding: set by user.
* - decoding: set by libavcodec.
*/
@@ -2957,7 +2956,7 @@
const AVProfile *profiles; ///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN}
/**
- * @defgroup framethreading Frame-level threading support functions.
+ * @name Frame-level threading support functions
* @{
*/
/**
@@ -3915,7 +3914,7 @@
#if FF_API_OLD_SAMPLE_FMT
/**
- * @deprecated Use av_get_bits_per_sample_fmt() instead.
+ * @deprecated Use av_get_bytes_per_sample() instead.
*/
attribute_deprecated
int av_get_bits_per_sample_format(enum AVSampleFormat sample_fmt);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/avs.c
^
|
@@ -117,7 +117,7 @@
table = buf + (256 * vect_w * vect_h);
if (sub_type != AVS_I_FRAME) {
int map_size = ((318 / vect_w + 7) / 8) * (198 / vect_h);
- init_get_bits(&change_map, table, map_size);
+ init_get_bits(&change_map, table, map_size * 8);
table += map_size;
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/bink.c
^
|
@@ -571,6 +571,22 @@
return ret;
}
+static inline DCTELEM dequant(DCTELEM in, uint32_t quant, int dc)
+{
+ /* Note: multiplication is unsigned but we want signed shift
+ * otherwise clipping breaks.
+ * TODO: The official decoder does not use clipping at all
+ * but instead uses the full 32-bit result.
+ * However clipping at least gets rid of the case that a
+ * half-black half-white intra block gets black and white swapped
+ * and should cause at most minor differences (except for DC). */
+ int32_t res = in * quant;
+ res >>= 11;
+ if (!dc)
+ res = av_clip_int16(res);
+ return res;
+}
+
/**
* Read 8x8 block of DCT coefficients.
*
@@ -669,10 +685,10 @@
quant = quant_matrices[quant_idx];
- block[0] = (block[0] * quant[0]) >> 11;
+ block[0] = dequant(block[0], quant[0], 1);
for (i = 0; i < coef_count; i++) {
int idx = coef_idx[i];
- block[scan[idx]] = (block[scan[idx]] * quant[idx]) >> 11;
+ block[scan[idx]] = dequant(block[scan[idx]], quant[idx], 0);
}
return 0;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/cabac.c
^
|
@@ -161,10 +161,14 @@
ff_h264_mps_state[2*i+1]= 2*mps_state[i]+1;
if( i ){
+ ff_h264_lps_state[2*i+0]=
ff_h264_mlps_state[128-2*i-1]= 2*lps_state[i]+0;
+ ff_h264_lps_state[2*i+1]=
ff_h264_mlps_state[128-2*i-2]= 2*lps_state[i]+1;
}else{
+ ff_h264_lps_state[2*i+0]=
ff_h264_mlps_state[128-2*i-1]= 1;
+ ff_h264_lps_state[2*i+1]=
ff_h264_mlps_state[128-2*i-2]= 0;
}
}
@@ -190,7 +194,8 @@
ff_init_cabac_states(&c);
for(i=0; i<SIZE; i++){
- r[i] = av_lfg_get(&prng) % 7;
+ if(2*i<SIZE) r[i] = av_lfg_get(&prng) % 7;
+ else r[i] = (i>>8)&1;
}
for(i=0; i<SIZE; i++){
@@ -205,6 +210,7 @@
STOP_TIMER("put_cabac")
}
+#if 0
for(i=0; i<SIZE; i++){
START_TIMER
put_cabac_u(&c, state, r[i], 6, 3, i&1);
@@ -216,7 +222,7 @@
put_cabac_ueg(&c, state, r[i], 3, 0, 1, 2);
STOP_TIMER("put_cabac_ueg")
}
-
+#endif
put_cabac_terminate(&c, 1);
ff_init_cabac_decoder(&c, b, SIZE);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/cavsdec.c
^
|
@@ -115,7 +115,8 @@
static int decode_residual_block(AVSContext *h, GetBitContext *gb,
const struct dec_2dvlc *r, int esc_golomb_order,
int qp, uint8_t *dst, int stride) {
- int i, level_code, esc_code, level, run, mask;
+ int i, esc_code, level, mask;
+ unsigned int level_code, run;
DCTELEM level_buf[65];
uint8_t run_buf[65];
DCTELEM *block = h->block;
@@ -124,6 +125,8 @@
level_code = get_ue_code(gb,r->golomb_order);
if(level_code >= ESCAPE_CODE) {
run = ((level_code - ESCAPE_CODE) >> 1) + 1;
+ if(run > 64)
+ return -1;
esc_code = get_ue_code(gb,esc_golomb_order);
level = esc_code + (run > r->max_run ? 1 : r->level_add[run]);
while(level > r->inc_limit)
@@ -163,7 +166,7 @@
/* get coded block pattern */
int cbp= get_ue_golomb(&h->s.gb);
- if(cbp > 63){
+ if(cbp > 63U){
av_log(h->s.avctx, AV_LOG_ERROR, "illegal inter cbp\n");
return -1;
}
@@ -189,7 +192,8 @@
static int decode_mb_i(AVSContext *h, int cbp_code) {
GetBitContext *gb = &h->s.gb;
- int block, pred_mode_uv;
+ unsigned pred_mode_uv;
+ int block;
uint8_t top[18];
uint8_t *left = NULL;
uint8_t *d;
@@ -222,7 +226,7 @@
/* get coded block pattern */
if(h->pic_type == AV_PICTURE_TYPE_I)
cbp_code = get_ue_golomb(gb);
- if(cbp_code > 63){
+ if(cbp_code > 63U){
av_log(h->s.avctx, AV_LOG_ERROR, "illegal intra cbp\n");
return -1;
}
@@ -445,6 +449,8 @@
if((show_bits_long(gb,24+align) & 0xFFFFFF) == 0x000001) {
skip_bits_long(gb,24+align);
h->stc = get_bits(gb,8);
+ if (h->stc >= h->mb_height)
+ return 0;
decode_slice_header(h,gb);
return 1;
}
@@ -659,7 +665,7 @@
buf_end = buf + buf_size;
for(;;) {
buf_ptr = ff_find_start_code(buf_ptr,buf_end, &stc);
- if(stc & 0xFFFFFE00)
+ if((stc & 0xFFFFFE00) || buf_ptr == buf_end)
return FFMAX(0, buf_ptr - buf - s->parse_context.last_index);
input_size = (buf_end - buf_ptr)*8;
switch(stc) {
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/cinepak.c
^
|
@@ -336,7 +336,8 @@
* If the frame header is followed by the bytes FE 00 00 06 00 00 then
* this is probably one of the two known files that have 6 extra bytes
* after the frame header. Else, assume 2 extra bytes. */
- if ((s->data[10] == 0xFE) &&
+ if (s->size >= 16 &&
+ (s->data[10] == 0xFE) &&
(s->data[11] == 0x00) &&
(s->data[12] == 0x00) &&
(s->data[13] == 0x06) &&
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/cljr.c
^
|
@@ -67,7 +67,7 @@
p->pict_type= AV_PICTURE_TYPE_I;
p->key_frame= 1;
- init_get_bits(&a->gb, buf, buf_size);
+ init_get_bits(&a->gb, buf, buf_size * 8);
for(y=0; y<avctx->height; y++){
uint8_t *luma= &a->picture.data[0][ y*a->picture.linesize[0] ];
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/cook.c
^
|
@@ -335,7 +335,7 @@
* Fill the gain array for the timedomain quantization.
*
* @param gb pointer to the GetBitContext
- * @param gaininfo[9] array of gain indexes
+ * @param gaininfo array[9] of gain indexes
*/
static void decode_gain_info(GetBitContext *gb, int *gaininfo)
@@ -1175,8 +1175,9 @@
return -1;
}
- if ((q->subpacket[s].js_vlc_bits > 6) || (q->subpacket[s].js_vlc_bits < 0)) {
- av_log(avctx,AV_LOG_ERROR,"js_vlc_bits = %d, only >= 0 and <= 6 allowed!\n",q->subpacket[s].js_vlc_bits);
+ if ((q->subpacket[s].js_vlc_bits > 6) || (q->subpacket[s].js_vlc_bits < 2*q->subpacket[s].joint_stereo)) {
+ av_log(avctx,AV_LOG_ERROR,"js_vlc_bits = %d, only >= %d and <= 6 allowed!\n",
+ q->subpacket[s].js_vlc_bits, 2*q->subpacket[s].joint_stereo);
return -1;
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/dca.c
^
|
@@ -1650,6 +1650,7 @@
//set AVCodec values with parsed data
avctx->sample_rate = s->sample_rate;
avctx->bit_rate = s->bit_rate;
+ avctx->frame_size = s->sample_blocks * 32;
s->profile = FF_PROFILE_DTS;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/dirac.c
^
|
@@ -120,7 +120,7 @@
// chroma subsampling
if (get_bits1(gb))
source->chroma_format = svq3_get_ue_golomb(gb);
- if (source->chroma_format > 2) {
+ if (source->chroma_format > 2U) {
av_log(avctx, AV_LOG_ERROR, "Unknown chroma format %d\n",
source->chroma_format);
return -1;
@@ -128,14 +128,14 @@
if (get_bits1(gb))
source->interlaced = svq3_get_ue_golomb(gb);
- if (source->interlaced > 1)
+ if (source->interlaced > 1U)
return -1;
// frame rate
if (get_bits1(gb)) {
source->frame_rate_index = svq3_get_ue_golomb(gb);
- if (source->frame_rate_index > 10)
+ if (source->frame_rate_index > 10U)
return -1;
if (!source->frame_rate_index) {
@@ -156,7 +156,7 @@
if (get_bits1(gb)) {
source->aspect_ratio_index = svq3_get_ue_golomb(gb);
- if (source->aspect_ratio_index > 6)
+ if (source->aspect_ratio_index > 6U)
return -1;
if (!source->aspect_ratio_index) {
@@ -179,7 +179,7 @@
if (get_bits1(gb)) {
source->pixel_range_index = svq3_get_ue_golomb(gb);
- if (source->pixel_range_index > 4)
+ if (source->pixel_range_index > 4U)
return -1;
// This assumes either fullrange or MPEG levels only
@@ -207,7 +207,7 @@
if (get_bits1(gb)) {
idx = source->color_spec_index = svq3_get_ue_golomb(gb);
- if (source->color_spec_index > 4)
+ if (source->color_spec_index > 4U)
return -1;
avctx->color_primaries = dirac_color_presets[idx].color_primaries;
@@ -217,7 +217,7 @@
if (!source->color_spec_index) {
if (get_bits1(gb)) {
idx = svq3_get_ue_golomb(gb);
- if (idx < 3)
+ if (idx < 3U)
avctx->color_primaries = dirac_primaries[idx];
}
@@ -259,7 +259,7 @@
else if (version_major > 2)
av_log(avctx, AV_LOG_WARNING, "Stream may have unhandled features\n");
- if (video_format > 20)
+ if (video_format > 20U)
return -1;
// Fill in defaults for the source parameters.
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/dvbsubdec.c
^
|
@@ -1360,7 +1360,7 @@
rect->y = display->y_pos + offset_y;
rect->w = region->width;
rect->h = region->height;
- rect->nb_colors = 16;
+ rect->nb_colors = (1 << region->depth);
rect->type = SUBTITLE_BITMAP;
rect->pict.linesize[0] = region->width;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/dxva2_h264.c
^
|
@@ -158,9 +158,10 @@
for (j = 0; j < 16; j++)
qm->bScalingLists4x4[i][j] = h->pps.scaling_matrix4[i][zigzag_scan[j]];
- for (i = 0; i < 2; i++)
- for (j = 0; j < 64; j++)
- qm->bScalingLists8x8[i][j] = h->pps.scaling_matrix8[i][ff_zigzag_direct[j]];
+ for (j = 0; j < 64; j++) {
+ qm->bScalingLists8x8[0][j] = h->pps.scaling_matrix8[0][ff_zigzag_direct[j]];
+ qm->bScalingLists8x8[1][j] = h->pps.scaling_matrix8[3][ff_zigzag_direct[j]];
+ }
}
static int is_slice_short(struct dxva_context *ctx)
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/ffv1.c
^
|
@@ -1805,7 +1805,7 @@
bytes_read = c->bytestream - c->bytestream_start - 1;
if(bytes_read ==0) av_log(avctx, AV_LOG_ERROR, "error at end of AC stream\n"); //FIXME
//printf("pos=%d\n", bytes_read);
- init_get_bits(&f->slice_context[0]->gb, buf + bytes_read, buf_size - bytes_read);
+ init_get_bits(&f->slice_context[0]->gb, buf + bytes_read, (buf_size - bytes_read) * 8);
} else {
bytes_read = 0; /* avoid warning */
}
@@ -1822,7 +1822,7 @@
if(fs->ac){
ff_init_range_decoder(&fs->c, buf_p, v);
}else{
- init_get_bits(&fs->gb, buf_p, v);
+ init_get_bits(&fs->gb, buf_p, v * 8);
}
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/h263dec.c
^
|
@@ -380,7 +380,7 @@
retry:
- if(s->divx_packed && s->xvid_build>=0 && s->bitstream_buffer_size){
+ if(s->divx_packed && s->bitstream_buffer_size){
int i;
for(i=0; i<buf_size-3; i++){
if(buf[i]==0 && buf[i+1]==0 && buf[i+2]==1){
@@ -681,7 +681,7 @@
int current_pos= s->gb.buffer == s->bitstream_buffer ? 0 : (get_bits_count(&s->gb)>>3);
int startcode_found=0;
- if(buf_size - current_pos > 5){
+ if(buf_size - current_pos > 7){
int i;
for(i=current_pos; i<buf_size-4; i++){
if(buf[i]==0 && buf[i+1]==0 && buf[i+2]==1 && buf[i+3]==0xB6){
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/h264.c
^
|
@@ -183,20 +183,28 @@
i-= RS;
}
- if(i>=length-1){ //no escaped 0
- *dst_length= length;
- *consumed= length+1; //+1 for the header
- return src;
- }
-
bufidx = h->nal_unit_type == NAL_DPC ? 1 : 0; // use second escape buffer for inter data
- av_fast_malloc(&h->rbsp_buffer[bufidx], &h->rbsp_buffer_size[bufidx], length+FF_INPUT_BUFFER_PADDING_SIZE);
+ si=h->rbsp_buffer_size[bufidx];
+ av_fast_malloc(&h->rbsp_buffer[bufidx], &h->rbsp_buffer_size[bufidx], length+FF_INPUT_BUFFER_PADDING_SIZE+MAX_MBPAIR_SIZE);
dst= h->rbsp_buffer[bufidx];
+ if(si != h->rbsp_buffer_size[bufidx])
+ memset(dst + length, 0, FF_INPUT_BUFFER_PADDING_SIZE+MAX_MBPAIR_SIZE);
if (dst == NULL){
return NULL;
}
+ if(i>=length-1){ //no escaped 0
+ *dst_length= length;
+ *consumed= length+1; //+1 for the header
+ if(h->s.avctx->flags2 & CODEC_FLAG2_FAST){
+ return src;
+ }else{
+ memcpy(dst, src, length);
+ return dst;
+ }
+ }
+
//printf("decoding esc\n");
memcpy(dst, src, i);
si=di=i;
@@ -1165,7 +1173,10 @@
memcpy(&h->s + 1, &h1->s + 1, sizeof(H264Context) - sizeof(MpegEncContext)); //copy all fields after MpegEnc
memset(h->sps_buffers, 0, sizeof(h->sps_buffers));
memset(h->pps_buffers, 0, sizeof(h->pps_buffers));
- ff_h264_alloc_tables(h);
+ if (ff_h264_alloc_tables(h) < 0) {
+ av_log(dst, AV_LOG_ERROR, "Could not allocate memory for h264\n");
+ return AVERROR(ENOMEM);
+ }
context_init(h);
for(i=0; i<2; i++){
@@ -1403,7 +1414,7 @@
pics = 0;
while(h->delayed_pic[pics]) pics++;
- assert(pics <= MAX_DELAYED_PIC_COUNT);
+ av_assert0(pics <= MAX_DELAYED_PIC_COUNT);
h->delayed_pic[pics++] = cur;
if(cur->reference == 0)
@@ -1682,7 +1693,7 @@
uint64_t tr_high;
if(dir == DIAG_DOWN_LEFT_PRED || dir == VERT_LEFT_PRED){
const int topright_avail= (h->topright_samples_available<<i)&0x8000;
- assert(mb_y || linesize <= block_offset[i]);
+ assert(s->mb_y || linesize <= block_offset[i]);
if(!topright_avail){
if (pixel_shift) {
tr_high= ((uint16_t*)ptr)[3 - linesize/2]*0x0001000100010001ULL;
@@ -1848,15 +1859,30 @@
tmp_y[j] = get_bits(&gb, bit_depth);
}
if(simple || !CONFIG_GRAY || !(s->flags&CODEC_FLAG_GRAY)){
- for (i = 0; i < 8; i++) {
- uint16_t *tmp_cb = (uint16_t*)(dest_cb + i*uvlinesize);
- for (j = 0; j < 8; j++)
- tmp_cb[j] = get_bits(&gb, bit_depth);
- }
- for (i = 0; i < 8; i++) {
- uint16_t *tmp_cr = (uint16_t*)(dest_cr + i*uvlinesize);
- for (j = 0; j < 8; j++)
- tmp_cr[j] = get_bits(&gb, bit_depth);
+ if (!h->sps.chroma_format_idc) {
+ for (i = 0; i < 8; i++) {
+ uint16_t *tmp_cb = (uint16_t*)(dest_cb + i*uvlinesize);
+ for (j = 0; j < 8; j++) {
+ tmp_cb[j] = 1 << (bit_depth - 1);
+ }
+ }
+ for (i = 0; i < 8; i++) {
+ uint16_t *tmp_cr = (uint16_t*)(dest_cr + i*uvlinesize);
+ for (j = 0; j < 8; j++) {
+ tmp_cr[j] = 1 << (bit_depth - 1);
+ }
+ }
+ } else {
+ for (i = 0; i < 8; i++) {
+ uint16_t *tmp_cb = (uint16_t*)(dest_cb + i*uvlinesize);
+ for (j = 0; j < 8; j++)
+ tmp_cb[j] = get_bits(&gb, bit_depth);
+ }
+ for (i = 0; i < 8; i++) {
+ uint16_t *tmp_cr = (uint16_t*)(dest_cr + i*uvlinesize);
+ for (j = 0; j < 8; j++)
+ tmp_cr[j] = get_bits(&gb, bit_depth);
+ }
}
}
} else {
@@ -1864,9 +1890,16 @@
memcpy(dest_y + i* linesize, h->mb + i*8, 16);
}
if(simple || !CONFIG_GRAY || !(s->flags&CODEC_FLAG_GRAY)){
- for (i=0; i<8; i++) {
- memcpy(dest_cb+ i*uvlinesize, h->mb + 128 + i*4, 8);
- memcpy(dest_cr+ i*uvlinesize, h->mb + 160 + i*4, 8);
+ if (!h->sps.chroma_format_idc) {
+ for (i = 0; i < 8; i++) {
+ memset(dest_cb + i*uvlinesize, 128, 8);
+ memset(dest_cr + i*uvlinesize, 128, 8);
+ }
+ } else {
+ for (i = 0; i < 8; i++) {
+ memcpy(dest_cb + i*uvlinesize, h->mb + 128 + i*4, 8);
+ memcpy(dest_cr + i*uvlinesize, h->mb + 160 + i*4, 8);
+ }
}
}
}
@@ -2198,15 +2231,17 @@
for(ref0=ref_start; ref0 < ref_count0; ref0++){
int poc0 = h->ref_list[0][ref0].poc;
for(ref1=ref_start; ref1 < ref_count1; ref1++){
- int poc1 = h->ref_list[1][ref1].poc;
- int td = av_clip(poc1 - poc0, -128, 127);
- int w= 32;
- if(td){
- int tb = av_clip(cur_poc - poc0, -128, 127);
- int tx = (16384 + (FFABS(td) >> 1)) / td;
- int dist_scale_factor = (tb*tx + 32) >> 8;
- if(dist_scale_factor >= -64 && dist_scale_factor <= 128)
- w = 64 - dist_scale_factor;
+ int w = 32;
+ if (!h->ref_list[0][ref0].long_ref && !h->ref_list[1][ref1].long_ref) {
+ int poc1 = h->ref_list[1][ref1].poc;
+ int td = av_clip(poc1 - poc0, -128, 127);
+ if(td){
+ int tb = av_clip(cur_poc - poc0, -128, 127);
+ int tx = (16384 + (FFABS(td) >> 1)) / td;
+ int dist_scale_factor = (tb*tx + 32) >> 8;
+ if(dist_scale_factor >= -64 && dist_scale_factor <= 128)
+ w = 64 - dist_scale_factor;
+ }
}
if(field<0){
h->implicit_weight[ref0][ref1][0]=
@@ -2233,7 +2268,7 @@
static void flush_dpb(AVCodecContext *avctx){
H264Context *h= avctx->priv_data;
int i;
- for(i=0; i<MAX_DELAYED_PIC_COUNT; i++) {
+ for(i=0; i<=MAX_DELAYED_PIC_COUNT; i++) {
if(h->delayed_pic[i])
h->delayed_pic[i]->reference= 0;
h->delayed_pic[i]= NULL;
@@ -2488,7 +2523,8 @@
s->dropable= h->nal_ref_idc == 0;
- if((s->avctx->flags2 & CODEC_FLAG2_FAST) && !h->nal_ref_idc){
+ /* FIXME: 2tap qpel isn't implemented for high bit depth. */
+ if((s->avctx->flags2 & CODEC_FLAG2_FAST) && !h->nal_ref_idc && !h->pixel_shift){
s->me.qpel_put= s->dsp.put_2tap_qpel_pixels_tab;
s->me.qpel_avg= s->dsp.avg_2tap_qpel_pixels_tab;
}else{
@@ -2637,7 +2673,10 @@
h->prev_interlaced_frame = 1;
init_scan_tables(h);
- ff_h264_alloc_tables(h);
+ if (ff_h264_alloc_tables(h) < 0) {
+ av_log(h->s.avctx, AV_LOG_ERROR, "Could not allocate memory for h264\n");
+ return AVERROR(ENOMEM);
+ }
if (!HAVE_THREADS || !(s->avctx->active_thread_type&FF_THREAD_SLICE)) {
if (context_init(h) < 0) {
@@ -3303,8 +3342,8 @@
uvlinesize = h->mb_uvlinesize = s->uvlinesize * 2;
if(mb_y&1){ //FIXME move out of this function?
dest_y -= s->linesize*15;
- dest_cb-= s->uvlinesize*7;
- dest_cr-= s->uvlinesize*7;
+ dest_cb-= s->uvlinesize*((8 << CHROMA444)-1);
+ dest_cr-= s->uvlinesize*((8 << CHROMA444)-1);
}
} else {
linesize = h->mb_linesize = s->linesize;
@@ -3667,7 +3706,7 @@
s->workaround_bugs |= FF_BUG_TRUNCATED;
if(!(s->workaround_bugs & FF_BUG_TRUNCATED)){
- while(ptr[dst_length - 1] == 0 && dst_length > 0)
+ while(dst_length > 0 && ptr[dst_length - 1] == 0)
dst_length--;
}
bit_length= !dst_length ? 0 : (8*dst_length - ff_h264_decode_rbsp_trailing(h, ptr + dst_length - 1));
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/h264.h
^
|
@@ -53,6 +53,8 @@
#define MAX_DELAYED_PIC_COUNT 16
+#define MAX_MBPAIR_SIZE (256*1024) // a tighter bound could be calculated if someone cares about a few bytes
+
/* Compiling in interlaced support reduces the speed
* of progressive decoding by about 2%. */
#define ALLOW_INTERLACE
@@ -507,7 +509,7 @@
int cabac_init_idc;
/**
- * @defgroup multithreading Members for slice based multithreading
+ * @name Members for slice based multithreading
* @{
*/
struct H264Context *thread_context[MAX_THREADS];
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/h264_loopfilter.c
^
|
@@ -393,10 +393,10 @@
AV_WN64A(bS, 0x0003000300030003ULL);
} else {
if(!CABAC && IS_8x8DCT(s->current_picture.mb_type[mbn_xy])){
- bS[0]= 1+((h->cbp_table[mbn_xy] & 4)||h->non_zero_count_cache[scan8[0]+0]);
- bS[1]= 1+((h->cbp_table[mbn_xy] & 4)||h->non_zero_count_cache[scan8[0]+1]);
- bS[2]= 1+((h->cbp_table[mbn_xy] & 8)||h->non_zero_count_cache[scan8[0]+2]);
- bS[3]= 1+((h->cbp_table[mbn_xy] & 8)||h->non_zero_count_cache[scan8[0]+3]);
+ bS[0]= 1+((h->cbp_table[mbn_xy] & 0x4000)||h->non_zero_count_cache[scan8[0]+0]);
+ bS[1]= 1+((h->cbp_table[mbn_xy] & 0x4000)||h->non_zero_count_cache[scan8[0]+1]);
+ bS[2]= 1+((h->cbp_table[mbn_xy] & 0x8000)||h->non_zero_count_cache[scan8[0]+2]);
+ bS[3]= 1+((h->cbp_table[mbn_xy] & 0x8000)||h->non_zero_count_cache[scan8[0]+3]);
}else{
const uint8_t *mbn_nnz = h->non_zero_count[mbn_xy] + 3*4;
int i;
@@ -635,7 +635,7 @@
else{
bS[i] = 1 + !!(h->non_zero_count_cache[12+8*(i>>1)] |
((!h->pps.cabac && IS_8x8DCT(mbn_type)) ?
- (h->cbp_table[mbn_xy] & ((MB_FIELD ? (i&2) : (mb_y&1)) ? 8 : 2))
+ (h->cbp_table[mbn_xy] & (((MB_FIELD ? (i&2) : (mb_y&1)) ? 8 : 2) << 12))
:
h->non_zero_count[mbn_xy][ off[i] ]));
}
@@ -663,19 +663,33 @@
filter_mb_mbaff_edgev ( h, img_y , linesize, bS , 1, qp [0] );
filter_mb_mbaff_edgev ( h, img_y + 8* linesize, linesize, bS+4, 1, qp [1] );
if (chroma){
- filter_mb_mbaff_edgecv( h, img_cb, uvlinesize, bS , 1, bqp[0] );
- filter_mb_mbaff_edgecv( h, img_cb + 4*uvlinesize, uvlinesize, bS+4, 1, bqp[1] );
- filter_mb_mbaff_edgecv( h, img_cr, uvlinesize, bS , 1, rqp[0] );
- filter_mb_mbaff_edgecv( h, img_cr + 4*uvlinesize, uvlinesize, bS+4, 1, rqp[1] );
+ if (CHROMA444) {
+ filter_mb_mbaff_edgev ( h, img_cb, uvlinesize, bS , 1, bqp[0] );
+ filter_mb_mbaff_edgev ( h, img_cb + 8*uvlinesize, uvlinesize, bS+4, 1, bqp[1] );
+ filter_mb_mbaff_edgev ( h, img_cr, uvlinesize, bS , 1, rqp[0] );
+ filter_mb_mbaff_edgev ( h, img_cr + 8*uvlinesize, uvlinesize, bS+4, 1, rqp[1] );
+ }else{
+ filter_mb_mbaff_edgecv( h, img_cb, uvlinesize, bS , 1, bqp[0] );
+ filter_mb_mbaff_edgecv( h, img_cb + 4*uvlinesize, uvlinesize, bS+4, 1, bqp[1] );
+ filter_mb_mbaff_edgecv( h, img_cr, uvlinesize, bS , 1, rqp[0] );
+ filter_mb_mbaff_edgecv( h, img_cr + 4*uvlinesize, uvlinesize, bS+4, 1, rqp[1] );
+ }
}
}else{
filter_mb_mbaff_edgev ( h, img_y , 2* linesize, bS , 2, qp [0] );
filter_mb_mbaff_edgev ( h, img_y + linesize, 2* linesize, bS+1, 2, qp [1] );
if (chroma){
- filter_mb_mbaff_edgecv( h, img_cb, 2*uvlinesize, bS , 2, bqp[0] );
- filter_mb_mbaff_edgecv( h, img_cb + uvlinesize, 2*uvlinesize, bS+1, 2, bqp[1] );
- filter_mb_mbaff_edgecv( h, img_cr, 2*uvlinesize, bS , 2, rqp[0] );
- filter_mb_mbaff_edgecv( h, img_cr + uvlinesize, 2*uvlinesize, bS+1, 2, rqp[1] );
+ if (CHROMA444) {
+ filter_mb_mbaff_edgev ( h, img_cb, 2*uvlinesize, bS , 2, bqp[0] );
+ filter_mb_mbaff_edgev ( h, img_cb + uvlinesize, 2*uvlinesize, bS+1, 2, bqp[1] );
+ filter_mb_mbaff_edgev ( h, img_cr, 2*uvlinesize, bS , 2, rqp[0] );
+ filter_mb_mbaff_edgev ( h, img_cr + uvlinesize, 2*uvlinesize, bS+1, 2, rqp[1] );
+ }else{
+ filter_mb_mbaff_edgecv( h, img_cb, 2*uvlinesize, bS , 2, bqp[0] );
+ filter_mb_mbaff_edgecv( h, img_cb + uvlinesize, 2*uvlinesize, bS+1, 2, bqp[1] );
+ filter_mb_mbaff_edgecv( h, img_cr, 2*uvlinesize, bS , 2, rqp[0] );
+ filter_mb_mbaff_edgecv( h, img_cr + uvlinesize, 2*uvlinesize, bS+1, 2, rqp[1] );
+ }
}
}
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/h264_ps.c
^
|
@@ -281,12 +281,12 @@
decode_scaling_list(h,scaling_matrix4[5],16,default_scaling4[1],scaling_matrix4[4]); // Inter, Cb
if(is_sps || pps->transform_8x8_mode){
decode_scaling_list(h,scaling_matrix8[0],64,default_scaling8[0],fallback[2]); // Intra, Y
- if(h->sps.chroma_format_idc == 3){
+ if(sps->chroma_format_idc == 3){
decode_scaling_list(h,scaling_matrix8[1],64,default_scaling8[0],scaling_matrix8[0]); // Intra, Cr
decode_scaling_list(h,scaling_matrix8[2],64,default_scaling8[0],scaling_matrix8[1]); // Intra, Cb
}
decode_scaling_list(h,scaling_matrix8[3],64,default_scaling8[1],fallback[3]); // Inter, Y
- if(h->sps.chroma_format_idc == 3){
+ if(sps->chroma_format_idc == 3){
decode_scaling_list(h,scaling_matrix8[4],64,default_scaling8[1],scaling_matrix8[3]); // Inter, Cr
decode_scaling_list(h,scaling_matrix8[5],64,default_scaling8[1],scaling_matrix8[4]); // Inter, Cb
}
@@ -396,6 +396,7 @@
#endif
sps->crop= get_bits1(&s->gb);
if(sps->crop){
+ int crop_limit = sps->chroma_format_idc == 3 ? 16 : 8;
sps->crop_left = get_ue_golomb(&s->gb);
sps->crop_right = get_ue_golomb(&s->gb);
sps->crop_top = get_ue_golomb(&s->gb);
@@ -403,7 +404,7 @@
if(sps->crop_left || sps->crop_top){
av_log(h->s.avctx, AV_LOG_ERROR, "insane cropping not completely supported, this could look slightly wrong ...\n");
}
- if(sps->crop_right >= (8<<CHROMA444) || sps->crop_bottom >= (8<<CHROMA444)){
+ if(sps->crop_right >= crop_limit || sps->crop_bottom >= crop_limit){
av_log(h->s.avctx, AV_LOG_ERROR, "brainfart cropping not supported, this could look slightly wrong ...\n");
}
}else{
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/h264_refs.c
^
|
@@ -678,7 +678,7 @@
}
if(opcode==MMCO_SHORT2LONG || opcode==MMCO_LONG2UNUSED || opcode==MMCO_LONG || opcode==MMCO_SET_MAX_LONG){
unsigned int long_arg= get_ue_golomb_31(gb);
- if(long_arg >= 32 || (long_arg >= 16 && !(opcode == MMCO_LONG2UNUSED && FIELD_PICTURE))){
+ if(long_arg >= 32 || (long_arg >= 16 && !(opcode == MMCO_SET_MAX_LONG && long_arg == 16) && !(opcode == MMCO_LONG2UNUSED && FIELD_PICTURE))){
av_log(h->s.avctx, AV_LOG_ERROR, "illegal long ref in memory management control operation %d\n", opcode);
return -1;
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/h264idct_template.c
^
|
@@ -237,7 +237,6 @@
}
/**
* IDCT transforms the 16 dc values and dequantizes them.
- * @param qp quantization parameter
*/
void FUNCC(ff_h264_luma_dc_dequant_idct)(DCTELEM *p_output, DCTELEM *p_input, int qmul){
#define stride 16
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/high_bit_depth.h
^
|
@@ -1,3 +1,21 @@
+/*
+ * This file is part of Libav.
+ *
+ * Libav is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * Libav is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with Libav; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
#include "dsputil.h"
#ifndef BIT_DEPTH
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/indeo2.c
^
|
@@ -153,6 +153,13 @@
return -1;
}
+ start = 48; /* hardcoded for now */
+
+ if (start >= buf_size) {
+ av_log(s->avctx, AV_LOG_ERROR, "input buffer size too small (%d)\n", buf_size);
+ return AVERROR_INVALIDDATA;
+ }
+
s->decode_delta = buf[18];
/* decide whether frame uses deltas or not */
@@ -160,9 +167,8 @@
for (i = 0; i < buf_size; i++)
buf[i] = av_reverse[buf[i]];
#endif
- start = 48; /* hardcoded for now */
- init_get_bits(&s->gb, buf + start, buf_size - start);
+ init_get_bits(&s->gb, buf + start, (buf_size - start) * 8);
if (s->decode_delta) { /* intraframe */
ir2_decode_plane(s, avctx->width, avctx->height,
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/jpegls.h
^
|
@@ -86,6 +86,8 @@
}
static inline int ff_jpegls_update_state_regular(JLSState *state, int Q, int err){
+ if(FFABS(err) > 0xFFFF)
+ return -0x10000;
state->A[Q] += FFABS(err);
err *= state->twonear;
state->B[Q] += err;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/jvdec.c
^
|
@@ -150,7 +150,7 @@
if (video_type == 0 || video_type == 1) {
GetBitContext gb;
- init_get_bits(&gb, buf, FFMIN(video_size, buf_end - buf));
+ init_get_bits(&gb, buf, FFMIN(video_size, (buf_end - buf) * 8));
for (j = 0; j < avctx->height; j += 8)
for (i = 0; i < avctx->width; i += 8)
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/kgv1dec.c
^
|
@@ -174,6 +174,5 @@
NULL,
decode_end,
decode_frame,
- .max_lowres = 1,
.long_name = NULL_IF_CONFIG_SMALL("Kega Game Video"),
};
|
[-]
[+]
|
Added |
ffmpeg-0.8.4.tar.bz2/libavcodec/libspeexenc.c
^
|
@@ -0,0 +1,178 @@
+/*
+ * Copyright (c) 2009 by Xuggle Incorporated. All rights reserved.
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+#include <libavcodec/avcodec.h>
+#include <speex/speex.h>
+#include <speex/speex_header.h>
+#include <speex/speex_stereo.h>
+
+typedef struct {
+ SpeexBits bits;
+ void *enc_state;
+ SpeexHeader header;
+} LibSpeexEncContext;
+
+
+static av_cold int libspeex_encode_init(AVCodecContext *avctx)
+{
+ LibSpeexEncContext *s = (LibSpeexEncContext*)avctx->priv_data;
+ const SpeexMode *mode;
+
+ if ((avctx->sample_fmt != SAMPLE_FMT_S16 && avctx->sample_fmt != SAMPLE_FMT_FLT) ||
+ avctx->sample_rate <= 0 ||
+ avctx->channels <= 0 ||
+ avctx->channels > 2)
+ {
+ av_log(avctx, AV_LOG_ERROR, "Unsupported sample format, rate, or channels for speex");
+ return -1;
+ }
+
+ if (avctx->sample_rate <= 8000)
+ mode = &speex_nb_mode;
+ else if (avctx->sample_rate <= 16000)
+ mode = &speex_wb_mode;
+ else
+ mode = &speex_uwb_mode;
+
+ speex_bits_init(&s->bits);
+ s->enc_state = speex_encoder_init(mode);
+ if (!s->enc_state)
+ {
+ av_log(avctx, AV_LOG_ERROR, "could not initialize speex encoder");
+ return -1;
+ }
+
+ // initialize the header
+ speex_init_header(&s->header, avctx->sample_rate,
+ avctx->channels, mode);
+
+ // TODO: It'd be nice to support VBR here, but
+ // I'm uncertain what AVCodecContext options to use
+ // to signal whether to turn it on.
+ if (avctx->flags & CODEC_FLAG_QSCALE) {
+ spx_int32_t quality = 0;
+ // Map global_quality's mpeg 1/2/4 scale into Speex's 0-10 scale
+ if (avctx->global_quality > FF_LAMBDA_MAX)
+ quality = 0; // lowest possible quality
+ else
+ quality = (spx_int32_t)((FF_LAMBDA_MAX-avctx->global_quality)*10.0/FF_LAMBDA_MAX);
+ speex_encoder_ctl(s->enc_state, SPEEX_SET_QUALITY, &quality);
+ } else {
+ // default to CBR
+ if (avctx->bit_rate > 0)
+ speex_encoder_ctl(s->enc_state, SPEEX_SET_BITRATE, &avctx->bit_rate);
+ // otherwise just take the default quality setting
+ }
+ // reset the bit-rate to the actual bit rate speex will use
+ speex_encoder_ctl(s->enc_state, SPEEX_GET_BITRATE, &s->header.bitrate);
+ avctx->bit_rate = s->header.bitrate;
+
+ // get the actual sample rate
+ speex_encoder_ctl(s->enc_state, SPEEX_GET_SAMPLING_RATE, &s->header.rate);
+ avctx->sample_rate = s->header.rate;
+
+ // get the frame-size. To align with FLV, we're going to put 2 frames
+ // per packet. If someone can tell me how to make this configurable
+ // from the avcodec contents, I'll mod this so it's not hard-coded.
+ // but without this, FLV files with speex data won't play correctly
+ // in flash player 10.
+ speex_encoder_ctl(s->enc_state, SPEEX_GET_FRAME_SIZE, &s->header.frame_size);
+ s->header.frames_per_packet = 2; // Need for FLV container support
+ avctx->frame_size = s->header.frame_size*s->header.frames_per_packet;
+
+ // and we'll put a speex header packet into extradata so that muxers
+ // can use it.
+ avctx->extradata = speex_header_to_packet(&s->header, &avctx->extradata_size);
+ return 0;
+}
+
+static av_cold int libspeex_encode_frame(
+ AVCodecContext *avctx, uint8_t *frame,
+ int buf_size, void *data)
+{
+ LibSpeexEncContext *s = (LibSpeexEncContext*)avctx->priv_data;
+ int i = 0;
+
+ if (!data)
+ // nothing to flush
+ return 0;
+
+ speex_bits_reset(&s->bits);
+ for(i = 0; i < s->header.frames_per_packet; i++)
+ {
+ if (avctx->sample_fmt == SAMPLE_FMT_FLT)
+ {
+ if (avctx->channels == 2) {
+ speex_encode_stereo(
+ (float*)data+i*s->header.frame_size,
+ s->header.frame_size,
+ &s->bits);
+ }
+ speex_encode(s->enc_state,
+ (float*)data+i*s->header.frame_size, &s->bits);
+ } else {
+ if (avctx->channels == 2) {
+ speex_encode_stereo_int(
+ (spx_int16_t*)data+i*s->header.frame_size,
+ s->header.frame_size,
+ &s->bits);
+ }
+ speex_encode_int(s->enc_state,
+ (spx_int16_t*)data+i*s->header.frame_size, &s->bits);
+ }
+ }
+ // put in a terminator so this will fit in a OGG or FLV packet
+ speex_bits_insert_terminator(&s->bits);
+
+ if (buf_size >= speex_bits_nbytes(&s->bits)) {
+ return speex_bits_write(&s->bits, frame, buf_size);
+ } else {
+ av_log(avctx, AV_LOG_ERROR, "output buffer too small");
+ return -1;
+ }
+}
+
+static av_cold int libspeex_encode_close(AVCodecContext *avctx)
+{
+ LibSpeexEncContext *s = (LibSpeexEncContext*)avctx->priv_data;
+
+ speex_bits_destroy(&s->bits);
+ speex_encoder_destroy(s->enc_state);
+ s->enc_state = 0;
+ if (avctx->extradata)
+ speex_header_free(avctx->extradata);
+ avctx->extradata = 0;
+ avctx->extradata_size = 0;
+
+ return 0;
+}
+
+AVCodec ff_libspeex_encoder = {
+ "libspeex",
+ AVMEDIA_TYPE_AUDIO,
+ CODEC_ID_SPEEX,
+ sizeof(LibSpeexEncContext),
+ libspeex_encode_init,
+ libspeex_encode_frame,
+ libspeex_encode_close,
+ 0,
+ .capabilities = CODEC_CAP_DELAY,
+ .supported_samplerates = (const int[]){8000, 16000, 32000, 0},
+ .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_FLT,SAMPLE_FMT_NONE},
+ .long_name = NULL_IF_CONFIG_SMALL("libspeex Speex Encoder"),
+};
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/libvorbis.c
^
|
@@ -30,6 +30,7 @@
#include "avcodec.h"
#include "bytestream.h"
#include "vorbis.h"
+#include "libavutil/mathematics.h"
#undef NDEBUG
#include <assert.h>
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/libvpxenc.c
^
|
@@ -31,6 +31,7 @@
#include "avcodec.h"
#include "libavutil/base64.h"
#include "libavutil/opt.h"
+#include "libavutil/mathematics.h"
/**
* Portion of struct vpx_codec_cx_pkt from vpx_encoder.h.
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/libxvidff.c
^
|
@@ -30,6 +30,7 @@
#include "avcodec.h"
#include "libavutil/cpu.h"
#include "libavutil/intreadwrite.h"
+#include "libavutil/mathematics.h"
#include "libxvid_internal.h"
#if !HAVE_MKSTEMP
#include <fcntl.h>
@@ -528,6 +529,7 @@
if( x->twopassbuffer != NULL ) {
av_free(x->twopassbuffer);
av_free(x->old_twopassbuffer);
+ avctx->stats_out = NULL;
}
av_free(x->twopassfile);
av_free(x->intra_matrix);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/mjpegdec.c
^
|
@@ -318,8 +318,10 @@
case 0x11111100:
if(s->rgb){
s->avctx->pix_fmt = PIX_FMT_BGRA;
- }else
+ }else{
s->avctx->pix_fmt = s->cs_itu601 ? PIX_FMT_YUV444P : PIX_FMT_YUVJ444P;
+ s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG;
+ }
assert(s->nb_components==3);
break;
case 0x11000000:
@@ -327,12 +329,15 @@
break;
case 0x12111100:
s->avctx->pix_fmt = s->cs_itu601 ? PIX_FMT_YUV440P : PIX_FMT_YUVJ440P;
+ s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG;
break;
case 0x21111100:
s->avctx->pix_fmt = s->cs_itu601 ? PIX_FMT_YUV422P : PIX_FMT_YUVJ422P;
+ s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG;
break;
case 0x22111100:
s->avctx->pix_fmt = s->cs_itu601 ? PIX_FMT_YUV420P : PIX_FMT_YUVJ420P;
+ s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG;
break;
default:
av_log(s->avctx, AV_LOG_ERROR, "Unhandled pixel format 0x%x\n", pix_fmt_id);
@@ -881,14 +886,19 @@
}
}
- if (s->restart_interval && show_bits(&s->gb, 8) == 0xFF){/* skip RSTn */
- --s->restart_count;
+ if (s->restart_interval) --s->restart_count;
+ i= 8+((-get_bits_count(&s->gb))&7);
+ if (s->restart_interval && show_bits(&s->gb, i) == (1<<i)-1){ /* skip RSTn */
+ int pos= get_bits_count(&s->gb);
align_get_bits(&s->gb);
while(show_bits(&s->gb, 8) == 0xFF)
skip_bits(&s->gb, 8);
- skip_bits(&s->gb, 8);
- for (i=0; i<nb_components; i++) /* reset dc */
- s->last_dc[i] = 1024;
+ if((get_bits(&s->gb, 8)&0xF8) == 0xD0){
+ for (i=0; i<nb_components; i++) /* reset dc */
+ s->last_dc[i] = 1024;
+ }else{
+ skip_bits_long(&s->gb, pos - get_bits_count(&s->gb));
+ }
}
}
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/motion_est_template.c
^
|
@@ -992,8 +992,8 @@
return var_diamond_search(s, best, dmin, src_index, ref_index, penalty_factor, size, h, flags);
}
-/*!
- \param P[10][2] a list of candidate mvs to check before starting the
+/**
+ @param P a list of candidate mvs to check before starting the
iterative search. If one of the candidates is close to the optimal mv, then
it takes fewer iterations. And it increases the chance that we find the
optimal mv.
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/motionpixels.c
^
|
@@ -279,7 +279,8 @@
if (sz == 0)
goto end;
- init_vlc(&mp->vlc, mp->max_codes_bits, mp->codes_count, &mp->codes[0].size, sizeof(HuffCode), 1, &mp->codes[0].code, sizeof(HuffCode), 4, 0);
+ if (init_vlc(&mp->vlc, mp->max_codes_bits, mp->codes_count, &mp->codes[0].size, sizeof(HuffCode), 1, &mp->codes[0].code, sizeof(HuffCode), 4, 0))
+ goto end;
mp_decode_frame_helper(mp, &gb);
free_vlc(&mp->vlc);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/mpeg4videoenc.c
^
|
@@ -898,8 +898,8 @@
s->last_time_base= FFUDIV(time, s->avctx->time_base.den);
seconds= FFUDIV(time, s->avctx->time_base.den);
- minutes= FFUDIV(seconds, 60); FFUMOD(seconds, 60);
- hours = FFUDIV(minutes, 60); FFUMOD(minutes, 60);
+ minutes= FFUDIV(seconds, 60); seconds = FFUMOD(seconds, 60);
+ hours = FFUDIV(minutes, 60); minutes = FFUMOD(minutes, 60);
hours = FFUMOD(hours , 24);
put_bits(&s->pb, 5, hours);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/mpegaudiodec.c
^
|
@@ -1809,7 +1809,7 @@
av_log(avctx, AV_LOG_ERROR, "incomplete frame\n");
return -1;
}else if(s->frame_size < buf_size){
- av_log(avctx, AV_LOG_ERROR, "incorrect frame size\n");
+ av_log(avctx, AV_LOG_DEBUG, "incorrect frame size - multiple frames in buffer?\n");
buf_size= s->frame_size;
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/mpegvideo.c
^
|
@@ -285,9 +285,10 @@
}
FF_ALLOCZ_OR_GOTO(s->avctx, pic->mbskip_table , mb_array_size * sizeof(uint8_t)+2, fail) //the +2 is for the slice end check
- FF_ALLOCZ_OR_GOTO(s->avctx, pic->qscale_table , mb_array_size * sizeof(uint8_t) , fail)
+ FF_ALLOCZ_OR_GOTO(s->avctx, pic->qscale_table_base , (big_mb_num + s->mb_stride) * sizeof(uint8_t) , fail)
FF_ALLOCZ_OR_GOTO(s->avctx, pic->mb_type_base , (big_mb_num + s->mb_stride) * sizeof(uint32_t), fail)
pic->mb_type= pic->mb_type_base + 2*s->mb_stride+1;
+ pic->qscale_table = pic->qscale_table_base + 2*s->mb_stride + 1;
if(s->out_format == FMT_H264){
for(i=0; i<2; i++){
FF_ALLOCZ_OR_GOTO(s->avctx, pic->motion_val_base[i], 2 * (b4_array_size+4) * sizeof(int16_t), fail)
@@ -339,7 +340,7 @@
av_freep(&pic->mc_mb_var);
av_freep(&pic->mb_mean);
av_freep(&pic->mbskip_table);
- av_freep(&pic->qscale_table);
+ av_freep(&pic->qscale_table_base);
av_freep(&pic->mb_type_base);
av_freep(&pic->dct_coeff);
av_freep(&pic->pan_scan);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/mpegvideo.h
^
|
@@ -88,6 +88,7 @@
* halfpel luma planes.
*/
uint8_t *interpolated[3];
+ int8_t *qscale_table_base;
int16_t (*motion_val_base[2])[2];
uint32_t *mb_type_base;
#define MB_TYPE_INTRA MB_TYPE_INTRA4x4 //default mb_type if there is just one type
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/nellymoserdec.c
^
|
@@ -156,6 +156,7 @@
const uint8_t *buf = avpkt->data;
int buf_size = avpkt->size;
NellyMoserDecodeContext *s = avctx->priv_data;
+ int data_max = *data_size;
int blocks, i;
int16_t* samples;
*data_size = 0;
@@ -178,6 +179,8 @@
*/
for (i=0 ; i<blocks ; i++) {
+ if ((i + 1) * NELLY_SAMPLES * sizeof(int16_t) > data_max)
+ return i > 0 ? i * NELLY_BLOCK_LEN : -1;
nelly_decode_block(s, &buf[i*NELLY_BLOCK_LEN], s->float_buf);
s->fmt_conv.float_to_int16(&samples[i*NELLY_SAMPLES], s->float_buf, NELLY_SAMPLES);
*data_size += NELLY_SAMPLES*sizeof(int16_t);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/opt.h
^
|
@@ -1,3 +1,21 @@
+/*
+ * This file is part of Libav.
+ *
+ * Libav is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * Libav is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with Libav; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
/**
* @file
* This header is provided for compatibility only and will be removed
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/options.c
^
|
@@ -446,10 +446,9 @@
{"lpc_passes", "deprecated, use flac-specific options", OFFSET(lpc_passes), FF_OPT_TYPE_INT, {.dbl = -1 }, INT_MIN, INT_MAX, A|E},
#endif
{"slices", "number of slices, used in parallelized decoding", OFFSET(slices), FF_OPT_TYPE_INT, {.dbl = 0 }, 0, INT_MAX, V|E},
-{"thread_type", "select multithreading type", OFFSET(thread_type), FF_OPT_TYPE_INT, {.dbl = FF_THREAD_SLICE|FF_THREAD_FRAME }, 0, INT_MAX, V|E|D, "thread_type"},
+{"thread_type", "select multithreading type", OFFSET(thread_type), FF_OPT_TYPE_FLAGS, {.dbl = FF_THREAD_SLICE|FF_THREAD_FRAME }, 0, INT_MAX, V|E|D, "thread_type"},
{"slice", NULL, 0, FF_OPT_TYPE_CONST, {.dbl = FF_THREAD_SLICE }, INT_MIN, INT_MAX, V|E|D, "thread_type"},
{"frame", NULL, 0, FF_OPT_TYPE_CONST, {.dbl = FF_THREAD_FRAME }, INT_MIN, INT_MAX, V|E|D, "thread_type"},
-{"vbv_delay", "initial buffer fill time in periods of 27Mhz clock", 0, FF_OPT_TYPE_INT64, {.dbl = 0 }, 0, INT64_MAX},
{"audio_service_type", "audio service type", OFFSET(audio_service_type), FF_OPT_TYPE_INT, {.dbl = AV_AUDIO_SERVICE_TYPE_MAIN }, 0, AV_AUDIO_SERVICE_TYPE_NB-1, A|E, "audio_service_type"},
{"ma", "Main Audio Service", 0, FF_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_MAIN }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"ef", "Effects", 0, FF_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_EFFECTS }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/pthread.c
^
|
@@ -408,9 +408,10 @@
FrameThreadContext *fctx = p->parent;
while (p->num_released_buffers > 0) {
- AVFrame *f = &p->released_buffers[--p->num_released_buffers];
+ AVFrame *f;
pthread_mutex_lock(&fctx->buffer_mutex);
+ f = &p->released_buffers[--p->num_released_buffers];
free_progress(f);
f->thread_opaque = NULL;
@@ -746,9 +747,12 @@
if (!avctx->thread_opaque) return;
park_frame_worker_threads(fctx, avctx->thread_count);
-
- if (fctx->prev_thread)
- update_context_from_thread(fctx->threads->avctx, fctx->prev_thread->avctx, 0);
+ if (fctx->prev_thread) {
+ if (fctx->prev_thread != &fctx->threads[0])
+ update_context_from_thread(fctx->threads[0].avctx, fctx->prev_thread->avctx, 0);
+ if (avctx->codec->flush)
+ avctx->codec->flush(fctx->threads[0].avctx);
+ }
fctx->next_decoding = fctx->next_finished = 0;
fctx->delaying = 1;
@@ -836,6 +840,7 @@
void ff_thread_release_buffer(AVCodecContext *avctx, AVFrame *f)
{
PerThreadContext *p = avctx->thread_opaque;
+ FrameThreadContext *fctx;
if (!(avctx->active_thread_type&FF_THREAD_FRAME)) {
avctx->release_buffer(avctx, f);
@@ -851,7 +856,10 @@
av_log(avctx, AV_LOG_DEBUG, "thread_release_buffer called on pic %p, %d buffers used\n",
f, f->owner->internal_buffer_count);
+ fctx = p->parent;
+ pthread_mutex_lock(&fctx->buffer_mutex);
p->released_buffers[p->num_released_buffers++] = *f;
+ pthread_mutex_unlock(&fctx->buffer_mutex);
memset(f->data, 0, sizeof(f->data));
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/qcelpdata.h
^
|
@@ -38,14 +38,14 @@
* QCELP unpacked data frame
*/
typedef struct {
-/// @defgroup qcelp_codebook_parameters QCELP excitation codebook parameters
+/// @name QCELP excitation codebook parameters
/// @{
uint8_t cbsign[16]; ///!< sign of the codebook gain for each codebook subframe
uint8_t cbgain[16]; ///!< unsigned codebook gain for each codebook subframe
uint8_t cindex[16]; ///!< codebook index for each codebook subframe
/// @}
-/// @defgroup qcelp_pitch_parameters QCELP pitch prediction parameters
+/// @name QCELP pitch prediction parameters
/// @{
uint8_t plag[4]; ///!< pitch lag for each pitch subframe
uint8_t pfrac[4]; ///!< fractional pitch lag for each pitch subframe
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/qcelpdec.c
^
|
@@ -839,7 +839,7 @@
*data_size = 160 * sizeof(*outbuffer);
- return *data_size;
+ return buf_size;
}
AVCodec ff_qcelp_decoder =
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/ratecontrol.c
^
|
@@ -866,6 +866,12 @@
assert(filter_size%2==1);
/* fixed I/B QP relative to P mode */
+ for(i=FFMAX(0, rcc->num_entries-300); i<rcc->num_entries; i++){
+ RateControlEntry *rce= &rcc->entry[i];
+
+ qscale[i]= get_diff_limited_q(s, rce, qscale[i]);
+ }
+
for(i=rcc->num_entries-1; i>=0; i--){
RateControlEntry *rce= &rcc->entry[i];
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/rv10.c
^
|
@@ -559,8 +559,14 @@
if(MPV_frame_start(s, avctx) < 0)
return -1;
ff_er_frame_start(s);
+ } else {
+ if (s->current_picture_ptr->pict_type != s->pict_type) {
+ av_log(s->avctx, AV_LOG_ERROR, "Slice type mismatch\n");
+ return -1;
+ }
}
+
av_dlog(avctx, "qscale=%d\n", s->qscale);
/* default quantization values */
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/rv30.c
^
|
@@ -51,6 +51,11 @@
skip_bits1(gb);
si->pts = get_bits(gb, 13);
rpr = get_bits(gb, r->rpr);
+ if (r->s.avctx->extradata_size < 8 + rpr*2) {
+ av_log(r->s.avctx, AV_LOG_WARNING,
+ "Extradata does not contain selected resolution\n");
+ rpr = 0;
+ }
if(rpr){
w = r->s.avctx->extradata[6 + rpr*2] << 2;
h = r->s.avctx->extradata[7 + rpr*2] << 2;
@@ -74,7 +79,7 @@
for(i = 0; i < 4; i++, dst += r->intra_types_stride - 4){
for(j = 0; j < 4; j+= 2){
int code = svq3_get_ue_golomb(gb) << 1;
- if(code >= 81*2){
+ if(code >= 81U*2U){
av_log(r->s.avctx, AV_LOG_ERROR, "Incorrect intra prediction code\n");
return -1;
}
@@ -103,7 +108,7 @@
GetBitContext *gb = &s->gb;
int code = svq3_get_ue_golomb(gb);
- if(code > 11){
+ if(code > 11U){
av_log(s->avctx, AV_LOG_ERROR, "Incorrect MB type code\n");
return -1;
}
@@ -256,6 +261,7 @@
if(avctx->extradata_size - 8 < (r->rpr - 1) * 2){
av_log(avctx, AV_LOG_ERROR, "Insufficient extradata - need at least %d bytes, got %d\n",
6 + r->rpr * 2, avctx->extradata_size);
+ return AVERROR(EINVAL);
}
r->parse_slice_header = rv30_parse_slice_header;
r->decode_intra_types = rv30_decode_intra_types;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/rv34.c
^
|
@@ -62,8 +62,10 @@
static RV34VLC intra_vlcs[NUM_INTRA_TABLES], inter_vlcs[NUM_INTER_TABLES];
+static int rv34_decode_mv(RV34DecContext *r, int block_type);
+
/**
- * @defgroup vlc RV30/40 VLC generating functions
+ * @name RV30/40 VLC generating functions
* @{
*/
@@ -171,7 +173,7 @@
/**
- * @defgroup transform RV30/40 inverse transform functions
+ * @name RV30/40 inverse transform functions
* @{
*/
@@ -246,7 +248,7 @@
/**
- * @defgroup block RV30/40 4x4 block decoding functions
+ * @name RV30/40 4x4 block decoding functions
* @{
*/
@@ -393,7 +395,7 @@
/**
- * @defgroup rv3040_bitstream RV30/40 bitstream parsing
+ * @name RV30/40 bitstream parsing
* @{
*/
@@ -432,10 +434,76 @@
return get_bits(gb, 5);
}
+/**
+ * Decode macroblock header and return CBP in case of success, -1 otherwise.
+ */
+static int rv34_decode_mb_header(RV34DecContext *r, int8_t *intra_types)
+{
+ MpegEncContext *s = &r->s;
+ GetBitContext *gb = &s->gb;
+ int mb_pos = s->mb_x + s->mb_y * s->mb_stride;
+ int i, t;
+
+ if(!r->si.type){
+ r->is16 = get_bits1(gb);
+ if(!r->is16 && !r->rv30){
+ if(!get_bits1(gb))
+ av_log(s->avctx, AV_LOG_ERROR, "Need DQUANT\n");
+ }
+ s->current_picture_ptr->mb_type[mb_pos] = r->is16 ? MB_TYPE_INTRA16x16 : MB_TYPE_INTRA;
+ r->block_type = r->is16 ? RV34_MB_TYPE_INTRA16x16 : RV34_MB_TYPE_INTRA;
+ }else{
+ r->block_type = r->decode_mb_info(r);
+ if(r->block_type == -1)
+ return -1;
+ s->current_picture_ptr->mb_type[mb_pos] = rv34_mb_type_to_lavc[r->block_type];
+ r->mb_type[mb_pos] = r->block_type;
+ if(r->block_type == RV34_MB_SKIP){
+ if(s->pict_type == AV_PICTURE_TYPE_P)
+ r->mb_type[mb_pos] = RV34_MB_P_16x16;
+ if(s->pict_type == AV_PICTURE_TYPE_B)
+ r->mb_type[mb_pos] = RV34_MB_B_DIRECT;
+ }
+ r->is16 = !!IS_INTRA16x16(s->current_picture_ptr->mb_type[mb_pos]);
+ rv34_decode_mv(r, r->block_type);
+ if(r->block_type == RV34_MB_SKIP){
+ fill_rectangle(intra_types, 4, 4, r->intra_types_stride, 0, sizeof(intra_types[0]));
+ return 0;
+ }
+ r->chroma_vlc = 1;
+ r->luma_vlc = 0;
+ }
+ if(IS_INTRA(s->current_picture_ptr->mb_type[mb_pos])){
+ if(r->is16){
+ t = get_bits(gb, 2);
+ fill_rectangle(intra_types, 4, 4, r->intra_types_stride, t, sizeof(intra_types[0]));
+ r->luma_vlc = 2;
+ }else{
+ if(r->decode_intra_types(r, gb, intra_types) < 0)
+ return -1;
+ r->luma_vlc = 1;
+ }
+ r->chroma_vlc = 0;
+ r->cur_vlcs = choose_vlc_set(r->si.quant, r->si.vlc_set, 0);
+ }else{
+ for(i = 0; i < 16; i++)
+ intra_types[(i & 3) + (i>>2) * r->intra_types_stride] = 0;
+ r->cur_vlcs = choose_vlc_set(r->si.quant, r->si.vlc_set, 1);
+ if(r->mb_type[mb_pos] == RV34_MB_P_MIX16x16){
+ r->is16 = 1;
+ r->chroma_vlc = 1;
+ r->luma_vlc = 2;
+ r->cur_vlcs = choose_vlc_set(r->si.quant, r->si.vlc_set, 0);
+ }
+ }
+
+ return rv34_decode_cbp(gb, r->cur_vlcs, r->is16);
+}
+
/** @} */ //bitstream functions
/**
- * @defgroup mv motion vector related code (prediction, reconstruction, motion compensation)
+ * @name motion vector related code (prediction, reconstruction, motion compensation)
* @{
*/
@@ -885,7 +953,7 @@
/** @} */ // mv group
/**
- * @defgroup recons Macroblock reconstruction functions
+ * @name Macroblock reconstruction functions
* @{
*/
/** mapping of RV30/40 intra prediction types to standard H.264 types */
@@ -1027,79 +1095,6 @@
}
}
-/** @} */ // recons group
-
-/**
- * @addtogroup bitstream
- * Decode macroblock header and return CBP in case of success, -1 otherwise.
- */
-static int rv34_decode_mb_header(RV34DecContext *r, int8_t *intra_types)
-{
- MpegEncContext *s = &r->s;
- GetBitContext *gb = &s->gb;
- int mb_pos = s->mb_x + s->mb_y * s->mb_stride;
- int i, t;
-
- if(!r->si.type){
- r->is16 = get_bits1(gb);
- if(!r->is16 && !r->rv30){
- if(!get_bits1(gb))
- av_log(s->avctx, AV_LOG_ERROR, "Need DQUANT\n");
- }
- s->current_picture_ptr->mb_type[mb_pos] = r->is16 ? MB_TYPE_INTRA16x16 : MB_TYPE_INTRA;
- r->block_type = r->is16 ? RV34_MB_TYPE_INTRA16x16 : RV34_MB_TYPE_INTRA;
- }else{
- r->block_type = r->decode_mb_info(r);
- if(r->block_type == -1)
- return -1;
- s->current_picture_ptr->mb_type[mb_pos] = rv34_mb_type_to_lavc[r->block_type];
- r->mb_type[mb_pos] = r->block_type;
- if(r->block_type == RV34_MB_SKIP){
- if(s->pict_type == AV_PICTURE_TYPE_P)
- r->mb_type[mb_pos] = RV34_MB_P_16x16;
- if(s->pict_type == AV_PICTURE_TYPE_B)
- r->mb_type[mb_pos] = RV34_MB_B_DIRECT;
- }
- r->is16 = !!IS_INTRA16x16(s->current_picture_ptr->mb_type[mb_pos]);
- rv34_decode_mv(r, r->block_type);
- if(r->block_type == RV34_MB_SKIP){
- fill_rectangle(intra_types, 4, 4, r->intra_types_stride, 0, sizeof(intra_types[0]));
- return 0;
- }
- r->chroma_vlc = 1;
- r->luma_vlc = 0;
- }
- if(IS_INTRA(s->current_picture_ptr->mb_type[mb_pos])){
- if(r->is16){
- t = get_bits(gb, 2);
- fill_rectangle(intra_types, 4, 4, r->intra_types_stride, t, sizeof(intra_types[0]));
- r->luma_vlc = 2;
- }else{
- if(r->decode_intra_types(r, gb, intra_types) < 0)
- return -1;
- r->luma_vlc = 1;
- }
- r->chroma_vlc = 0;
- r->cur_vlcs = choose_vlc_set(r->si.quant, r->si.vlc_set, 0);
- }else{
- for(i = 0; i < 16; i++)
- intra_types[(i & 3) + (i>>2) * r->intra_types_stride] = 0;
- r->cur_vlcs = choose_vlc_set(r->si.quant, r->si.vlc_set, 1);
- if(r->mb_type[mb_pos] == RV34_MB_P_MIX16x16){
- r->is16 = 1;
- r->chroma_vlc = 1;
- r->luma_vlc = 2;
- r->cur_vlcs = choose_vlc_set(r->si.quant, r->si.vlc_set, 0);
- }
- }
-
- return rv34_decode_cbp(gb, r->cur_vlcs, r->is16);
-}
-
-/**
- * @addtogroup recons
- * @{
- */
/**
* mask for retrieving all bits in coded block pattern
* corresponding to one 8x8 block
@@ -1109,6 +1104,8 @@
#define U_CBP_MASK 0x0F0000
#define V_CBP_MASK 0xF00000
+/** @} */ // recons group
+
static void rv34_apply_differences(RV34DecContext *r, int cbp)
{
@@ -1308,6 +1305,17 @@
r->next_pts = r->cur_pts;
}
s->mb_x = s->mb_y = 0;
+ } else {
+ int slice_type = r->si.type ? r->si.type : AV_PICTURE_TYPE_I;
+
+ if (slice_type != s->pict_type) {
+ av_log(s->avctx, AV_LOG_ERROR, "Slice type mismatch\n");
+ return AVERROR_INVALIDDATA;
+ }
+ if (s->width != r->si.width || s->height != r->si.height) {
+ av_log(s->avctx, AV_LOG_ERROR, "Size mismatch\n");
+ return AVERROR_INVALIDDATA;
+ }
}
r->si.end = end;
@@ -1439,15 +1447,17 @@
slice_count = (*buf++) + 1;
slices_hdr = buf + 4;
buf += 8 * slice_count;
+ buf_size -= 1 + 8 * slice_count;
}else
slice_count = avctx->slice_count;
//parse first slice header to check whether this frame can be decoded
- if(get_slice_offset(avctx, slices_hdr, 0) > buf_size){
- av_log(avctx, AV_LOG_ERROR, "Slice offset is greater than frame size\n");
+ if(get_slice_offset(avctx, slices_hdr, 0) < 0 ||
+ get_slice_offset(avctx, slices_hdr, 0) > buf_size){
+ av_log(avctx, AV_LOG_ERROR, "Slice offset is invalid\n");
return -1;
}
- init_get_bits(&s->gb, buf+get_slice_offset(avctx, slices_hdr, 0), buf_size-get_slice_offset(avctx, slices_hdr, 0));
+ init_get_bits(&s->gb, buf+get_slice_offset(avctx, slices_hdr, 0), (buf_size-get_slice_offset(avctx, slices_hdr, 0))*8);
if(r->parse_slice_header(r, &r->s.gb, &si) < 0 || si.start){
av_log(avctx, AV_LOG_ERROR, "First slice header is incorrect\n");
return -1;
@@ -1457,7 +1467,7 @@
if( (avctx->skip_frame >= AVDISCARD_NONREF && si.type==AV_PICTURE_TYPE_B)
|| (avctx->skip_frame >= AVDISCARD_NONKEY && si.type!=AV_PICTURE_TYPE_I)
|| avctx->skip_frame >= AVDISCARD_ALL)
- return buf_size;
+ return avpkt->size;
for(i=0; i<slice_count; i++){
int offset= get_slice_offset(avctx, slices_hdr, i);
@@ -1467,13 +1477,18 @@
else
size= get_slice_offset(avctx, slices_hdr, i+1) - offset;
- if(offset > buf_size){
- av_log(avctx, AV_LOG_ERROR, "Slice offset is greater than frame size\n");
+ if(offset < 0 || offset > buf_size){
+ av_log(avctx, AV_LOG_ERROR, "Slice offset is invalid\n");
break;
}
r->si.end = s->mb_width * s->mb_height;
if(i+1 < slice_count){
+ if (get_slice_offset(avctx, slices_hdr, i+1) < 0 ||
+ get_slice_offset(avctx, slices_hdr, i+1) > buf_size) {
+ av_log(avctx, AV_LOG_ERROR, "Slice offset is invalid\n");
+ break;
+ }
init_get_bits(&s->gb, buf+get_slice_offset(avctx, slices_hdr, i+1), (buf_size-get_slice_offset(avctx, slices_hdr, i+1))*8);
if(r->parse_slice_header(r, &r->s.gb, &si) < 0){
if(i+2 < slice_count)
@@ -1483,13 +1498,17 @@
}else
r->si.end = si.start;
}
+ if (size < 0 || size > buf_size - offset) {
+ av_log(avctx, AV_LOG_ERROR, "Slice size is invalid\n");
+ break;
+ }
last = rv34_decode_slice(r, r->si.end, buf + offset, size);
s->mb_num_left = r->s.mb_x + r->s.mb_y*r->s.mb_width - r->si.start;
if(last)
break;
}
- if(last){
+ if(last && s->current_picture_ptr){
if(r->loop_filter)
r->loop_filter(r, s->mb_height - 1);
ff_er_frame_end(s);
@@ -1506,7 +1525,7 @@
}
s->current_picture_ptr= NULL; //so we can detect if frame_end wasnt called (find some nicer solution...)
}
- return buf_size;
+ return avpkt->size;
}
av_cold int ff_rv34_decode_end(AVCodecContext *avctx)
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/rv40.c
^
|
@@ -231,8 +231,11 @@
int blocks[RV34_MB_TYPES] = {0};
int count = 0;
- if(!r->s.mb_skip_run)
+ if(!r->s.mb_skip_run) {
r->s.mb_skip_run = svq3_get_ue_golomb(gb) + 1;
+ if(r->s.mb_skip_run > (unsigned)s->mb_num)
+ return -1;
+ }
if(--r->s.mb_skip_run)
return RV34_MB_SKIP;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/rv40data.h
^
|
@@ -65,7 +65,7 @@
};
/**
- * @defgroup loopfilter coefficients used by the RV40 loop filter
+ * @name Coefficients used by the RV40 loop filter
* @{
*/
/**
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/sbr.h
^
|
@@ -42,7 +42,7 @@
uint8_t bs_xover_band;
/**
- * @defgroup bs_header_extra_1 Variables associated with bs_header_extra_1
+ * @name Variables associated with bs_header_extra_1
* @{
*/
uint8_t bs_freq_scale;
@@ -58,7 +58,7 @@
*/
typedef struct {
/**
- * @defgroup aac_bitstream Main bitstream data variables
+ * @name Main bitstream data variables
* @{
*/
unsigned bs_frame_class;
@@ -74,7 +74,7 @@
/** @} */
/**
- * @defgroup state State variables
+ * @name State variables
* @{
*/
DECLARE_ALIGNED(16, float, synthesis_filterbank_samples)[SBR_SYNTHESIS_BUF_SIZE];
@@ -116,7 +116,7 @@
SpectrumParameters spectrum_params;
int bs_amp_res_header;
/**
- * @defgroup bs_header_extra_2 variables associated with bs_header_extra_2
+ * @name Variables associated with bs_header_extra_2
* @{
*/
unsigned bs_limiter_bands;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/smacker.c
^
|
@@ -134,11 +134,13 @@
return -1;
}
b1 = get_bits_count(gb);
- i1 = get_vlc2(gb, ctx->v1->table, SMKTREE_BITS, 3);
+ i1 = ctx->v1->table ? get_vlc2(gb, ctx->v1->table, SMKTREE_BITS, 3) : 0;
b1 = get_bits_count(gb) - b1;
b2 = get_bits_count(gb);
- i2 = get_vlc2(gb, ctx->v2->table, SMKTREE_BITS, 3);
+ i2 = ctx->v2->table ? get_vlc2(gb, ctx->v2->table, SMKTREE_BITS, 3) : 0;
b2 = get_bits_count(gb) - b2;
+ if (i1 < 0 || i2 < 0)
+ return -1;
val = ctx->recode1[i1] | (ctx->recode2[i2] << 8);
if(val == ctx->escapes[0]) {
ctx->last[0] = hc->current;
@@ -290,7 +292,8 @@
smk->mmap_tbl[0] = 0;
smk->mmap_last[0] = smk->mmap_last[1] = smk->mmap_last[2] = 1;
} else {
- smacker_decode_header_tree(smk, &gb, &smk->mmap_tbl, smk->mmap_last, mmap_size);
+ if (smacker_decode_header_tree(smk, &gb, &smk->mmap_tbl, smk->mmap_last, mmap_size))
+ return -1;
}
if(!get_bits1(&gb)) {
av_log(smk->avctx, AV_LOG_INFO, "Skipping MCLR tree\n");
@@ -298,7 +301,8 @@
smk->mclr_tbl[0] = 0;
smk->mclr_last[0] = smk->mclr_last[1] = smk->mclr_last[2] = 1;
} else {
- smacker_decode_header_tree(smk, &gb, &smk->mclr_tbl, smk->mclr_last, mclr_size);
+ if (smacker_decode_header_tree(smk, &gb, &smk->mclr_tbl, smk->mclr_last, mclr_size))
+ return -1;
}
if(!get_bits1(&gb)) {
av_log(smk->avctx, AV_LOG_INFO, "Skipping FULL tree\n");
@@ -306,7 +310,8 @@
smk->full_tbl[0] = 0;
smk->full_last[0] = smk->full_last[1] = smk->full_last[2] = 1;
} else {
- smacker_decode_header_tree(smk, &gb, &smk->full_tbl, smk->full_last, full_size);
+ if (smacker_decode_header_tree(smk, &gb, &smk->full_tbl, smk->full_last, full_size))
+ return -1;
}
if(!get_bits1(&gb)) {
av_log(smk->avctx, AV_LOG_INFO, "Skipping TYPE tree\n");
@@ -314,7 +319,8 @@
smk->type_tbl[0] = 0;
smk->type_last[0] = smk->type_last[1] = smk->type_last[2] = 1;
} else {
- smacker_decode_header_tree(smk, &gb, &smk->type_tbl, smk->type_last, type_size);
+ if (smacker_decode_header_tree(smk, &gb, &smk->type_tbl, smk->type_last, type_size))
+ return -1;
}
return 0;
@@ -523,8 +529,8 @@
return -1;
}
- decode_header_trees(c);
-
+ if (decode_header_trees(c))
+ return -1;
return 0;
}
@@ -619,9 +625,9 @@
if(bits) { //decode 16-bit data
for(i = stereo; i >= 0; i--)
pred[i] = av_bswap16(get_bits(&gb, 16));
- for(i = 0; i < stereo; i++)
+ for(i = 0; i <= stereo; i++)
*samples++ = pred[i];
- for(i = 0; i < unp_size / 2; i++) {
+ for(; i < unp_size / 2; i++) {
if(i & stereo) {
if(vlc[2].table)
res = get_vlc2(&gb, vlc[2].table, SMKTREE_BITS, 3);
@@ -653,9 +659,9 @@
} else { //8-bit data
for(i = stereo; i >= 0; i--)
pred[i] = get_bits(&gb, 8);
- for(i = 0; i < stereo; i++)
+ for(i = 0; i <= stereo; i++)
*samples8++ = pred[i];
- for(i = 0; i < unp_size; i++) {
+ for(; i < unp_size; i++) {
if(i & stereo){
if(vlc[1].table)
res = get_vlc2(&gb, vlc[1].table, SMKTREE_BITS, 3);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/svq3.c
^
|
@@ -221,7 +221,7 @@
for (limit = (16 >> intra); index < 16; index = limit, limit += 8) {
for (; (vlc = svq3_get_ue_golomb(gb)) != 0; index++) {
- if (vlc == INVALID_VLC)
+ if (vlc < 0)
return -1;
sign = (vlc & 0x1) - 1;
@@ -239,7 +239,7 @@
level = ((vlc + 9) >> 2) - run;
}
} else {
- if (vlc < 16) {
+ if (vlc < 16U) {
run = svq3_dct_tables[intra][vlc].run;
level = svq3_dct_tables[intra][vlc].level;
} else if (intra) {
@@ -569,7 +569,7 @@
for (i = 0; i < 16; i+=2) {
vlc = svq3_get_ue_golomb(&s->gb);
- if (vlc >= 25){
+ if (vlc >= 25U){
av_log(h->s.avctx, AV_LOG_ERROR, "luma prediction:%d\n", vlc);
return -1;
}
@@ -641,7 +641,7 @@
}
if (!IS_INTRA16x16(mb_type) && (!IS_SKIP(mb_type) || s->pict_type == AV_PICTURE_TYPE_B)) {
- if ((vlc = svq3_get_ue_golomb(&s->gb)) >= 48){
+ if ((vlc = svq3_get_ue_golomb(&s->gb)) >= 48U){
av_log(h->s.avctx, AV_LOG_ERROR, "cbp_vlc=%d\n", vlc);
return -1;
}
@@ -651,7 +651,7 @@
if (IS_INTRA16x16(mb_type) || (s->pict_type != AV_PICTURE_TYPE_I && s->adaptive_quant && cbp)) {
s->qscale += svq3_get_se_golomb(&s->gb);
- if (s->qscale > 31){
+ if (s->qscale > 31U){
av_log(h->s.avctx, AV_LOG_ERROR, "qscale:%d\n", s->qscale);
return -1;
}
@@ -755,7 +755,7 @@
skip_bits_long(&s->gb, 0);
}
- if ((i = svq3_get_ue_golomb(&s->gb)) == INVALID_VLC || i >= 3){
+ if ((i = svq3_get_ue_golomb(&s->gb)) >= 3U){
av_log(h->s.avctx, AV_LOG_ERROR, "illegal slice type %d \n", i);
return -1;
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/tableprint.h
^
|
@@ -56,8 +56,7 @@
}
/**
- * \defgroup printfuncs Predefined functions for printing tables
- *
+ * @name Predefined functions for printing tables
* \{
*/
void write_int8_t_array (const int8_t *, int);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/tta.c
^
|
@@ -226,7 +226,7 @@
if (avctx->extradata_size < 30)
return -1;
- init_get_bits(&s->gb, avctx->extradata, avctx->extradata_size);
+ init_get_bits(&s->gb, avctx->extradata, avctx->extradata_size * 8);
if (show_bits_long(&s->gb, 32) == AV_RL32("TTA1"))
{
/* signature */
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/utils.c
^
|
@@ -142,6 +142,10 @@
case PIX_FMT_YUV420P10BE:
case PIX_FMT_YUV422P10LE:
case PIX_FMT_YUV422P10BE:
+ case PIX_FMT_YUV444P9LE:
+ case PIX_FMT_YUV444P9BE:
+ case PIX_FMT_YUV444P10LE:
+ case PIX_FMT_YUV444P10BE:
w_align= 16; //FIXME check for non mpeg style codecs and use less alignment
h_align= 16;
if(s->codec_id == CODEC_ID_MPEG2VIDEO || s->codec_id == CODEC_ID_MJPEG || s->codec_id == CODEC_ID_AMV || s->codec_id == CODEC_ID_THP || s->codec_id == CODEC_ID_H264)
@@ -1133,7 +1137,7 @@
{
if(HAVE_PTHREADS && avctx->active_thread_type&FF_THREAD_FRAME)
ff_thread_flush(avctx);
- if(avctx->codec->flush)
+ else if(avctx->codec->flush)
avctx->codec->flush(avctx);
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/vaapi_h264.c
^
|
@@ -281,7 +281,8 @@
if (!iq_matrix)
return -1;
memcpy(iq_matrix->ScalingList4x4, h->pps.scaling_matrix4, sizeof(iq_matrix->ScalingList4x4));
- memcpy(iq_matrix->ScalingList8x8, h->pps.scaling_matrix8, sizeof(iq_matrix->ScalingList8x8));
+ memcpy(iq_matrix->ScalingList8x8[0], h->pps.scaling_matrix8[0], sizeof(iq_matrix->ScalingList8x8[0]));
+ memcpy(iq_matrix->ScalingList8x8[1], h->pps.scaling_matrix8[3], sizeof(iq_matrix->ScalingList8x8[0]));
return 0;
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/vc1.c
^
|
@@ -40,7 +40,7 @@
/***********************************************************************/
/**
- * @defgroup vc1bitplane VC-1 Bitplane decoding
+ * @name VC-1 Bitplane decoding
* @see 8.7, p56
* @{
*/
@@ -485,8 +485,8 @@
if(ar && ar < 14){
v->s.avctx->sample_aspect_ratio = ff_vc1_pixel_aspect[ar];
}else if(ar == 15){
- w = get_bits(gb, 8);
- h = get_bits(gb, 8);
+ w = get_bits(gb, 8) + 1;
+ h = get_bits(gb, 8) + 1;
v->s.avctx->sample_aspect_ratio = (AVRational){w, h};
}
av_log(v->s.avctx, AV_LOG_DEBUG, "Aspect: %i:%i\n", v->s.avctx->sample_aspect_ratio.num, v->s.avctx->sample_aspect_ratio.den);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/vc1dec.c
^
|
@@ -137,7 +137,7 @@
/***********************************************************************/
/**
- * @defgroup vc1bitplane VC-1 Bitplane decoding
+ * @name VC-1 Bitplane decoding
* @see 8.7, p56
* @{
*/
@@ -243,7 +243,7 @@
}
v->vc1dsp.vc1_v_loop_filter16(s->dest[0] + 8*s->linesize, s->linesize, pq);
- if (s->mb_y == s->mb_height-1) {
+ if (s->mb_y == s->end_mb_y-1) {
if (s->mb_x) {
v->vc1dsp.vc1_h_loop_filter16(s->dest[0], s->linesize, pq);
v->vc1dsp.vc1_h_loop_filter8(s->dest[1], s->uvlinesize, pq);
@@ -295,7 +295,7 @@
v->vc1dsp.vc1_v_loop_filter16(s->dest[0] - 8 * s->linesize, s->linesize, pq);
}
- if (s->mb_y == s->mb_height) {
+ if (s->mb_y == s->end_mb_y) {
if (s->mb_x) {
if (s->mb_x >= 2)
v->vc1dsp.vc1_h_loop_filter16(s->dest[0] - 16 * s->linesize - 16, s->linesize, pq);
@@ -774,7 +774,7 @@
/***********************************************************************/
/**
- * @defgroup vc1block VC-1 Block-level functions
+ * @name VC-1 Block-level functions
* @see 7.1.4, p91 and 8.1.1.7, p(1)04
* @{
*/
@@ -1512,7 +1512,7 @@
/** @} */ // Block group
/**
- * @defgroup vc1_std_mb VC1 Macroblock-level functions in Simple/Main Profiles
+ * @name VC1 Macroblock-level functions in Simple/Main Profiles
* @see 7.1.4, p91 and 8.1.1.7, p(1)04
* @{
*/
@@ -2330,7 +2330,7 @@
} else {
dst = s->dest[0] + (block_num & 1) * 8 + ((block_num & 2) * 4 - 8) * linesize;
}
- if (s->mb_y != s->mb_height || block_num < 2) {
+ if (s->mb_y != s->end_mb_y || block_num < 2) {
int16_t (*mv)[2];
int mv_stride;
@@ -3020,7 +3020,7 @@
s->mb_x = 0;
ff_init_block_index(s);
memset(&s->coded_block[s->block_index[0]-s->b8_stride], 0,
- s->b8_stride * sizeof(*s->coded_block));
+ (1 + s->b8_stride) * sizeof(*s->coded_block));
}
for(; s->mb_y < s->end_mb_y; s->mb_y++) {
s->mb_x = 0;
@@ -3096,7 +3096,7 @@
if(v->s.loop_filter) vc1_loop_filter_iblk_delayed(v, v->pq);
}
if (v->s.loop_filter)
- ff_draw_horiz_band(s, (s->mb_height-1)*16, 16);
+ ff_draw_horiz_band(s, (s->end_mb_y-1)*16, 16);
ff_er_add_slice(s, 0, s->start_mb_y, s->mb_width - 1, s->end_mb_y - 1, (AC_END|DC_END|MV_END));
}
@@ -3219,7 +3219,7 @@
s->first_slice_line = 0;
}
if (v->s.loop_filter)
- ff_draw_horiz_band(s, (s->mb_height-1)*16, 16);
+ ff_draw_horiz_band(s, (s->end_mb_y-1)*16, 16);
ff_er_add_slice(s, 0, s->start_mb_y, s->mb_width - 1, s->end_mb_y - 1, (AC_END|DC_END|MV_END));
}
@@ -3227,9 +3227,9 @@
{
MpegEncContext *s = &v->s;
- ff_er_add_slice(s, 0, 0, s->mb_width - 1, s->mb_height - 1, (AC_END|DC_END|MV_END));
+ ff_er_add_slice(s, 0, s->start_mb_y, s->mb_width - 1, s->end_mb_y - 1, (AC_END|DC_END|MV_END));
s->first_slice_line = 1;
- for(s->mb_y = 0; s->mb_y < s->mb_height; s->mb_y++) {
+ for(s->mb_y = s->start_mb_y; s->mb_y < s->end_mb_y; s->mb_y++) {
s->mb_x = 0;
ff_init_block_index(s);
ff_update_block_index(s);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/vdpau.c
^
|
@@ -183,7 +183,8 @@
render->info.h264.deblocking_filter_control_present_flag = h->pps.deblocking_filter_parameters_present;
render->info.h264.redundant_pic_cnt_present_flag = h->pps.redundant_pic_cnt_present;
memcpy(render->info.h264.scaling_lists_4x4, h->pps.scaling_matrix4, sizeof(render->info.h264.scaling_lists_4x4));
- memcpy(render->info.h264.scaling_lists_8x8, h->pps.scaling_matrix8, sizeof(render->info.h264.scaling_lists_8x8));
+ memcpy(render->info.h264.scaling_lists_8x8[0], h->pps.scaling_matrix8[0], sizeof(render->info.h264.scaling_lists_8x8[0]));
+ memcpy(render->info.h264.scaling_lists_8x8[1], h->pps.scaling_matrix8[3], sizeof(render->info.h264.scaling_lists_8x8[0]));
ff_draw_horiz_band(s, 0, s->avctx->height);
render->bitstream_buffers_used = 0;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/vp3.c
^
|
@@ -2321,6 +2321,26 @@
return vp3_decode_init(avctx);
}
+static void vp3_decode_flush(AVCodecContext *avctx)
+{
+ Vp3DecodeContext *s = avctx->priv_data;
+
+ if (s->golden_frame.data[0]) {
+ if (s->golden_frame.data[0] == s->last_frame.data[0])
+ memset(&s->last_frame, 0, sizeof(AVFrame));
+ if (s->current_frame.data[0] == s->golden_frame.data[0])
+ memset(&s->current_frame, 0, sizeof(AVFrame));
+ ff_thread_release_buffer(avctx, &s->golden_frame);
+ }
+ if (s->last_frame.data[0]) {
+ if (s->current_frame.data[0] == s->last_frame.data[0])
+ memset(&s->current_frame, 0, sizeof(AVFrame));
+ ff_thread_release_buffer(avctx, &s->last_frame);
+ }
+ if (s->current_frame.data[0])
+ ff_thread_release_buffer(avctx, &s->current_frame);
+}
+
AVCodec ff_theora_decoder = {
"theora",
AVMEDIA_TYPE_VIDEO,
@@ -2332,6 +2352,7 @@
vp3_decode_frame,
CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS,
NULL,
+ .flush = vp3_decode_flush,
.long_name = NULL_IF_CONFIG_SMALL("Theora"),
.update_thread_context = ONLY_IF_THREADS_ENABLED(vp3_update_thread_context)
};
@@ -2348,6 +2369,7 @@
vp3_decode_frame,
CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS,
NULL,
+ .flush = vp3_decode_flush,
.long_name = NULL_IF_CONFIG_SMALL("On2 VP3"),
.update_thread_context = ONLY_IF_THREADS_ENABLED(vp3_update_thread_context)
};
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/vp5.c
^
|
@@ -116,7 +116,7 @@
model->vector_pdv[comp][node] = vp56_rac_gets_nn(c, 7);
}
-static void vp5_parse_coeff_models(VP56Context *s)
+static int vp5_parse_coeff_models(VP56Context *s)
{
VP56RangeCoder *c = &s->c;
VP56Model *model = s->modelp;
@@ -160,6 +160,7 @@
for (ctx=0; ctx<6; ctx++)
for (node=0; node<5; node++)
model->coeff_acct[pt][ct][cg][ctx][node] = av_clip(((model->coeff_ract[pt][ct][cg][node] * vp5_ract_lc[ct][cg][node][ctx][0] + 128) >> 8) + vp5_ract_lc[ct][cg][node][ctx][1], 1, 254);
+ return 0;
}
static void vp5_parse_coeff(VP56Context *s)
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/vp56.c
^
|
@@ -399,6 +399,8 @@
frame_current = s->framep[VP56_FRAME_CURRENT];
frame_ref = s->framep[ref_frame];
+ if (mb_type != VP56_MB_INTRA && !frame_ref->data[0])
+ return;
ab = 6*is_alpha;
b_max = 6 - 2*is_alpha;
@@ -511,6 +513,16 @@
if (!res)
return -1;
+ if (res == 2) {
+ int i;
+ for (i = 0; i < 4; i++) {
+ if (s->frames[i].data[0])
+ avctx->release_buffer(avctx, &s->frames[i]);
+ }
+ if (is_alpha)
+ return -1;
+ }
+
if (!is_alpha) {
p->reference = 1;
if (avctx->get_buffer(avctx, p) < 0) {
@@ -537,7 +549,8 @@
s->mb_type = VP56_MB_INTER_NOVEC_PF;
}
- s->parse_coeff_models(s);
+ if (s->parse_coeff_models(s))
+ goto next;
memset(s->prev_dc, 0, sizeof(s->prev_dc));
s->prev_dc[1][VP56_FRAME_CURRENT] = 128;
@@ -601,6 +614,7 @@
}
}
+ next:
if (p->key_frame || golden_frame) {
if (s->framep[VP56_FRAME_GOLDEN]->data[0] &&
s->framep[VP56_FRAME_GOLDEN] != s->framep[VP56_FRAME_GOLDEN2])
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/vp56.h
^
|
@@ -46,7 +46,7 @@
typedef void (*VP56ParseCoeff)(VP56Context *s);
typedef void (*VP56DefaultModelsInit)(VP56Context *s);
typedef void (*VP56ParseVectorModels)(VP56Context *s);
-typedef void (*VP56ParseCoeffModels)(VP56Context *s);
+typedef int (*VP56ParseCoeffModels)(VP56Context *s);
typedef int (*VP56ParseHeader)(VP56Context *s, const uint8_t *buf,
int buf_size, int *golden_frame);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/vp6.c
^
|
@@ -213,8 +213,8 @@
return (a->count - b->count)*16 + (b->sym - a->sym);
}
-static void vp6_build_huff_tree(VP56Context *s, uint8_t coeff_model[],
- const uint8_t *map, unsigned size, VLC *vlc)
+static int vp6_build_huff_tree(VP56Context *s, uint8_t coeff_model[],
+ const uint8_t *map, unsigned size, VLC *vlc)
{
Node nodes[2*VP6_MAX_HUFF_SIZE], *tmp = &nodes[size];
int a, b, i;
@@ -229,12 +229,12 @@
}
free_vlc(vlc);
- /* then build the huffman tree accodring to probabilities */
- ff_huff_build_tree(s->avctx, vlc, size, nodes, vp6_huff_cmp,
- FF_HUFFMAN_FLAG_HNODE_FIRST);
+ /* then build the huffman tree according to probabilities */
+ return ff_huff_build_tree(s->avctx, vlc, size, nodes, vp6_huff_cmp,
+ FF_HUFFMAN_FLAG_HNODE_FIRST);
}
-static void vp6_parse_coeff_models(VP56Context *s)
+static int vp6_parse_coeff_models(VP56Context *s)
{
VP56RangeCoder *c = &s->c;
VP56Model *model = s->modelp;
@@ -279,15 +279,18 @@
if (s->use_huffman) {
for (pt=0; pt<2; pt++) {
- vp6_build_huff_tree(s, model->coeff_dccv[pt],
- vp6_huff_coeff_map, 12, &s->dccv_vlc[pt]);
- vp6_build_huff_tree(s, model->coeff_runv[pt],
- vp6_huff_run_map, 9, &s->runv_vlc[pt]);
+ if (vp6_build_huff_tree(s, model->coeff_dccv[pt],
+ vp6_huff_coeff_map, 12, &s->dccv_vlc[pt]))
+ return -1;
+ if (vp6_build_huff_tree(s, model->coeff_runv[pt],
+ vp6_huff_run_map, 9, &s->runv_vlc[pt]))
+ return -1;
for (ct=0; ct<3; ct++)
for (cg = 0; cg < 6; cg++)
- vp6_build_huff_tree(s, model->coeff_ract[pt][ct][cg],
- vp6_huff_coeff_map, 12,
- &s->ract_vlc[pt][ct][cg]);
+ if (vp6_build_huff_tree(s, model->coeff_ract[pt][ct][cg],
+ vp6_huff_coeff_map, 12,
+ &s->ract_vlc[pt][ct][cg]))
+ return -1;
}
memset(s->nb_null, 0, sizeof(s->nb_null));
} else {
@@ -297,6 +300,7 @@
for (node=0; node<5; node++)
model->coeff_dcct[pt][ctx][node] = av_clip(((model->coeff_dccv[pt][node] * vp6_dccv_lc[ctx][node][0] + 128) >> 8) + vp6_dccv_lc[ctx][node][1], 1, 255);
}
+ return 0;
}
static void vp6_parse_vector_adjustment(VP56Context *s, VP56mv *vect)
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/vp8.c
^
|
@@ -641,8 +641,6 @@
* @param block destination for block coefficients
* @param probs probabilities to use when reading trees from the bitstream
* @param i initial coeff index, 0 unless a separate DC block is coded
- * @param zero_nhood the initial prediction context for number of surrounding
- * all-zero blocks (only left/top, so 0-2)
* @param qmul array holding the dc/ac dequant factor at position 0/1
* @return 0 if no coeffs were decoded
* otherwise, the index of the last coeff decoded plus one
@@ -701,6 +699,17 @@
}
#endif
+/**
+ * @param c arithmetic bitstream reader context
+ * @param block destination for block coefficients
+ * @param probs probabilities to use when reading trees from the bitstream
+ * @param i initial coeff index, 0 unless a separate DC block is coded
+ * @param zero_nhood the initial prediction context for number of surrounding
+ * all-zero blocks (only left/top, so 0-2)
+ * @param qmul array holding the dc/ac dequant factor at position 0/1
+ * @return 0 if no coeffs were decoded
+ * otherwise, the index of the last coeff decoded plus one
+ */
static av_always_inline
int decode_block_coeffs(VP56RangeCoder *c, DCTELEM block[16],
uint8_t probs[16][3][NUM_DCT_TOKENS-1],
@@ -1034,10 +1043,9 @@
};
/**
- * Generic MC function.
+ * luma MC function
*
* @param s VP8 decoding context
- * @param luma 1 for luma (Y) planes, 0 for chroma (Cb/Cr) planes
* @param dst target buffer for block data at block position
* @param src reference picture buffer at origin (0, 0)
* @param mv motion vector (relative to block position) to get pixel data from
@@ -1083,6 +1091,23 @@
}
}
+/**
+ * chroma MC function
+ *
+ * @param s VP8 decoding context
+ * @param dst1 target buffer for block data at block position (U plane)
+ * @param dst2 target buffer for block data at block position (V plane)
+ * @param ref reference picture buffer at origin (0, 0)
+ * @param mv motion vector (relative to block position) to get pixel data from
+ * @param x_off horizontal position of block from origin (0, 0)
+ * @param y_off vertical position of block from origin (0, 0)
+ * @param block_w width of block (16, 8 or 4)
+ * @param block_h height of block (always same as block_w)
+ * @param width width of src/dst plane data
+ * @param height height of src/dst plane data
+ * @param linesize size of a single line of plane data, including padding
+ * @param mc_func motion compensation function pointers (bilinear or sixtap MC)
+ */
static av_always_inline
void vp8_mc_chroma(VP8Context *s, uint8_t *dst1, uint8_t *dst2, AVFrame *ref,
const VP56mv *mv, int x_off, int y_off,
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/wavpack.c
^
|
@@ -292,7 +292,14 @@
}
}else{
t = get_unary_0_33(gb);
- if(t >= 2) t = get_bits(gb, t - 1) | (1 << (t-1));
+ if(t >= 2){
+ if(get_bits_left(gb) < t-1)
+ goto error;
+ t = get_bits(gb, t - 1) | (1 << (t-1));
+ }else{
+ if(get_bits_left(gb) < 0)
+ goto error;
+ }
ctx->zeroes = t;
if(ctx->zeroes){
memset(ctx->ch[0].median, 0, sizeof(ctx->ch[0].median));
@@ -303,24 +310,24 @@
}
}
- if(get_bits_count(gb) >= ctx->data_size){
- *last = 1;
- return 0;
- }
-
if(ctx->zero){
t = 0;
ctx->zero = 0;
}else{
t = get_unary_0_33(gb);
- if(get_bits_count(gb) >= ctx->data_size){
- *last = 1;
- return 0;
- }
+ if(get_bits_left(gb) < 0)
+ goto error;
if(t == 16) {
t2 = get_unary_0_33(gb);
- if(t2 < 2) t += t2;
- else t += get_bits(gb, t2 - 1) | (1 << (t2 - 1));
+ if(t2 < 2){
+ if(get_bits_left(gb) < 0)
+ goto error;
+ t += t2;
+ }else{
+ if(get_bits_left(gb) < t2 - 1)
+ goto error;
+ t += get_bits(gb, t2 - 1) | (1 << (t2 - 1));
+ }
}
if(ctx->one){
@@ -360,9 +367,13 @@
}
if(!c->error_limit){
ret = base + get_tail(gb, add);
+ if (get_bits_left(gb) <= 0)
+ goto error;
}else{
int mid = (base*2 + add + 1) >> 1;
while(add > c->error_limit){
+ if(get_bits_left(gb) <= 0)
+ goto error;
if(get_bits1(gb)){
add -= (mid - base);
base = mid;
@@ -376,6 +387,10 @@
if(ctx->hybrid_bitrate)
c->slow_level += wp_log2(ret) - LEVEL_DECAY(c->slow_level);
return sign ? ~ret : ret;
+
+error:
+ *last = 1;
+ return 0;
}
static inline int wv_get_value_integer(WavpackFrameContext *s, uint32_t *crc, int S)
@@ -385,7 +400,7 @@
if(s->extra_bits){
S <<= s->extra_bits;
- if(s->got_extra_bits){
+ if(s->got_extra_bits && get_bits_left(&s->gb_extra_bits) >= s->extra_bits){
S |= get_bits(&s->gb_extra_bits, s->extra_bits);
*crc = *crc * 9 + (S&0xffff) * 3 + ((unsigned)S>>16);
}
@@ -580,7 +595,10 @@
count++;
}while(!last && count < s->max_samples);
- s->samples_left -= count;
+ if (last)
+ s->samples_left = 0;
+ else
+ s->samples_left -= count;
if(!s->samples_left){
if(crc != s->CRC){
av_log(s->avctx, AV_LOG_ERROR, "CRC error\n");
@@ -658,7 +676,10 @@
count++;
}while(!last && count < s->max_samples);
- s->samples_left -= count;
+ if (last)
+ s->samples_left = 0;
+ else
+ s->samples_left -= count;
if(!s->samples_left){
if(crc != s->CRC){
av_log(s->avctx, AV_LOG_ERROR, "CRC error\n");
@@ -779,7 +800,7 @@
s->samples = AV_RL32(buf); buf += 4;
if(!s->samples){
*data_size = 0;
- return buf_size;
+ return 0;
}
}else{
s->samples = wc->samples;
@@ -841,12 +862,13 @@
}
switch(id & WP_IDF_MASK){
case WP_ID_DECTERMS:
- s->terms = size;
- if(s->terms > MAX_TERMS){
+ if(size > MAX_TERMS){
av_log(avctx, AV_LOG_ERROR, "Too many decorrelation terms\n");
+ s->terms = 0;
buf += ssize;
continue;
}
+ s->terms = size;
for(i = 0; i < s->terms; i++) {
s->decorr[s->terms - i - 1].value = (*buf & 0x1F) - 5;
s->decorr[s->terms - i - 1].delta = *buf >> 5;
@@ -1098,6 +1120,10 @@
samplecount = wv_unpack_stereo(s, &s->gb, samples, AV_SAMPLE_FMT_S32);
else
samplecount = wv_unpack_stereo(s, &s->gb, samples, AV_SAMPLE_FMT_FLT);
+
+ if (samplecount < 0)
+ return -1;
+
samplecount >>= 1;
}else{
const int channel_stride = avctx->channels;
@@ -1109,6 +1135,9 @@
else
samplecount = wv_unpack_mono(s, &s->gb, samples, AV_SAMPLE_FMT_FLT);
+ if (samplecount < 0)
+ return -1;
+
if(s->stereo && avctx->sample_fmt == AV_SAMPLE_FMT_S16){
int16_t *dst = (int16_t*)samples + 1;
int16_t *src = (int16_t*)samples;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/wmavoice.c
^
|
@@ -128,9 +128,7 @@
*/
typedef struct {
/**
- * @defgroup struct_global Global values
- * Global values, specified in the stream header / extradata or used
- * all over.
+ * @name Global values specified in the stream header / extradata or used all over.
* @{
*/
GetBitContext gb; ///< packet bitreader. During decoder init,
@@ -182,8 +180,9 @@
/**
* @}
- * @defgroup struct_packet Packet values
- * Packet values, specified in the packet header or related to a packet.
+ *
+ * @name Packet values specified in the packet header or related to a packet.
+ *
* A packet is considered to be a single unit of data provided to this
* decoder by the demuxer.
* @{
@@ -213,7 +212,8 @@
/**
* @}
- * @defgroup struct_frame Frame and superframe values
+ *
+ * @name Frame and superframe values
* Superframe and frame data - these can change from frame to frame,
* although some of them do in that case serve as a cache / history for
* the next frame or superframe.
@@ -256,7 +256,9 @@
float synth_history[MAX_LSPS]; ///< see #excitation_history
/**
* @}
- * @defgroup post_filter Postfilter values
+ *
+ * @name Postfilter values
+ *
* Variables used for postfilter implementation, mostly history for
* smoothing and so on, and context variables for FFT/iFFT.
* @{
@@ -432,7 +434,7 @@
}
/**
- * @defgroup postfilter Postfilter functions
+ * @name Postfilter functions
* Postfilter functions (gain control, wiener denoise filter, DC filter,
* kalman smoothening, plus surrounding code to wrap it)
* @{
@@ -825,7 +827,7 @@
}
/**
- * @defgroup lsp_dequant LSP dequantization routines
+ * @name LSP dequantization routines
* LSP dequantization routines, for 10/16LSPs and independent/residual coding.
* @note we assume enough bits are available, caller should check.
* lsp10i() consumes 24 bits; lsp10r() consumes an additional 24 bits;
@@ -969,7 +971,7 @@
/**
* @}
- * @defgroup aw Pitch-adaptive window coding functions
+ * @name Pitch-adaptive window coding functions
* The next few functions are for pitch-adaptive window coding.
* @{
*/
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/x86/snowdsp_mmx.c
^
|
@@ -675,14 +675,14 @@
#define snow_inner_add_yblock_sse2_end_8\
"sal $1, %%"REG_c" \n\t"\
- "add $"PTR_SIZE"*2, %1 \n\t"\
+ "add"OPSIZE" $"PTR_SIZE"*2, %1 \n\t"\
snow_inner_add_yblock_sse2_end_common1\
"sar $1, %%"REG_c" \n\t"\
"sub $2, %2 \n\t"\
snow_inner_add_yblock_sse2_end_common2
#define snow_inner_add_yblock_sse2_end_16\
- "add $"PTR_SIZE"*1, %1 \n\t"\
+ "add"OPSIZE" $"PTR_SIZE"*1, %1 \n\t"\
snow_inner_add_yblock_sse2_end_common1\
"dec %2 \n\t"\
snow_inner_add_yblock_sse2_end_common2
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavcodec/xan.c
^
|
@@ -97,17 +97,21 @@
return 0;
}
-static int xan_huffman_decode(unsigned char *dest, const unsigned char *src,
- int dest_len)
+static int xan_huffman_decode(unsigned char *dest, int dest_len,
+ const unsigned char *src, int src_len)
{
unsigned char byte = *src++;
unsigned char ival = byte + 0x16;
const unsigned char * ptr = src + byte*2;
+ int ptr_len = src_len - 1 - byte*2;
unsigned char val = ival;
unsigned char *dest_end = dest + dest_len;
GetBitContext gb;
- init_get_bits(&gb, ptr, 0); // FIXME: no src size available
+ if (ptr_len < 0)
+ return AVERROR_INVALIDDATA;
+
+ init_get_bits(&gb, ptr, ptr_len * 8);
while ( val != 0x16 ) {
val = src[val - 0x17 + get_bits1(&gb) * byte];
@@ -246,7 +250,7 @@
}
}
-static void xan_wc3_decode_frame(XanContext *s) {
+static int xan_wc3_decode_frame(XanContext *s) {
int width = s->avctx->width;
int height = s->avctx->height;
@@ -266,13 +270,30 @@
const unsigned char *size_segment;
const unsigned char *vector_segment;
const unsigned char *imagedata_segment;
+ int huffman_offset, size_offset, vector_offset, imagedata_offset;
- huffman_segment = s->buf + AV_RL16(&s->buf[0]);
- size_segment = s->buf + AV_RL16(&s->buf[2]);
- vector_segment = s->buf + AV_RL16(&s->buf[4]);
- imagedata_segment = s->buf + AV_RL16(&s->buf[6]);
+ if (s->size < 8)
+ return AVERROR_INVALIDDATA;
- xan_huffman_decode(opcode_buffer, huffman_segment, opcode_buffer_size);
+ huffman_offset = AV_RL16(&s->buf[0]);
+ size_offset = AV_RL16(&s->buf[2]);
+ vector_offset = AV_RL16(&s->buf[4]);
+ imagedata_offset = AV_RL16(&s->buf[6]);
+
+ if (huffman_offset >= s->size ||
+ size_offset >= s->size ||
+ vector_offset >= s->size ||
+ imagedata_offset >= s->size)
+ return AVERROR_INVALIDDATA;
+
+ huffman_segment = s->buf + huffman_offset;
+ size_segment = s->buf + size_offset;
+ vector_segment = s->buf + vector_offset;
+ imagedata_segment = s->buf + imagedata_offset;
+
+ if (xan_huffman_decode(opcode_buffer, opcode_buffer_size,
+ huffman_segment, s->size - huffman_offset) < 0)
+ return AVERROR_INVALIDDATA;
if (imagedata_segment[0] == 2)
xan_unpack(s->buffer2, &imagedata_segment[1], s->buffer2_size);
@@ -358,6 +379,7 @@
y += (x + size) / width;
x = (x + size) % width;
}
+ return 0;
}
#if RUNTIME_GAMMA
@@ -519,7 +541,8 @@
s->buf = buf;
s->size = buf_size;
- xan_wc3_decode_frame(s);
+ if (xan_wc3_decode_frame(s) < 0)
+ return AVERROR_INVALIDDATA;
/* release the last frame if it is allocated */
if (s->last_frame.data[0])
@@ -564,4 +587,3 @@
CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("Wing Commander III / Xan"),
};
-
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavdevice/alsa-audio-common.c
^
|
@@ -245,6 +245,7 @@
}
snd_pcm_hw_params_get_buffer_size_max(hw_params, &buffer_size);
+ buffer_size = FFMIN(buffer_size, ALSA_BUFFER_SIZE_MAX);
/* TODO: maybe use ctx->max_picture_buffer somehow */
res = snd_pcm_hw_params_set_buffer_size_near(h, hw_params, &buffer_size);
if (res < 0) {
@@ -254,6 +255,8 @@
}
snd_pcm_hw_params_get_period_size_min(hw_params, &period_size, NULL);
+ if (!period_size)
+ period_size = buffer_size / 4;
res = snd_pcm_hw_params_set_period_size_near(h, hw_params, &period_size, NULL);
if (res < 0) {
av_log(ctx, AV_LOG_ERROR, "cannot set ALSA period size (%s)\n",
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavdevice/alsa-audio.h
^
|
@@ -42,6 +42,8 @@
typedef void (*ff_reorder_func)(const void *, void *, int);
+#define ALSA_BUFFER_SIZE_MAX 65536
+
typedef struct {
AVClass *class;
snd_pcm_t *h;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavdevice/vfwcap.c
^
|
@@ -242,7 +242,7 @@
AVStream *st;
int devnum;
int bisize;
- BITMAPINFO *bi;
+ BITMAPINFO *bi = NULL;
CAPTUREPARMS cparms;
DWORD biCompression;
WORD biBitCount;
@@ -293,7 +293,7 @@
(LPARAM) videostream_cb);
if(!ret) {
av_log(s, AV_LOG_ERROR, "Could not set video stream callback.\n");
- goto fail_io;
+ goto fail;
}
SetWindowLongPtr(ctx->hwnd, GWLP_USERDATA, (LONG_PTR) s);
@@ -307,7 +307,7 @@
/* Set video format */
bisize = SendMessage(ctx->hwnd, WM_CAP_GET_VIDEOFORMAT, 0, 0);
if(!bisize)
- goto fail_io;
+ goto fail;
bi = av_malloc(bisize);
if(!bi) {
vfw_read_close(s);
@@ -315,7 +315,7 @@
}
ret = SendMessage(ctx->hwnd, WM_CAP_GET_VIDEOFORMAT, bisize, (LPARAM) bi);
if(!ret)
- goto fail_bi;
+ goto fail;
dump_bih(s, &bi->bmiHeader);
@@ -324,7 +324,7 @@
ret = av_parse_video_size(&bi->bmiHeader.biWidth, &bi->bmiHeader.biHeight, ctx->video_size);
if (ret < 0) {
av_log(s, AV_LOG_ERROR, "Couldn't parse video size.\n");
- goto fail_bi;
+ goto fail;
}
}
#if FF_API_FORMAT_PARAMETERS
@@ -349,19 +349,17 @@
ret = SendMessage(ctx->hwnd, WM_CAP_SET_VIDEOFORMAT, bisize, (LPARAM) bi);
if(!ret) {
av_log(s, AV_LOG_ERROR, "Could not set Video Format.\n");
- goto fail_bi;
+ goto fail;
}
biCompression = bi->bmiHeader.biCompression;
biBitCount = bi->bmiHeader.biBitCount;
- av_free(bi);
-
/* Set sequence setup */
ret = SendMessage(ctx->hwnd, WM_CAP_GET_SEQUENCE_SETUP, sizeof(cparms),
(LPARAM) &cparms);
if(!ret)
- goto fail_io;
+ goto fail;
dump_captureparms(s, &cparms);
@@ -376,7 +374,7 @@
ret = SendMessage(ctx->hwnd, WM_CAP_SET_SEQUENCE_SETUP, sizeof(cparms),
(LPARAM) &cparms);
if(!ret)
- goto fail_io;
+ goto fail;
codec = st->codec;
codec->time_base = (AVRational){fps.den, fps.num};
@@ -405,31 +403,31 @@
}
}
+ av_freep(&bi);
+
av_set_pts_info(st, 32, 1, 1000);
ctx->mutex = CreateMutex(NULL, 0, NULL);
if(!ctx->mutex) {
av_log(s, AV_LOG_ERROR, "Could not create Mutex.\n" );
- goto fail_io;
+ goto fail;
}
ctx->event = CreateEvent(NULL, 1, 0, NULL);
if(!ctx->event) {
av_log(s, AV_LOG_ERROR, "Could not create Event.\n" );
- goto fail_io;
+ goto fail;
}
ret = SendMessage(ctx->hwnd, WM_CAP_SEQUENCE_NOFILE, 0, 0);
if(!ret) {
av_log(s, AV_LOG_ERROR, "Could not start capture sequence.\n" );
- goto fail_io;
+ goto fail;
}
return 0;
-fail_bi:
- av_free(bi);
-
-fail_io:
+fail:
+ av_freep(&bi);
vfw_read_close(s);
return AVERROR(EIO);
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavfilter/libmpcodecs/vf_remove_logo.c
^
|
@@ -671,7 +671,7 @@
* \brief Checks if YV12 is supported by the next filter.
*/
static unsigned int find_best(struct vf_instance *vf){
- int is_format_okay = vf->next->query_format(vf->next, IMGFMT_YV12);
+ int is_format_okay = vf_next_query_format(vf, IMGFMT_YV12);
if ((is_format_okay & VFCAP_CSP_SUPPORTED_BY_HW) || (is_format_okay & VFCAP_CSP_SUPPORTED))
return IMGFMT_YV12;
else
@@ -814,7 +814,7 @@
static int query_format(struct vf_instance *vf, unsigned int fmt)
{
if (fmt == IMGFMT_YV12)
- return vf->next->query_format(vf->next, IMGFMT_YV12);
+ return vf_next_query_format(vf, IMGFMT_YV12);
else
return 0;
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavfilter/vf_lut.c
^
|
@@ -345,8 +345,8 @@
#define DEFINE_LUT_FILTER(name_, description_, init_) \
AVFilter avfilter_vf_##name_ = { \
- .name = NULL_IF_CONFIG_SMALL(#name_), \
- .description = description_, \
+ .name = #name_, \
+ .description = NULL_IF_CONFIG_SMALL(description_), \
.priv_size = sizeof(LutContext), \
\
.init = init_, \
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavfilter/vf_mp.c
^
|
@@ -41,6 +41,7 @@
//FIXME maybe link the orig in
+//XXX: identical pix_fmt must be following with each others
static const struct {
int fmt;
enum PixelFormat pix_fmt;
@@ -785,13 +786,17 @@
{
AVFilterFormats *avfmts=NULL;
MPContext *m = ctx->priv;
+ enum PixelFormat lastpixfmt = PIX_FMT_NONE;
int i;
for(i=0; conversion_map[i].fmt; i++){
av_log(ctx, AV_LOG_DEBUG, "query: %X\n", conversion_map[i].fmt);
if(m->vf.query_format(&m->vf, conversion_map[i].fmt)){
av_log(ctx, AV_LOG_DEBUG, "supported,adding\n");
- avfilter_add_format(&avfmts, conversion_map[i].pix_fmt);
+ if (conversion_map[i].pix_fmt != lastpixfmt) {
+ avfilter_add_format(&avfmts, conversion_map[i].pix_fmt);
+ lastpixfmt = conversion_map[i].pix_fmt;
+ }
}
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavfilter/vf_scale.c
^
|
@@ -232,6 +232,11 @@
if (!scale->sws)
return AVERROR(EINVAL);
+ if (inlink->sample_aspect_ratio.num){
+ outlink->sample_aspect_ratio = av_mul_q((AVRational){outlink->h * inlink->w, outlink->w * inlink->h}, inlink->sample_aspect_ratio);
+ } else
+ outlink->sample_aspect_ratio = inlink->sample_aspect_ratio;
+
return 0;
fail:
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavfilter/x86/gradfun.c
^
|
@@ -1,19 +1,21 @@
/*
+ * Copyright (C) 2009 Loren Merritt <lorenm@u.washignton.edu>
+ *
* This file is part of FFmpeg.
*
- * FFmpeg is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU General Public License along
- * with FFmpeg; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavutil/cpu.h"
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/adtsenc.c
^
|
@@ -59,6 +59,10 @@
av_log(s, AV_LOG_ERROR, "Scalable configurations are not allowed in ADTS\n");
return -1;
}
+ if (get_bits(&gb, 1)) {
+ av_log(s, AV_LOG_ERROR, "Extension flag is not allowed in ADTS\n");
+ return -1;
+ }
if (!adts->channel_conf) {
init_put_bits(&pb, adts->pce_data, MAX_PCE_SIZE);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/ape.c
^
|
@@ -270,6 +270,8 @@
if (ape->seektablelength > 0) {
ape->seektable = av_malloc(ape->seektablelength);
+ if (!ape->seektable)
+ return AVERROR(ENOMEM);
for (i = 0; i < ape->seektablelength / sizeof(uint32_t); i++)
ape->seektable[i] = avio_rl32(pb);
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/asfdec.c
^
|
@@ -1158,7 +1158,8 @@
if (s->packet_size > 0)
pos= (pos+s->packet_size-1-s->data_offset)/s->packet_size*s->packet_size+ s->data_offset;
*ppos= pos;
- avio_seek(s->pb, pos, SEEK_SET);
+ if (avio_seek(s->pb, pos, SEEK_SET) < 0)
+ return AV_NOPTS_VALUE;
//printf("asf_read_pts\n");
asf_reset_header(s);
@@ -1200,7 +1201,9 @@
int64_t current_pos= avio_tell(s->pb);
int i;
- avio_seek(s->pb, asf->data_object_offset + asf->data_object_size, SEEK_SET);
+ if(avio_seek(s->pb, asf->data_object_offset + asf->data_object_size, SEEK_SET) < 0)
+ return;
+
ff_get_guid(s->pb, &g);
/* the data object can be followed by other top-level objects,
@@ -1272,7 +1275,8 @@
/* do the seek */
av_log(s, AV_LOG_DEBUG, "SEEKTO: %"PRId64"\n", pos);
- avio_seek(s->pb, pos, SEEK_SET);
+ if(avio_seek(s->pb, pos, SEEK_SET) < 0)
+ return -1;
asf_reset_header(s);
return 0;
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/avformat.h
^
|
@@ -48,63 +48,70 @@
struct AVFormatContext;
-/*
- * Public Metadata API.
+/**
+ * @defgroup metadata_api Public Metadata API
+ * @{
* The metadata API allows libavformat to export metadata tags to a client
* application using a sequence of key/value pairs. Like all strings in FFmpeg,
* metadata must be stored as UTF-8 encoded Unicode. Note that metadata
* exported by demuxers isn't checked to be valid UTF-8 in most cases.
* Important concepts to keep in mind:
- * 1. Keys are unique; there can never be 2 tags with the same key. This is
+ * - Keys are unique; there can never be 2 tags with the same key. This is
* also meant semantically, i.e., a demuxer should not knowingly produce
* several keys that are literally different but semantically identical.
* E.g., key=Author5, key=Author6. In this example, all authors must be
* placed in the same tag.
- * 2. Metadata is flat, not hierarchical; there are no subtags. If you
+ * - Metadata is flat, not hierarchical; there are no subtags. If you
* want to store, e.g., the email address of the child of producer Alice
* and actor Bob, that could have key=alice_and_bobs_childs_email_address.
- * 3. Several modifiers can be applied to the tag name. This is done by
+ * - Several modifiers can be applied to the tag name. This is done by
* appending a dash character ('-') and the modifier name in the order
* they appear in the list below -- e.g. foo-eng-sort, not foo-sort-eng.
- * a) language -- a tag whose value is localized for a particular language
+ * - language -- a tag whose value is localized for a particular language
* is appended with the ISO 639-2/B 3-letter language code.
* For example: Author-ger=Michael, Author-eng=Mike
* The original/default language is in the unqualified "Author" tag.
* A demuxer should set a default if it sets any translated tag.
- * b) sorting -- a modified version of a tag that should be used for
+ * - sorting -- a modified version of a tag that should be used for
* sorting will have '-sort' appended. E.g. artist="The Beatles",
* artist-sort="Beatles, The".
*
- * 4. Demuxers attempt to export metadata in a generic format, however tags
+ * - Demuxers attempt to export metadata in a generic format, however tags
* with no generic equivalents are left as they are stored in the container.
* Follows a list of generic tag names:
*
- * album -- name of the set this work belongs to
- * album_artist -- main creator of the set/album, if different from artist.
- * e.g. "Various Artists" for compilation albums.
- * artist -- main creator of the work
- * comment -- any additional description of the file.
- * composer -- who composed the work, if different from artist.
- * copyright -- name of copyright holder.
- * creation_time-- date when the file was created, preferably in ISO 8601.
- * date -- date when the work was created, preferably in ISO 8601.
- * disc -- number of a subset, e.g. disc in a multi-disc collection.
- * encoder -- name/settings of the software/hardware that produced the file.
- * encoded_by -- person/group who created the file.
- * filename -- original name of the file.
- * genre -- <self-evident>.
- * language -- main language in which the work is performed, preferably
- * in ISO 639-2 format. Multiple languages can be specified by
- * separating them with commas.
- * performer -- artist who performed the work, if different from artist.
- * E.g for "Also sprach Zarathustra", artist would be "Richard
- * Strauss" and performer "London Philharmonic Orchestra".
- * publisher -- name of the label/publisher.
- * service_name -- name of the service in broadcasting (channel name).
- * service_provider -- name of the service provider in broadcasting.
- * title -- name of the work.
- * track -- number of this work in the set, can be in form current/total.
- * variant_bitrate -- the total bitrate of the bitrate variant that the current stream is part of
+ @verbatim
+ album -- name of the set this work belongs to
+ album_artist -- main creator of the set/album, if different from artist.
+ e.g. "Various Artists" for compilation albums.
+ artist -- main creator of the work
+ comment -- any additional description of the file.
+ composer -- who composed the work, if different from artist.
+ copyright -- name of copyright holder.
+ creation_time-- date when the file was created, preferably in ISO 8601.
+ date -- date when the work was created, preferably in ISO 8601.
+ disc -- number of a subset, e.g. disc in a multi-disc collection.
+ encoder -- name/settings of the software/hardware that produced the file.
+ encoded_by -- person/group who created the file.
+ filename -- original name of the file.
+ genre -- <self-evident>.
+ language -- main language in which the work is performed, preferably
+ in ISO 639-2 format. Multiple languages can be specified by
+ separating them with commas.
+ performer -- artist who performed the work, if different from artist.
+ E.g for "Also sprach Zarathustra", artist would be "Richard
+ Strauss" and performer "London Philharmonic Orchestra".
+ publisher -- name of the label/publisher.
+ service_name -- name of the service in broadcasting (channel name).
+ service_provider -- name of the service provider in broadcasting.
+ title -- name of the work.
+ track -- number of this work in the set, can be in form current/total.
+ variant_bitrate -- the total bitrate of the bitrate variant that the current stream is part of
+ @endverbatim
+ *
+ * Look in the examples section for an application example how to use the Metadata API.
+ *
+ * @}
*/
#if FF_API_OLD_METADATA2
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/avidec.c
^
|
@@ -220,13 +220,18 @@
return -1;
}
- avio_seek(pb, offset+8, SEEK_SET);
+ if(avio_seek(pb, offset+8, SEEK_SET) < 0)
+ return -1;
avi->odml_depth++;
read_braindead_odml_indx(s, frame_num);
avi->odml_depth--;
frame_num += duration;
- avio_seek(pb, pos, SEEK_SET);
+ if(avio_seek(pb, pos, SEEK_SET) < 0) {
+ av_log(s, AV_LOG_ERROR, "Failed to restore position after reading index");
+ return -1;
+ }
+
}
}
avi->index_loaded=1;
@@ -1325,11 +1330,13 @@
/* the av_index_search_timestamp call above. */
assert(stream_index == 0);
+ if(avio_seek(s->pb, pos, SEEK_SET) < 0)
+ return -1;
+
/* Feed the DV video stream version of the timestamp to the */
/* DV demux so it can synthesize correct timestamps. */
dv_offset_reset(avi->dv_demux, timestamp);
- avio_seek(s->pb, pos, SEEK_SET);
avi->stream_index= -1;
return 0;
}
@@ -1380,7 +1387,8 @@
}
/* do the seek */
- avio_seek(s->pb, pos_min, SEEK_SET);
+ if (avio_seek(s->pb, pos_min, SEEK_SET) < 0)
+ return -1;
avi->stream_index= -1;
return 0;
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/avio.h
^
|
@@ -145,7 +145,7 @@
attribute_deprecated int url_poll(URLPollEntry *poll_table, int n, int timeout);
/**
- * @defgroup open_modes URL open modes
+ * @name URL open modes
* The flags argument to url_open and cosins must be one of the following
* constants, optionally ORed with other flags.
* @{
@@ -176,7 +176,7 @@
/**
* @defgroup old_url_funcs Old url_* functions
- * @deprecated use the buffered API based on AVIOContext instead
+ * The following functions are deprecated. Use the buffered API based on #AVIOContext instead.
* @{
*/
attribute_deprecated int url_open_protocol (URLContext **puc, struct URLProtocol *up,
@@ -236,7 +236,7 @@
/**
* @defgroup old_avio_funcs Old put_/get_*() functions
- * @deprecated use the avio_ -prefixed functions instead.
+ * The following functions are deprecated. Use the "avio_"-prefixed functions instead.
* @{
*/
attribute_deprecated int get_buffer(AVIOContext *s, unsigned char *buf, int size);
@@ -273,7 +273,7 @@
/**
* @defgroup old_url_f_funcs Old url_f* functions
- * @deprecated use the avio_ -prefixed functions instead.
+ * The following functions are deprecated, use the "avio_"-prefixed functions instead.
* @{
*/
attribute_deprecated int url_fopen( AVIOContext **s, const char *url, int flags);
@@ -479,7 +479,7 @@
int avio_read(AVIOContext *s, unsigned char *buf, int size);
/**
- * @defgroup avio_read Functions for reading from AVIOContext.
+ * @name Functions for reading from AVIOContext
* @{
*
* @note return 0 if EOF, so you cannot use it if EOF handling is
@@ -523,7 +523,7 @@
/**
- * @defgroup open_modes URL open modes
+ * @name URL open modes
* The flags argument to avio_open must be one of the following
* constants, optionally ORed with other flags.
* @{
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/avisynth.c
^
|
@@ -122,6 +122,14 @@
st->codec->bit_rate = (uint64_t)stream->info.dwSampleSize * (uint64_t)stream->info.dwRate * 8 / (uint64_t)stream->info.dwScale;
st->codec->codec_tag = imgfmt.bmiHeader.biCompression;
st->codec->codec_id = ff_codec_get_id(ff_codec_bmp_tags, imgfmt.bmiHeader.biCompression);
+ if (st->codec->codec_id == CODEC_ID_RAWVIDEO && imgfmt.bmiHeader.biCompression== BI_RGB) {
+ st->codec->extradata = av_malloc(9 + FF_INPUT_BUFFER_PADDING_SIZE);
+ if (st->codec->extradata) {
+ st->codec->extradata_size = 9;
+ memcpy(st->codec->extradata, "BottomUp", 9);
+ }
+ }
+
st->duration = stream->info.dwLength;
}
@@ -165,7 +173,6 @@
res = AVIStreamRead(stream->handle, stream->read, stream->chunck_samples, pkt->data, stream->chunck_size, &read_size, NULL);
- pkt->pts = stream->read;
pkt->size = read_size;
stream->read += stream->chunck_samples;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/avlanguage.c
^
|
@@ -20,6 +20,7 @@
#include "avlanguage.h"
#include "libavutil/avstring.h"
+#include "libavutil/common.h"
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
@@ -736,7 +737,7 @@
{
int i;
const LangEntry *entry = NULL;
- const int NB_CODESPACES = sizeof(lang_table_counts)/sizeof(*lang_table_counts);
+ const int NB_CODESPACES = FF_ARRAY_ELEMS(lang_table_counts);
if (target_codespace >= NB_CODESPACES)
return NULL;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/flvdec.c
^
|
@@ -269,6 +269,10 @@
vcodec->bit_rate = num_val * 1024.0;
else if(!strcmp(key, "audiodatarate") && acodec && 0 <= (int)(num_val * 1024.0))
acodec->bit_rate = num_val * 1024.0;
+ } else if(amf_type == AMF_DATA_TYPE_OBJECT){
+ if(s->nb_streams==1 && ((!acodec && !strcmp(key, "audiocodecid")) || (!vcodec && !strcmp(key, "videocodecid")))){
+ s->ctx_flags &= ~AVFMTCTX_NOHEADER; //If there is either audio/video missing, codecid will be an empty object
+ }
} else if (amf_type == AMF_DATA_TYPE_STRING)
av_dict_set(&s->metadata, key, str_val, 0);
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/flvenc.c
^
|
@@ -179,7 +179,7 @@
AVCodecContext *audio_enc = NULL, *video_enc = NULL;
int i;
double framerate = 0.0;
- int metadata_size_pos, data_size;
+ int64_t metadata_size_pos, data_size;
AVDictionaryEntry *tag = NULL;
for(i=0; i<s->nb_streams; i++){
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/gxf.c
^
|
@@ -264,7 +264,7 @@
int map_len;
int len;
AVRational main_timebase = {0, 0};
- struct gxf_stream_info si;
+ struct gxf_stream_info *si = s->priv_data;
int i;
if (!parse_packet_header(pb, &pkt_type, &map_len) || pkt_type != PKT_MAP) {
av_log(s, AV_LOG_ERROR, "map packet not found\n");
@@ -282,7 +282,7 @@
return 0;
}
map_len -= len;
- gxf_material_tags(pb, &len, &si);
+ gxf_material_tags(pb, &len, si);
avio_skip(pb, len);
map_len -= 2;
len = avio_rb16(pb); // length of track description
@@ -300,7 +300,7 @@
track_id = avio_r8(pb);
track_len = avio_rb16(pb);
len -= track_len;
- gxf_track_tags(pb, &track_len, &si);
+ gxf_track_tags(pb, &track_len, si);
avio_skip(pb, track_len);
if (!(track_type & 0x80)) {
av_log(s, AV_LOG_ERROR, "invalid track type %x\n", track_type);
@@ -316,12 +316,12 @@
if (idx < 0) continue;
st = s->streams[idx];
if (!main_timebase.num || !main_timebase.den) {
- main_timebase.num = si.frames_per_second.den;
- main_timebase.den = si.frames_per_second.num * 2;
+ main_timebase.num = si->frames_per_second.den;
+ main_timebase.den = si->frames_per_second.num * 2;
}
- st->start_time = si.first_field;
- if (si.first_field != AV_NOPTS_VALUE && si.last_field != AV_NOPTS_VALUE)
- st->duration = si.last_field - si.first_field;
+ st->start_time = si->first_field;
+ if (si->first_field != AV_NOPTS_VALUE && si->last_field != AV_NOPTS_VALUE)
+ st->duration = si->last_field - si->first_field;
}
if (len < 0)
av_log(s, AV_LOG_ERROR, "invalid track description length specified\n");
@@ -422,6 +422,8 @@
AVIOContext *pb = s->pb;
GXFPktType pkt_type;
int pkt_len;
+ struct gxf_stream_info *si = s->priv_data;
+
while (!url_feof(pb)) {
AVStream *st;
int track_type, track_id, ret;
@@ -473,6 +475,11 @@
avio_skip(pb, skip);
pkt->stream_index = stream_index;
pkt->dts = field_nr;
+
+ //set duration manually for DV or else lavf misdetects the frame rate
+ if (st->codec->codec_id == CODEC_ID_DVVIDEO)
+ pkt->duration = si->fields_per_frame;
+
return ret;
}
return AVERROR(EIO);
@@ -518,7 +525,7 @@
AVInputFormat ff_gxf_demuxer = {
"gxf",
NULL_IF_CONFIG_SMALL("GXF format"),
- 0,
+ sizeof(struct gxf_stream_info),
gxf_probe,
gxf_header,
gxf_packet,
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/http.c
^
|
@@ -265,6 +265,8 @@
s->filesize = atoll(slash+1);
}
h->is_streamed = 0; /* we _can_ in fact seek */
+ } else if (!strcasecmp (tag, "Accept-Ranges") && !strncmp (p, "bytes", 5)) {
+ h->is_streamed = 0;
} else if (!strcasecmp (tag, "Transfer-Encoding") && !strncasecmp(p, "chunked", 7)) {
s->filesize = -1;
s->chunksize = 0;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/internal.h
^
|
@@ -155,14 +155,14 @@
/**
* Read a whole line of text from AVIOContext. Stop reading after reaching
- * either a \n, a \0 or EOF. The returned string is always \0 terminated,
+ * either a \\n, a \\0 or EOF. The returned string is always \\0-terminated,
* and may be truncated if the buffer is too small.
*
* @param s the read-only AVIOContext
* @param buf buffer to store the read line
* @param maxlen size of the buffer
* @return the length of the string written in the buffer, not including the
- * final \0
+ * final \\0
*/
int ff_get_line(AVIOContext *s, char *buf, int maxlen);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/isom.c
^
|
@@ -208,6 +208,8 @@
{ CODEC_ID_PRORES, MKTAG('a', 'p', 'c', 'o') }, /* Apple ProRes 422 Proxy */
{ CODEC_ID_PRORES, MKTAG('a', 'p', '4', 'h') }, /* Apple ProRes 4444 */
+ { CODEC_ID_MSMPEG4V3, MKTAG('3', 'I', 'V', 'D') }, /* 3ivx DivX Doctor */
+
{ CODEC_ID_NONE, 0 },
};
@@ -246,7 +248,7 @@
{ CODEC_ID_AC3, MKTAG('a', 'c', '-', '3') }, /* ETSI TS 102 366 Annex F */
{ CODEC_ID_AC3, MKTAG('s', 'a', 'c', '3') }, /* Nero Recode */
{ CODEC_ID_DTS, MKTAG('d', 't', 's', 'c') }, /* mp4ra.org */
- { CODEC_ID_DTS, MKTAG('D', 'T', 'S', ' ') }, /* non standard */
+ { CODEC_ID_DTS, MKTAG('D', 'T', 'S', ' ') }, /* non-standard */
{ CODEC_ID_AMR_NB, MKTAG('s', 'a', 'm', 'r') }, /* AMR-NB 3gp */
{ CODEC_ID_AMR_WB, MKTAG('s', 'a', 'w', 'b') }, /* AMR-WB 3gp */
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/matroskadec.c
^
|
@@ -826,11 +826,15 @@
uint32_t id = syntax->id;
uint64_t length;
int res;
+ void *newelem;
data = (char *)data + syntax->data_offset;
if (syntax->list_elem_size) {
EbmlList *list = data;
- list->elem = av_realloc(list->elem, (list->nb_elem+1)*syntax->list_elem_size);
+ newelem = av_realloc(list->elem, (list->nb_elem+1)*syntax->list_elem_size);
+ if (!newelem)
+ return AVERROR(ENOMEM);
+ list->elem = newelem;
data = (char*)list->elem + list->nb_elem*syntax->list_elem_size;
memset(data, 0, syntax->list_elem_size);
list->nb_elem++;
@@ -928,6 +932,8 @@
* Not fully fool-proof, but good enough. */
for (i = 0; i < FF_ARRAY_ELEMS(matroska_doctypes); i++) {
int probelen = strlen(matroska_doctypes[i]);
+ if (total < probelen)
+ continue;
for (n = 4+size; n <= 4+size+total-probelen; n++)
if (!memcmp(p->buf+n, matroska_doctypes[i], probelen))
return AVPROBE_SCORE_MAX;
@@ -990,7 +996,10 @@
pkt_data = av_realloc(pkt_data, pkt_size);
zstream.avail_out = pkt_size - zstream.total_out;
zstream.next_out = pkt_data + zstream.total_out;
- result = inflate(&zstream, Z_NO_FLUSH);
+ if (pkt_data) {
+ result = inflate(&zstream, Z_NO_FLUSH);
+ } else
+ result = Z_MEM_ERROR;
} while (result==Z_OK && pkt_size<10000000);
pkt_size = zstream.total_out;
inflateEnd(&zstream);
@@ -1011,7 +1020,10 @@
pkt_data = av_realloc(pkt_data, pkt_size);
bzstream.avail_out = pkt_size - bzstream.total_out_lo32;
bzstream.next_out = pkt_data + bzstream.total_out_lo32;
- result = BZ2_bzDecompress(&bzstream);
+ if (pkt_data) {
+ result = BZ2_bzDecompress(&bzstream);
+ } else
+ result = BZ_MEM_ERROR;
} while (result==BZ_OK && pkt_size<10000000);
pkt_size = bzstream.total_out_lo32;
BZ2_bzDecompressEnd(&bzstream);
@@ -1064,13 +1076,17 @@
}
}
-static void matroska_merge_packets(AVPacket *out, AVPacket *in)
+static int matroska_merge_packets(AVPacket *out, AVPacket *in)
{
- out->data = av_realloc(out->data, out->size+in->size);
+ void *newdata = av_realloc(out->data, out->size+in->size);
+ if (!newdata)
+ return AVERROR(ENOMEM);
+ out->data = newdata;
memcpy(out->data+out->size, in->data, in->size);
out->size += in->size;
av_destruct_packet(in);
av_free(in);
+ return 0;
}
static void matroska_convert_tag(AVFormatContext *s, EbmlList *list,
@@ -1624,11 +1640,13 @@
memcpy(pkt, matroska->packets[0], sizeof(AVPacket));
av_free(matroska->packets[0]);
if (matroska->num_packets > 1) {
+ void *newpackets;
memmove(&matroska->packets[0], &matroska->packets[1],
(matroska->num_packets - 1) * sizeof(AVPacket *));
- matroska->packets =
- av_realloc(matroska->packets, (matroska->num_packets - 1) *
- sizeof(AVPacket *));
+ newpackets = av_realloc(matroska->packets,
+ (matroska->num_packets - 1) * sizeof(AVPacket *));
+ if (newpackets)
+ matroska->packets = newpackets;
} else {
av_freep(&matroska->packets);
}
@@ -1959,6 +1977,7 @@
if ((index = av_index_search_timestamp(st, timestamp, flags)) < 0) {
avio_seek(s->pb, st->index_entries[st->nb_index_entries-1].pos, SEEK_SET);
+ matroska->current_id = 0;
while ((index = av_index_search_timestamp(st, timestamp, flags)) < 0) {
matroska_clear_queue(matroska);
if (matroska_parse_cluster(matroska) < 0)
@@ -1987,6 +2006,7 @@
}
avio_seek(s->pb, st->index_entries[index_min].pos, SEEK_SET);
+ matroska->current_id = 0;
matroska->skip_to_keyframe = !(flags & AVSEEK_FLAG_ANY);
matroska->skip_to_timecode = st->index_entries[index].timestamp;
matroska->done = 0;
|
[-]
[+]
|
Added |
ffmpeg-0.8.4.tar.bz2/libavformat/metadata-example.c
^
|
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2011 Reinhard Tartler
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+/**
+ * @file
+ * @example libavformat/metadata-example.c
+ * Shows how the metadata API can be used in application programs.
+ */
+
+#include <stdio.h>
+
+#include <libavformat/avformat.h>
+#include <libavutil/dict.h>
+
+int main (int argc, char **argv)
+{
+ AVFormatContext *fmt_ctx = NULL;
+ AVDictionaryEntry *tag = NULL;
+ int ret;
+
+ if (argc != 2) {
+ printf("usage: %s <input_file>\n"
+ "example program to demonstrate the use of the libavformat metadata API.\n"
+ "\n", argv[0]);
+ return 1;
+ }
+
+ av_register_all();
+ if ((ret = avformat_open_input(&fmt_ctx, argv[1], NULL, NULL)))
+ return ret;
+
+ while ((tag = av_dict_get(fmt_ctx->metadata, "", tag, AV_DICT_IGNORE_SUFFIX)))
+ printf("%s=%s\n", tag->key, tag->value);
+
+ avformat_free_context(fmt_ctx);
+ return 0;
+}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/movenc.c
^
|
@@ -206,7 +206,7 @@
avio_wb32(pb, 11);
ffio_wfourcc(pb, "dac3");
- init_get_bits(&gbc, track->vosData+4, track->vosLen-4);
+ init_get_bits(&gbc, track->vosData+4, (track->vosLen-4) * 8);
fscod = get_bits(&gbc, 2);
frmsizecod = get_bits(&gbc, 6);
bsid = get_bits(&gbc, 5);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/mp3dec.c
^
|
@@ -109,8 +109,8 @@
if(avio_rb16(s->pb) == 1) {
/* skip delay and quality */
avio_skip(s->pb, 4);
- frames = avio_rb32(s->pb);
size = avio_rb32(s->pb);
+ frames = avio_rb32(s->pb);
}
}
@@ -173,7 +173,9 @@
pkt->stream_index = 0;
if (ret <= 0) {
- return AVERROR(EIO);
+ if(ret<0)
+ return ret;
+ return AVERROR_EOF;
}
if (ret > ID3v1_TAG_SIZE &&
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/mpeg.c
^
|
@@ -106,6 +106,7 @@
MpegDemuxContext *m = s->priv_data;
const char *sofdec = "Sofdec";
int v, i = 0;
+ int64_t last_pos = avio_tell(s->pb);
m->header_state = 0xff;
s->ctx_flags |= AVFMTCTX_NOHEADER;
@@ -119,6 +120,9 @@
m->sofdec = (m->sofdec == 6) ? 1 : 0;
+ if (!m->sofdec)
+ avio_seek(s->pb, last_pos, SEEK_SET);
+
/* no need to do more */
return 0;
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/mpegts.c
^
|
@@ -1268,7 +1268,7 @@
{
AVFormatContext *s = ts->stream;
MpegTSFilter *tss;
- int len, pid, cc, cc_ok, afc, is_start;
+ int len, pid, cc, expected_cc, cc_ok, afc, is_start;
const uint8_t *p, *p_end;
int64_t pos;
@@ -1286,7 +1286,8 @@
/* continuity check (currently not used) */
cc = (packet[3] & 0xf);
- cc_ok = (tss->last_cc < 0) || ((((tss->last_cc + 1) & 0x0f) == cc));
+ expected_cc = (packet[3] & 0x10) ? (tss->last_cc + 1) & 0x0f : tss->last_cc;
+ cc_ok = (tss->last_cc < 0) || (expected_cc == cc);
tss->last_cc = cc;
/* skip adaptation field */
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/mxf.c
^
|
@@ -19,6 +19,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "libavutil/common.h"
#include "mxf.h"
/**
@@ -80,7 +81,7 @@
{PIX_FMT_PAL8, {'P', 8 }},
};
-static const int num_pixel_layouts = sizeof(ff_mxf_pixel_layouts) / sizeof(*ff_mxf_pixel_layouts);
+static const int num_pixel_layouts = FF_ARRAY_ELEMS(ff_mxf_pixel_layouts);
int ff_mxf_decode_pixel_layout(const char pixel_layout[16], enum PixelFormat *pix_fmt)
{
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/mxfdec.c
^
|
@@ -599,7 +599,7 @@
default:
/* Private uid used by SONY C0023S01.mxf */
if (IS_KLV_KEY(uid, mxf_sony_mpeg4_extradata)) {
- descriptor->extradata = av_malloc(size);
+ descriptor->extradata = av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE);
if (!descriptor->extradata)
return -1;
descriptor->extradata_size = size;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/mxfenc.c
^
|
@@ -1539,7 +1539,7 @@
static uint32_t ff_framenum_to_12m_time_code(unsigned frame, int drop, int fps)
{
return (0 << 31) | // color frame flag
- (0 << 30) | // drop frame flag
+ (drop << 30) | // drop frame flag
( ((frame % fps) / 10) << 28) | // tens of frames
( ((frame % fps) % 10) << 24) | // units of frames
(0 << 23) | // field phase (NTSC), b0 (PAL)
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/oggdec.c
^
|
@@ -29,7 +29,6 @@
DEALINGS IN THE SOFTWARE.
**/
-
#include <stdio.h>
#include "oggdec.h"
#include "avformat.h"
@@ -93,14 +92,24 @@
ogg->state = ost->next;
if (!discard){
+ struct ogg_stream *old_streams = ogg->streams;
+
for (i = 0; i < ogg->nstreams; i++)
av_free (ogg->streams[i].buf);
avio_seek (bc, ost->pos, SEEK_SET);
ogg->curidx = ost->curidx;
ogg->nstreams = ost->nstreams;
- memcpy(ogg->streams, ost->streams,
- ost->nstreams * sizeof(*ogg->streams));
+ ogg->streams = av_realloc (ogg->streams,
+ ogg->nstreams * sizeof (*ogg->streams));
+
+ if (ogg->streams) {
+ memcpy(ogg->streams, ost->streams,
+ ost->nstreams * sizeof(*ogg->streams));
+ } else {
+ av_free(old_streams);
+ ogg->nstreams = 0;
+ }
}
av_free (ost);
@@ -240,7 +249,8 @@
for (n = 0; n < ogg->nstreams; n++) {
av_freep(&ogg->streams[n].buf);
- av_freep(&ogg->streams[n].private);
+ if (!ogg->state || ogg->state->streams[n].private != ogg->streams[n].private)
+ av_freep(&ogg->streams[n].private);
}
ogg->curidx = -1;
ogg->nstreams = 0;
@@ -603,15 +613,15 @@
int64_t *pos_arg, int64_t pos_limit)
{
struct ogg *ogg = s->priv_data;
- struct ogg_stream *os = ogg->streams + stream_index;
AVIOContext *bc = s->pb;
int64_t pts = AV_NOPTS_VALUE;
- int i;
+ int i = -1;
avio_seek(bc, *pos_arg, SEEK_SET);
ogg_reset(ogg);
while (avio_tell(bc) < pos_limit && !ogg_packet(s, &i, NULL, NULL, pos_arg)) {
if (i == stream_index) {
+ struct ogg_stream *os = ogg->streams + stream_index;
pts = ogg_calc_pts(s, i, NULL);
if (os->keyframe_seek && !(os->pflags & AV_PKT_FLAG_KEY))
pts = AV_NOPTS_VALUE;
@@ -637,6 +647,7 @@
os->keyframe_seek = 1;
ret = av_seek_frame_binary(s, stream_index, timestamp, flags);
+ os = ogg->streams + stream_index;
if (ret < 0)
os->keyframe_seek = 0;
return ret;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/riff.c
^
|
@@ -130,6 +130,7 @@
{ CODEC_ID_MPEG2VIDEO, MKTAG('s', 'l', 'i', 'f') },
{ CODEC_ID_MPEG2VIDEO, MKTAG('E', 'M', '2', 'V') },
{ CODEC_ID_MPEG2VIDEO, MKTAG('M', '7', '0', '1') }, /* Matrox MPEG2 intra-only */
+ { CODEC_ID_MPEG2VIDEO, MKTAG('m', 'p', 'g', 'v') },
{ CODEC_ID_MJPEG, MKTAG('M', 'J', 'P', 'G') },
{ CODEC_ID_MJPEG, MKTAG('L', 'J', 'P', 'G') },
{ CODEC_ID_MJPEG, MKTAG('d', 'm', 'b', '1') },
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/rmdec.c
^
|
@@ -26,6 +26,13 @@
#include "riff.h"
#include "rm.h"
+#define DEINT_ID_GENR MKTAG('g', 'e', 'n', 'r') ///< interleaving for Cooker/Atrac
+#define DEINT_ID_INT0 MKTAG('I', 'n', 't', '0') ///< no interleaving needed
+#define DEINT_ID_INT4 MKTAG('I', 'n', 't', '4') ///< interleaving for 28.8
+#define DEINT_ID_SIPR MKTAG('s', 'i', 'p', 'r') ///< interleaving for Sipro
+#define DEINT_ID_VBRF MKTAG('v', 'b', 'r', 'f') ///< VBR case for AAC
+#define DEINT_ID_VBRS MKTAG('v', 'b', 'r', 's') ///< VBR case for AAC
+
struct RMStream {
AVPacket pkt; ///< place to store merged video frame / reordered audio data
int videobufsize; ///< current assembled frame size
@@ -39,6 +46,7 @@
int sub_packet_size, sub_packet_h, coded_framesize; ///< Descrambling parameters from container
int audio_framesize; /// Audio frame size from container
int sub_packet_lengths[16]; /// Length of each subpacket
+ int32_t deint_id; ///< deinterleaver used in audio stream
};
typedef struct {
@@ -147,6 +155,7 @@
st->codec->channels = 1;
st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
st->codec->codec_id = CODEC_ID_RA_144;
+ ast->deint_id = DEINT_ID_INT0;
} else {
int flavor, sub_packet_h, coded_framesize, sub_packet_size;
int codecdata_length;
@@ -172,17 +181,19 @@
avio_rb32(pb);
st->codec->channels = avio_rb16(pb);
if (version == 5) {
- avio_rb32(pb);
+ ast->deint_id = avio_rl32(pb);
avio_read(pb, buf, 4);
buf[4] = 0;
} else {
get_str8(pb, buf, sizeof(buf)); /* desc */
+ ast->deint_id = AV_RL32(buf);
get_str8(pb, buf, sizeof(buf)); /* desc */
}
st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
st->codec->codec_tag = AV_RL32(buf);
st->codec->codec_id = ff_codec_get_id(ff_rm_codec_tags,
st->codec->codec_tag);
+
switch (st->codec->codec_id) {
case CODEC_ID_AC3:
st->need_parsing = AVSTREAM_PARSE_FULL;
@@ -191,13 +202,6 @@
st->codec->extradata_size= 0;
ast->audio_framesize = st->codec->block_align;
st->codec->block_align = coded_framesize;
-
- if(ast->audio_framesize >= UINT_MAX / sub_packet_h){
- av_log(s, AV_LOG_ERROR, "ast->audio_framesize * sub_packet_h too large\n");
- return -1;
- }
-
- av_new_packet(&ast->pkt, ast->audio_framesize * sub_packet_h);
break;
case CODEC_ID_COOK:
case CODEC_ID_ATRAC3:
@@ -228,13 +232,6 @@
}
if ((ret = rm_read_extradata(pb, st->codec, codecdata_length)) < 0)
return ret;
-
- if(ast->audio_framesize >= UINT_MAX / sub_packet_h){
- av_log(s, AV_LOG_ERROR, "rm->audio_framesize * sub_packet_h too large\n");
- return -1;
- }
-
- av_new_packet(&ast->pkt, ast->audio_framesize * sub_packet_h);
break;
case CODEC_ID_AAC:
avio_rb16(pb); avio_r8(pb);
@@ -254,6 +251,37 @@
default:
av_strlcpy(st->codec->codec_name, buf, sizeof(st->codec->codec_name));
}
+ if (ast->deint_id == DEINT_ID_INT4 ||
+ ast->deint_id == DEINT_ID_GENR ||
+ ast->deint_id == DEINT_ID_SIPR) {
+ if (st->codec->block_align <= 0 ||
+ ast->audio_framesize * sub_packet_h > (unsigned)INT_MAX ||
+ ast->audio_framesize * sub_packet_h < st->codec->block_align)
+ return AVERROR_INVALIDDATA;
+ if (av_new_packet(&ast->pkt, ast->audio_framesize * sub_packet_h) < 0)
+ return AVERROR(ENOMEM);
+ }
+ switch (ast->deint_id) {
+ case DEINT_ID_INT4:
+ if (ast->coded_framesize > ast->audio_framesize ||
+ ast->coded_framesize * sub_packet_h > (2 + (sub_packet_h & 1)) * ast->audio_framesize)
+ return AVERROR_INVALIDDATA;
+ break;
+ case DEINT_ID_GENR:
+ if (ast->sub_packet_size <= 0 ||
+ ast->sub_packet_size > ast->audio_framesize)
+ return AVERROR_INVALIDDATA;
+ break;
+ case DEINT_ID_SIPR:
+ case DEINT_ID_INT0:
+ case DEINT_ID_VBRS:
+ case DEINT_ID_VBRF:
+ break;
+ default:
+ av_log(NULL,0,"Unknown interleaver %X\n", ast->deint_id);
+ return AVERROR_INVALIDDATA;
+ }
+
if (read_all) {
avio_r8(pb);
avio_r8(pb);
@@ -712,10 +740,9 @@
if(rm_assemble_video_frame(s, pb, rm, ast, pkt, len, seq))
return -1; //got partial frame
} else if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
- if ((st->codec->codec_id == CODEC_ID_RA_288) ||
- (st->codec->codec_id == CODEC_ID_COOK) ||
- (st->codec->codec_id == CODEC_ID_ATRAC3) ||
- (st->codec->codec_id == CODEC_ID_SIPR)) {
+ if ((ast->deint_id == DEINT_ID_GENR) ||
+ (ast->deint_id == DEINT_ID_INT4) ||
+ (ast->deint_id == DEINT_ID_SIPR)) {
int x;
int sps = ast->sub_packet_size;
int cfs = ast->coded_framesize;
@@ -728,30 +755,30 @@
if (!y)
ast->audiotimestamp = timestamp;
- switch(st->codec->codec_id) {
- case CODEC_ID_RA_288:
+ switch (ast->deint_id) {
+ case DEINT_ID_INT4:
for (x = 0; x < h/2; x++)
avio_read(pb, ast->pkt.data+x*2*w+y*cfs, cfs);
break;
- case CODEC_ID_ATRAC3:
- case CODEC_ID_COOK:
+ case DEINT_ID_GENR:
for (x = 0; x < w/sps; x++)
avio_read(pb, ast->pkt.data+sps*(h*x+((h+1)/2)*(y&1)+(y>>1)), sps);
break;
- case CODEC_ID_SIPR:
+ case DEINT_ID_SIPR:
avio_read(pb, ast->pkt.data + y * w, w);
break;
}
if (++(ast->sub_packet_cnt) < h)
return -1;
- if (st->codec->codec_id == CODEC_ID_SIPR)
+ if (ast->deint_id == DEINT_ID_SIPR)
ff_rm_reorder_sipr_data(ast->pkt.data, h, w);
ast->sub_packet_cnt = 0;
rm->audio_stream_num = st->index;
rm->audio_pkt_cnt = h * w / st->codec->block_align;
- } else if (st->codec->codec_id == CODEC_ID_AAC) {
+ } else if ((ast->deint_id == DEINT_ID_VBRF) ||
+ (ast->deint_id == DEINT_ID_VBRS)) {
int x;
rm->audio_stream_num = st->index;
ast->sub_packet_cnt = (avio_rb16(pb) & 0xf0) >> 4;
@@ -799,7 +826,8 @@
assert (rm->audio_pkt_cnt > 0);
- if (st->codec->codec_id == CODEC_ID_AAC)
+ if (ast->deint_id == DEINT_ID_VBRF ||
+ ast->deint_id == DEINT_ID_VBRS)
av_get_packet(pb, pkt, ast->sub_packet_lengths[ast->sub_packet_cnt - rm->audio_pkt_cnt]);
else {
av_new_packet(pkt, st->codec->block_align);
@@ -905,7 +933,9 @@
if(rm->old_format)
return AV_NOPTS_VALUE;
- avio_seek(s->pb, pos, SEEK_SET);
+ if (avio_seek(s->pb, pos, SEEK_SET) < 0)
+ return AV_NOPTS_VALUE;
+
rm->remaining_len=0;
for(;;){
int seq=1;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/rtmppkt.h
^
|
@@ -138,7 +138,7 @@
void ff_rtmp_packet_dump(void *ctx, RTMPPacket *p);
/**
- * @defgroup amffuncs functions used to work with AMF format (which is also used in .flv)
+ * @name Functions used to work with the AMF format (which is also used in .flv)
* @see amf_* funcs in libavformat/flvdec.c
* @{
*/
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/rtpdec_asf.c
^
|
@@ -233,8 +233,14 @@
int cur_len = start_off + len_off - off;
int prev_len = out_len;
+ void *newbuf;
out_len += cur_len;
- asf->buf = av_realloc(asf->buf, out_len);
+ if(FFMIN(cur_len, len - off)<0)
+ return -1;
+ newbuf = av_realloc(asf->buf, out_len);
+ if(!newbuf)
+ return -1;
+ asf->buf= newbuf;
memcpy(asf->buf + prev_len, buf + off,
FFMIN(cur_len, len - off));
avio_skip(pb, cur_len);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/rtpproto.c
^
|
@@ -115,6 +115,7 @@
url_add_option(buf, buf_size, "pkt_size=%d", max_packet_size);
if (connect)
url_add_option(buf, buf_size, "connect=1");
+ url_add_option(buf, buf_size, "fifo_size=0");
}
/**
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/rtsp.c
^
|
@@ -428,11 +428,6 @@
}
}
-/**
- * Parse the sdp description and allocate the rtp streams and the
- * pollfd array used for udp ones.
- */
-
int ff_sdp_parse(AVFormatContext *s, const char *content)
{
RTSPState *rt = s->priv_data;
@@ -1050,9 +1045,6 @@
return 0;
}
-/**
- * @return 0 on success, <0 on error, 1 if protocol is unavailable.
- */
int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port,
int lower_transport, const char *real_challenge)
{
@@ -1078,7 +1070,7 @@
for (j = RTSP_RTP_PORT_MIN, i = 0; i < rt->nb_rtsp_streams; ++i) {
char transport[2048];
- /**
+ /*
* WMS serves all UDP data over a single connection, the RTX, which
* isn't necessarily the first in the SDP but has to be the first
* to be set up, else the second/third SETUP will fail with a 461.
@@ -1151,7 +1143,7 @@
/* RTP/TCP */
else if (lower_transport == RTSP_LOWER_TRANSPORT_TCP) {
- /** For WMS streams, the application streams are only used for
+ /* For WMS streams, the application streams are only used for
* UDP. When trying to set it up for TCP streams, the server
* will return an error. Therefore, we skip those streams. */
if (rt->server_type == RTSP_SERVER_WMS &&
@@ -1482,14 +1474,14 @@
cmd[0] = 0;
if (rt->server_type == RTSP_SERVER_REAL)
av_strlcat(cmd,
- /**
+ /*
* The following entries are required for proper
* streaming from a Realmedia server. They are
* interdependent in some way although we currently
* don't quite understand how. Values were copied
* from mplayer SVN r23589.
- * @param CompanyID is a 16-byte ID in base64
- * @param ClientChallenge is a 16-byte ID in hex
+ * ClientChallenge is a 16-byte ID in hex
+ * CompanyID is a 16-byte ID in base64
*/
"ClientChallenge: 9e26d33f2984236010ef6253fb1887f7\r\n"
"PlayerStarttime: [28/03/2003:22:50:23 00:00]\r\n"
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/rtsp.h
^
|
@@ -505,8 +505,9 @@
int ff_rtsp_setup_output_streams(AVFormatContext *s, const char *addr);
/**
- * Parse a SDP description of streams by populating an RTSPState struct
- * within the AVFormatContext.
+ * Parse an SDP description of streams by populating an RTSPState struct
+ * within the AVFormatContext; also allocate the RTP streams and the
+ * pollfd array used for UDP streams.
*/
int ff_sdp_parse(AVFormatContext *s, const char *content);
@@ -525,6 +526,7 @@
/**
* Do the SETUP requests for each stream for the chosen
* lower transport mode.
+ * @return 0 on success, <0 on error, 1 if protocol is unavailable
*/
int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port,
int lower_transport, const char *real_challenge);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/segafilm.c
^
|
@@ -111,11 +111,16 @@
film->audio_samplerate = AV_RB16(&scratch[24]);
film->audio_channels = scratch[21];
film->audio_bits = scratch[22];
- if (film->audio_bits == 8)
- film->audio_type = CODEC_ID_PCM_S8;
- else if (film->audio_bits == 16)
- film->audio_type = CODEC_ID_PCM_S16BE;
- else
+ if (scratch[23] == 2)
+ film->audio_type = CODEC_ID_ADPCM_ADX;
+ else if (film->audio_channels > 0) {
+ if (film->audio_bits == 8)
+ film->audio_type = CODEC_ID_PCM_S8;
+ else if (film->audio_bits == 16)
+ film->audio_type = CODEC_ID_PCM_S16BE;
+ else
+ film->audio_type = CODEC_ID_NONE;
+ } else
film->audio_type = CODEC_ID_NONE;
}
@@ -167,6 +172,8 @@
if(film->sample_count >= UINT_MAX / sizeof(film_sample))
return -1;
film->sample_table = av_malloc(film->sample_count * sizeof(film_sample));
+ if (!film->sample_table)
+ return AVERROR(ENOMEM);
for(i=0; i<s->nb_streams; i++)
av_set_pts_info(s->streams[i], 33, 1, film->base_clock);
@@ -187,8 +194,12 @@
film->sample_table[i].pts *= film->base_clock;
film->sample_table[i].pts /= film->audio_samplerate;
- audio_frame_counter += (film->sample_table[i].sample_size /
- (film->audio_channels * film->audio_bits / 8));
+ if (film->audio_type == CODEC_ID_ADPCM_ADX)
+ audio_frame_counter += (film->sample_table[i].sample_size * 32 /
+ (18 * film->audio_channels));
+ else if (film->audio_type != CODEC_ID_NONE)
+ audio_frame_counter += (film->sample_table[i].sample_size /
+ (film->audio_channels * film->audio_bits / 8));
} else {
film->sample_table[i].stream = film->video_stream_index;
film->sample_table[i].pts = AV_RB32(&scratch[8]) & 0x7FFFFFFF;
@@ -238,6 +249,10 @@
av_free(film->stereo_buffer);
film->stereo_buffer_size = sample->sample_size;
film->stereo_buffer = av_malloc(film->stereo_buffer_size);
+ if (!film->stereo_buffer) {
+ film->stereo_buffer_size = 0;
+ return AVERROR(ENOMEM);
+ }
}
pkt->pos= avio_tell(pb);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/smacker.c
^
|
@@ -286,11 +286,16 @@
for(i = 0; i < 7; i++) {
if(flags & 1) {
int size;
+ uint8_t *tmpbuf;
+
size = avio_rl32(s->pb) - 4;
frame_size -= size;
frame_size -= 4;
smk->curstream++;
- smk->bufs[smk->curstream] = av_realloc(smk->bufs[smk->curstream], size);
+ tmpbuf = av_realloc(smk->bufs[smk->curstream], size);
+ if (!tmpbuf)
+ return AVERROR(ENOMEM);
+ smk->bufs[smk->curstream] = tmpbuf;
smk->buf_sizes[smk->curstream] = size;
ret = avio_read(s->pb, smk->bufs[smk->curstream], size);
if(ret != size)
@@ -299,7 +304,9 @@
}
flags >>= 1;
}
- if (av_new_packet(pkt, frame_size + 768))
+ if (frame_size < 0)
+ return AVERROR_INVALIDDATA;
+ if (av_new_packet(pkt, frame_size + 769))
return AVERROR(ENOMEM);
if(smk->frm_size[smk->cur_frame] & 1)
palchange |= 2;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/udp.c
^
|
@@ -426,7 +426,7 @@
if (av_find_info_tag(buf, sizeof(buf), "connect", p)) {
s->is_connected = strtol(buf, NULL, 10);
}
- if (av_find_info_tag(buf, sizeof(buf), "buf_size", p)) {
+ if (av_find_info_tag(buf, sizeof(buf), "fifo_size", p)) {
s->circular_buffer_size = strtol(buf, NULL, 10)*188;
}
}
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/utils.c
^
|
@@ -457,18 +457,25 @@
opts = convert_format_parameters(ap);
if(!ap->prealloced_context)
- ic = avformat_alloc_context();
+ *ic_ptr = ic = avformat_alloc_context();
else
ic = *ic_ptr;
if (!ic) {
err = AVERROR(ENOMEM);
goto fail;
}
- ic->pb = pb;
+ if (pb && fmt && fmt->flags & AVFMT_NOFILE)
+ av_log(ic, AV_LOG_WARNING, "Custom AVIOContext makes no sense and "
+ "will be ignored with AVFMT_NOFILE format.\n");
+ else
+ ic->pb = pb;
- err = avformat_open_input(ic_ptr, filename, fmt, &opts);
+ if ((err = avformat_open_input(&ic, filename, fmt, &opts)) < 0)
+ goto fail;
+ ic->pb = ic->pb ? ic->pb : pb; // don't leak custom pb if it wasn't set above
fail:
+ *ic_ptr = ic;
av_dict_free(&opts);
return err;
}
@@ -518,13 +525,19 @@
probe_size = FFMIN(probe_size<<1, FFMAX(max_probe_size, probe_size+1))) {
int ret, score = probe_size < max_probe_size ? AVPROBE_SCORE_MAX/4 : 0;
int buf_offset = (probe_size == PROBE_BUF_MIN) ? 0 : probe_size>>1;
+ void *buftmp;
if (probe_size < offset) {
continue;
}
/* read probe data */
- buf = av_realloc(buf, probe_size + AVPROBE_PADDING_SIZE);
+ buftmp = av_realloc(buf, probe_size + AVPROBE_PADDING_SIZE);
+ if(!buftmp){
+ av_free(buf);
+ return AVERROR(ENOMEM);
+ }
+ buf=buftmp;
if ((ret = avio_read(pb, buf + buf_offset, probe_size - buf_offset)) < 0) {
/* fail if error was not end of file, otherwise, lower score */
if (ret != AVERROR_EOF) {
@@ -983,7 +996,7 @@
// we take the conservative approach and discard both
// Note, if this is misbehaving for a H.264 file then possibly presentation_delayed is not set correctly.
if(delay==1 && pkt->dts == pkt->pts && pkt->dts != AV_NOPTS_VALUE && presentation_delayed){
- av_log(s, AV_LOG_DEBUG, "invalid dts/pts combination\n");
+ av_log(s, AV_LOG_DEBUG, "invalid dts/pts combination %Ld\n", pkt->dts);
pkt->dts= pkt->pts= AV_NOPTS_VALUE;
}
@@ -1121,7 +1134,10 @@
if (!st->need_parsing || !st->parser) {
/* no parsing needed: we just output the packet as is */
/* raw data support */
- *pkt = st->cur_pkt; st->cur_pkt.data= NULL;
+ *pkt = st->cur_pkt;
+ st->cur_pkt.data= NULL;
+ st->cur_pkt.side_data_elems = 0;
+ st->cur_pkt.side_data = NULL;
compute_pkt_fields(s, st, NULL, pkt);
s->cur_st = NULL;
if ((s->iformat->flags & AVFMT_GENERIC_INDEX) &&
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavformat/wv.c
^
|
@@ -110,6 +110,9 @@
size = wc->blksize;
}
wc->flags = AV_RL32(wc->extra + 4);
+ // blocks with zero samples don't contain actual audio information and should be ignored
+ if (!AV_RN32(wc->extra))
+ return 0;
//parse flags
bpp = ((wc->flags & 3) + 1) << 3;
chan = 1 + !(wc->flags & WV_MONO);
@@ -207,8 +210,14 @@
AVStream *st;
wc->block_parsed = 0;
- if(wv_read_block_header(s, pb, 0) < 0)
- return -1;
+ for(;;){
+ if(wv_read_block_header(s, pb, 0) < 0)
+ return -1;
+ if(!AV_RN32(wc->extra))
+ avio_skip(pb, wc->blksize - 24);
+ else
+ break;
+ }
/* now we are ready: build format streams */
st = av_new_stream(s, 0);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavutil/avutil.h
^
|
@@ -104,7 +104,8 @@
#define AV_TIME_BASE_Q (AVRational){1, AV_TIME_BASE}
enum AVPictureType {
- AV_PICTURE_TYPE_I = 1, ///< Intra
+ AV_PICTURE_TYPE_NONE = 0, ///< Undefined
+ AV_PICTURE_TYPE_I, ///< Intra
AV_PICTURE_TYPE_P, ///< Predicted
AV_PICTURE_TYPE_B, ///< Bi-dir predicted
AV_PICTURE_TYPE_S, ///< S(GMC)-VOP MPEG4
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavutil/dict.h
^
|
@@ -18,7 +18,8 @@
*/
/**
- * @file Public dictionary API.
+ * @file
+ * Public dictionary API.
*/
#ifndef AVUTIL_DICT_H
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavutil/eval.c
^
|
@@ -499,6 +499,7 @@
if ((ret = parse_expr(&e, &p)) < 0)
goto end;
if (*p.s) {
+ av_expr_free(e);
av_log(&p, AV_LOG_ERROR, "Invalid chars '%s' at the end of expression '%s'\n", p.s, s0);
ret = AVERROR(EINVAL);
goto end;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavutil/file.h
^
|
@@ -22,7 +22,8 @@
#include "avutil.h"
/**
- * @file misc file utilities
+ * @file
+ * Misc file utilities.
*/
/**
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavutil/imgutils.h
^
|
@@ -69,7 +69,7 @@
*
* @param data pointers array to be filled with the pointer for each image plane
* @param ptr the pointer to a buffer which will contain the image
- * @param linesizes[4] the array containing the linesize for each
+ * @param linesizes the array containing the linesize for each
* plane, should be filled by av_image_fill_linesizes()
* @return the size in bytes required for the image buffer, a negative
* error code in case of failure
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavutil/lfg.h
^
|
@@ -55,7 +55,7 @@
* Get the next two numbers generated by a Box-Muller Gaussian
* generator using the random numbers issued by lfg.
*
- * @param out[2] array where the two generated numbers are placed
+ * @param out array where the two generated numbers are placed
*/
void av_bmg_get(AVLFG *lfg, double out[2]);
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavutil/lzo.h
^
|
@@ -24,7 +24,7 @@
#include <stdint.h>
-/** \defgroup errflags Error flags returned by av_lzo1x_decode
+/** @name Error flags returned by av_lzo1x_decode
* \{ */
//! end of the input buffer reached before decoding finished
#define AV_LZO_INPUT_DEPLETED 1
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavutil/opt.h
^
|
@@ -134,7 +134,7 @@
* when 0 then no av_free() nor av_strdup() will be used
* @return 0 if the value has been set, or an AVERROR code in case of
* error:
- * AVERROR(ENOENT) if no matching option exists
+ * AVERROR_OPTION_NOT_FOUND if no matching option exists
* AVERROR(ERANGE) if the value is out of range
* AVERROR(EINVAL) if the value is not valid
*/
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavutil/pixdesc.c
^
|
@@ -918,9 +918,9 @@
.log2_chroma_w= 0,
.log2_chroma_h= 0,
.comp = {
- {0,1,1,0,9}, /* Y */
- {1,1,1,0,9}, /* U */
- {2,1,1,0,9}, /* V */
+ {0,1,1,0,8}, /* Y */
+ {1,1,1,0,8}, /* U */
+ {2,1,1,0,8}, /* V */
},
.flags = PIX_FMT_BE,
},
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libavutil/x86/cpu.c
^
|
@@ -113,7 +113,7 @@
if(max_ext_level >= 0x80000001){
cpuid(0x80000001, eax, ebx, ecx, ext_caps);
- if (ext_caps & (1<<31))
+ if (ext_caps & (1U<<31))
rval |= AV_CPU_FLAG_3DNOW;
if (ext_caps & (1<<30))
rval |= AV_CPU_FLAG_3DNOWEXT;
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libswscale/swscale.h
^
|
@@ -247,7 +247,6 @@
/**
* @param inv_table the yuv2rgb coefficients, normally ff_yuv2rgb_coeffs[x]
- * @param fullRange if 1 then the luma range is 0..255 if 0 it is 16..235
* @return -1 if not supported
*/
int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4],
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/libswscale/x86/swscale_template.c
^
|
@@ -2240,6 +2240,10 @@
#if defined(PIC)
DECLARE_ALIGNED(8, uint64_t, ebxsave);
#endif
+ // HACK: gcc 4.6 no longer decrements esp,
+ // use this to make it reserve space for the call
+ // return address
+ void *dummy;
__asm__ volatile(
#if defined(PIC)
@@ -2291,6 +2295,7 @@
#if defined(PIC)
,"m" (ebxsave)
#endif
+ ,"m" (dummy)
: "%"REG_a, "%"REG_c, "%"REG_d, "%"REG_S, "%"REG_D
#if !defined(PIC)
,"%"REG_b
@@ -2312,6 +2317,10 @@
#if defined(PIC)
DECLARE_ALIGNED(8, uint64_t, ebxsave);
#endif
+ // HACK: gcc 4.6 no longer decrements esp,
+ // use this to make it reserve space for the call
+ // return address
+ void *dummy;
__asm__ volatile(
#if defined(PIC)
@@ -2351,6 +2360,7 @@
#if defined(PIC)
,"m" (ebxsave)
#endif
+ ,"m" (dummy)
: "%"REG_a, "%"REG_c, "%"REG_d, "%"REG_S, "%"REG_D
#if !defined(PIC)
,"%"REG_b
|
[-]
[+]
|
Changed |
ffmpeg-0.8.4.tar.bz2/tests/ref/fate/smacker
^
|
@@ -1,5 +1,5 @@
0, 0, 192000, 0x8926d7fc
-1, 0, 47240, 0xad778a78
+1, 0, 47240, 0x9974897c
0, 6390, 192000, 0x2506d384
0, 12780, 192000, 0x9a8dc93a
0, 19170, 192000, 0x4badb7f2
@@ -15,163 +15,163 @@
0, 83070, 192000, 0x1a3d7971
0, 89460, 192000, 0xa1a65bd5
0, 95850, 192000, 0x344957b9
-1, 96408, 3128, 0x4c1564ae
+1, 96408, 3128, 0x7e4064b4
0, 102240, 192000, 0xe23b5f4e
-1, 102792, 3128, 0x34553309
+1, 102792, 3128, 0x80883301
0, 108630, 192000, 0xb5c2710b
-1, 109176, 3136, 0xb474d246
+1, 109176, 3136, 0x2ad2d341
0, 115020, 192000, 0x7a25938f
-1, 115576, 3128, 0x87b868ea
+1, 115576, 3128, 0xda8468e3
0, 121410, 192000, 0x0a84e4c9
-1, 121959, 3136, 0xf1516dc3
+1, 121959, 3136, 0x9d6f6cdf
0, 127800, 192000, 0x94209b0d
-1, 128359, 3128, 0x867563cb
+1, 128359, 3128, 0x1aaa64b5
0, 134190, 192000, 0xf940e51f
-1, 134743, 3128, 0x5200728c
+1, 134743, 3128, 0x9182728b
0, 140580, 192000, 0xb9fdec42
-1, 141127, 3136, 0xeda118a0
+1, 141127, 3136, 0xfa8e17b3
0, 146970, 192000, 0x7b04a376
-1, 147527, 3128, 0x03e2c1d6
+1, 147527, 3128, 0x0dc3c1cf
0, 153360, 192000, 0x5fe0026b
-1, 153910, 3136, 0xc3e862b6
+1, 153910, 3136, 0x0109639d
0, 159750, 192000, 0x775aca39
-1, 160310, 3128, 0x937a13be
+1, 160310, 3128, 0x6d8a12d9
0, 166140, 192000, 0xae14fb32
-1, 166694, 3128, 0x7b1b9577
+1, 166694, 3128, 0x4b9a9597
0, 172530, 192000, 0x661106e5
-1, 173078, 3136, 0x042c7113
+1, 173078, 3136, 0x9112710e
0, 178920, 192000, 0xe8658dbf
-1, 179478, 3128, 0xac48f451
+1, 179478, 3128, 0x8cccf522
0, 185310, 192000, 0x5359f0f9
-1, 185861, 3128, 0x018fbbe9
+1, 185861, 3128, 0x6594bbf3
0, 191700, 192000, 0xc1ec80f4
-1, 192245, 3136, 0xc62aa7ce
+1, 192245, 3136, 0xd878a7d5
0, 198090, 192000, 0xca53806b
-1, 198645, 3128, 0x106e3924
+1, 198645, 3128, 0xaa6e3905
0, 204480, 192000, 0xf0766b2e
-1, 205029, 3136, 0xfeb82ecc
+1, 205029, 3136, 0x2a062e04
0, 210870, 192000, 0x39962da8
-1, 211429, 3128, 0x7e7c005b
+1, 211429, 3128, 0x84e4006a
0, 217260, 192000, 0x4171c37f
-1, 217812, 3128, 0x949d3560
+1, 217812, 3128, 0x85183633
0, 223650, 192000, 0x3abf3b46
-1, 224196, 3136, 0x02bd4aff
+1, 224196, 3136, 0xb62d4b02
0, 230040, 192000, 0xecc68313
-1, 230596, 3128, 0x4aaf4715
+1, 230596, 3128, 0xe209462a
0, 236430, 192000, 0xea339baf
-1, 236980, 3136, 0x2958825f
+1, 236980, 3136, 0x57c4824b
0, 242820, 192000, 0x616b8f16
-1, 243380, 3128, 0x99a5914d
+1, 243380, 3128, 0x664a9163
0, 249210, 192000, 0xf77a8581
-1, 249763, 3128, 0xe67277a4
+1, 249763, 3128, 0xb4287874
0, 255600, 192000, 0xb315678b
-1, 256147, 3136, 0x11296973
+1, 256147, 3136, 0xde626885
0, 261990, 192000, 0x0a4a5218
-1, 262547, 3128, 0x5cc362f7
+1, 262547, 3128, 0x919763c2
0, 268380, 192000, 0x98802be4
-1, 268931, 3128, 0x0c5e6586
+1, 268931, 3128, 0xa4f664e1
0, 274770, 192000, 0xa2f0fd94
-1, 275314, 3136, 0xe940b0f9
+1, 275314, 3136, 0xa0bab0d4
0, 281160, 192000, 0x6671c84f
-1, 281714, 3128, 0x2c9292cc
+1, 281714, 3128, 0xe938939c
0, 287550, 192000, 0x38327e31
-1, 288098, 3136, 0xa807c096
+1, 288098, 3136, 0x3679bfc7
0, 293940, 192000, 0xb85d3e08
-1, 294498, 3128, 0x9d2254d8
+1, 294498, 3128, 0xc96c55c3
0, 300330, 192000, 0xdc69eba9
-1, 300882, 3128, 0xe68015b0
+1, 300882, 3128, 0x119114d6
0, 306720, 192000, 0x8955a0b3
-1, 307265, 3136, 0x65d58029
+1, 307265, 3136, 0x42f3800f
0, 313110, 192000, 0x714a548b
-1, 313665, 3128, 0xcffcc48c
+1, 313665, 3128, 0x4250c4ad
0, 319500, 192000, 0xc0471de9
-1, 320049, 3136, 0x8c704944
+1, 320049, 3136, 0x5cdd4925
0, 325890, 192000, 0x2e16e039
-1, 326449, 3128, 0x1459231d
+1, 326449, 3128, 0xa4c12360
0, 332280, 192000, 0x9fa4b033
-1, 332833, 3128, 0x7dde4839
+1, 332833, 3128, 0x849f48de
0, 338670, 192000, 0x4a0f9402
-1, 339216, 3136, 0xbb6890e2
+1, 339216, 3136, 0x6acd8ff9
0, 345060, 192000, 0x1f3e6843
-1, 345616, 3128, 0xcd9a8524
+1, 345616, 3128, 0xb2758556
0, 351450, 192000, 0x31774850
-1, 352000, 3128, 0xa244fc31
+1, 352000, 3128, 0x10f2fcb1
0, 357840, 192000, 0x9d5336a2
-1, 358384, 3136, 0x504e2bd9
+1, 358384, 3136, 0xf0f02b23
0, 364230, 192000, 0xf7de27a2
-1, 364784, 3128, 0x655858d8
+1, 364784, 3128, 0x64f759c6
0, 370620, 192000, 0x98c717ce
-1, 371167, 3136, 0x46027610
+1, 371167, 3136, 0x7ec075e3
0, 377010, 192000, 0x615b10b8
-1, 377567, 3128, 0x4192d5e3
+1, 377567, 3128, 0xf981d51e
0, 383400, 192000, 0xd5bc0e7e
-1, 383951, 3128, 0x21d2e7fe
+1, 383951, 3128, 0xc622e8b9
0, 389790, 192000, 0xd5bc0e7e
-1, 390335, 3136, 0x7c93e329
+1, 390335, 3136, 0xf632e2f8
0, 396180, 192000, 0xd5bc0e7e
-1, 396735, 3128, 0xa67718c0
+1, 396735, 3128, 0xda561864
0, 402570, 192000, 0xd5bc0e7e
-1, 403118, 3136, 0x9bb6e8a3
+1, 403118, 3136, 0x14d2e888
0, 408960, 192000, 0xd5bc0e7e
-1, 409518, 3128, 0x0933b7a6
+1, 409518, 3128, 0x015bb869
0, 415350, 192000, 0xd5bc0e7e
-1, 415902, 3128, 0x07f1fb57
+1, 415902, 3128, 0xedb1fb62
0, 421740, 192000, 0xd5bc0e7e
-1, 422286, 3136, 0x8a050cfd
+1, 422286, 3136, 0xe0560c41
0, 428130, 192000, 0xd5bc0e7e
-1, 428686, 3128, 0xdb773c0b
+1, 428686, 3128, 0x14773c9a
0, 434520, 192000, 0xd5bc0e7e
-1, 435069, 3136, 0xd1281c53
+1, 435069, 3136, 0x850f1c82
0, 440910, 192000, 0xd5bc0e7e
-1, 441469, 3128, 0x9f395324
+1, 441469, 3128, 0xb0bd5347
0, 447300, 192000, 0xd5bc0e7e
-1, 447853, 3128, 0x5f13edec
+1, 447853, 3128, 0x8f82edbf
0, 453690, 192000, 0xd5bc0e7e
-1, 454237, 3136, 0x871cbecf
+1, 454237, 3136, 0x493abee2
0, 460080, 192000, 0xd5bc0e7e
-1, 460637, 3128, 0x799eff3e
+1, 460637, 3128, 0xf5daff3f
0, 466470, 192000, 0xd5bc0e7e
-1, 467020, 3128, 0x3f902762
+1, 467020, 3128, 0x78ad2690
0, 472860, 192000, 0xd5bc0e7e
-1, 473404, 3136, 0x29f8bb04
+1, 473404, 3136, 0x490ebafc
0, 479250, 192000, 0xd5bc0e7e
-1, 479804, 3128, 0xf3523ee9
+1, 479804, 3128, 0x70333fd2
0, 485640, 192000, 0xd5bc0e7e
-1, 486188, 3136, 0x4405c435
+1, 486188, 3136, 0x8cb1c350
0, 492030, 192000, 0xd5bc0e7e
-1, 492588, 3128, 0x892957cb
+1, 492588, 3128, 0x8bd057cb
0, 498420, 192000, 0xd5bc0e7e
-1, 498971, 3128, 0xdf483dbd
+1, 498971, 3128, 0x161b3dbc
0, 504810, 192000, 0xd5bc0e7e
-1, 505355, 3136, 0x5e8ab797
+1, 505355, 3136, 0xb47fb88a
0, 511200, 192000, 0xd5bc0e7e
-1, 511755, 3128, 0x92e13820
+1, 511755, 3128, 0x474b381e
0, 517590, 192000, 0xd5bc0e7e
-1, 518139, 3136, 0xfde719b6
+1, 518139, 3136, 0x07c519bb
0, 523980, 192000, 0xd5bc0e7e
-1, 524539, 3128, 0x442f17ae
+1, 524539, 3128, 0x15b916c8
0, 530370, 192000, 0xd5bc0e7e
-1, 530922, 3128, 0x011af61f
+1, 530922, 3128, 0x0ed7f6fb
0, 536760, 192000, 0xd5bc0e7e
-1, 537306, 3136, 0x4e3e3a6d
+1, 537306, 3136, 0x54d6397b
0, 543150, 192000, 0xd5bc0e7e
-1, 543706, 3128, 0xc11242b9
+1, 543706, 3128, 0x437242bb
0, 549540, 192000, 0xd5bc0e7e
-1, 550090, 3128, 0x01415b59
+1, 550090, 3128, 0x38f05c4d
0, 555930, 192000, 0xd5bc0e7e
-1, 556473, 3136, 0x302e0e55
+1, 556473, 3136, 0x5d000e59
0, 562320, 192000, 0xd5bc0e7e
-1, 562873, 3128, 0x20522d04
+1, 562873, 3128, 0xdeab2d04
0, 568710, 192000, 0xd5bc0e7e
-1, 569257, 3136, 0x316a697d
+1, 569257, 3136, 0x77de6880
0, 575100, 192000, 0xd5bc0e7e
-1, 575657, 3128, 0x6d75ee27
+1, 575657, 3128, 0xbc87ef25
0, 581490, 192000, 0xd5bc0e7e
-1, 582041, 3128, 0xcb008ae8
+1, 582041, 3128, 0xc1638ade
0, 587880, 192000, 0xd5bc0e7e
-1, 588424, 3136, 0xd2664b51
+1, 588424, 3136, 0xcfb64a5f
0, 594270, 192000, 0xd5bc0e7e
-1, 594824, 3128, 0xdfcab728
+1, 594824, 3128, 0x90b1b826
0, 600660, 192000, 0xd5bc0e7e
1, 601208, 3136, 0x00000000
0, 607050, 192000, 0xd5bc0e7e
|
[-]
[+]
|
Deleted |
ffmpeg-0.8.tar.bz2/doc/ffmpeg-mt-authorship.txt
^
|
@@ -1,4561 +0,0 @@
-This file lists authorship of commits that have been merged from
-ffmpeg-mt. These commits where not classically merged because this
-would have pulled in duplicated history of all commits in ffmpeg.
-Which a majority of developers opposed.
-
-
-commit 002a0939cdf01faa8270d41b3045c08ac12d8975
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Feb 20 20:24:36 2010 -0500
-
- Update todo
-
-commit 0040d6f2ba7189ca9bab4cf17c0d150416391dec
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jan 24 18:33:16 2010 -0500
-
- Remove a malloc() per frame by keeping an array of 32 buffers.
-
- Requested in original review. Should be slightly faster but does
- have a 32-element linear search (since buffers are freed out of order).
-
- Introducing array_next_nonzero or something would speed up this
- and h264 decoding.
-
-commit 00425e98fba903dceecb89763b57b8f3b7a1abf3
-Merge: 20997d6 e320c22
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jul 2 04:59:42 2009 -0400
-
- Merge mainline.
-
- Having to move the setting of key_frame confused me for far too
- long.
-
-commit 0097d3b01e33d1e0f636a19778a0435a730d4590
-Merge: 9e981c8 44c4fd1
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Sep 9 19:19:34 2010 -0400
-
- Merge mainline and libswscale.
-
- Another one coming after h264 is converted to yasm.
-
- Conflicts:
- libavcodec/avcodec.h
-
-commit 00bbca77f3fe0960cbf0986ea214ce022204837c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jan 16 02:18:12 2011 -0500
-
- h264: Early-exit condition for await_references()
-
- Saves even more zero checking in refs[][], although it still leaves many
- useless checks when nrefs[i]>1, because the array indexes are scattered.
-
- About ~.8% faster decoding.
-
-commit 00c4b0bb5a7801d14627015d38762ec314639d3d
-Merge: 63d086d feadf1b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Mar 13 23:50:33 2009 -0400
-
- Merge mainline.
-
- Conflicts:
- libavcodec/avcodec.h
- libavcodec/h263.c
- libavcodec/h263dec.c
- libavcodec/h264.c
- libavcodec/mpeg12.c
- libavcodec/mpegvideo.c
- libavcodec/options.c
- libavutil/log.c
-
-commit 01006069782b1b8fe0bfe0eabe4876062e057c11
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jan 13 01:30:01 2009 -0500
-
- Fix possibly not allocating obmc_scratchpad with PAFF/weighted prediction
-
-commit 011a76824f384a315ce4b0474a2811d463b5746b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Sep 1 00:40:40 2008 -0400
-
- Whitespace and variable name cosmetics for clarity.
-
-commit 02376cec6531a931330798af67c62a029a3435a1
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 11 14:40:27 2009 -0700
-
- Normalize how decode_postinit() is called.
-
- Move it next to the hwaccel call to save an if statement.
-
-commit 031abc50708c616058020dcf7a1b62bc9b895446
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Aug 22 20:43:38 2008 -0400
-
- Improve comments in thread.h
-
-commit 032432ad56fd88a7e9ba6ce9ccd39925854b027a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Feb 20 20:48:10 2010 -0500
-
- Remove FF_THREAD_DEFAULT.
-
- It obviously makes no sense to define the default in a public header.
-
-commit 03980f22907206b52e64439ebcc4445719801035
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jul 11 17:22:22 2008 -0400
-
- Mark functions inline to avoid unused function warnings.
-
-commit 0488ed2d9ff609ec4a6be008c81603b62ce67785
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Jun 4 15:55:00 2008 -0400
-
- Align the stack in decode_frame_thread.
-
-commit 0553196aa797d58f0687890c66e1b1cdfa52f419
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed May 28 00:44:13 2008 -0400
-
- Add the frame-threading support code.
-
-commit 056dce6c969acec1224eaa9fc73d930d1e56b299
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Aug 15 16:44:33 2008 -0400
-
- h264: Redo finding the output frame during header parsing after merging mainline.
-
- This works with PAFF and CODEC_FLAG2_CHUNKS, though the second is useless and should be removed.
-
-commit 05a3af85edd15fef223f0376d3241cc5c7aa3ed5
-Merge: 8ba50a9 fa43cf8
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Apr 19 02:41:54 2010 -0400
-
- Merge mainline.
-
- Conflicts:
- libavcodec/avcodec.h
- libavcodec/h264.c
-
-commit 05e37cada02dc1ac58e7ce93418cbf33e3a09ad6
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue May 27 21:00:34 2008 -0400
-
- Add the AVCodec/AVCodecContext fields needed for multithreading and increment the API minor version.
-
-commit 061586a260a564080be8c1ed9af4e83888fe3543
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Sep 4 01:41:53 2008 -0400
-
- Remove error check that can never fail.
-
-commit 06407ff8706c7fe28c5b925c4b1dd52641714cb9
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jun 16 18:21:04 2008 -0400
-
- Multithreading support for MPEG-1.
-
-commit 065ee0d04a6539c08bddfa1edc628906494c22f2
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Nov 1 12:24:37 2010 -0400
-
- vp3: Report INT_MAX instead of height at the end of a frame
-
- This saves having to clip to height in await_reference_row.
-
-commit 067c30c63499d5cca5613725de936fb70047aec3
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jun 22 03:29:23 2008 -0400
-
- Cosmetics: opening function braces on their own line.
-
-commit 06ac5ac98dbf03889eb7cccf67fe0cb95615613d
-Merge: febe154 987789a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jun 20 04:29:03 2010 -0700
-
- Merge mainline.
-
- Document ONLY_IF_THREADS_ENABLED along the way.
-
- Conflicts:
- libavutil/internal.h
-
-commit 07474003407915e5462ed3582a1dae8baa06f296
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Jun 10 11:25:48 2009 -0700
-
- Move frame_thread_init() down to avoid prototyping its callees.
-
-commit 076bf916d79c39ec055a53f2ee5eadf20c21b988
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Aug 25 14:32:41 2008 -0400
-
- Increase max delayed buffers for safety
-
-commit 079cd64ef92cb1670a420a16e38c645cc8f28caa
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Sep 2 11:38:29 2008 -0400
-
- Ignore codecs returning NULL when draining frames.
-
-commit 090c1f4c99b9c5cefa3bad7698f33516baa87c6e
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Tue Nov 6 13:08:04 2007 +0000
-
- fix predictor initialization for adpcm-ima encoder not to lose first sample
- in block in adpcm-ima decoder
- Patch by Timofei V. Bondarenko: tim commit 09bb0dafa746203f98ff478a5121b3b0ffb3f46e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jul 22 22:20:47 2008 -0400
-
- Switch from MB row to pixel row precision for h264 progress.
-
- This makes it easier to think about interlacing and the deblock filter, and also fixes decoding entirely.
-
-commit 0a51c1e9ebf09d302e44daaca3147e7cca2f0457
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jun 3 16:04:31 2008 -0400
-
- Use threading macros in mpeg12.c.
-
-commit 0ac282b447075a0645036fba56d2881bbcc8f471
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jan 17 03:44:26 2011 -0500
-
- Update multithreading.txt for thread_safe_callbacks and pkt_dts
-
-commit 0b64ceb6b15560313d0a6ac7cffe9270d7b8e0e8
-Merge: 9ec9f08 e220e91
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 10 03:22:51 2010 -0700
-
- Merge mainline.
-
- Conflicts:
- libavcodec/avcodec.h
-
-commit 0b8add0862f841dfc8dbbc8d89dfb3712ce3a698
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Aug 18 16:47:21 2008 -0400
-
- Allow avcodec_default_release_buffer to be called after avcodec_default_free_buffers.
-
-commit 0b8c3d23339b5f646ae702f30141e223596f9ff9
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jul 27 21:55:53 2008 -0400
-
- Reindent.
-
-commit 0be0d5714347f63b0e391ad3e9202f9d5107bb5f
-Merge: f550857 8c00628
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Mar 28 03:40:27 2010 -0400
-
- Merge mainline.
-
-commit 0c73945d0cc40a6ade8ca78dfa0d9bea178f4743
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 19 01:07:17 2008 -0400
-
- Clarify comment for new AVFrame members
-
- They are set by libavcodec even if they aren't used for anything useful ATM.
-
-commit 0cac0f3bd81287db20bbbae5aaff22e381e09663
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jul 13 02:40:22 2008 -0400
-
- Add report/await_decode_progress for progressive H264
- Multithreading works with no visible problems for progressive sequences, but there is still some problem causing framecrc differences.
- 1 thread - 99% cpu 14s
- 2 threads - 183% cpu 8.6s
-
-commit 0cae6d85e8a33b826611ced69902f2a4d16f0c7a
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Fri Jun 1 12:03:33 2007 +0000
-
- A bit more clear FAQ 1.2
- Patch by V
-�commit 0d25fc9993407335bc98b91296f9f78b634dd8a0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jun 24 21:39:39 2008 -0400
-
- Remove newly-duplicated memset().
-
-commit 0e41f7596f06a758c0f1cb9e48e67ef896c5c05a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jul 11 18:09:02 2008 -0400
-
- Reindent.
-
-commit 0ef99ed28b24757a30b1e805f2ff1ea6d90b9b71
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jan 25 03:17:46 2010 -0500
-
- Remove item from todo
-
-commit 0fad6cca0a7e34dfa62c3934eb5316e2c9649e66
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jul 22 01:00:07 2008 -0400
-
- Fix height passed to ff_draw_band for interlaced H.264.
-
- Without this, it passes y 0 h 16, y 32 h 16, etc.
-
-commit 0fb994fbdbf4f985ec9c0d5a681e7a5bf620a765
-Merge: 5eb0c64 ace7af3
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Jan 20 01:58:15 2010 -0500
-
- Merge mainline.
-
- This was done by hand since git can't track the h264/h263 decoder
- splits properly.
-
- Conflicts:
- libavcodec/avcodec.h
- libavcodec/h263.c
- libavcodec/h263dec.c
- libavcodec/h264.c
-
-commit 0ff629947b15955603cdb7978770ca64c2323262
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 18 05:09:01 2009 -0400
-
- Don't call report_field_progress for non-referenced H264 frames.
-
-commit 111fa56db1bfefc245c499f465783a5abc04f7c2
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jul 19 00:12:00 2008 -0400
-
- Set start/end_mb_y properly in MpegEncContext.
-
-commit 115adc279240b6c7155781b5a16177a140eaad4f
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jun 21 23:10:18 2008 -0400
-
- Add an update_context for codecs that just use MpegEncContext.
-
-commit 116ca147f03ca02b55c2fceef7b82c1b251b32f6
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 16 14:10:31 2008 -0400
-
- Merge fallout: move AVCodec additions back to the end of the struct
-
-commit 11b1a8ee92128524a3259903c28da54ffd9a60fa
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun May 30 10:02:16 2010 -0700
-
- Update todo.
-
- I appear to have fixed the bug (the problem doesn't show in test.sh
- anymore). Of course, there might be more.
-
-commit 120d790a3918f77444eed295aec6d8c34e4b532a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jul 17 18:00:07 2008 -0400
-
- Simplify draw_edges changes and handle interlacing properly.
-
-commit 1239bcba12d0c57005ae59405e8b080ac3c7bd65
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Aug 18 18:59:29 2008 -0400
-
- Simplify: store FrameThreadContext in the user's context.
-
-commit 1292a1840bb5319f1438b63b7be35363ba4fe5b6
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jan 13 01:33:47 2009 -0500
-
- Copy width/height between thread contexts for all codecs.
-
- This makes it user-visible and fixes compatibility with
- bad demuxers that don't set it in avctx.
-
-commit 12c5de8ead7c7a1b4c03eb095a2db4357aa2538d
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Thu Jan 3 08:39:38 2008 +0000
-
- Make filterDelimiters and optionDelimiters two static constant array of
- characters, should move them to .rodata.
- Patch by Diego 'Flameeyes' Petten
-� flameeyes commit 1327c17ca423f248dbce8172476dd69208f7d74b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat May 23 21:52:24 2009 -0400
-
- Stopgap hack: don't crash with size-changing streams+frame threads
-
- MPEG1 and H.264 need their own checks, otherwise they immediately
- deallocate shared data and crash. Another check is added to get_buffer
- to cover remaining codecs (although it may not actually do this).
-
- This currently involves ugly code duplication, which can hopefully
- be eventually removed. Unfortunately this is already not handled
- well on mainline (such as in the previous commit).
-
-commit 138ec8aad228862d58582aa4bbd367b7fa7b8d81
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jul 24 16:06:17 2008 -0400
-
- Factor out copying picture pointers in update_context.
-
-commit 13c48792ac24329c9055f6e98b5e61c278f1aa57
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Mar 9 00:02:20 2010 -0500
-
- Fix wrong timestamps with -threads 2 and BBB 1080p Theora
-
- It was caused by adding thread delay to has_b_frames.
- -threads 2 -> has_b_frames 1 -> "delay==1" is true and the
- "invalid dts/pts combination" was triggered. Not sure about this fix,
- but I think it's harmless.
-
-commit 141516ca4f2b0008539ceeb70b46ebb6cfe4a1c0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jun 15 17:44:29 2008 -0400
-
- Cosmetics: use USE_ macro.
-
-commit 14476d56276a77a237834e88b28427fe491ac689
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 16 14:11:41 2008 -0400
-
- Correct AVCodec member comments
-
-commit 14bdf768314413a099fe570891761360733b148c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Mar 9 01:15:03 2010 -0500
-
- Update sws.
-
-commit 14df94ceacecf041d33b8600bc9097d4befd79dd
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Feb 14 23:57:37 2010 -0500
-
- Add a convenience function for avoiding deadlocks with decoder errors
-
-commit 156f6ba4db96f57c3c105b71986acaa9be13d5ab
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Aug 17 00:19:10 2008 -0400
-
- Update todo
-
-commit 16343b25d2ffc7c18a00ec62db8e76d7f8217de5
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Feb 20 22:39:05 2010 -0500
-
- Rewrite comments for new codec callbacks
-
-commit 16b71c003150c3a44135ffa1bbc870ea43c15f7a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Dec 18 14:37:04 2008 -0500
-
- Some todo entries I forgot to add
-
-commit 16bde8c7df438f5283de102e3c872ef309a8d0b5
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 5 00:11:43 2008 -0400
-
- Implement avcodec_flush_buffers for multithreaded codecs.
-
-commit 17b3c2a080f7ec1f548494e0e2b905ad0e2690c0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Aug 18 20:36:54 2008 -0400
-
- Clarify use of is_copy
-
-commit 17d7a98c7aadc2be1ceadf875ae2ca71b08a5611
-Merge: 0097d3b 981f8d0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Sep 29 22:55:44 2010 -0400
-
- Merge mainline.
-
- Fix misplaced lowres check from previous merge. (or maybe it was fine?)
-
- Conflicts:
- libavcodec/avcodec.h
- libavcodec/utils.c
-
-commit 17dcbec74c0630e44029dd5e4efd8f9bb2ddee13
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jul 24 16:51:14 2009 -0400
-
- Fix typo in huffyuv, broke mt decoding with newer huffyuv versions.
-
-commit 17ef916da54e5cbaf2ce97cba565ba4730dcd847
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue May 11 14:39:44 2010 -0400
-
- Cosmetics: remove stray spaces in pthread.c
-
-commit 1846cc0549bf3d45fb2a5a2152b7335c794146e8
-Merge: 5323bc6 cd23ede
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Mar 8 04:30:32 2010 -0500
-
- Merge mainline.
-
- The VP3 decoder has been heavily changed upstream and this commit
- removes mt optimizations. They will be readded later.
-
- Conflicts:
- libavcodec/avcodec.h
- libavcodec/h264.c
- libavcodec/h264.h
- libavcodec/h264_direct.c
- libavcodec/vp3.c
-
-commit 1878dce0e65b2fab94612c950fac51e3de741636
-Merge: b7d1826 2b13612
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun May 24 01:37:21 2009 -0400
-
- Merge mainline.
-
-commit 1884de3ffb775bb23cbfbf977ea48841c2b2ae16
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri May 8 00:15:50 2009 -0400
-
- Correct comment about decoding delay.
-
-commit 18893e1423c3d8a65ca753806638ac160fefe342
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Oct 23 18:13:56 2010 -0400
-
- Add a -vsync test to test.sh.
-
- The files x-1-vsync.txt and x-3-vsync.txt should have the same MD5.
- Even more ideally, all files should have the same MD5, but it's not our problem if they don't.
-
- h264 and theora pass, didn't test others.
-
-commit 18dc6b6010200c45827d14594a5d7b7b2b28d8e0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Aug 6 20:31:04 2008 -0400
-
- Move ff_frame_thread_init above its uses and make it static since it has only one caller.
-
-commit 190d65b24795208e30c06369e34769ffeb9b5cc8
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Aug 24 01:31:00 2008 -0400
-
- Add a longer comment for update_context
-
-commit 19b159260eb5eddfd296cac179d59ba218f881ac
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jan 21 01:22:43 2011 -0500
-
- Adopt pkt_pts/pkt_dts in lavc clients
-
- This makes DTS reliable with threads.
-
-commit 1a0d8d0cd0d7d0dc44d1747b2c8c93c73bc09cd8
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jan 4 03:59:20 2010 -0500
-
- Note in todo that 'make test' doesn't pass ATM.
-
- Also note a harmless warning emitted, which I haven't
- though of a good fix for yet.
-
-commit 1a216093ed2f201814287a32b5d8f22781c6d8d1
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Aug 25 01:02:29 2008 -0400
-
- Comment another strange line
-
-commit 1a4740fed38a69202c762e3cd786dd3c7c23dd40
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jan 15 17:02:46 2011 -0500
-
- Make ARM asm #error out, since the offset values are out of date here
-
-commit 1ac02d2ff0dd39d8baf68cf7e0490de4db9b88cc
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jul 10 14:24:40 2009 -0400
-
- Fix the error in avcodec_thread_init to actually not do anything.
-
-commit 1b735c493b0fe8c1aaff3d06214c24e8556b111c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Aug 25 14:40:54 2008 -0400
-
- Remove some context variable copies which were overwriting user settings
-
-commit 1b755181905bed35b2edd723c137b8f0af9c31c3
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 23 23:14:20 2008 -0400
-
- Add a FIXME for PAFF
-
-commit 1c187ba01c332b3d99681cfffb90f0247a836303
-Merge: 8022069 0309093
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Nov 15 05:32:06 2010 -0500
-
- Merge mainline.
-
- Conflicts:
- doc/APIchanges
- libavcodec/avcodec.h
-
-commit 1c39407876cb6689e313ce27a51d83d77ac0c4e4
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun May 23 03:40:43 2010 -0400
-
- Fix crash with ffplay.
-
- Caused by the buffer functions being changed after codec init.
-
-commit 1c70dfb14a5e6e322f66d1175045eb13ac96d2f8
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Feb 20 22:10:38 2010 -0500
-
- Rewrite thread.h comments for clarity
-
-commit 1c8037ec029ffe790b39b0cf0e67468db5f8c4a8
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jan 25 03:59:02 2010 -0500
-
- Fix references to renamed avail_motion() in the todo.
-
- Delete the second entry mentioning it, since I don't think it's a
- good idea anymore.
-
-commit 1ca44079c06a2080c2a0deb9cbc8fa757a5be540
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jun 15 20:34:08 2008 -0400
-
- Delete unused variables. The frame counters will stay around for now for debugging.
-
-commit 1d15df4fd2b4583d56159a7938ef3699c7f46261
-Merge: 8f759fa b3b80f1
-Author: Luca Barbato <lu_zero@gentoo.org>
-Date: Sat May 31 17:56:44 2008 +0200
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit 1da82befe53bc245ba94cf1012fcd0156040353c
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Mon Jan 7 12:40:39 2008 +0000
-
- Remove unused symbol.
-
- Patch by Diego 'Flameeyes' Petten
-� flameeyes commit 1e8abec2eecd831c55e34c09fc9a38833d69c180
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jul 10 14:28:54 2009 -0400
-
- Fix default value of thread_count.
-
- Adding a flag named "threads" somehow disabled the default value
- of the option named "threads", which allowed thread_count to be 0
- for non-ffmpeg/ffplay clients (which don't always reset it).
-
- Not sure why AVOption works this way.
-
-commit 1eff8ec8e1772334cd74129f8cc068483c757b40
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Fri Aug 10 07:28:18 2007 +0000
-
- Prefix with "opt_" the functions ffmpeg.c:show_{version,license,formats}.
- patch by Stefano Sabatini [stefano tod sabatini-lala commit 1fae9e952cee3c499313b5a9b5c2e3dda096ee30
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Mar 10 01:44:05 2011 -0500
-
- Delete the libswscale submodule for svn->git merge.
-
-commit 2037d9714bc51ccb57a82aba95a52a5b49bdc401
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Aug 24 21:16:50 2008 -0400
-
- Comment this just in case someone doesn't get it
-
-commit 2063f77f904af3544021e16d6da76acf5d9beaed
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Nov 15 05:40:04 2010 -0500
-
- Delete beosthread.c which is gone from mainline
-
-commit 207f434446b40b29311e81233167bd03de16bf0c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Jul 30 20:14:56 2008 -0400
-
- Cosmetics: whitespace adjustments.
-
-commit 20997d60c8ec84dd0dd68055901e847c4b4e171a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jun 27 22:33:17 2009 -0400
-
- Frame threading for VP3 [2/2].
-
- The performance with different thread counts is different from
- MPEG codecs; trying more or less granular synchronization would
- be interesting.
-
-commit 20a85842c46b547331c5884e015dd781108c6d17
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Oct 11 16:43:39 2008 -0400
-
- Save PAFF vs MBAFF information for pictures.
-
- This already exists differently in mainline, but this way is more useful
- since MPEG-2 has field pictures but not MBAFF.
-
-commit 20d6c336b37a7bf7313865a397f19ef33595adf8
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Dec 23 17:49:51 2008 -0500
-
- More todo entries
-
-commit 210b4a63100e5f4ba5ab23e84460614ca59b7817
-Merge: fc957c7 59b0bd5
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon May 24 22:26:23 2010 -0400
-
- Merge mainline.
-
-commit 21cede4223d4bcfcc0f6a91bbc84354238201fea
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Apr 19 03:30:45 2010 -0400
-
- Fix possible overlapping memcpy()+crash at the end of decode
-
- Increasingly dissatisfied with having to do this.
-
-commit 22a56df3f22e5c32c5f2fd06db8d644157da1877
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jul 14 23:12:17 2008 -0400
-
- Remove dead code.
-
-commit 22d953bd1ef2b61ec272be03aa8f81587e0ac046
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Jun 25 04:54:34 2008 -0400
-
- Remove zeroing mbskip_table
- It's unnecessary with the previous commit.
-
-commit 22e9455a663acc4d34f76130f2603b41b3940b9e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Aug 22 16:25:45 2008 -0400
-
- Comment and rename context variables in pthread.c.
-
-commit 2331711a5ff0908a37005a0e500804a5a8a61e5d
-Author: Michael Niedermayer <michaelni@gmx.at>
-Date: Wed Apr 6 00:15:42 2011 +0200
-
- Fix ffmpeg-mt fixme in h264
-
- Uncommenting this code no longer seems to cause valgrind problems or crashes.
- Behavior is unchanged.
-
-commit 234887b836f9b0306388d20499c8025ac916e11b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 19 21:17:15 2008 -0400
-
- Normalize if (err)
-
-commit 2412ad4778734a19638c997d5567f5d53d135a9a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jan 17 15:57:00 2011 -0500
-
- pthread: Document release_delayed_buffers
-
-commit 24345e509df0b92a3592cfb15db12b1aecd78ffe
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 26 02:26:07 2008 -0400
-
- Fix spelling and rewrap multithreading.txt to the right number of columns.
-
-commit 2485cfd74cf5012fdce8582b7094ddbd09bd70c9
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun May 24 03:38:22 2009 -0400
-
- 10l: pred_direct_motion fix missed several mb_type accesses
-
- I have not proven this correct yet; it's not too hard with some work
- (record the last row accessed and waited for, and make sure they
- correspond). Therefore, I suspect it still isn't correct, since
- framecrc still shows mismatches. It does fix the worst visible
- errors, though.
-
-commit 25a2f117ad6d6dc2592e77369bed23e53241b218
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jan 21 03:24:41 2011 -0500
-
- Cosmetic: shorter line variable declaration
-
-commit 26151296236e0381c1c40e0d97ead8c5ab26b57c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Nov 2 02:33:12 2010 -0400
-
- vp3: Lift up loop-invariant checks and simplify away 'border' which == 1
-
-commit 27026500c9a25bf409b55186d9bceada4bf2ba5c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jul 19 02:09:18 2008 -0400
-
- Fix mpegvideo crashing without --enable-pthreads due to the number of thread_contexts changing.
-
- -threads X no longer has any effect since all threading code is now gone without an actual threading library.
- I think this is a nice minor size optimization, but if it's necessary to keep regression tests working with frame-threaded encoding I'll have to revisit it.
-
-commit 2742b2a142ff98e4611f96ddf47ab5a5233f4692
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Thu Jan 10 10:15:07 2008 +0000
-
- Reduce the size of the replaceTable entries.
- Patch by Diego 'Flameeyes' Petten
-� flameeyes commit 287e761820e85514e00eb6c5958496ecb61825cb
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Dec 24 22:21:37 2009 -0500
-
- Fix error return being ignored in VP3 allocate_tables().
-
- Based on a patch by Yuriy M. Kaminskiy.
-
-commit 29c2b04f5074e49aa63cf50fb90e3a51e853ad9d
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Apr 4 00:35:28 2009 -0400
-
- More todos related to init api
-
-commit 2a7a86a64f153befafabcbb987e2793fa4bb0e18
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jun 27 22:17:41 2009 -0400
-
- Split out error returns in VP3.
-
-commit 2a9b493a5a0f46f43959ce2466849dd6a6217012
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Feb 2 02:12:29 2011 -0500
-
- Fix memory abandonment + unnecessary realloc in mpeg4
-
- Fixes Sample1.mkv from ffms running out of address space (and more).
- Note the file doesn't display properly in ffplay, so there's still bugs left.
-
-commit 2ae310bf292c1f34be006e9be7fbceb4c0f1b068
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jun 3 04:20:42 2008 -0400
-
- Comment next_*_index.
-
-commit 2b74560715c3d4f331156d8745ce801c1de4d467
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Nov 18 14:31:17 2008 -0500
-
- Revert accidental warning change
-
-commit 2b7d2acccb45e89bfc77564bcdaee68fcb4ac4c7
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Feb 1 23:05:43 2011 -0500
-
- Revert 99ed04d4d7b7183a4d0a1b8833eee3b506e13ff0
-
- Broke big_buck_bunny_720p_stereo.ogg with 2 threads.
-
-commit 2bbb64dae018cbb09ea47a6bdcb184f551136c26
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Dec 15 16:15:21 2010 -0500
-
- Fix definition of CODEC_CAP_FRAME_THREADS to not conflict.
-
-commit 2bc23e009291d727eed7a4f803a2793f5fa715b0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 26 03:03:38 2008 -0400
-
- Update avcodec.h comments
-
-commit 2bcbffdbf53bd2918ba6ade66d12fb97021032c7
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jun 15 20:26:59 2008 -0400
-
- Combine all the condition variables into one.
-
-commit 2beb042a202d00dbb2baef3970f058994aeec027
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 23 19:32:56 2008 -0400
-
- Split thread_algorithm into two more sanely defined variables.
-
- Also improves correctness in some ways.
-
-commit 2c0e016af759adfdc34a6a1b8592ec0a1ef56da9
-Merge: d5ea5fc c2c8552
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu May 7 17:36:13 2009 -0400
-
- Merge mainline.
-
- Uses the minimal changes to get the new AVPacket API working.
-
- Conflicts:
- libavcodec/avcodec.h
- libavcodec/h264.c
- libavcodec/mimic.c
- libavcodec/options.c
- libavcodec/utils.c
-
-commit 2c3cd96bf1cb1757407c973416f7928d492e2156
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Aug 18 22:59:19 2008 -0400
-
- Cosmetic rearranging of MPEG update_context functions
-
-commit 2cb0db5ba7d77ed8180f0551462c836047ea262e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 18 16:19:33 2009 -0400
-
- Fix invalid Mimic stream handling + frame threads
-
- Releasing a frame after frame_setup_done isn't allowed, and
- it must do report_decode_progress as if it was finished.
-
-commit 2d0370118996148f1c64b9c6b4a2ff632fcaf609
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Aug 31 03:56:04 2008 -0400
-
- Add fixme for copying packet data.
-
-commit 2e121780400cb6630a66a0b7bd3fe84ad539b882
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jul 11 18:21:08 2008 -0400
-
- Increase the released buffer size to 16. H264 can release this many at an IDR, can other codecs have even more?
-
-commit 2e5a5baf540ae0d1ac16ae52f66254b7233aabf7
-Merge: 5d82241 31f0027
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Mar 29 04:35:46 2011 -0400
-
- Merge branch 'master' of git://git.libav.org/libav
-
- Conflicts:
- libavcodec/dsputil.c
- libavcodec/mpegvideo.c
- libavcodec/snow.c
- libavcodec/vp8.c
- libavcodec/x86/dsputil_mmx.c
-
-commit 2e9d8893eac232b782b479378cf13d484ab9cc1e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed May 28 22:49:33 2008 -0400
-
- Add thread.h
-
-commit 2eeab8f6ad07611e46b3377ddf73e1d7f1f2bb78
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Aug 24 21:16:31 2008 -0400
-
- General description and porting guide
-
-commit 2f1fec650f4bb351fa819fb7e11b4766a43fa30f
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 19 01:20:32 2008 -0400
-
- Simplify mimic_decode_end changes
-
-commit 2f48eac011767ba2d60329c10a22499c228a31d8
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Nov 18 15:27:24 2008 -0500
-
- Missed fixing pthread.c in merge.
-
-commit 2f8f77021011eec5af8cab80ee7bdc574ad3f37b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jan 21 03:01:42 2011 -0500
-
- pthread: Style and comment nitpick for validate_thread_parameters()
-
-commit 300b5819426ed6b35aaa480502070382e5295111
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Aug 17 14:07:06 2008 -0400
-
- Copy aspect ratio info between contexts.
-
-commit 3029628ce39e37c9ae77cb78f22ab9d4846e6610
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Aug 31 15:15:15 2008 -0400
-
- Fix compiler warnings
-
-commit 303cd6307958792faac1ce8c8c81eea2651b002f
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 19 18:31:17 2008 -0400
-
- Use MPV_report_decode_progress in mpeg12, and call it before mb_y++.
-
-commit 30e540672df8523a47013d92592b744459040904
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Oct 13 15:00:39 2008 -0400
-
- Make every thread lock the same buffer_mutex for get_buffer.
-
- Otherwise it isn't actually protecting anything...
-
-commit 3106e8ebe7c55eba3e41f3a11cc23eb249a4ff3b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jul 14 23:09:47 2008 -0400
-
- Always set thread_context[0] in MpegEncContext.
- This fixes mpeg* encoders always crashing, but most of the regression tests are still failing.
-
-commit 3127a4bd6e36bb2d9cd2fe12a96fa776d94fed94
-Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Sat Nov 2 10:47:44 2002 +0000
-
- added BeOS net_server support (R5 network stack), basically the same
- problems as with winsock (sockets != fd), and the broken select().
- based on older patch by Andrew Bachmann.
- patch by (Fran
-commit 314c2b1d2f94be3b6aca3dd1ae0f30c05f10f2ee
-Merge: 9816b66 bd8850b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Feb 17 22:41:31 2009 -0500
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
- Conflicts:
-
- libavcodec/avcodec.h
- libavcodec/mimic.c
- libavcodec/mpeg12.c
- libavcodec/mpegvideo.c
-
-commit 314e5630e389457319ff2d11e856fab6b1d8b250
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Mon Jan 7 12:47:14 2008 +0000
-
- Move wmv1_scantable to .rodata section by making it an array of arrays.
- Patch by Diego 'Flameeyes' Petten
-� flameeyes commit 31e3f669b598302b2a487dab84e08bf4d1e79983
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu May 7 18:06:52 2009 -0400
-
- Fix mplayer patch's calculation of extra delay.
-
- It's only (num_threads-1) frames with MT on, not num_threads.
-
-commit 31f1a603dcfe885c41d123832f102a3ccc55c6dd
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Aug 24 00:20:03 2008 -0400
-
- Rename threading functions with 'decode' in their name
-
-commit 333777b56b942a11db5d672433357bcbbf0d6e47
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 19 01:14:48 2008 -0400
-
- Cosmetic changes to mimic
-
-commit 33bc3cc94a5a6e2679306da899afb1e0ce6b78c6
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Aug 14 14:01:15 2008 -0400
-
- Reindent.
-
-commit 3444ffe523dd65b788791dfb2c6cbd7031cfec97
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Aug 6 20:24:44 2008 -0400
-
- Cosmetics: rename last_thread to prev_thread to avoid final vs. previous confusion.
-
-commit 344df336a0b5e70ef9fcea33f612f759bc045552
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Apr 19 03:31:30 2010 -0400
-
- Reindent
-
-commit 3547c7f44108f1080f90de1844c36fb172528994
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Feb 20 19:40:48 2010 -0500
-
- API simplification: remove ff_report/await_frame_progress()
-
- The field variants are enough.
- Note that mpegvideo.c thread code doesn't need to support any codecs
- with field pictures.
-
-commit 3630d89a7bd6443f9aeda2f6997fb2ea5da5c97d
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Dec 18 12:36:20 2008 -0500
-
- Copy dequant4/8_buffer between H264 decoding threads.
-
- Fixes at least:
- MSG00 ED.mkv
- freedom EP1 sample.mkv
- made with unknown encoders.
-
-commit 36977df5243521eaa3ab1b67f3c89d1a1ba4c8f7
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Aug 18 22:03:25 2008 -0400
-
- Move copying idct_algo to the right place
-
-commit 379271216e0d522b675e97189ab5d4e5cf7f5f70
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Apr 19 03:35:28 2010 -0400
-
- Update todo.
-
-commit 37b38ff868fa39f75df9c1bd543fd1c2dc7134ae
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Feb 20 20:31:16 2010 -0500
-
- Update the comment for FF_THREAD_FRAME.
-
-commit 382e06ef4ba568c565b9d67b33b1688a32b2b80e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue May 11 06:21:06 2010 -0400
-
- pthread: Use av_fast_malloc to allocate the frame buffer
-
- Also delete the FIXME; it's impossible because the AVPacket memory
- API doesn't actually work.
-
-commit 3934d02026fb67b46441176c4160c0f854c12825
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jul 21 18:10:58 2008 -0400
-
- Reindent.
-
-commit 39eee0b91b9b6b75c54ff68d51ecc0ba1816c88f
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jun 22 03:36:24 2008 -0400
-
- Multithreading support for MPEG-4
- This requires more parallelism barriers than usual because of the horrible skip MB structure in B-frames.
-
-commit 3ad85b1741ca6d36126bbf674f5b82d550107bae
-Merge: ff4c627 4495490
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Oct 6 16:12:06 2009 -0400
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
- Conflicts:
- libavcodec/avcodec.h
- libavcodec/mpegvideo_enc.c
- libavcodec/snow.c
- libavcodec/vp3.c
-
-commit 3afd3f52b940d0bfa756e1a7496a20d103c5a7f0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jul 25 03:25:00 2008 -0400
-
- Merge MPV_update_picture_pointers() into its only caller.
-
-commit 3ba8143c5da92197eb45fa120bfa95b38adfd3bf
-Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Sat Nov 2 10:35:07 2002 +0000
-
- added BeOS net_server support (R5 network stack), basically the same
- problems as with winsock (sockets != fd), and the broken select().
- based on older patch by Andrew Bachmann.
- patch by (Fran
-commit 3bac11e47a0ec7c6036c53a1173bce276abccfeb
-Merge: 53fff22 3d42d49
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Apr 9 21:30:16 2011 -0400
-
- Merge mainline.
-
- Conflicts:
- libavcodec/h264.c
-
-commit 3bef1503e0f23c0f30c2e3b2de64a9b2618807d2
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jun 27 16:18:44 2009 -0400
-
- Add debugging hooks to show ff_report/ff_await calls.
-
-commit 3c3a3648317737830fc863371b455624d093f8e6
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Oct 18 17:39:17 2008 -0400
-
- Fix possible null pointer access after seek.
-
-commit 3c7a8d94b97003b118c2438343d06ad7cf26198a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Mar 9 00:04:51 2010 -0500
-
- Reimplement VP3 multithreading.
-
- Synchronization is now not very fine-grained, because it reuses
- vp3_draw_horiz_band which runs every ~64 pixel rows.
-
-commit 3cfd7b2e788c3d8e31c91ed529f3e3730f836395
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jun 23 23:14:05 2008 -0400
-
- Wrong kind of #if.
-
-commit 3f7521893b9072181763ea176ef8da0c0ad1922a
-Merge: ed42183 206c937
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Oct 10 01:47:32 2010 -0400
-
- Merge mainline.
-
- API change: CODEC_CAP_FRAME_THREADS is now defined as 0x800.
-
- Conflicts:
- libavcodec/avcodec.h
-
-commit 3f858091f8f3cd43f1eed396e85f6956ee5068a0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 19 02:35:52 2008 -0400
-
- Fix losing frames at the end of an encode
-
-commit 3ffe81697018042b27a31f20c1d30c988b688d60
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 12 18:22:42 2008 -0400
-
- Reindent.
-
-commit 401a6bc7f0fe26963f63778c5092ae96c4262634
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 25 19:07:58 2009 -0400
-
- Frame threading for VP3 [1/2]
-
- update_context function and compatibility fixes.
-
-commit 40265f10de7698bb2fe23857cf261a0f04fe18a1
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Oct 13 14:19:27 2008 -0400
-
- Fix edge drawing for non-mod-16 files.
-
-commit 4074c8bfba918988029ce106eda3d41486f12966
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jul 12 00:11:35 2008 -0400
-
- Copy more MpegEncContext variables.
- These are needed for proper DivX/H.264 decoding.
-
-commit 40ffd3a664e36f44ebdf4d2603e42c7c59502599
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jul 23 21:40:06 2009 -0400
-
- 100l, fix compile error introduced by automerge
-
-commit 4118a72e28be1cee657561a1f45dc3ce160dbf07
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Mar 10 02:46:14 2011 -0500
-
- Update todo.txt
-
-commit 41e0f81a58493a0a15cb18c7ff00920f0fd124a3
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Aug 24 02:52:18 2008 -0400
-
- Remove unneeded stubs from thread.h
-
-commit 4259f9fcf4edc5c92bc02d37d85493b3eb917075
-Merge: 2615129 fb61692
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Nov 2 02:36:20 2010 -0400
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit 4293f5ba301cd751257705bfe6fc8b12337dccab
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jul 14 23:20:17 2008 -0400
-
- Disable multithreading for packed B-frames.
- The bitstream buffer is updated after decoding, so it has to be changed to find the frame end before starting the actual decode. Assuming that's not too slow.
-
-commit 42b521db9177ed2d4e62845659fdcd44c59757f9
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri May 8 00:40:57 2009 -0400
-
- 10l: dequant_coeff must be copied along with dequant_buffer
-
- Fixes more Blu-Ray streams which change CQM, including Slumdog
- Millionaire.
-
- Noticed by Haruhiko Yamagata.
-
-commit 435ace7689e2794ddbb4013de097bdaf487f7365
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Apr 9 21:47:12 2011 -0400
-
- Update test scripts to use ffmpeg instead of ffmpeg_g
-
-commit 435adcd213762869c6a6f806481450216720b364
-Merge: 6ee99a7 11dcccd
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Mar 10 01:25:24 2011 -0500
-
- Merge remote-tracking branch 'socrep/last_mainline_point' into last_git_point
-
-commit 451af22792e7bec6f3b347ba801ba186102a85da
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jul 14 04:13:33 2008 -0400
-
- Call draw_edges per-MB-row instead of per-frame when possible.
- This is necessary for multithreading, since rows aren't complete until their edges are mirrored.
- It should also be somewhat more cache-efficient, but I haven't benchmarked it properly yet.
- I don't like adding new MpegEncContext variables, but edge_y lets it do the right thing wrt. error resilience and codecs that don't call ff_draw_horiz_slice.
-
-commit 452fb04633126605afbb2cd0d6383bb75fe01f38
-Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Fri Nov 8 20:54:44 2002 +0000
-
- ringbuffer patch by (Fran
-commit 4681ac8f618586d4a3ecb04784b9cf896d070f1b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue May 11 14:43:29 2010 -0400
-
- Cosmetics: vertical alignment
-
-commit 468eba33060aa87117ac6b617d4eae776951cbf6
-Merge: 3c7a8d9 aa86abc
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Mar 9 00:55:42 2010 -0500
-
- Merge mainline.
-
- The error condition in vp3_decode_frame was uglified to make the
- diff simpler.
-
- Conflicts:
- libavcodec/vp3.c
-
-commit 46a45ad599db4037006b335fca2c7b7bed7018ab
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 2 00:22:16 2008 -0400
-
- Clear thread variables in avcodec after freeing them.
-
-commit 46b495ebc4a7fb7662580791e4ed10130b00fead
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 12 17:16:31 2008 -0400
-
- Don't allocate duplicate contexts if they're not going to be used.
-
-commit 46ec6b90e7b2d6b1d83a207025a691c56176d686
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jun 16 18:21:04 2008 -0400
-
- Multithreading support for MPEG-1.
-
-commit 46fc25f5c225e2f33430e31a0d0ad375455e9cef
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Nov 1 12:20:12 2010 -0400
-
- Update todo.txt
-
-commit 473799e0c3b647d73046c3b4de30e85bf57ba610
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 19 21:16:59 2008 -0400
-
- Whitespace fix
-
-commit 47869edb7f0aede0a2bfd178ef9937e28bf8b01f
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Feb 14 23:41:12 2010 -0500
-
- Fix buffer leak in VP3 by allowing update_context() with the same context.
-
- I assumed update_context() would only be used to copy values, so skipped
- calling it with duplicate parameters (during flush and free) for optimization.
-
- But VP3's release_buffer call was moved from the end of decoding to the
- end of update_context(), so flushing would skip releasing a frame and
- eventually run out of buffers.
-
- Unfortunately this makes update_context() much uglier in codecs that
- already worked, because memcpy doesn't allow src and dst to be the same.
-
-commit 480a82da7912bc5034a4b0bc2090879920567521
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Sep 30 01:13:43 2010 -0400
-
- Update todo.
-
- ffplay/ffmpeg support for better a/v sync support is in progress.
- If Theora uses PTS (I think it does), then once ffmpeg.c i
- ready it can be submitted to mainline.
-
-commit 4845b04ed3d6bc513a272da718629d110bc8186f
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Mon Jan 7 12:43:04 2008 +0000
-
- Mark the tables in g726.c as constant.
- Patch by Diego 'Flameeyes' Petten
-� flameeyes commit 485d8e9e3c5de803075c8440922e6e09b10a1e57
-Author: Alexander Strange <astrange@resnet-022-195.spsu.edu>
-Date: Sun Sep 14 20:45:58 2008 -0400
-
- Fix ff_report_*_progress side of H264 multithreading and merge draw_horiz_band into it.
-
-commit 4874d258345ec305b0eca78c41491878d42a900d
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue May 11 14:45:39 2010 -0400
-
- Cosmetics: reorder variable declarations
-
-commit 48d2183d902db7cc42c9f84d2bad6eccc35d0221
-Author: Ronald Bultje <rbultje@google.com>
-Date: Mon Apr 11 14:58:11 2011 -0400
-
- Release unused pictures even when not calling ff_h264_frame_start()
-
- Unused pictures assigned to the thread can build up and cause it to
- run out of buffers if the thread only ever decodes bottom field pictures.
-
-commit 48d7f5a8f3f14535d74f0e4b0a736e3f5dc336b2
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Aug 18 19:58:18 2008 -0400
-
- Factor out freeing delayed released buffers.
-
-commit 49652059c673eb977e5b69ffb0c8a543c3210e16
-Merge: a2efd25 48e59eb
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jan 15 17:01:41 2011 -0500
-
- Merge mainline.
-
- Conflicts:
- doc/APIchanges
- libavcodec/avcodec.h
- libavcodec/h264.c
- libavcodec/utils.c
-
-commit 4969bb89e592c003a560e321f3cacb412a192db9
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jul 31 14:30:40 2008 -0400
-
- Copy avcC variables in H264Context.
-
-commit 496ec27adcef84278e650b29f4d22aba383d705a
-Author: Alexander Strange <astrange@resnet-022-195.spsu.edu>
-Date: Sat Sep 13 16:20:03 2008 -0400
-
- Correct interlaced draw_edges.
-
- There is still a race condition when fields are decoded in different threads,
- so for now we pretend EMU_EDGE is set instead of using the edges.
-
-commit 498ddbb3b2d78819540c1b8fff9a2bc495a33346
-Merge: aaa05da 95b6213
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Nov 3 18:34:04 2010 -0400
-
- Merge mainline.
-
- Conflicts:
- libavcodec/avcodec.h
-
-commit 49e377f9f23904ed790e98175b1575bba6ecc6cb
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jul 15 03:30:28 2008 -0400
-
- Add update_context() for H.264.
- This seems to lose reference frames for my PAFF sample, which I'll fix after I find out how PAFF works.
-
-commit 4adb7fbed7dcb12dda0f3919188334a3b96efb0a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Aug 18 20:02:12 2008 -0400
-
- Cosmetics: get rid of unhelpful comments, useless braces, and some whitespace/align issues
-
-commit 4af5480a021156089c193ce2215994cfd170e4e6
-Merge: 2f48eac 1bf5327
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Nov 28 22:48:24 2008 -0500
-
- Merge mainline.
-
- Conflicts:
-
- libavcodec/h264.c
- libavcodec/mpegvideo_enc.c
-
-commit 4b9ce55576ab27f6a45d542bfda7c1e21fb967f8
-Merge: 1fae9e9 435adcd
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Mar 10 01:54:16 2011 -0500
-
- Merge branch 'git_equiv_of_mainline'
-
-commit 4c726e5e30e1f48619eecbec5442acd63e895318
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed May 28 22:40:30 2008 -0400
-
- Rename pthread.c to thread.c
- The remaining *thread.c files will be merged into it later.
-
-commit 4c802e44f13672dd4527f51fc2f07a1e21be4a5c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jun 2 04:31:45 2008 -0400
-
- Simplify ff_await_decode_progress.
-
- Always set and allocate the progress pointer, so ff_await_decode_progress doesn't have to check for threading to be on.
-
-commit 4cdd15a3cf5dfec32ace278cd445f04130ddbee0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jan 15 19:26:14 2011 -0500
-
- pthread: Call external get_buffer() on the client's thread by default
-
- This fixes several mplayer VOs that crashed when they were called from decoding
- threads.
-
- Not a complete fix as mplayer still doesn't work right with draw_horiz_band()
- being called from decoding threads, but that doesn't crash at least.
-
-commit 4d2f536b72ec9121b5afe858b69c93d9cc75f20a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 30 04:20:20 2008 -0400
-
- Simplify draw_edges changes by removing edge_y (which is useless with slices)
-
-commit 4d8525ab388d34e128629b08ab88c6a16f3aa406
-Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Sun Jul 21 07:59:17 2002 +0000
-
- nanosleep patch by Fran
-commit 4edb9a7f780a6eaef36512724e6a34c3f38d67ce
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Feb 15 00:31:31 2010 -0500
-
- Disable mpeg1 frame threading.
-
- Seeking doesn't work (it triggers false error conditions) and it doesn't
- pass test.sh (-threads 2-4 match but 1 doesn't somehow). Will be reenabled
- when those are fixed.
-
-commit 4f9364563f388af84b9a02930b375ff52eee1394
-Merge: 3bac11e 347b375
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Apr 9 21:30:47 2011 -0400
-
- Merge branch 'master' of git://git.libav.org/libav
-
-commit 4fb1fdf1ca1a48aff176b8f833ca596d245d6d36
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jul 15 03:30:50 2008 -0400
-
- Reindent.
-
-commit 4fb33e68ec34cbc135ce4ebb86f7e1399ba97115
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jun 23 22:11:58 2008 -0400
-
- Merge statements.
-
-commit 5022ee29ac6d4b2ee992115c3bf997e7bd1ab7a4
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 5 20:30:27 2008 -0400
-
- Add delayed_release_buffer for handling reference frames.
-
-commit 5066a4656963dd3b4e847a540353bf71d318de14
-Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Tue Nov 5 00:07:05 2002 +0000
-
- lrintf detection (based upon a patch by Fran
-commit 50d1ce2db57e39b6115642d3c4397e9f67f758e3
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun May 24 00:08:03 2009 -0400
-
- Call codec init at a more reasonable time.
-
- Previously it was delayed until the first decode_video() call,
- but it can be moved into avcodec_thread_init(). This makes pix_fmt
- available to clients after init again, which should make them happier.
-
-commit 50eaf4979eb085e2c58c06912bb0c885404d4470
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Aug 28 17:39:28 2008 -0400
-
- Simplify changes to non-pthreads and don't call thread_init from open if it was already called.
-
- This will cause an assert failure if clients call thread_init again after open.
-
-commit 51428e56c71512a57f81d85acee3ced7cc0d2983
-Merge: 00425e9 03586fd
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jul 4 16:41:31 2009 -0400
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit 517d68c2642aee3c14fc71031c1e44c0803a664e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Mar 8 04:43:06 2010 -0500
-
- h264: change the definition of col_fieldoff to avoid divisions
-
-commit 5186276ed120294fb6a4f2cf5a40d5019012482f
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jan 16 22:01:18 2011 -0500
-
- libavfilter input_get_buffer is thread-safe
-
- Slightly faster ffplay playback
-
-commit 51ead6d2c40c5defdd211f435aec49b19f5f6a18
-Author: Ronald Bultje <rbultje@google.com>
-Date: Mon Apr 11 10:14:38 2011 -0400
-
- h264: Fix decoding race condition with PAFF
-
- A thread can release a Picture and immediately reuse the same Picture
- for a different frame. This is fine, unless the picture released was
- a field-picture. In that case, there may be a future thread still decoding
- the second field of the picture, and reusing it overwrites the shared fields
- in the Picture.
-
- Fixed by tracking ownership of Pictures and allowing it to be reassigned
- to the second thread's context.
-
- Fixes conformance sample HPCAMAPALQ_BRCM_B.264.
- vsync still fails, and therefore FATE does as well.
-
-commit 521f07e3cf2dfb9b0473027ae2fbb6bd4f203ce4
-Merge: 7d0709e 4a8d06e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun May 31 00:08:08 2009 -0400
-
- Merge mainline.
-
- Conflicts:
- libavcodec/avcodec.h
-
-commit 52b214211060b56e7aac6b9743fa27bc79f789d1
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed May 28 02:15:47 2008 -0400
-
- Enable multithreading for Mimic.
-
-commit 5323bc6e8adbff2b6849a08e9e071f22241fd807
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Feb 20 22:48:51 2010 -0500
-
- Cosmetics: add () to function name
-
-commit 5340d1ffae10b1545d88b9dd8ca86a5a3aaffca7
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed May 28 02:15:47 2008 -0400
-
- Enable multithreading for Mimic.
-
-commit 534516ac79adc69d8773ff934955532a92db2cf1
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 16 00:01:07 2008 -0400
-
- Fix a memory corruption bug in update_context and reenable H264 multithreading.
-
-commit 535de6d374ab6b06041f5e3cb392327abd2ce054
-Merge: 6abde3d cc8161e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue May 11 04:08:37 2010 -0400
-
- Merge mainline.
-
-commit 5380fee33a871580fe9f3424767eaf2362c8cde0
-Merge: ef2d866 08c0efd
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jun 13 23:43:37 2010 -0700
-
- Merge mainline.
-
-commit 538a29e12f115390a64ceb3d4909a4a67cad26cd
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 19 15:48:55 2008 -0400
-
- Make diff smaller
-
-commit 53c86e82af6757c12df3a99aede6862a311f050b
-Merge: fa8a82e ae2df26
-Author: Luca Barbato <lu_zero@gentoo.org>
-Date: Sat May 3 16:13:06 2008 +0200
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit 53cd195c8885125351a03cfb6f1d93e66d433b86
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Nov 15 05:00:01 2010 -0500
-
- Rewrite multithreading.txt
-
-commit 53fff221cdb9f18df2f2f52bd48731ce0fa9e114
-Author: Maksym Veremeyenko <verem@m1.tv>
-Date: Wed Mar 30 13:20:23 2011 +0300
-
- mingw32 compilation after 'unbreak avcodec_thread_init'
-
-commit 5402adfa2e9c159e7d13ee07e142cb035a77ef95
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Dec 16 16:54:20 2008 -0500
-
- Only write to stderr once for each av_log().
-
- This makes logging somewhat easier to read with multiple threads.
-
-commit 541d79def90226cc9b17e6ccc9eb2ff2549bea46
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri May 15 17:54:20 2009 -0400
-
- Remove useless volatile qualifiers
-
- All such accesses must be protected by a mutex anyway, which is
- already a memory barrier, so this doesn't change anything (assuming
- a working compiler).
-
-commit 544c6a6709833f1a449b8faf4478ab529e269240
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Mar 29 02:28:29 2009 -0400
-
- Frame threading support for HuffYUV decoding
-
-commit 54c0c3d2ce69606a5aa508659d3322f48ada77cb
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Sep 3 11:59:59 2008 -0400
-
- Call decode_postinit from the right place to avoid race conditions
-
-commit 552a89508fddc64d4217b9d845e458f504b63593
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jun 27 15:22:52 2009 -0400
-
- Print md5s of test output files in test.sh.
-
-commit 55c511eedb24ffb09aef7072c02e911576c9900b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jan 25 02:47:19 2010 -0500
-
- Did a todo item
-
-commit 574d2e5b942aa1e093bf768cc6321f3b081d3aeb
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jul 5 23:36:08 2008 -0400
-
- Merge enum with its only use.
-
-commit 578f45c15026e778ef54694d98a9ec446810a897
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jun 15 17:42:56 2008 -0400
-
- Reindent.
-
-commit 5918efedbb7928031b6af745acb8b4233c08fb06
-Merge: 7d09b68 c2a400d
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Aug 14 21:37:03 2008 -0400
-
- Merge branch 'mainline'
-
-commit 59d787ffccaf42e992229649c23e624ea7d71635
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Nov 15 05:39:12 2010 -0500
-
- Delete os2thread.c which is gone from mainline
-
-commit 5a7146bf75a2170f33ff25b88b91f667574d2919
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Aug 11 01:33:20 2010 -0700
-
- vp3: Fix a crash decoding files with <thread_count frames
-
-commit 5a75822b584676672fbb887d4b828abc80ffd89c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Apr 1 19:19:34 2011 -0400
-
- pthread: validate_thread_parameters() ignored slice-threading being intentionally off
-
-commit 5b7c668d1f64facfe8b9f86e2491085595fa9bc7
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 12 20:26:26 2008 -0400
-
- Document thread-safety requirements for user callbacks in AVCodecContext.
-
-commit 5bacdcc1a52e2b1d32bad9e9f250ceb6cc37f366
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Oct 11 15:40:47 2008 -0400
-
- Fix progressive height values in avail_motion()
-
-commit 5c46573ed07b092aea0db6560ade77bc299c28cb
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon May 25 22:16:23 2009 -0400
-
- Whitespace error
-
-commit 5c4c8ed51da0be4f141a4de339db77f4a0a6c783
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Sep 1 03:18:55 2008 -0400
-
- Remove unused variable
-
-commit 5d3c2f7512746dd0adf067952ed38d8111d7571d
-Merge: 7041a16 5a70b15
-Author: Luca Barbato <lu_zero@gentoo.org>
-Date: Sun Jul 6 12:38:18 2008 +0900
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit 5d53ada4cbd323d66b61965b1442d0abd63361b2
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jan 24 17:00:18 2010 -0500
-
- Don't load PerThreadContext until it's needed in ff_await/report_*.
-
- Should avoid crashes if anything calls them without using ff_get_buffer.
-
-commit 5d7dfbb887f263b036224bf4510db176fa6cff73
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jun 16 18:18:53 2008 -0400
-
- Utility functions for mpegvideo threading.
-
-commit 5d82241b49a1fb1dbecd1b279045cce9f099c775
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Mar 24 03:34:48 2011 -0400
-
- Update todo.
-
-commit 5eb0c649c780e26a77085bd213f945d88761ad00
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jan 4 04:12:44 2010 -0500
-
- Make ffplay -drp the default.
-
- Ignoring reordered/delayed PTS never works with frame threading.
- This may be changing behavior too much; I haven't tested this
- with non-mt files, but I think the current behavior must cause
- A/V desync even there.
-
-commit 5eb679f0fff432ba2c9e0cdada254dbe4bd4a45d
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Nov 15 02:53:14 2010 -0500
-
- Remove width/height changing checks from h264/mpeg12
-
- These should be moved to pthread.c update_context_from_thread() if they're needed,
- not kept in specific codecs. Hopefully the error return from get_buffer() is
- enough to make it not crash anyway.
-
-commit 5edf2cc5acbb410ba50a3770e8565fb39206f406
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jun 16 18:20:54 2008 -0400
-
- Multithreading support for mpegvideo decoding in general.
-
-commit 5ef4af7de47c3913ddc1e09e43887ac04ecfaba3
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jun 15 01:58:15 2008 -0400
-
- Fix ff_delayed_release_buffer crashing with slice-threading.
-
-commit 604ee5471f21d310f4014011a20c00c28a31995b
-Merge: 3792712 7838828
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Apr 21 22:04:21 2010 -0400
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit 607edd221a3b7a300fbaa4a5495ffd30f8dc9fa8
-Author: stefano <stefano@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Mon Jul 26 14:30:47 2010 +0000
-
- Define static functions fill_image_linesize() and
- fill_image_data_ptr(). ff_fill_linesize() and ff_fill_pointer() now wrap
- these functions.
-
- The new functions are more generic, and are going to be exported in a
- future patch.
-
- Patch by S.N. Hemanth Meenakshisundaram smeenaks # ucsd commit 60be6c15c4d23c5107f14e408043988918a44c76
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jun 20 16:07:58 2009 -0400
-
- Add a valgrind script so I don't have to type it all the time.
-
-commit 614d2308b343ec6af6bf72ada08884684bb66df0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Sep 3 22:55:22 2008 -0400
-
- Update header guard
-
-commit 62830f5772dd8971032aa9f8d52a8f6c00c92487
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jul 17 19:04:19 2008 -0400
-
- Remove next_delayed_pic, it doesn't prevent any race conditions.
-
- This part is now entirely out of sync with mainline.
-
-commit 62ba7a4acc98b691ab3152356cf0c21a52f7e03b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jun 15 19:22:41 2008 -0400
-
- Fix the main thread hanging if there's an error before all of the frame is decoded.
-
-commit 63d086d2585d3275a6b9068ee1ca957617ecf902
-Merge: 314c2b1 712afbf
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Feb 18 21:29:44 2009 -0500
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit 63f663f09320851b9ed76f489fdab590da2fc7f0
-Merge: 64df3aa d61efce
-Author: Luca Barbato <lu_zero@gentoo.org>
-Date: Sat May 10 07:51:22 2008 +0200
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit 63ff6aa525faf65f86dfbc8ec571fd260844100f
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Oct 23 18:07:14 2010 -0400
-
- Don't set avctx->thread_count to 0 in avcodec_thread_init.
-
- h264 crashes during decode init with 0 (instead of 1) threads.
- Note that this isn't a regression from -mt, but is actually a bug present in mainline.
-
- -threads 0 should preferrably set auto threads, but doesn't.
-
-commit 641f2752c16aaa25c5854d34726b72f226003b87
-Author: Luca Barbato <lu_zero@gentoo.org>
-Date: Sat May 3 12:20:42 2008 +0200
-
- Ignore stuff
-
-commit 6446d2b0931c6a9637077b18b98af911d438057f
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu May 7 01:38:16 2009 -0400
-
- Update mplayer.diff line numbers to match mplayer r29269 (20090505)
-
-commit 647f6cf3144934e3c2c22b06601d23a1217a2b86
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat May 23 20:09:07 2009 -0400
-
- H264: Print an error instead of failing silently for size changes with slice threads.
-
-commit 64df3aa6a32a87d96f650b8535c88e1d65b52524
-Merge: 53c86e8 72c8992
-Author: Luca Barbato <lu_zero@gentoo.org>
-Date: Sun May 4 22:24:35 2008 +0200
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit 65b3e34fc8a52f4f1a48fce7c8cddd80db8fade9
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Nov 1 12:20:24 2010 -0400
-
- Update the test script to show results more clearly
-
-commit 65e8486a1dd1efbf2750d0bc25c326f8dc836bcd
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Mar 29 03:10:53 2009 -0400
-
- Fix nonsense 2am code - left the huffman tables uninited.
-
- It would be faster to copy the VLCs but it would require more code.
- And this could be factored into another function.
-
-commit 661ca4010c548e135ce1c0c819d0c05a94b66985
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jul 10 14:32:04 2009 -0400
-
- Cosmetics: get rid of pointless parameter.
-
-commit 66204771dd8e479d30ef71ad85c162e1a34e4104
-Merge: 3f75218 76dd0e7
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Oct 23 17:41:42 2010 -0400
-
- Merge mainline.
-
- Conflicts:
- libavcodec/avcodec.h
- libavcodec/options.c
-
-commit 66a34dee4443dd6ccabb53ca09a1c45bc95f4d24
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 12 00:39:28 2008 -0400
-
- Don't run the last part of decode_update_context() when the last frame was dropped.
-
- This fixes mplayer -framedrop crashing. Of course, they're still run in some cases when it wouldn't be without threads, but those are all error conditions.
-
-commit 66cf3f781d73fed502d80cce01dbd16b25bc3a71
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 2 19:27:12 2008 -0400
-
- Correct 6b037a88 for PAFF/MBAFF.
-
-commit 66d9c0c9f6b2a4309dd4a41f88dd9a1dccb323e3
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 23 19:56:21 2008 -0400
-
- Wait for predecode to finish just before calling update_context, instead of as soon as possible.
-
-commit 66ef4712c357514602f6b47311874e9ebf7376e3
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Jun 4 15:57:36 2008 -0400
-
- Handle zero-byte input correctly. (for CODEC_CAP_DELAY)
-
-commit 68682144289b05c830fd64a651526c4708666874
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 19 04:08:42 2008 -0400
-
- Fix accidentally calling execute_ref_pic_marking() while draining delayed_pics at the end.
-
-commit 686ea24614fded4d7501f71901aae61f5160f018
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jan 16 22:15:28 2011 -0500
-
- Update APIchanges to match mainline_patches branch
-
-commit 68ef172444124e9e6dd2a69df00ae72a64e795cb
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue May 11 05:34:20 2010 -0400
-
- Pass the complete AVPacket through pthread.c decoding
-
- Part of a patch from VLC.
-
-commit 6913bf9451bdaef16cd7748c93358baeec57d33b
-Author: Michael Niedermayer <michaelni@gmx.at>
-Date: Wed Apr 6 00:14:56 2011 +0200
-
- Fix REBASE_PICTURE with h.264
-
- It was possible for last_picture_ptr to point into h.ref_list
- instead of h.s.picture, which caused a bad pointer to be set.
- Fixes some valgrind warnings, presumably improves behavior but
- no changes were found.
-
-commit 6998f46dec036f2ab39d6389747a95a7f5808f19
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Feb 20 22:32:39 2010 -0500
-
- Cosmetics: Rename init_copy and update_context to have 'thread' in the name
-
-commit 69f085cebf61a64352e623d3c4a5d6032329473d
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Jun 10 11:33:47 2009 -0700
-
- Don't change avctx->thread_count if frame_thread_init() fails.
-
-commit 69f6e77a9a9ddfc386d43f5a350df5c960c0203d
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Aug 24 04:11:52 2008 -0400
-
- Remove useless check
-
-commit 6a26fe72383c0ab088c8d92733221bf2911231ce
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Oct 17 14:45:47 2008 -0400
-
- Fix nonsense logic in copy_parameter_set()
-
-commit 6a3821cf92ef5aaba020a0b7c8d06df5926bd362
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jun 3 04:13:55 2008 -0400
-
- Merge statements in mimic.
-
-commit 6abde3d9e6ccfb062c6f547334171665386b0d85
-Merge: d8014c6 4448f8c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri May 7 04:42:38 2010 -0400
-
- Merge mainline.
-
- Conflicts:
- libavcodec/avcodec.h
- libavcodec/options.c
-
-commit 6ae441be729df8064f1b1244acc82fead9cb1918
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 19 01:27:54 2008 -0400
-
- Reduce code duplication in MPV_lowest_referenced_row
-
-commit 6b037a889a34f8f2dd8ad188cda6f4d09d9f4710
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jul 27 00:58:54 2008 -0400
-
- Avoid a deadlock in damaged streams where the current picture ends up in h->ref_list.
-
-commit 6b5aa5cb4d105c4ed118d5ea07f64bbe1e94d135
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat May 23 23:10:33 2009 -0400
-
- Remove inaccurate comment.
-
- ff_report_frame_setup_done() is called properly for the first field.
-
-commit 6c575595d9d0e2974e326ad86db61bb61163753a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 19 21:01:51 2008 -0400
-
- Add flag for thread algorithm
-
-commit 6d4679e9d5fedff6aa1eed964aa1449716f02682
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Jan 20 02:17:36 2010 -0500
-
- Add a FIXME comment to a commented-out part of h264.c.
-
-commit 6e508a7ab927ce7280688d822d3529dfbf17ec88
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Sep 4 17:40:59 2008 -0400
-
- Fix field progress allocation.
-
-commit 6fad2f2300fb9e6288d4c9cdf3028d07d3dd63a9
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jan 17 15:41:20 2011 -0500
-
- pthread: Fix missing mutex unlock in error condition
-
- Also remove stray ;
-
-commit 700a6622f378b5169d8d54ea5bdb4d8b67262a22
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jun 24 23:29:40 2008 -0400
-
- Merge another ++.
-
-commit 701ddc74e17de9f76eabf00a9e8d16adac7c2954
-Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Tue Nov 5 00:38:06 2002 +0000
-
- BeOS Audio ouput patch by (Fran
-commit 7041a164baed1c643f0cfa1207fbb2fd06d81f38
-Merge: 84cde2e 483385a
-Author: Luca Barbato <lu_zero@gentoo.org>
-Date: Sun Jun 29 16:34:45 2008 +0900
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit 70595dcbdbc01bb1f8f331c0998ee11f04577091
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jan 24 17:33:22 2010 -0500
-
- unnecessary freep
-
-commit 706e94d6531daa0b179613dbef51af8ec5bbe1dd
-Merge: 7e928f6 e42b282
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jul 17 18:47:45 2010 -0700
-
- Merge mainline and swscale.
-
- One valgrind test currently fails.
-
- Conflicts:
- libavcodec/avcodec.h
- libavcodec/beosthread.c
- libavcodec/h264.c
- libavcodec/options.c
- libavcodec/os2thread.c
- libavcodec/utils.c
- tests/ref/vsynth1/rgb
- tests/ref/vsynth1/yuv
- tests/ref/vsynth2/rgb
- tests/ref/vsynth2/yuv
-
-commit 70bf5912700d0519f3d607784654c394633effac
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Jun 18 21:58:17 2008 -0400
-
- Add an mpegvideo wrapper around ff_report_decode_progress.
-
-commit 70fb3fdcf2c5f01a555d87f8113efb50286493f7
-Merge: 1d15df4 0b034be
-Author: Luca Barbato <lu_zero@gentoo.org>
-Date: Mon Jun 9 18:03:54 2008 +0200
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit 71419720215a7ca7d1b1780564f21cb51d9df0a2
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Aug 6 15:45:52 2008 -0400
-
- Copy all the MPEG-2 interlacing flags, as well as *_picture, in ff_mpeg_update_context().
-
-commit 73608e1fa14434599aab86d2198a05ec4ca21c59
-Merge: a5285ae 6a7ac9c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Sep 16 14:38:47 2009 -0400
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
- The definition of CODEC_CAP_FRAME_THREADS changed, but
- clients shouldn't have had to check it for anything.
-
-commit 73ad08d3b0867db89e5a81b9aec44b053e855ab3
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Mar 24 03:31:14 2011 -0400
-
- Draw edges in MPV_frame_end when encoding
-
- These pictures don't get draw_horiz_band called on them.
- I thought I had tried this, but after thinking about it realized I'd made
- a typo the first time.
-
- Fixes make test.
-
-commit 74f382ae597d9cf69c885bc03c716d18fdbd413c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Mar 16 23:12:44 2009 -0400
-
- Disable frame threading for MPEG-4
-
- It seems to have problems with packed B-frames in mplayer.
- I don't know if any other players work (at least ffplay does).
-
-commit 753aecc29f8f4727326f0f371fa99fefbc369d0c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jul 15 02:58:51 2008 -0400
-
- Lift H.264 display-order code before decode_slices.
- This is needed for multithreading and should get us closer to CODEC_CAP_DRAW_HORIZ_BAND.
-
-commit 759176e401ebe8911e071f860f59b05d482315d0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Mar 10 02:36:33 2011 -0500
-
- Reorder picture_count in mpegvideo to fix ARM asm
-
-commit 75d4208c3a6ea4b9973b05ce930258ca8c3db224
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Jun 25 01:06:31 2008 -0400
-
- Disable mbskip copy avoidance harder with threads on
- Fixes seeking in mpeg4.
-
-commit 76211d5890819ae687cc73520bcda17115a65697
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 23 23:14:10 2008 -0400
-
- Update threading comments in avcodec.h
-
-commit 776e2fc2d7df09d184caf414cb1d93829fe1c38d
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Mar 9 01:11:58 2010 -0500
-
- Fix missed things in previous VP3 commits
-
- Optimization improvements only, because the pessimizations hid the bugs.
-
-commit 77f7818ac7b881a5aa024e31147255ed3a413141
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jan 24 19:00:24 2010 -0500
-
- Fixed memory leak in todo
-
-commit 78c5ca40fac2dc13dac72cada9cc4b80551ee94c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jan 16 02:31:44 2011 -0500
-
- Update todo.txt
-
-commit 78feacc6fae50a72dff68e75d0f718bc136dbe7b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jun 21 23:05:45 2008 -0400
-
- Copy the other parts of MpegEncContext needed for h263
- I'm not sure if mbskip can be made compatible with frame threads yet, so it's all zeroed for now.
-
-commit 795b6f2d87b241e98472c8d9771d4327712c6db9
-Merge: 20d6c33 4f24e1c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jan 13 01:52:27 2009 -0500
-
- Merge mainline.
-
- The conflict fix in h264.c has a strange-looking diff
- but probably isn't a problem.
- Reverted regression tests to mainline's.
-
- Conflicts:
-
- libavcodec/avcodec.h
- libavcodec/h264.c
- libavcodec/mpegvideo.c
- libavcodec/utils.c
- tests/seek.regression.ref
-
-commit 79f3159ebbc55b4f2f885943badc5a847ecd612f
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 26 03:09:09 2008 -0400
-
- Split longer lines
-
-commit 7a08d7653f38851bd950264fa78174616395fd9a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jun 21 22:09:12 2008 -0400
-
- Park all the threads in ff_frame_thread_free before ending them.
-
-commit 7aabc98254731f46d39fb0770b1445fe332797de
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Jan 20 02:38:42 2010 -0500
-
- The mplayer patch doesn't need to change vd_ffmpeg anymore.
-
-commit 7b14ed499f5dab39586f3b75ee03e29425b9383e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Aug 22 16:25:59 2008 -0400
-
- Remove an unused variable.
-
-commit 7b46b8dc0c04a77108f0150a6fdf58a9b65d4aed
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jul 11 18:02:57 2008 -0400
-
- Use USE_AVCODEC_EXECUTE instead of checking thread_count in h264.
-
-commit 7c7f43547b0ad8907d097b99a66f0fc3f171c9f3
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jul 31 18:22:55 2008 -0400
-
- Rename H264Context got_avcC to got_extradata.
-
-commit 7d0709ea04d6f2023052506c969d6db9b79f2963
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue May 26 00:39:26 2009 -0400
-
- Reindent
-
-commit 7d09b684e9948bbe0e663e40ff0ce616018c0091
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Aug 14 20:30:42 2008 -0400
-
- Revert some h264 multithreading changes to make merging easier.
-
-commit 7e85791de30c9005ac722afd59c713c7faef5d7e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 19 15:41:14 2008 -0400
-
- Retypeset/fix comments
-
-commit 7e8d959053b29d975c600eb89eb453496a860961
-Author: stefano <stefano@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Sat May 15 17:34:45 2010 +0000
-
- Avoid mixed declaration and code, fix C89 compatibility.
-
- Patch by Fran
-commit 7e928f69148f6c90d35715f4380accb6fc4e88c4
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 24 02:41:43 2010 -0700
-
- todo: Add secondary bug not fixed in last commit
-
-commit 7eac0bccc22daa54db7c40b530cf692af3f41274
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 18 16:55:03 2009 -0400
-
- Update todo.
-
-commit 7ec92357ae09969eb5254ab6954b712d95b4630f
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Tue May 22 07:58:22 2007 +0000
-
- cosmetic v1/v2 renaming
- patch by Andreas
-�commit 7f86539559480910beab0ef568571dbe524ecda1
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jan 25 02:46:29 2010 -0500
-
- Rename avail_motion() and associated functions to something better.
-
- What did "avail" mean, anyway?
-
-commit 7fc3b0d1f996b8a832017095244a3187b8d80f38
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Apr 4 00:23:21 2009 -0400
-
- Remove client calls to avcodec_thread_init.
-
- This function has no effect under ffmpeg-mt, since avcodec_open()
- calls it anyway.
-
-commit 802206985550e6f685e42595f529133186388acc
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Nov 15 05:19:58 2010 -0500
-
- Update todo.txt
-
-commit 8047714299aa3fb377b011cd68858b76a666c7cc
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Aug 25 19:39:24 2008 -0400
-
- Whitespace nits
-
-commit 80a20f0fda854e6c8de05b971164d25425105c82
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 23 21:52:47 2008 -0400
-
- Don't call ff_report_decode_progress for h264 B-frames.
-
-commit 80a7538f955a9cd931d840e1cb4e4c81e9d85165
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Nov 15 04:14:51 2010 -0500
-
- Write APIchanges.
-
- avcodec_thread_init() will not be deprecated in this repository to
- avoid generating warnings for users who shouldn't remove it just yet.
-
-commit 80ab88e74f9864442afca19ecc6ee0428623ff22
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jun 15 17:46:30 2008 -0400
-
- Cosmetics: rename context variable.
-
-commit 8218d5319067aa1ac06c601e5dc530ebdab7c01f
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Aug 18 18:43:02 2008 -0400
-
- Properly handle error returns from codec functions.
-
-commit 821c4d0996689ab27d5ab1b6bca0695503b02670
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jun 21 22:54:52 2008 -0400
-
- Add 16x8 and 8x8 MVs to MPV_lowest_referenced_row()
-
-commit 822ed86c0ac4de7c38d443e23fcabf1b627118ea
-Merge: e340cac 17c125c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Nov 18 13:58:23 2008 -0500
-
- Merge mainline.
-
- Conflicts:
-
- libavcodec/h264.c
- libavcodec/mpegvideo_enc.c
-
-commit 82324906156d303d5f3b3e10a1855bf05614ebfc
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jul 18 02:24:09 2010 -0700
-
- Revisit d812c6f8b1d897734d6f7b5f1a5c95d3aa10a3ea
-
- The sps/pps_buffers logic wasn't correct, considering that SPS/PPS
- can be found far before the first working frame.
-
- Unfortunately this adds more code than it removes.
-
- Fixes a crash and a memory leak in premiere_paff.ts.
-
-commit 824ee1ac826b89b84cc93fb77f38ec6530909f2b
-Merge: 686ea24 11dcccd
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jan 17 03:39:49 2011 -0500
-
- Merge remote branch 'mainline/master'
-
-commit 83b344d87b97ef6b72e84c145f2185f87ce22e9b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Apr 4 00:27:47 2009 -0400
-
- Forbid calling avcodec_thread_init after avcodec_open.
-
- Although ffplay used to do this, it never worked, since codecs
- were free to check thread_count in their init functions.
-
-commit 83c7cc1ca1afe68b339b8554634a3a1effc76b45
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 19 21:24:03 2008 -0400
-
- Add more to todo
-
-commit 83cbbb1a92d58a850d5b254b5f54e78a7bad8ca5
-Merge: ae7e6bb 7e61a90
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun May 30 09:59:29 2010 -0700
-
- Merge mainline.
-
- Conflicts:
- libavcodec/avcodec.h
- libavcodec/h264.c
-
-commit 8414fc85d03776bc622c9451e9b08f047af42676
-Author: Uoti Urpala <uau@glyph.nonexistent.invalid>
-Date: Sun Jan 2 11:52:30 2011 +0200
-
- pthread: fix failure to initialize frame fields after flush
-
- Commit b67d7055bf ("Clear returned pictures immediately after copying
- them.") moved some code used to (re)initialize per-thread data before
- starting to decode a new frame. The commit changed this to be done
- after the results of decoding the previous frame had been returned to
- the caller. This was buggy: when decoding state is flushed some
- decoded frames may never be returned to caller, and thus there would
- be no reinitialization before reusing the same thread for another
- frame after the flush. In particular, *got_picture_ptr could be
- incorrectly set when calling avcodec_decode_video2() after seeking.
-
- Move the initialization code back to the previous location before
- starting to decode a frame, but leave a line setting
- PerThreadContext->got_picture to 0 also after returning a frame and
- add a comment explaining why it is there.
-
-commit 846ae640182b4775db5b32cb027d964bf85d54a5
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jan 21 03:16:03 2011 -0500
-
- Longer comments in thread.h
-
-commit 84a94407509525ffca2e1691a73d186d0d10b1fd
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 19 01:14:36 2008 -0400
-
- Remove whitespace change from mainline
-
-commit 84cde2e4c7d97f3a9b5f9d4a4c722ccf38c82742
-Merge: f139f42 e73c602
-Author: Luca Barbato <lu_zero@gentoo.org>
-Date: Tue Jun 24 13:31:01 2008 +0200
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit 854cff1a75a0c4433d6a25517326b2660a56693d
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed May 28 01:05:33 2008 -0400
-
- Enable multithreaded MDEC.
-
-commit 85730bc96115f75524f2780059a26ee6dbd8695e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 16 01:30:59 2008 -0400
-
- H264: Skip filling in the parts of frame num gaps that are bigger than the number of reference frames.
-
- My sample with a 256 frame or so gap doesn't work with ff_delayed_release_buffer otherwise.
- No change on MR3_TANDBERG_B.264.
-
-commit 8666b987a1df652d830db8bae9c2d56287a8fc88
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 16 14:18:13 2008 -0400
-
- Clarify comment for AVCodecContext frame_number
-
- Number of frames returned vs. decoded isn't the same anymore
-
-commit 8682f8c0c7396bfe1bf9b4be3293beb4c6a10927
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Aug 22 03:25:03 2008 -0400
-
- Rename and update comments for AVCodecContext variables.
-
-commit 86c6c4cff0bf8a734592f31591ec6fafb456387b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Mar 9 01:46:32 2010 -0500
-
- Cosmetics: fix overindent
-
-commit 878ad7601ad8eddec124877eb9b30b3df4a8c8b8
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Feb 1 21:45:18 2011 -0500
-
- Add missing test script.
-
- Haven't used this one in a while.
-
-commit 87a9ad1b28ec7a4c9b08b949486010098c06a752
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jul 14 23:17:13 2008 -0400
-
- Don't copy padding_bug_score.
- This changes during h263 decode so it introduces a race condition.
- Having a score for only every 1/n-threads frames is hopefully not too much less inaccurate.
-
-commit 880990f352fd8d557538535fc0496aec47d1c407
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 19 00:42:56 2008 -0400
-
- Cosmetics: rename input and output context members
-
-commit 8884655418183d2ccde654febc9a88e8398c978a
-Merge: 8232490 f991c07
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Aug 1 04:46:21 2010 -0700
-
- Merge mainline.
-
- Conflicts:
- libavcodec/avcodec.h
- libavcodec/vp8.c
-
-commit 8919a66d8ff492adc9455fd73f1da05d154281ff
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jan 15 19:27:39 2011 -0500
-
- Re-enable multithreaded mpeg4.
-
- Seems to work in mplayer, and is needed so I can investigate fixing the buffer
- age+skip optimization.
-
-commit 8969edf8b07437e9110db82b7c75e57c00c3e842
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Aug 22 02:53:04 2008 -0400
-
- Split a long line further.
-
-commit 899a30063b23ff008bbea3560c28fa194cfb1d77
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Aug 11 18:04:42 2008 -0400
-
- Simple patch to keep the non-pthreads OSes working.
-
- They ignore thread_algorithm being set by the user for some minor simplicity gain, since I'd still like to see these files gone from mainline.
-
-commit 8a2e487269389d778ddf517baaff590b0a7b3f46
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jan 24 16:55:35 2010 -0500
-
- Don't allocate thread_opaque progress with frame threading off.
-
- It's not needed for anything and the extra check in ff_await/report_*
- isn't slow.
-
-commit 8aa204a70a7f068f46f00e0983b4617f8030544a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu May 29 00:19:26 2008 -0400
-
- Fix comments for new avcodec fields.
-
-commit 8ae6601b670156b36b227e2a3c0d9cdc72294bd5
-Merge: c91d7a2 cef0309
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun May 23 01:43:27 2010 -0400
-
- Merge mainline.
-
- Conflicts:
- libavcodec/avcodec.h
-
-commit 8ae9683ebce1e42c5bd1a24a2bcdcbf2cbfe6ccb
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jan 16 02:29:08 2011 -0500
-
- Update mplayer.diff to work around incompatibility with draw_horiz_band()
-
-commit 8af63f450185c3b15cc2ca32d2bc1a19f5d2a28e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Feb 20 20:02:34 2010 -0500
-
- Cosmetics: rename thread.h functions for consistency
-
-commit 8b7a5375ad0956f546c2b614594b79c3ec54de3d
-Merge: 3ad85b1 875fcc3
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Oct 28 13:11:58 2009 -0400
-
- Merge mainline.
-
-commit 8ba50a98f87edb2b87df042f09573ea8be4a8696
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Mar 28 03:54:31 2010 -0400
-
- h264: Fix ff_h264_execute_ref_pic_marking() not being called with PAFF+threads
-
- With some PAFF files, field_end() can call ff_h264_execute_ref_pic_marking()
- during slice header decoding. This was disabled with threads on, which was wrong.
-
- This patch fixes it at the cost of making control flow more confusing.
-
- Partial fix for Chalet-Tire.mp4 from ffdshow.
-
-commit 8c946d1672281fc997dfb2679e7cbed48dd09216
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jul 14 23:07:07 2008 -0400
-
- Set decoding progress as high as possible when multithreading is off.
- This avoids possible crashes from trying to lock progress_mutex when it hasn't been created.
-
-commit 8d466e182aa89ca8cfbe57ce60f2a1e2a7ecebc7
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Oct 13 14:37:22 2008 -0400
-
- Fix incorrect frame num gap handling.
-
- Fixes ORF1HD.Demo-Loop.720p.DD5.1.mkv from x264 samples.
-
-commit 8d8229014f489e1b2417676d9753f784d995e6c0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Dec 1 17:21:38 2008 -0500
-
- Don't crash if flush_buffers is called after init and before the first decode.
-
- Fixes mplayer -ss
-
-commit 8f759fa0e956f8cc33ccd423cefae23e25c16caf
-Merge: 9be00ab 1e8ecf7
-Author: Luca Barbato <lu_zero@gentoo.org>
-Date: Tue May 20 11:46:04 2008 +0200
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit 9017898687ebedca27e47fdd13e6e5e208a5fbb6
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Aug 28 00:52:29 2008 -0400
-
- Pad the frame data properly
-
-commit 9059683b29cd601361e477289a194e679aa72f8c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 12 16:22:27 2008 -0400
-
- Limit ff_find_unused_picture to only part of s->picture.
-
- Otherwise, a thread may call delayed_release_buffer and then later allocate a picture in the same place, reusing the other Picture variables while they're still in use.
-
-commit 9077d0ba4ed18e1f106723d155e81461c8951764
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Feb 17 00:55:36 2010 -0500
-
- Comment recent change to update_context API.
-
- Notes:
- - It might be possible to revert this by making the vp3 decoder
- behave like mpegvideo. Not faster but the code will be simpler.
- - I don't like any of the old comments, they're too wordy.
-
-commit 9153938f1c1f0933ec59cee14cc26b8f99bd9090
-Merge: 661ca40 e48fb07
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jul 23 21:14:58 2009 -0400
-
- Merge mainline.
-
-commit 91a7b18346baf82e0ccf6dfb53ada22299396f17
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 16 16:42:33 2008 -0400
-
- Call codec init and free on the first thread context instead of the main context.
-
- This is needed so we can stop using the main context for decoding threads.
-
-commit 91a7c2254bb3e82862c4cd916bd9f2ac1dd4c170
-Author: lucabe <lucabe@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Thu Sep 23 09:16:05 2010 +0000
-
- Allow to set the frame rate in v4l2 devices
- Patch by Jos
-� Miguel Gon
-commit 91cd95a84759702b85de68047d21a6ef9d32eaca
-Merge: 77f7818 f9f7b02
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jan 24 21:39:20 2010 -0500
-
- Merge mainline and libswscale.
-
- Upstream now always calls avcodec_thread_init().
- It's better to do that differently here, so the
- current code in ffmpeg.c has been kept.
-
-commit 92672ea0eee93244cc78e5023f6469c5b21754b5
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Aug 18 19:10:01 2008 -0400
-
- Simplify: better use of variable names instead of weird struct accesses
-
-commit 93ac615ccf788df20279aa613f3fdc78d4bfcf18
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jul 14 23:56:22 2008 -0400
-
- Simplify assert.
-
-commit 9457fb1458998f893b7e1f06f1144f8203cd0025
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon May 25 22:38:36 2009 -0400
-
- Don't try to check list1 when it's not filled.
-
- 9.1s -> 9.0s on 5cm.mp4
-
-commit 94985fa9745e2affd0cf3145fa35cb8ae87e7848
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun May 31 00:08:41 2009 -0400
-
- Ensure the minor version is higher than mainline.
-
- Missed this in previous merges, but I think it's important
- to avoid confusing anyone reading ffmpeg tool output.
-
-commit 9576774bbee0215c0ab7bbb868ff35dff00ab900
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Aug 24 03:02:44 2008 -0400
-
- Merge ff_*_release_buffer into one function for simplicity and correctness (the non-delayed version was not really ever safe).
-
-commit 967e65496780c089956f2dc199b541dae3a3d9cb
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Dec 18 14:37:04 2008 -0500
-
- Some todo entries I forgot to add
-
-commit 96d6751af35556785037bdddb500eeb7b47795e6
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jul 14 23:08:45 2008 -0400
-
- Call ff_thread_init() before the codec init.
- This makes USE_AVCODEC_EXECUTE() properly available during init.
-
-commit 9816b66fb55fe03fd6f2a4db9390bdaa59eac697
-Merge: 1292a18 918f7b5
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jan 22 03:39:04 2009 -0500
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
- Changed the value of CODEC_CAP_FRAME_THREADS and
- adjusted use of config variables to match mainline.
-
- Conflicts:
-
- libavcodec/h263.c
- libavcodec/h264.c
- libavcodec/mpeg12.c
- libavcodec/mpegvideo.c
- libavcodec/pthread.c
- libavutil/common.h
-
-commit 99ed04d4d7b7183a4d0a1b8833eee3b506e13ff0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jan 21 01:34:57 2011 -0500
-
- Remove change to compute_pkt_fields which is no longer needed
-
- May have been fixed by introduction of pkt_dts, but I'm not sure.
- Either way, tests pass.
-
-commit 9a88884c03cd40d1fcbd247f1b004848fb629a11
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Aug 6 20:55:20 2008 -0400
-
- Simplify thread init and make more of its functions static.
-
-commit 9b27ce1e721a021128380e47e83a06f25c52e998
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri May 15 15:53:28 2009 -0400
-
- Fix race condition decoding H264 direct prediction
-
- There may be some code merging possible here.
-
-commit 9bac2ee137d9b8152e3beb98681b07f665cd58ee
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 5 20:36:38 2008 -0400
-
- Cosmetics: rename ff_mt_*_buffer.
-
-commit 9be00ab6113d71a020eea4fd4483b8483efbb29d
-Merge: 63f663f 1531623
-Author: Luca Barbato <lu_zero@gentoo.org>
-Date: Sun May 11 08:53:10 2008 +0200
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit 9c241058a255e1da6adec7db81e22d4ff8b2b6b2
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 19 04:09:25 2008 -0400
-
- Copy the entire reference list arrays in case they're used.
-
- And that's it for SoC period commits.
-
-commit 9cd1083269334de974acdf13dd94451c178a0eca
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Mar 29 04:47:23 2011 -0400
-
- Fix mdec
-
- init_copy rotted due to data structure changes.
-
-commit 9e0e492fe88ec0c7ec400e9afdbef8356280fc16
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 5 00:21:25 2008 -0400
-
- Update the guard clause on avcodec_thread_execute().
-
- It already works fine, since all codecs check USE_AVCODEC_EXECUTE themselves before calling it, but the function is for some reason part of the public API.
-
-commit 9e615b8534c98947cbbe6ada5047e95c36e14cde
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Sep 3 20:40:45 2008 -0400
-
- Rename symbols to not mention decoding
-
-commit 9e981c8d263986e67de6170895125b1de7e62ddd
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Aug 11 02:05:50 2010 -0700
-
- vp3: fix mt decode of 4:2:2 and 4:4:4 content
-
- The threading improvements are poor and looks strange:
- real 0m14.337s
- user 0m13.200s
- sys 0m1.132s
-
- real 0m13.434s
- user 0m19.409s
- sys 0m7.091s
-
- real 0m11.610s
- user 0m21.870s
- sys 0m7.303s
-
- real 0m7.976s
- user 0m20.681s
- sys 0m3.277s
-
- There may be a bug related to await_reference_row() being called too many times,
- as it's in a loop per-chroma superblock and there are 2x as many of those
- in 4:2:2, but not 2x as many MVs.
-
- No idea why 4 threads have less sys overhead.
-
-commit 9ec47e33af6776b94875c91288db852a333a6f63
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jun 21 22:01:43 2008 -0400
-
- Split the code for completing all current frames out of ff_frame_thread_flush.
-
-commit 9ec9f0868de2df3d3448dec887e7440ebb006b27
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Aug 2 16:14:21 2010 -0700
-
- Fix the last commit testing the wrong variable.
-
- Luckily the idea was still right.
-
-commit 9ede817a98a263093ca7965f8754a1770ef031de
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jul 11 23:01:47 2008 -0400
-
- Add a new -debug for tracing get_buffer calls.
-
-commit 9f15b87679392902206264383c16c7440d8c0f06
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jul 6 15:35:10 2008 -0400
-
- Extra line snuck in while merging mainline.
-
-commit 9f6a425684e0fd0ac3f8bbd37ca4e2bc96e05d5b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon May 25 20:30:08 2009 -0400
-
- Fix race condition with MBAFF frames.
-
- mb_linesize is 2*linesize for MB_MBAFF too, which wasn't counted
- in mc_dir_part_y, so the part of the MV added to 16*mb_y was 1/2
- the right magnitude. Fix this by halving mb_y too (safe) and
- doubling row values for MBAFF later.
-
-commit 9ff8764a15cce3fcf3f64270d7d4ec52a3ca7d1a
-Merge: 94985fa 08bbd7d
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun May 31 01:19:07 2009 -0400
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit a1005396f05f5bc13c6aa6875337dbd0e6c4cd03
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Aug 6 20:45:06 2008 -0400
-
- Merge framethread.c into pthread.c.
-
- Git doesn't track this very well...
-
-commit a1a5c549efd3a376fd5c8c77d49acfab89f8fdba
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jul 12 02:19:59 2008 -0400
-
- Factor out size of delayed_pic.
-
-commit a210b422361b051ba73c115fe6bf65eaa745b19a
-Merge: f9515a4 ec6213f
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Dec 24 22:08:34 2009 -0500
-
- Merge mainline and update swscale.
-
- As a side effect, this fixes Theora/VP3 decode being broken.
-
- Conflicts:
- ffmpeg.c
- libavcodec/avcodec.h
- libavcodec/h264.c
- libavcodec/mpeg12.c
- libavcodec/mpegvideo.c
- libavcodec/vp3.c
-
-commit a2371d6c9b8837b472e22539642883979eac2ddf
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Nov 18 14:26:37 2008 -0500
-
- Update todo.
-
-commit a2efd25ba04e0cb61823cbf765651f437b691b09
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jan 6 06:31:45 2011 -0500
-
- Update todo.txt and move one issue out of bug fixes that isn't a major issue
-
-commit a2fb22fb6988742ee28ee61e2e21fa05125517a9
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 30 04:20:03 2008 -0400
-
- Don't prefix static function names.
-
-commit a3a2674e27f8f2641d1603ee9e92e854289a0527
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Feb 1 23:13:49 2011 -0500
-
- Fix pkt_pts change to ffmpeg.c
-
- Caused tons of regressions in make fate.
- This needs to be merged to mainline_patches.
-
-commit a4599a7f4e4a865a0b402297b4f5a11e9ca34a27
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Thu Jan 10 10:16:36 2008 +0000
-
- Make pp_help a constant array of characters to move it to .rodata.
- Patch by Diego 'Flameeyes' Petten
-� flameeyes commit a5285ae4d452abed92f43e2a7a24dd821343a39c
-Merge: a7b8cb3 6a3f0e9
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Aug 23 22:31:19 2009 -0400
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit a564fda546ce3bfd04cf8a0e4ec4fb1b6d40e010
-Merge: 287e761 5b4608b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jan 4 03:56:32 2010 -0500
-
- Merge mainline and libswscale.
-
- Auto-merge failed on h263.c for no apparent reason; the patch was
- reimplemented by hand. Note that mt isn't enabled for h263 at the moment.
-
- Conflicts:
- ffmpeg.c
- ffplay.c
- libavcodec/h263.c
-
-commit a5cdcc9d4efcc043c01019f632dc1e5ad318802a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon May 25 20:16:54 2009 -0400
-
- Rewrite mc_dir_part_y().
-
- The previous one used a completely wrong value for filter_height
- and didn't properly account for MVs extending past the top of the screen.
- I'm not sure if MVs can be more than -pic_height, if they can this
- may still be wrong.
-
-commit a61ab604725f647c1bcb46aa8cfb303a5c78a2b0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 25 16:39:14 2009 -0400
-
- Theora: factor out updating last_frame.
-
-commit a74b85567073a424d5b7fc4bd8cc1e125df170f5
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Sep 1 02:34:59 2008 -0400
-
- Comment adjustment
-
-commit a7b8cb3c942fed6c80111519ba5505f11d61f3af
-Merge: 17dcbec 23e6da5
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Aug 20 16:47:50 2009 -0400
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit a903974adc7c8dd33dfb0acc4e2d6d10c09a23c8
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Nov 11 12:45:09 2009 -0500
-
- Add a next_outputed_poc to H264Context.
-
- Doesn't do anything yet, but makes the next merge easier.
-
-commit aa11b5e0df5dfcaba21552e4864807f7aa65f5c5
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue May 11 06:36:55 2010 -0400
-
- pthread: Remove pointless line from frame_worker_thread()
-
- It was introduced in the first commit, where it probably did something.
-
-commit aaa05da15fa7710503544d4a94319cb10d49a8f2
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Nov 2 02:59:16 2010 -0400
-
- vp3: Remove redundant y*fragment_width+x calculations
-
-commit aacc74c0e2b047340a1a22f5c28aa03a4294aa03
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jul 14 03:40:15 2008 -0400
-
- Reindent.
-
-commit ab4c84dd28c0375a6ed4f77f37ada3b94b2136a0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Dec 1 17:20:10 2008 -0500
-
- Don't hide the warning about direct rendering in mplayer.
-
-commit abb53ce0e02d31fb282f55cecb58f9b0c4f5c136
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Feb 6 19:18:31 2011 -0500
-
- pthread: Remove useless line
-
-commit ac2e1b12b5e608b80581d731c4f3a0d6c033e9e0
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Tue May 29 14:35:29 2007 +0000
-
- allocate PPS and SPS dynamically
- patch by Andreas
-�commit ac4539fba6d825d683d4a7d27f0045d068fe4595
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Mon Jan 7 12:48:42 2008 +0000
-
- Mark the ff_svq1_frame_size_table as constant.
- Patch by Diego 'Flameeyes' Petten
-� flameeyes commit ac4c37360b21a14e9b26502a299f831b8448a10b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Nov 15 02:43:15 2010 -0500
-
- Cosmetics: remove the COPY() macro
-
-commit ac7f2102c4249a89144c36944e13bf6be56e9190
-Author: kabi <kabi@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Mon Apr 8 12:32:01 2002 +0000
-
- * support for .au .gif .mov .mp4 by Fran
-commit adfaa1f86196156e30c54799303269f4a4f84a2d
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jul 26 16:14:00 2008 -0400
-
- Cosmetics: split a long line.
-
-commit ae2790af78a332a6aa836607a14546c5cc1865e5
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Oct 12 18:55:48 2008 -0400
-
- Add multithreading for PAFF/MBAFF.
-
-commit ae4251429ee5e333fc705c61959417c1d9364b9e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Nov 18 14:15:24 2008 -0500
-
- Switch to mphq git module
-
-commit ae7e6bb9708a0f0dac89295c788266e0f15899d2
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue May 25 03:14:27 2010 -0400
-
- H.264: Fix rare race condition.
-
- h->mb was not cleared when initializing a new decoder thread.
- This could cause wrong pixel values in the first macroblock of
- the first frame to be decoded by each thread.
-
- I suspect this is nearly the last visible bug affecting x264 content.
-
- Fixes [SS]_Angel_Beats!_-_06_(1280x720_H.264)_[A01DDBD8].mkv.
-
-commit af52a126f36cd6339f9f4a1152103ef88b4b8fee
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jun 27 18:09:49 2009 -0400
-
- Call handle_delayed_releases() before update_context().
-
- This allows releasing frames in update_context(), which would
- previously cause a race condition/deadlock.
-
-commit af79370b65b396e05c319d29356e456a8f5e8233
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Mon Jan 7 12:44:49 2008 +0000
-
- Make the av_class member of PPContext a poiner to constant AVClass.
- Patch by Diego 'Flameeyes' Petten
-� flameeyes commit afafe7361da5a9373d02dc60d597da8f2185edd3
-Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Sat Nov 2 10:31:37 2002 +0000
-
- added perm inheritance from ffmpeg_g (it looks like 'strip' in BeOS doesn't keep them, though the Linux one does !?)
- patch by (Fran
-commit afc391b7ab5eda271733bbe55ef46118aba75bff
-Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Sat Jul 20 20:05:50 2002 +0000
-
- beos/mov/adpcm patch by Fran
-commit afe0428ae38f68a467b43cc9358b7a1a2f85d36b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 16 18:09:11 2008 -0400
-
- Fix memory leak in mpegvideo
-
-commit b05eb30ba838b981c769217e1d2215777484f25a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jan 21 02:34:46 2011 -0500
-
- Make the src parameter of update_thread_context() const
-
-commit b07e45974b2772e3a747502f976dc08d0ffcff74
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 18 16:21:03 2009 -0400
-
- Indent.
-
-commit b125b68fe6dc2d0064d45d0cffc3bcb47263f32c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jan 24 18:50:32 2010 -0500
-
- Remove fixed entry from the todo.
-
-commit b18683e3adc997b19cf56f459ce5f8a7428c0909
-Author: diego <diego@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Sun Oct 18 14:34:45 2009 +0000
-
- Fix typo that mistakenly slipped into previous commit:
- CONFIG_MPEG_XVMC_DECODER was changed to CONFIG_MPEGVIDEO_XVMC_DECODER.
- patch by Onur K
-�
-commit b1c8c18fe11d3155b1df6a19117d14fa633bcd15
-Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Sat Nov 2 10:39:22 2002 +0000
-
- added MACE (Macintosh Audio Compression/Expansion) 3:1 & 6:1 support
- contribution by Laszlo Torok <torokl@alpha.dfmk.hu>
- 4CC 'MAC3' and 'MAC6' in Quicktime.
- It works for mono streams, needs to be fixed for stereo when I get my hands on a stereo sample :)
- patch by (Fran
-commit b3cdfccd2b11e247e0c17e02d0c958888da5585b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Nov 15 04:14:41 2010 -0500
-
- avcodec.h: Update comments
-
-commit b3d5e9333051802b20446076605b404e418323c4
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue May 26 00:34:11 2009 -0400
-
- Skip unnecessary lock-wait-unlocks for condition variables.
-
-commit b3e3f071ca5ad99444bac95e4128c01a8ae7bae3
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 11 11:32:00 2009 -0700
-
- Split out if (current_slice == 1)
-
-commit b4221d5453d6dc893e87b77eecc845da121ddb56
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Aug 18 17:06:32 2008 -0400
-
- Reorder ff_frame_thread_free to fix memory errors.
-
- This fixes using mutexes after they're destroyed and not calling release_buffer on every buffer.
- Unfortunately the change to MPV_common_end is exactly the opposite of what's needed for supporting width/height changes.
-
-commit b483ed4f4af9444cfaa6ff9336645d799d2254dd
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Aug 6 20:33:51 2008 -0400
-
- Remove the unused debugging counters from frame threading.
-
-commit b67d7055bf60313c40b6369f98cfc9d1eae3aefb
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Sep 2 00:52:48 2008 -0400
-
- Clear returned pictures immediately after copying them.
-
- This isn't protected by a mutex but is still safe.
- Needed for the next commit.
-
-commit b68110d079914d16c9fc5d1cc8c6e10d78dbdbca
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 16 15:05:49 2008 -0400
-
- H264: Set the decode progress for fake reference frames to the maximum.
-
- Fixes deadlock in premiere-paff.ts at the expense of some indeterminism on the first frame.
-
-commit b77accec9077ae8f072091fc7301d661bc9487ba
-Merge: 5d3c2f7 392faa1
-Author: Luca Barbato <lu_zero@gentoo.org>
-Date: Tue Jul 29 15:11:05 2008 +0200
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit b7d182610b592eef0714c1d2de18c3233a289b69
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun May 24 01:06:33 2009 -0400
-
- Update mplayer.diff whitespace
-
-commit b7e0f1a3bfd00b0256dcdd3efc4b7b77c086e70e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Aug 24 22:38:42 2008 -0400
-
- Rename doxygen group to not conflict with h264
-
-commit b88c3baf94247f2687ca0c05b0ce6af7c905e02a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon May 24 22:40:00 2010 -0400
-
- Fix more old merge glitches.
-
-commit b9a8973031be583af53be890ccdef07841394385
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jun 15 22:31:35 2008 -0400
-
- Use output_cond for notifying the main thread.
-
-commit ba073d39f18679835b48b96f20feae96dad1f343
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Apr 11 23:00:19 2011 -0400
-
- h264: cosmetic whitespace change
-
-commit ba8b789143dc6a14c29393e40fb361c1a3e2ccd4
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 16 01:53:10 2008 -0400
-
- Update todo
-
-commit babb66241ae51e2956aa698d425c645ad056936e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Oct 17 14:52:35 2008 -0400
-
- Copy avctx->height/width for mpegvideo.
-
- Not sure what the difference between the three width variables is, really.
-
-commit bad2bf8621c04791f0d9a0a2873a3b6042d4ba83
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun May 24 00:48:57 2009 -0400
-
- Copy new fields in update_context_from_copy().
-
-commit bb67674aa57e23893f2f19bd4ffb4a92b5a01e83
-Merge: 06ac5ac 6051838
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jun 20 17:39:15 2010 -0700
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit bba0e098a75f14af80bfd4fdfdf9edcaf8f3fee5
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jun 20 03:32:19 2009 -0400
-
- Factor out vp3 table allocation into new function.
-
-commit bbc5744117da188c43e00c4f02f6ff0fe984d4f8
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jul 13 15:52:21 2008 -0400
-
- Print the AVCodecContext address in av_log instead of AVClass.
- This makes logging much easier to read when there's more than one context.
-
-commit bc1cc6f39a0f6df2cc1d0fecd3eb14efd150763a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Feb 3 01:29:21 2010 -0500
-
- Cosmetics: Don't use #if HAVE_PTHREADS in thread.h.
-
- These two macros will be removed entirely in the future.
-
-commit bd392934097dc5c909e9b06550ec1d13d92fa134
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Aug 15 23:34:32 2008 -0400
-
- Set output_size properly before calling the decoder so it doesn't return nonsense and crash at the end
-
-commit bd63cf4721466aea490f6f0455a32060d572d5ba
-Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Sun Jul 21 07:54:53 2002 +0000
-
- YUV410P to YUV420P patch by Fran
-commit bdaeaaa58f24393027e112c02896b23fe0b3cc01
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Oct 13 11:23:47 2008 -0400
-
- Add buffer padding to the end of bitstream_buffer.
-
- Fixes a warning in valgrind.
-
-commit bdef29429d4f488012cb492e61cf20ffe0b858a7
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jul 6 15:48:52 2008 -0400
-
- Fix compilation with threads disabled.
-
-commit be45bc423ba576e1d06df3664cfe91e02d78ffa5
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Feb 15 00:00:35 2010 -0500
-
- Fix a deadlock in mpeg1 threaded decoding
-
- Fake frames need their progress set to INT_MAX.
-
- This can be triggered by seeking in mpeg1, but this is not the correct fix,
- since seeking to keyframes does seem to work properly without threads.
-
-commit bf806642ab67148d93a4f24e7dbdc8644575c45b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jan 24 18:59:28 2010 -0500
-
- When frame_thread_init() fails, free the failed thread context as well.
-
-commit bffb1c874ec2c9f7ea9c6830d852955a3c2805a0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Aug 6 20:51:34 2008 -0400
-
- Make ff_*_thread_free static.
-
-commit c01185fe11dd2ce35f798d16faec17fcfc64c7c4
-Author: kabi <kabi@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Fri Mar 8 09:09:57 2002 +0000
-
- * BeOS patch by Fran
-commit c05a51580b56d1479083b1460dc29492b3fb6b16
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 19 00:53:15 2008 -0400
-
- Track allocated buffer size properly. Don't allocate buffer padding since the user already did it.
-
-commit c1b0bddeaf947ef49c63b412918d73fe7a645ba5
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Nov 15 04:08:01 2010 -0500
-
- pthread: Update and sort the fields copied in update_context_from_thread/update_context_from_user
-
- Changes to pthread.c are finished.
-
-commit c29d645dfd2c8168e7c9009638ddb88928e706be
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue May 11 06:12:26 2010 -0400
-
- Copy time_base between threads.
-
- Appears to be used by the h263 decoder.
-
-commit c2a400d3a5da10f8f2a9c2aa89d9396efe428029
-Merge: b77acce e96a4b0
-Author: Luca Barbato <lu_zero@gentoo.org>
-Date: Thu Aug 14 22:16:09 2008 +0200
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit c2e19261fe08c2d96d4bf082e97bebcdf12566f2
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Feb 20 21:24:24 2010 -0500
-
- Remove USE_FRAME_THREADING and USE_AVCODEC_EXECUTE macros.
-
- Requested in original review, might help making sure pthread emulation
- works for encoding tests.
-
-commit c2e9a1fc965de63271c7c4ddffd7e938ce1bfd93
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Tue Nov 6 16:28:32 2007 +0000
-
- ffplay currently needs special handling for pausing in some protocols.
- Patch by Bj
-�rn Axelsson: bjorn ; axelsson commit c2eed2a91101a90f2172e81755ca4d655de90443
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Nov 3 22:13:07 2010 -0400
-
- vp3: Cosmetic changes
-
-commit c370b927b6d1f0e092e43d58ee29046e5accad1a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Feb 6 19:18:10 2011 -0500
-
- Improve comment in avcodec.h
-
-commit c378f545f65d536e55ebe1ac85d170a15e7748eb
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Aug 6 20:12:01 2008 -0400
-
- Reindent.
-
-commit c45bb41ec61522dcdb97618a0f6fafd8a32d529b
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Mon Jan 7 12:42:02 2008 +0000
-
- Make v4l.c's video_formats constant and static.
- Patch by Diego 'Flameeyes' Petten
-� flameeyes commit c4649d2e370c04c7f5cfcf0b444edc6116ba03f8
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jan 25 03:16:09 2010 -0500
-
- Avoid freeing buffers twice when closing mpegvideo.
-
- This fixes a harmless "unreleased buffers" warning due to the design
- of delayed releasing. This is probably a bad way to do it (won't
- work if resolution changing is supported) but I can't think of a
- better one that's simple.
-
-commit c5137d0d9e355aecc7e60cef0d2314468b77a147
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jan 15 22:52:30 2011 -0500
-
- Update todo.txt
-
-commit c563b57b187279c1af0f723110bdab815fac6385
-Merge: 65e8486 6a3327b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Apr 3 21:23:47 2009 -0400
-
- Merge mainline.
-
- Conflicts:
- libavcodec/avcodec.h
- libavcodec/mpegvideo.c
-
-commit c58218c681e51a1b392ddb0177dcff8fc8e99d1c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 12 00:45:01 2008 -0400
-
- Use HAVE_PTHREADS instead of ENABLE_PTHREADS for mplayer compatibility.
-
-commit c5ca1f6b5227f8f7a26f889c123c4358ee15596e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jan 15 22:51:43 2011 -0500
-
- Pass pkt_dts properly through multithreading
-
- A/V sync should work in all cases now once guess_correct_pts()/clients
- adopt AVFrame.pkt_dts.
-
-commit c6a59ddd734c7ca92862bce47ec686e16da627ee
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jun 19 18:32:12 2009 -0400
-
- Remove frame_num stuff from todo.
-
- The current code is actually correct.
-
-commit c6bbd5d91408d6dd795dfbbdfba2cef62696d765
-Author: michael <michael@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Sun Jan 8 17:06:26 2006 +0000
-
- fixing second last time Fran
-commit c6f5097967de5ed420cd56a1a77b60a705fcee48
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 16 05:09:03 2008 -0400
-
- Disable frame threading if low_delay or randomly truncated frames are used.
-
-commit c75cec5217fc23206476e2d1c894e8a6ddcd81b9
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Mar 29 02:25:19 2009 -0400
-
- Fix missing ff_get/release_buffer calls in mdec.
-
-commit c83670eeb613b9509555d4ddcac559a37cc1c5bc
-Merge: 2063f77 dde06af
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Dec 15 15:20:06 2010 -0500
-
- Merge mainline.
-
- Version wasn't updated this time.
-
- Conflicts:
- doc/APIchanges
- libavcodec/avcodec.h
-
-commit c91d7a205df4dd224461b96749b9ce12e2bf6825
-Merge: 4874d25 04c74fc
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed May 19 16:51:42 2010 -0400
-
- Merge mainline.
-
- Conflicts:
- libavcodec/avcodec.h
- libavcodec/options.c
- libavcodec/utils.c
-
-commit ca89b49eff34604b1354888cd041f474d988c122
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jun 23 04:16:16 2008 -0400
-
- Fix ff_frame_thread_flush()
- It should setup the context to be just like decoding starting from scratch.
-
-commit cac4bca0570a9b9ffdd3b49590fe1e41fd5568b0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jun 27 15:02:21 2009 -0400
-
- Fix conditions for drawing edges.
-
- They shouldn't be drawn for B-frames/intra only (for speed)
- and when hwaccel is on (for correctness).
-
-commit cba830597c99b7a6de57b3cd2209d22598bb72b1
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Feb 13 22:45:07 2010 -0500
-
- Backport VP3 crash/deadlock fix from mainline r21781.
-
- Previously, if get_buffer() failed when allocating a golden frame,
- it would access it in a later frame without checking it first.
- r21781 unintentionally fixed this.
-
- This should be impossible to trigger, but some other bug in -mt
- causes this with frequent seeking.
-
-commit cbaa375d4cb1320093199e8abe1ce7bcf389036d
-Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Sat Nov 2 21:05:54 2002 +0000
-
- gcc optimization on BeOS (patch by Fran
-commit cbc8d8bec42b371522b0724f27454a96881c4164
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Apr 19 02:47:32 2010 -0400
-
- Disable multithreading the first field in PAFF.
-
- At least one PAFF .mp4 file has two fields per packet, which can't
- work with -mt - instead it needs to split the fields up like packed
- B-frames do.
-
- Fixes Chalet-Tire.mp4. Pessimizes otherwise working files.
-
-commit cc33ba7cd7ebbf14b62b0783fb7272e41b484aea
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue May 11 14:41:53 2010 -0400
-
- Cosmetics: arbitrary reordering of some pthread struct members
-
-commit ccd0d039a3d2fd70a9e947cc2faf79ca091dd687
-Author: Luca Barbato <lu_zero@gentoo.org>
-Date: Fri Apr 25 21:52:45 2008 +0200
-
- Incorporate swscale as submodule
-
-commit cd71fb4386961bc860c3abc4cf464b580366d57d
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jan 25 16:33:26 2011 -0500
-
- Forgot to git add the test failures list
-
-commit cdc193d0dbc2f0775d177f46036eca0d813f56ff
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jul 6 15:53:33 2008 -0400
-
- Use static functions instead of macros for consistency.
-
-commit cf2561f8dcc3143f9c479bba1d9be91339f23726
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jan 21 02:22:56 2011 -0500
-
- Write longer comments for callbacks
-
- Also neglected to update get_buffer to mention thread_safe_callbacks
-
-commit cf528d74cd7321219880eb06b94a8de0ba5741ff
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Aug 17 16:50:51 2008 -0400
-
- Fix another memory leak.
-
-commit cf56bb126e7c056740e51c6c13304b03260b4b47
-Merge: ccd0d03 08baa31
-Author: Luca Barbato <lu_zero@gentoo.org>
-Date: Sat May 3 12:18:40 2008 +0200
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit d0c772c8021702ca79ce2aceeba75902231c0101
-Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Tue Jul 23 22:05:35 2002 +0000
-
- patch by Fran
-commit d103d4fac41b32915b45534d49d1e6a195b4220b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Feb 3 01:00:14 2010 -0500
-
- Simplify thread.h by removing the stub functions.
-
- They don't really help anything, if (HAVE_PTHREADS && ...) is sufficient.
-
-commit d15ab0f03a257293c0e13eac8b9b031da73c48f3
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jun 3 04:41:33 2008 -0400
-
- Macroize some threading checks.
-
-commit d21f769ead6bd4c24d867b7e9beeb8ffcc86b271
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Aug 6 20:36:04 2008 -0400
-
- Revert renaming pthread.c.
-
-commit d2f8287d8526f814bcc88d827775d39ddc5c5f22
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jan 17 14:34:22 2011 -0500
-
- Update todo.txt to put important things at the top
-
-commit d359ab19a25afa7dae20229e62dc0e37b6179ea7
-Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Mon Jul 22 01:44:08 2002 +0000
-
- adpcm encoding patch by Fran
-commit d419a1c1d30e1b171fba7dc31a909e77a08016ba
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Aug 24 03:51:18 2008 -0400
-
- Comment utility functions in pthread.c
-
-commit d460fd8d253c90f20536dffe69a6ea20dc113106
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 19 15:57:28 2008 -0400
-
- Simplify codec close
-
-commit d4fad7c7f05e6fd7d677eaf1069e04c94b946a0c
-Merge: f3f3d11 980ab8d
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Feb 2 21:41:11 2010 -0500
-
- Merge mainline and libswscale.
-
- ffplay's pts reordering is better now, so ffplay.c has been reverted
- to mainline.
-
- Conflicts:
- ffplay.c
- libavcodec/avcodec.h
- libavcodec/h264.c
-
-commit d5227efafd855f028338480f937b6ad4a86ef7ac
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 12 18:24:28 2008 -0400
-
- Don't check MAX_THREADS unless slice threading is on.
-
-commit d5c16c23327d84373fca125b884254550b79c8d7
-Author: mmu_man <mmu_man@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Sun Jan 23 09:59:36 2005 +0000
-
- Revert the fixed-size-sample patch as it brokes and others
- WTF I thought I had commited this yesterday... was probably too asleep :commit d5ea5fc7342e3a1b082659bccd5ffd90a911b780
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu May 7 01:19:55 2009 -0400
-
- Replace the number of frames option with a number of frames to skip.
-
- The old option wasn't really useful (ffmpeg -t saves more time)
- and this is needed to deal with broken stream clips, which are
- common and tend to decode differently under mt anyway, which I
- don't really care about.
-
-commit d611b2bcb3ce231242f566cee08a61798a36abc8
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 18 05:03:36 2009 -0400
-
- Fix race condition upon return from decode_init().
-
- We can't call report_frame_progress on every returned frame,
- because they may be returned while a past thread is still decoding
- them. Instead ensure frames always have this called on them after
- their decode is done.
-
- Should fix all bugs for valid H.264 streams without frame num gaps.
-
-commit d62b7c03b163c3dc067f122ab9fec44de87b37ae
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Mar 9 01:54:27 2010 -0500
-
- VP3: Only call await_reference_row() for luma
-
- 4.3% -> 2.1% cpu on big_buck_bunny_1080p_stereo.ogg.
- It should be further reducable since VP3 has limited MV range.
-
-commit d6bb0443c9b316b8cf29720524b4819fb2e6b6a1
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Sep 4 01:50:20 2008 -0400
-
- Don't mention nonexistant variables in comments
-
-commit d71a7eef9e540b00b0f91d840116e43206390645
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon May 24 16:45:27 2010 -0400
-
- h264: Delete lines accidentally left behind during a merge
-
-commit d7cfe6d5cbffa42e178d88d7c647d37431e21861
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Feb 1 22:20:19 2011 -0500
-
- Fix dropped frames at the beginning of h264 decoding, fixes FATE tests
-
- Patch by Ronald Bultje (rsbultje@gmail.com)
-
-commit d8014c67ff1ef20ca05302dea9e262a3089d996e
-Merge: 604ee54 4ce0d81
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat May 1 04:03:03 2010 -0400
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit d812c6f8b1d897734d6f7b5f1a5c95d3aa10a3ea
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 24 02:25:25 2010 -0700
-
- Fix crash on close when decoding a single-frame h264 file with 3+ threads
-
- Problematic code path:
- 1. sps_buffers[0] is allocated in the first thread's codec context when the
- decoder is opened.
- 2. The first thread context is memcpy'd to the other threads by frame_thread_init().
- 3. The first thread is closed and its sps_buffers[0] is freed.
- 4. The third thread is closed.
- Because it never got to decode a frame, update_thread_context was never called,
- and sps_buffers[0] still contained the first thread's pointer.
-
- Fixed by not trying to free sps/pps buffers if the thread wasn't initialized.
- I didn't properly consider this when designing it but this seems to be the
- best approach anyway.
-
- Fixes still2.mp4 crash from Chromium
-
-commit d84fc3dfd3e051c782d063ccba4cc8cadba38797
-Author: michaelni <michaelni@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Tue Nov 5 00:56:08 2002 +0000
-
- MIN/MAX sys/param.h patch by (Fran
-commit d93fe0ea6b1b8121fdb9521fa7eeac0dc494deeb
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Tue Nov 6 16:19:09 2007 +0000
-
- Allow propagation of stream selection through the ASF demuxer to the
- MMSH protocol handler.
- Patch by Bj
-�rn Axelsson: bjorn ; axelsson commit d955ab0dfa73578eaa6a9d1dcb821ce9db409738
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Mar 29 04:53:11 2011 -0400
-
- Update todo. More items appeared...
-
-commit da70ded7141aa191b92672c343cd29a0014d861f
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Dec 18 13:27:51 2008 -0500
-
- Update todo
-
-commit da7bdb1273da15a90bfe08ead91e397247916d11
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jun 24 03:24:17 2008 -0400
-
- Get rid of tabs
-
-commit da86d2da9f6a76238a9d788ecd77f714981e666d
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Sep 4 01:40:51 2008 -0400
-
- Reindent.
-
-commit da95175e7ce1f911db992fef213322345200feaf
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jul 14 01:52:37 2008 -0400
-
- Add a parameter to not draw top/bottom in draw_edges.
-
-commit db2a99d28931128c8598067ae06444ab79f579f8
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jun 9 17:29:47 2009 -0700
-
- Fix typo in comment.
-
-commit dbfbadaa095b65a724ac848d551cfa2aa33e2f6a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue May 11 05:16:14 2010 -0400
-
- Update todo.
-
- Got another h264 bug report with the same cause as before.
-
-commit dc53861aadac1d43391b28e4e9793393b26394b9
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Jun 18 20:52:34 2008 -0400
-
- Always set decode progress to the maximum at the end of decoding
- This saves doing it for frames with AC partitioning and such.
- We can't do it if the codec didn't return a frame, so there is still an opportunity for deadlocks here, maybe.
-
-commit dc7c4d436681e43a9f351dd18f70d0dc008aa55e
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Thu Jan 10 10:18:00 2008 +0000
-
- Make MMX vectors constants.
- Patch by Diego 'Flameeyes' Petten
-� flameeyes commit dd9e04497937b7fffdcc65a2b41e36089412d975
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Mar 29 17:18:21 2011 -0400
-
- Remove unnecessary parameter from ff_thread_init() and fix behavior
-
- thread_count passed to ff_thread_init() is only used to set AVCodecContext.
- thread_count, and can be removed. Instead move it to the legacy implementation
- of avcodec_thread_init().
-
- This also fixes the problem that calling avcodec_thread_init() with pthreads
- enabled did not set it since ff1efc524cb3c60f2f746e3b4550bb1a86c65316.
-
-commit ddc8310d2a9300139d1821954dfa2d0b775edaa1
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Feb 11 22:12:03 2010 -0500
-
- Fix mutex leak introduced in 0040d6f2ba.
-
- If allocate_progress() failed, the error condition returned before
- unlocking its mutex.
-
-commit de365823ec9546a3bd688690e79fc15281a68f1f
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Jun 23 01:26:42 2010 -0700
-
- todo: fix ugly word wrapping
-
-commit de736aacd945d66109197a6f04baf915d458f5ac
-Merge: 7eac0bc 780a37c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 18 17:53:09 2009 -0400
-
- Merge mainline.
-
-commit de8abf54671555bb166bb1d44a34fe14e360e2a5
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jan 24 16:37:24 2010 -0500
-
- Rename and document MAX_DELAYED_RELEASED_BUFFERS.
-
-commit dedc2982f2f845357f28dff401fe5df8510c6a8f
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Tue May 22 08:28:32 2007 +0000
-
- id3v2 writer
- patch by Andreas
-�commit df444fadf045bf70058da9b074b8f848fc2209b1
-Merge: 14bdf76 1476e6a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Mar 9 02:04:43 2010 -0500
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit df5d7acdcd0dcbfca6f8fd4f76c9369cb1674435
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 16 17:32:24 2008 -0400
-
- Don't reuse the user's AVCodecContext for the first decoding thread, and copy more values between them as needed.
-
- This fixes a large class of race conditions (coded_frame works again) and should improve frame dropping.
-
-commit dfb8be0a60b9562cf7bb6e54dd67088ff51f83b0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jun 24 21:35:14 2008 -0400
-
- Call avcodec_get_frame_defaults() before decoding.
-
-commit e0285f04bed7fefba5f75d05c81b145f44fc49f5
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jul 31 18:40:46 2008 -0400
-
- Use got_extradata instead of frame_number to guard against rereading extradata.
-
- frame_number is no longer valid internally, since I don't want to change its definition from the user's perspective.
- mpeg12 does the same thing, but I can't find or create any mpeg1+extradata samples to check it.
-
-commit e044d5c79ab340cf52842ba8452d670959eb37c0
-Merge: 3c3a364 5115473
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Nov 7 04:54:47 2008 -0500
-
- Merge mainline into ffmpeg-mt
-
- - Handle reordered_opaque properly
- - Picture.field_picture is a duplicate of Picture.mbaff,
- but is necessary, since interlaced_frame can't be trusted
- and mbaff can't be interpreted without it.
-
-commit e0dc361e0f0aa315320a549a4fda3424226c556f
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Sep 1 03:35:23 2008 -0400
-
- Update todo
-
-commit e174657cbb973abf5de9085d00d85ac04d29a475
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Aug 28 17:11:09 2008 -0400
-
- Move avcodec_thread_init call before avcodec_open in ffplay.
-
- It makes no sense to have it after, since a decoder is not forbidden from reading it during init.
- Encoders already do.
-
-commit e1f49541b976cdd091aa41f116e7c9fd0c740cf3
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jun 17 23:35:55 2008 -0400
-
- Fix rounding for mpeg1 MVs.
-
-commit e23b687201a076161384fbc7a2f76bd0092dd34c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Jan 20 02:36:18 2010 -0500
-
- Include the delay from frame threads in has_b_frames.
-
- This is an API change, but anything that already counted thread_count
- just has an incorrectly high max delay size, which shouldn't be a
- problem.
-
-commit e2b9383929e2c703eabd1df8afcb9fa5ad7106ec
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jun 15 17:36:59 2008 -0400
-
- Add choice of threading algorithm to AVCodecContext.
-
- Use it to simplify USE_* macros.
- FF_THREAD_AUTO needs to be handled better - even if a codec can handle frame-threads, we still don't want to use them if there are enough slices available.
-
-commit e2ecdd48d664f2660bfd661f1cef6276b986743b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jul 25 03:12:58 2008 -0400
-
- Simplify mpeg_decode_update_context.
-
-commit e303003362829a7f2f1dcbc45d6abc9ac7a59b6a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Aug 14 22:59:01 2008 -0400
-
- Reindent.
-
-commit e340cacc56545c5fc3a903c68fec99e8921d579e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Nov 8 06:13:23 2008 -0500
-
- Disable r15412 for now to avoid crashes.
-
- update_context can't handle picture pts not pointing to picture and I couldn't think of a better way to do it at 5 am.
- May not actually fix anything.
-
-commit e345a54e5f86d9777e4c3ccb04aad84f9cd77ff0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Mar 8 04:55:43 2010 -0500
-
- Add optimization note to todo.
-
-commit e39c3828e02fe71ce627170bc8c26a558f29f4b8
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Feb 15 00:39:39 2010 -0500
-
- Update todo
-
-commit e3f13a4f70b1310309ebb462b1011721cb3692fe
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Sep 4 14:05:31 2008 -0400
-
- Rename new symbols to be shorter
-
-commit e4565c5731bfcd8808d02f47f115e21dc6fc8b35
-Merge: 4b9ce55 fb61a7c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Mar 10 02:25:55 2011 -0500
-
- Merge branch 'master' of git://git.ffmpeg.org/ffmpeg
-
- Conflicts:
- .gitignore
- doc/APIchanges
- ffplay.c
- libavcodec/arm/asm-offsets.h
- libavcodec/avcodec.h
- libavcodec/h264.c
- libavcodec/mpegvideo.h
- libavcodec/options.c
- libavcodec/pthread.c
- libavcodec/thread.h
- libavcodec/utils.c
- libavcodec/vp3.c
- libavcodec/vp8.c
- libavformat/utils.c
-
-commit e45cf6d46cb45e6edcf9e4ac368b2a013ba30158
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Aug 14 04:01:08 2008 -0400
-
- Add todo and some other files.
-
- Trailing whitespace in mplayer isn't my fault.
-
-commit e4df986f3d2d3e1be9b0f4eeda463fa854910b8f
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Aug 28 00:41:52 2008 -0400
-
- Revert unnecessary setting of the wrong variable
-
-commit e53d020b37ca26ffa4cdb22d2b40321897f52ba9
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 23 20:39:06 2008 -0400
-
- Warn if users try to use frame threading without pthreads.
-
-commit e717770ee8437c296e012e908b772ba2eaeb2ed3
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jul 15 03:16:22 2008 -0400
-
- Create next_delayed_pic for multithreading purposes
- unreference_pic is intentionally unchanged.
-
-commit e71a2b5017728022fa1f992a8b541260615016b2
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Jun 18 23:22:01 2008 -0400
-
- Use USE_FRAME_THREADING instead of checking for thread_opaque, since it might be the wrong type.
-
-commit e74ef89858732b9fc4a90c8ec8fbb701407eb987
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed May 28 22:50:22 2008 -0400
-
- Split setting avctx->thread_count from the rest of pthread init.
- Make sure it's called from whichever of avcodec_open and avcodec_thread_init comes later.
-
-commit e7519b6532409e332fc9727ea5a57e148e6655a6
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Thu May 15 01:03:48 2008 +0000
-
- Make av_set_string() fail when number could not be set.
- Patch by Stefano Sabatini stefanocommit e8bc7da9d69234ebbcbde371c5a0e20f8b5cfccc
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jan 25 02:59:00 2010 -0500
-
- Remove accidental extra variable declaration
-
-commit e95251807c0ae66ffef1e4ad113b9773a287fa5a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jun 27 22:14:45 2009 -0400
-
- Get rid of static variables in VP3.
-
- These are pointless and might behave wrong with thread-local
- statics.
-
-commit e9a0e5eaf5207321baf90160b1094300f3810ecf
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jun 23 21:21:44 2008 -0400
-
- Use FF_INPUT_BUFFER_PADDING_SIZE for the buffer.
-
-commit ea396d38059476a54c5855e0bd81955c60238b22
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Nov 3 22:50:02 2010 -0400
-
- Rewrite comments in thread.h and fix parameter names in ff_thread_decode_frame
-
-commit ebce21c15f3aaf1b4512436ed8fc2e71a504bb11
-Merge: 3630d89 5570afd
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Dec 18 12:49:54 2008 -0500
-
- Merge mainline.
-
- Conflicts:
-
- libavcodec/avcodec.h
- libavcodec/mpegvideo.c
- libavcodec/utils.c
-
-commit ed3e2ae1277cc425ef133f10700ace86629381ef
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jul 13 16:05:09 2008 -0400
-
- Remove useless variable.
-
-commit ed42183540e2a886a7368b8220e0b50aaf363551
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Sep 30 16:53:03 2010 -0400
-
- Fix hang decoding VP3/Theora.
-
- draw_horiz_band changed to only draw the displayed height instead of the
- decoded height. This meant that we never reported progress for the last few
- decoded pixels, but still awaited them, which deadlocked.
-
- This shouldn't cause any race conditions, because it always decodes the last
- few pixels along with the last decoded pixels.
-
- Patch by Yuriy Kaminsky (yumkam mail ru).
-
-commit ed5e8392e2fce8e6b0468de4ae1a4310d338ee46
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Aug 28 02:29:08 2008 -0400
-
- Simplify(?) threaded avcodec_flush_buffers
-
-commit ed728b0a05c2154b07cc3d8330d5900dbc45f1d7
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue May 27 23:25:47 2008 -0400
-
- Guard against avcodec_thread_execute() being called without being setup.
-
-commit edb60439feb2c5d39cda314178686eea151185b3
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Nov 1 12:54:47 2010 -0400
-
- vp3: Assume MVs are their maximum length of 16 pixels
-
- This makes it worse (although slightly simpler) in preparation for further
- optimization.
-
-commit ee8430539ec7cc23b7cf6332e26751f539315d5b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jul 6 15:56:28 2008 -0400
-
- Don't include the codecs' threading support functions without some kind of threading enabled.
- As a side effect this makes non-pthreads threading even more problematic.
-
-commit eed4b9708287066ccc1b3042110f7c3379f63ee2
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Aug 28 01:44:44 2008 -0400
-
- Simplify disabling MB skipping
-
-commit ef26f878e0e581cb61f1e9b376bec4f7ff07397a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Mar 9 01:48:18 2010 -0500
-
- Cosmetics: fix outdated comment
-
-commit ef2d8664f1eff56e969801ecd1c5b7c729902819
-Merge: 11b1a8e 9c7037f
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Jun 8 14:29:22 2010 -0700
-
- Merge mainline and libswscale
-
-commit efd1fb08db3e7964357dc00fd514cfb156b4ee69
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 11 11:33:09 2009 -0700
-
- Reindent.
-
-commit f139f42301a5ee861f1a91cdfcceb2a85349fa29
-Merge: 70fb3fd 7210b4e
-Author: Luca Barbato <lu_zero@gentoo.org>
-Date: Sun Jun 22 12:08:59 2008 +0200
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit f143b66d9bf8b23985bf8ec6acf8273c3e9ccd1d
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Aug 19 21:12:32 2008 -0400
-
- Handle NULL threads if they aren't started because of an init error.
-
-commit f1936d87290c7444090d6cb101b0d7c9270f0a81
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Thu Jun 24 15:22:33 2010 +0000
-
- Set an opaque alpha value when decoding rgba ffv1.
- Patch by Thad Ward coderjoe69commit f1fe312cb47cbc540da764cbab3582739a20a8d2
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 5 20:30:58 2008 -0400
-
- Cosmetics: make thread.h look like other prototypes.
-
-commit f374d2ee585d7f6c98ffd3a7803223552497904e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jan 21 04:13:06 2011 -0500
-
- Simplify change to avcodec_close() and fix a merge glitch in avcodec_open()
-
-commit f3c88f32b8c806b352cf6e00d6ac80fd32e9f54c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Sep 3 11:45:09 2008 -0400
-
- Field picture API support
-
-commit f3f3d1189de648862ca204676dd7591262f590df
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Jan 25 04:12:34 2010 -0500
-
- Add todo note about a change to thread.h I mean to do.
-
-commit f4d4d43f3a596941b2214ac1e71bb818eb230d6b
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Fri Jan 21 02:43:30 2011 -0500
-
- Minor update to thread.h comment
-
-commit f4fb456b114eafc22b8ab9bb0bb3e7f13a4fbd9a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Nov 2 02:56:12 2010 -0400
-
- vp3: Revert motion_y removal
-
- Although it doesn't have much of an effect on speed either way, I reconsidered
- the simplification I wanted to do, and now I'd rather keep this as an example
- of proper multithreading structure.
-
-commit f52df8ebae0ad1db15c5e804a458ca81e04c6156
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Aug 25 14:33:09 2008 -0400
-
- Fix whitespace mistake
-
-commit f550857de3ffcb6b2980c4c952b7e84db478d399
-Merge: d62b7c0 a175a04
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Mar 27 02:01:59 2010 -0400
-
- Merge mainline.
-
- Conflicts:
- libavcodec/avcodec.h
- libavcodec/h264.c
- libavcodec/options.c
- libavcodec/vp3.c
-
-commit f5596f046c05bc7d8afda7658f891d69587934f0
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon Nov 15 01:38:36 2010 -0500
-
- Rewrite comments and cosmetic changes to pthread.c
-
- Some small code changes, but there shouldn't be any behavior change.
-
-commit f695698a78e07a45f4cc9d24ae95fd73f25600e7
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Jan 26 12:43:05 2011 -0500
-
- Update todo.txt with review feedback
-
-commit f6d7d0c03c8d7c91a39c9374d9cee83e32627681
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Feb 6 19:04:21 2011 -0500
-
- pthread: Cosmetic changes and renaming
-
- Rename frame->packet, picture->frame.
- Use /**< to point to the right field in doxygen.
- Fix some typos.
-
-commit f71e7068faabecc32abc798a09b9df403f85e33f
-Merge: 2bbb64d a4f892e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jan 6 05:45:03 2011 -0500
-
- Merge mainline.
-
- Conflicts:
- doc/APIchanges
-
-commit f7cc4441b7046a542ef655575ce3e8684ff12e02
-Merge: bba0e09 9eac0a6
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jun 20 15:58:38 2009 -0400
-
- Merge mainline.
-
-commit f9515a4e57356bce4d652451fbaccd071d91dbe9
-Merge: a903974 0c28ee7
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Nov 11 15:38:20 2009 -0500
-
- Merge mainline.
-
- In h264, next_outputed_poc is now used in decode_postinit()
- where mainline uses outputed_poc.
-
- Conflicts:
- libavcodec/avcodec.h
- libavcodec/h263dec.c
- libavcodec/h264.c
- libavcodec/utils.c
-
-commit f9b01bbf85d68f23a81ec5325fae81c8518cc385
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon May 25 20:06:00 2009 -0400
-
- Remove unnecessary check from mc_dir_part_y().
-
- This was already remove from mc_dir_part(). I hope it's unnecessary
- here too.
-
-commit fa3f68f39f4a96a1170eadfe6ba4677d5d25017f
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 16 04:23:20 2008 -0400
-
- Document functions in thread.h
-
-commit fa8a82e991280b7ccac89ed2a29b332e609bc370
-Author: Luca Barbato <lu_zero@gentoo.org>
-Date: Sat May 3 15:18:01 2008 +0200
-
- Switch to the gitorius mirror of libswscale
-
-commit fafaae289235b361b6786745dcbdf6fa938c3c2e
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Dec 4 01:46:22 2008 -0500
-
- Don't compare pthread_t to NULL
-
- It's not required to be a pointer, and it doesn't
- need to be validated since pthread_join will just
- return an error if it doesn't exist.
-
- Reverts f143b66d9bf8b23985bf8ec6acf8273c3e9ccd1d
-
-commit fb1afd9eba5fe2752b83c4b3de24ed88e14b534a
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Mar 14 00:56:54 2009 -0400
-
- Rewrite todo (again...) split up so other people should be able to understand it.
- Add yuvcmp, though maybe it should go somewhere else.
-
-commit fb1f31ff6cbcbbde72920e731223fd0fb8f05d02
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Aug 30 04:26:47 2008 -0400
-
- Update multithreading doc
-
-commit fb7dfc0e9e9ff8a5030cde46e28d49d6ce73e453
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Jan 24 22:15:56 2010 -0500
-
- Always call avcodec_thread_init() in avcodec_open().
-
- This matches upstream behavior, but neither of them have any effect.
- It allows implementing automatic thread counts, though.
-
-commit fbb871069bd106bfd47d215216be01d1ef30aec8
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Feb 14 23:47:42 2010 -0500
-
- Reindent vp3.c.
-
-commit fc957c71da6c9a7e5c769e15f256652352f7b4a4
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon May 24 17:31:38 2010 -0400
-
- Fix compile with --disable-optimizations.
-
- gcc can't remove dead code like:
- int threaded = HAVE_PTHREADS;
- if (threaded) ...
-
-commit fd1b8587a4186b30c5922e3053c869726cca23df
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Nov 4 03:55:19 2010 -0400
-
- Remove ff_thread_finish_frame() as it seems not useful enough
-
-commit fd9ae0065aa268c4b3e46706d775cf4ba1df8ed3
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed May 28 01:34:30 2008 -0400
-
- Obfusticate the decoder to make the context copyable earlier.
-
-commit fda3e64cd474b5886457c6a1ffff8906f76a9bbc
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Thu Jun 18 16:11:26 2009 -0400
-
- Mimic: move up a line changing buf_ptrs.
-
- No effect on decoding, but it breaks the rule about changing
- things after frame_setup_done.
-
-commit fdb381e68a3828dcc7eb1c93cf174b702cc78d2c
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Feb 17 00:39:42 2010 -0500
-
- Cosmetics: rename function parameters
-
-commit fe4e238f573bab53760408b3376dbba0255e5b51
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon May 25 20:00:50 2009 -0400
-
- Fix unnecessarily long wait for direct+progressive MBs.
-
-commit fe529c93b41f2d7406b76e7e5943b82acd789cb4
-Author: benoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
-Date: Tue May 22 08:23:45 2007 +0000
-
- id3v2 reader
- patch by Andreas
-�commit febe154099b8f31817e8c047cb3c8dee51b52117
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Wed Jun 16 14:54:00 2010 -0700
-
- Fix merge glitch: pix_fmts should have been deleted
-
-commit feca6e0009da2b344b2c1be8f30a55c23623d77e
-Merge: 2485cfd feaafaa
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Mon May 25 19:58:17 2009 -0400
-
- Merge branch 'master' of git://git.mplayerhq.hu/ffmpeg
-
-commit ff08d3a1629ab442f78a1d2fde496b727a1a9deb
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sat Jul 12 22:26:43 2008 -0400
-
- Fix MPV_lowest_referenced_row to not be completely wrong.
- The not handling qpel and emu_edge bugs were masked by the other bugs preventing almost all parallelism.
-
-commit ff4c627baab555a4ea6275c919d9f4259adc0e58
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Tue Oct 6 15:41:35 2009 -0400
-
- Word-wrap todo.txt.
-
- Try to make some of it cleaner
- so other people can actually
- use it.
-
-commit ff69da3564ab912f7e7331f8c8389a96a254e16f
-Author: Alexander Strange <astrange@ithinksw.com>
-Date: Sun Aug 1 20:33:57 2010 -0700
-
- Fix the decoder not returning any frames if the frame count is less than the number of threads
-
- Fixes ./mt-work/test.sh with still2.mp4
-
|