diff options
author | jihye kim <jihye1128.kim@samsung.com> | 2012-07-25 19:42:07 +0900 |
---|---|---|
committer | jihye kim <jihye1128.kim@samsung.com> | 2012-07-25 19:42:07 +0900 |
commit | 33979bb9a4be7c0f96e4a257f8f4f9360ce81371 (patch) | |
tree | 27e56f3778d61b5dd587eba8a375a73a9760ff9d | |
parent | 8c854864134f88fe5754839a79385171daacb519 (diff) | |
download | qemu-33979bb9a4be7c0f96e4a257f8f4f9360ce81371.tar.gz qemu-33979bb9a4be7c0f96e4a257f8f4f9360ce81371.tar.bz2 qemu-33979bb9a4be7c0f96e4a257f8f4f9360ce81371.zip |
Squashed commit of the following:
commit 133a7eef3e6b40aa990f4f348cfb98913e0d2fd3
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Wed Jul 25 17:45:35 2012 +0900
[Title] include "config-host.h"
[Type] bugfix
[Module] Emulator
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 295862ff9f77c22403fedfa6207dc0cec51de498
Author: kt <kt@ubuntu.(none)>
Date: Wed Jul 25 01:20:10 2012 -0700
[Title] modify dibs build script and configure for x86_64
[Type] enhancement
[Module] emulator / dibs
[Priority] normal
[CQ#]
[Redmine#]
[Problem] JAVA_HOME env variable has to be set before building package.
[Cause]
[Solution]
[TestCase]
commit 8ddd8eff7de63c67a0c3ef34b35047cb05231109
Merge: cc2823e 0599c4f
Author: yeongkyoon lee <yeongkyoon.lee@samsung.com>
Date: Wed Jul 25 16:55:49 2012 +0900
Merge "[Title] Modify build.xml to use JAVA_HOME env [Type] [Module] [Priority] [CQ#] [Redmine#] [Problem] [Cause] [Solution] [TestCase]" into develop
commit 0599c4faae22bb4542b604497eade77197e56585
Author: syeon.hwang <syeon.hwang@samsung.com>
Date: Wed Jul 25 16:51:36 2012 +0900
[Title] Modify build.xml to use JAVA_HOME env
[Type]
[Module]
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit cc2823e3d63e2c14c2f2d11a9c15dde464e64411
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Wed Jul 25 16:28:11 2012 +0900
[Title] changed the file permissions
[Type]
[Module] Emulator
[Priority] minor
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution] chmod -x
[TestCase]
commit 25c782c438963092045955f4ee06ada712a9e67d
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Wed Jul 25 16:21:39 2012 +0900
[Title] disable multitouch in qemu side when USE_SHM & etc
[Type] feature
[Module] Emulator
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause] supprot mac
[Solution]
[TestCase]
commit 3f52a3ec9e07f21c4eaaa2dd6c1a1c8b1e5f5157
Merge: a5988e8 bc04a66
Author: yeongkyoon lee <yeongkyoon.lee@samsung.com>
Date: Wed Jul 25 16:15:17 2012 +0900
Merge "[Title] Add JNI compilation roution to ant script [Type] [Module] [Priority] [CQ#] [Redmine#] [Problem] [Cause] [Solution] [TestCase]" into develop
commit bc04a66d928766cc4d98b9310a499cd8280172c6
Author: syeon.hwang <syeon.hwang@samsung.com>
Date: Wed Jul 25 16:06:05 2012 +0900
[Title] Add JNI compilation roution to ant script
[Type]
[Module]
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit a5988e8bee8997072bd70da3b90bf7477a76a2a3
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Wed Jul 25 14:26:35 2012 +0900
[Title] added mac configuration & etc
[Type] feature
[Module] Emualtor
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause] support mac
[Solution]
[TestCase]
commit c797da84a5b4671e8bbecc619b34f24eeff0e6b3
Author: jinhyung.jo <jinhyung.jo@samsung.com>
Date: Wed Jul 25 11:58:30 2012 +0900
[Title] fixed a bug does not open the camera device on Windows XP
[Type] Bug Fix
[Module] Emulator / Camera
[Priority] Minor
[CQ#] N_SE-4727
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit d35892e9e4bcbd0d4b0240e7d2916739471455ab
Author: munkyu.im <munkyu.im@samsung.com>
Date: Tue Jul 24 16:38:04 2012 +0900
[Title] fix proxy server setting
[Type] Bugfix
[Module] Emulator / network
[Priority]
[Jira#]
[Redmine#]
[Problem]when try to set the same proxy to every proxy server on windows
[Cause]
[Solution]
[TestCase]
commit 972a600be9fbccd8ca29e958e22e0eb5931d99fc
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Tue Jul 24 15:30:33 2012 +0900
[Title] added EmulatorSdlSkin & EmulatorShmSkin
[Type] feature
[Module] Emulator / skin
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause] supprot mac
[Solution]
[TestCase]
commit a13d9bd51bd2437ef092d24d4079d426b2d62885
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Tue Jul 24 15:28:37 2012 +0900
[Title] define USE_SHM for shared memory
[Type] feature
[Module] Emulator / vga
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause] support mac
[Solution]
[TestCase]
commit 1afeecd45eb3d518ea411a8fd08bf52f827bfd22
Author: munkyu.im <munkyu.im@samsung.com>
Date: Mon Jul 23 21:01:20 2012 +0900
[Title]apply ftp, socket and https proxy server on windows and ubuntu
[Type]Enhancement
[Module]
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit a400d7711047399f2a7f834265ed02ded963e5d5
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Mon Jul 23 20:03:05 2012 +0900
[Title] disintegration of maruskin_display_init()
[Type] feature
[Module] Emulator / skin
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 4a167aa9cea3c78b2f407c1a1ce1247dd7eb11fc
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Mon Jul 23 15:38:59 2012 +0900
[Title] define DT_MARU for display type
[Type]
[Module] Emulator / display
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 69ba32e0f78ba1ae9880c23bd4e82d1638c48bad
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Mon Jul 23 11:54:27 2012 +0900
[Title] added jni files
[Type] feature
[Module] Emulator / skin
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 1ecbeba4ff932af0607b3e9c835c16954db2247d
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Mon Jul 23 11:29:29 2012 +0900
[Title] extract some codes which platform comparing
[Type] feature
[Module] Emulator / skin
[Priority] minor
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 2f65d6464f3024b0708dc09526c7de7341313023
Author: jihye kim <jihye1128.kim@samsung.com>
Date: Mon Jul 23 11:32:21 2012 +0900
[Title] change 'CreateFile' to 'qemu-open' for windows path error
[Type] work
[Module] qemu(emulator-x86)
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 97268175bec845d2c63f7fb10be07af8237df17e
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Sat Jul 21 13:31:34 2012 +0900
[Title] modified log
[Type]
[Module] Emulator
[Priority] minor
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit ad310a6fcd39ca65e1962c11a6608ce3436bf034
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Sat Jul 21 10:15:21 2012 +0900
[Title] host gl screen off
[Type]
[Module] Emulator / skin
[Priority]
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit d7249dcc88aecb2a6e6b5d34d91462e8dc6204c1
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Fri Jul 20 21:26:39 2012 +0900
[Title] Fix several build issues on Mac
[Type]
[Module] Emulator
[Priority]
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit ed7bac1606f36fc0cb0f5ea9400869297f8623e6
Author: Jun Tian <jun.j.tian@intel.com>
Date: Thu Jun 14 14:42:58 2012 +0800
[Title] Fix conflicting types for uint16 on Mac
[Type]
[Module] Emulator
[Priority] normal
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution] It's an upstream bug on Mac. It resolved by defining _UINT16, then int16_t will be defined in other header file.
[TestCase]
commit dc2f79a381a913144a9c8a48a46b02db3a13f6e6
Author: Jun Tian <jun.j.tian@intel.com>
Date: Thu Jun 14 11:16:06 2012 +0800
[Type] Fix AT_EMPTY_PATH undefined issue on Ubuntu 12.04
[Module] Emulator
[Priority]
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution] It's bug on Ubuntu 12.04, this patch is picked from Ubuntu qemu
[TestCase]
commit 68e744bd906e286fb65ecc4e10acb80230b913df
Author: jihye kim <jihye1128.kim@samsung.com>
Date: Fri Jul 20 20:12:11 2012 +0900
[Title] copy <GL/wglext.h> to "GL/wglext.h" (file does not exist to the mingw)
[Type] work
[Module] emulator
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 7c3fe49109d074f6860c08210aac04b16d6a9f60
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Fri Jul 20 18:08:58 2012 +0900
[Title] delete ffmpeg binary when make distclean
[Type] enhancement
[Module] Emulator / build
[Priority] minor
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 6dc34b00bacf67a51b373acfc3c4e51fa16cddf1
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Fri Jul 20 16:44:11 2012 +0900
[Title] version up
[Type] release
[Module] Emulator
[Priority]
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution] 1.3.4
[TestCase]
commit 59bb7888db135bd2931d36773cd45223b1e7f68f
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Fri Jul 20 16:41:11 2012 +0900
[Title] renamed skin folder
[Type] feature
[Module] Emulator / skin
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 2972b3d19bcdca5493d1468bfe9b7483e5d5cb06
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Fri Jul 20 15:51:53 2012 +0900
[Title] version up
[Type] release
[Module] Emulator
[Priority]
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution] 1.3.3
[TestCase]
commit 851c8ebafe9340dc4f015b23741dd7925cb8f9a9
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Fri Jul 20 15:48:51 2012 +0900
[Title] deleted skin files of 3key & added dbi version
[Type] feature
[Module] Emulator / skin
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit e6fe1d80d029a9d77d6ff586dc58cea684f85c5f
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Fri Jul 20 14:55:36 2012 +0900
[Title] redefine arch macro in some line
[Type]
[Module] Emulator
[Priority] minor
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 1954f00deb2415486b0193cafd7a8c32c9f5913d
Author: syeon.hwang <syeon.hwang@samsung.com>
Date: Fri Jul 20 13:04:11 2012 +0900
[Title] Align indentation in dibs script
[Type]
[Module]
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 84f5cad8c96e5160b88931318891f6a2c421a081
Author: syeon.hwang <syeon.hwang@samsung.com>
Date: Fri Jul 20 13:01:44 2012 +0900
[Title] Fix some path related bugs, fix mis-cleaning in build.xml
[Type]
[Module]
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 02de445e8e5b6668699ee9664082570712c15954
Merge: 5dd3fae 9cd6edf
Author: yeongkyoon lee <yeongkyoon.lee@samsung.com>
Date: Thu Jul 19 21:48:06 2012 +0900
Merge "[Title]fixed mistake code [Type]Bugfix [Module]qemu [Priority]Major [Jira#] // Jira Issue Number [Redmine#] // Redmine Isuue Number [Problem] // Problem Description [Cause] // Cause Description [Solution] // Solution Description [TestCase] // Executed the test-target (How to)" into develop
commit 9cd6edf763985737ba7fc9ec41959826316fef5e
Author: sungmin ha <sungmin82.ha@samsung.com>
Date: Thu Jul 19 21:42:46 2012 +0900
[Title]fixed mistake code
[Type]Bugfix
[Module]qemu
[Priority]Major
[Jira#] // Jira Issue Number
[Redmine#] // Redmine Isuue Number
[Problem] // Problem Description
[Cause] // Cause Description
[Solution] // Solution Description
[TestCase] // Executed the test-target (How to)
commit 5dd3fae199d3b8da460bf7be379c11e1b83b064d
Merge: 05cc176 0b76d7a
Author: yeongkyoon lee <yeongkyoon.lee@samsung.com>
Date: Thu Jul 19 21:28:11 2012 +0900
Merge "[Title] remove redundant configure. [Type] [Module] emulator / dibs [Priority] [CQ#] [Redmine#] [Problem] [Cause] [Solution] [TestCase]" into develop
commit 0b76d7ad0a047e8b0cef872a22bf1ca86d8f3f97
Author: Kitae Kim <kt920.kim@samsung.com>
Date: Thu Jul 19 21:25:43 2012 +0900
[Title] remove redundant configure.
[Type]
[Module] emulator / dibs
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 05cc176a0ca0432d956b28c55c2c68306884ed8a
Merge: 2fd2271 7c919e5
Author: yeongkyoon lee <yeongkyoon.lee@samsung.com>
Date: Thu Jul 19 21:24:47 2012 +0900
Merge "[Title] modify build scripts. [Type] [Module] emulator / build [Priority] [CQ#] [Redmine#] [Problem] [Cause] [Solution] [TestCase]" into develop
commit 2fd227161f3a9b260b503c52529946ca8848bc34
Merge: 2ffa841 4589dc3
Author: yeongkyoon lee <yeongkyoon.lee@samsung.com>
Date: Thu Jul 19 21:24:38 2012 +0900
Merge "[Title] bounds checking when multi-touch B [Type] bugfix [Module] Emulator / touch [Priority] minor [Jira#] [Redmine#] [Problem] [Cause] [Solution] [TestCase]" into develop
commit 7c919e5c8187e38d6231edbf8df06a2ab6096e6f
Author: Kitae Kim <kt920.kim@samsung.com>
Date: Thu Jul 19 21:22:28 2012 +0900
[Title] modify build scripts.
[Type]
[Module] emulator / build
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 4589dc30bfcc4010535192651cb289d3b2ac54bc
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Thu Jul 19 21:22:02 2012 +0900
[Title] bounds checking when multi-touch B
[Type] bugfix
[Module] Emulator / touch
[Priority] minor
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 2ffa841fd47ea6052b2c8fe6ec35a22d11dc8038
Author: sungmin ha <sungmin82.ha@samsung.com>
Date: Thu Jul 19 21:12:42 2012 +0900
[Title]modified for changed sdcard path
[Type]Enhancement
[Module]qemu
[Priority]Major
[Jira#] // Jira Issue Number
[Redmine#] // Redmine Isuue Number
[Problem] // Problem Description
[Cause] // Cause Description
[Solution] // Solution Description
[TestCase] // Executed the test-target (How to)
commit 89fdc97eeab3b9fd3482b3ba27d8b71c189366f4
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Thu Jul 19 17:35:16 2012 +0900
[Title] emulator host lcd screen surface support gl
[Type] feature
[Module] Emulator / skin
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 5cc7a15dbf1593821dda40426fc3855fa99fb024
Author: Kitae Kim <kt920.kim@samsung.com>
Date: Thu Jul 19 15:50:31 2012 +0900
[Title] Modify OS name for dibs script beause the rules have been changed.
[Type]
[Module] emulator / dibs
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit db29dda25c27a48c1cf0a24f107533aeaab6f37a
Author: syeon.hwang <syeon.hwang@samsung.com>
Date: Thu Jul 19 13:32:35 2012 +0900
[Title] Modify build.xml, Makefiles, dibs build scripts to remove swt.jar
[Type]
[Module]
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 3102370c83830531bae85e45857e50ebeade7c65
Author: syeon.hwang <syeon.hwang@samsung.com>
Date: Thu Jul 19 12:48:41 2012 +0900
[Title] Modify classpath for eclispe development support
[Type]
[Module]
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 36fa20eab7c21b1bc09a2974a64e55f6930c6ae3
Author: syeon.hwang <syeon.hwang@samsung.com>
Date: Thu Jul 19 12:46:50 2012 +0900
[Title] Remove swt.jar from git
[Type]
[Module]
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 912f064d6626cd920e6d3293f2d35acdc63f8652
Author: Kitae Kim <kt920.kim@samsung.com>
Date: Thu Jul 19 12:10:01 2012 +0900
[Title] modify dibs script because dibs rules have been changed.
[Type]
[Module] emulator / dibs
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit dc13b0be7bd221051f4509f808ddbe0a1491267d
Merge: 4c97ac2 f38b03d
Author: yeongkyoon lee <yeongkyoon.lee@samsung.com>
Date: Thu Jul 19 00:07:42 2012 +0900
Merge "[Title] modify build script for dibs to support new sdk dirs. [Type] [Module] emulator / dibs [Priority] normal [CQ#] [Redmine#] [Problem] [Cause] [Solution] [TestCase]" into develop
commit f38b03d35254e21314716187d028aa5c7d768170
Author: Kitae Kim <kt920.kim@samsung.com>
Date: Wed Jul 18 23:09:36 2012 +0900
[Title] modify build script for dibs to support new sdk dirs.
[Type]
[Module] emulator / dibs
[Priority] normal
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 4c97ac2e6168715621671e203315e819b7ed09b0
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Wed Jul 18 23:41:34 2012 +0900
[Title] rollback skinPath
[Type] feature
[Module] Emulator / skin
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit d85392c624366c538a273e42202dec02f3fd650a
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Wed Jul 18 22:38:03 2012 +0900
[Title] modified getSdbPath() for mac
[Type] bugfix
[Module] Emulator / menu
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit c865090b62eb6cf59367d057fe23d959985d1767
Merge: e54cf7a 11a85df
Author: yeongkyoon lee <yeongkyoon.lee@samsung.com>
Date: Wed Jul 18 22:29:49 2012 +0900
Merge "[Title] off OpenGl screen [Type] bugfix [Module] Emulator / lcd [Priority] [Jira#] [Redmine#] [Problem] [Cause] [Solution] [TestCase]" into develop
commit e54cf7a10d6124f674d9442f96d396aac345148b
Merge: 71786a0 89d5f2c
Author: yeongkyoon lee <yeongkyoon.lee@samsung.com>
Date: Wed Jul 18 22:28:32 2012 +0900
Merge "[Title] Add i386 and x86_64 to .gitignore [Type] [Module] [Priority] [CQ#] [Redmine#] [Problem] [Cause] [Solution] [TestCase]" into develop
commit 11a85df6478b74c856ccffed6b6e7cb48bf8df22
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Wed Jul 18 22:20:52 2012 +0900
[Title] off OpenGl screen
[Type] bugfix
[Module] Emulator / lcd
[Priority]
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 89d5f2c86fedd958e5d531c43d9d2ba30ae1bd5f
Author: syeon.hwang <syeon.hwang@samsung.com>
Date: Wed Jul 18 22:12:33 2012 +0900
[Title] Add i386 and x86_64 to .gitignore
[Type]
[Module]
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 71786a0ff374d4a0dbea12550f14d002b96f7125
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Wed Jul 18 21:56:47 2012 +0900
[Title] modified default skin path
[Type] feature
[Module] Emulator / skin
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution] tizen-sdk/platforms/tizen1.0/emulator-resources/skins
[TestCase]
commit edb4347e67e23232d02b552b790d847d686530e7
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Wed Jul 18 21:27:16 2012 +0900
[Title] modified pakage script
[Type] release
[Module] Emulator
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit a79de7e34e52ec4f4a3d3a988812579bac806926
Merge: bcf8248 7f1e276
Author: yeongkyoon lee <yeongkyoon.lee@samsung.com>
Date: Wed Jul 18 22:02:40 2012 +0900
Merge "[Title] Modify build related files for SDK refactoring [Type] [Module] [Priority] [CQ#] [Redmine#] [Problem] [Cause] [Solution] [TestCase]" into develop
commit 7f1e276bd3b403aabff5b70c8e2bb6c92f342835
Author: syeon.hwang <syeon.hwang@samsung.com>
Date: Wed Jul 18 21:58:40 2012 +0900
[Title] Modify build related files for SDK refactoring
[Type]
[Module]
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit bcf8248538791cf46e7c90edf0bed19c025277ac
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Wed Jul 18 20:52:16 2012 +0900
[Title] changed sdb path
[Type] feature
[Module] Emulator / menu
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution] tizen-sdk/tools/sdb
[TestCase]
commit 93aa708edb0939cda65fab3b8ed44238c2c5f1e4
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Wed Jul 18 20:45:37 2012 +0900
[Title] set initial value to touchscreen buf
[Type] bugfix
[Module] Emultor / touch
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit b1175bcc82a2f800f831dc47359e1a881f9eb7a9
Author: Kitae Kim <kt920.kim@samsung.com>
Date: Wed Jul 18 17:55:04 2012 +0900
[Title] remove FFmpeg binaries and change FFmpeg configure for static linking on Windows.
[Type]
[Module] emulator / codec
[Priority] normal
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 364904a80c4666210b2b2a7845ca9d43612836af
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Tue Jul 17 22:40:19 2012 +0900
[Title] added doxgen to code of touchscreen device
[Type]
[Module] Emulator / touch
[Priority] minor
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 648695cb95ef0f030118b474f3389c4b72cdf491
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Mon Jul 16 20:35:47 2012 +0900
[Title] check the capability of gl before lcd drawing
[Type] enhancement
[Module] Emulator / skin
[Priority]
[Jira#]
[Redmine#]
[Problem]
[Cause] support
[Solution]
[TestCase]
commit 2652af870093e901653cc6776016d61125d8efd8
Author: jihye kim <jihye1128.kim@samsung.com>
Date: Mon Jul 16 16:03:18 2012 +0900
[Title] add open gl for windows
[Type] enhancement
[Module] emulator
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit af2acacf591776c142d9d09f2fcfbaf909ab3568
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Mon Jul 16 14:50:18 2012 +0900
[Title] removed dependency on sdl in HW key event handling
[Type]
[Module] Emulator
[Priority]
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution] using mloop
[TestCase]
commit d16036035bab100fb7f19821f0f327a8f8d725c5
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Fri Jul 13 21:24:43 2012 +0900
[Title] clear multi-touch when sdl init
[Type] enhancement
[Module] Emulator / touch
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 011e4976f7d8fcd0020ccdac430fb6be45894d66
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Fri Jul 13 20:58:20 2012 +0900
[Title] changed padding size of multi-touch point region as proportionally emulator window scale
[Type] enhancement
[Module] Emulator / touch
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause] usability
[Solution]
[TestCase]
commit f7961be82371a98b7e2c1a787094c1c4706d5dd1
Author: Kitae Kim <kt920.kim@samsung.com>
Date: Fri Jul 13 17:49:04 2012 +0900
[Title] source clean up for codec module and add error pop-up routine when host sharing path was missing.
[Type] bug fix
[Module] emulator / codec,error handle
[Priority] normal
[CQ#]
[Redmine#]
[Problem] emulator is not launched. It seem that emulator-manager has a problem to run emulator.
[Cause] when host sharing path you selected is missing, emulator is terminated during booting without any pop-up message.
[Solution] An error messsage will be popped up.
[TestCase]
commit 55497975935ee2d7892c7f0ae8fc49bd0a902ee6
Merge: 61484bd 7669fc9
Author: yeongkyoon lee <yeongkyoon.lee@samsung.com>
Date: Fri Jul 13 15:08:36 2012 +0900
Merge "[Title] version update to 1.2.107 [Type] [Module] [Priority] [CQ#] [Redmine#] [Problem] [Cause] [Solution] [TestCase]" into develop
commit 7669fc9cbf9ce2632fd14a373b0f89146a07fc42
Author: Sooyoung Ha <yoosah.ha@samsung.com>
Date: Fri Jul 13 14:54:06 2012 +0900
[Title] version update to 1.2.107
[Type]
[Module]
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 61484bde2aa4e874ea6a2b4eb46a267c3658360f
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Fri Jul 13 14:41:33 2012 +0900
[Title] convert sdl surface to opengl surface
[Type] enhancement
[Module] Emulator / skin
[Priority] major
[Jira#] BOT-821, N_SE-1482, S1-4376
[Redmine#]
[Problem]
[Cause] anti-aliasing
[Solution] using OpenGL
[TestCase]
commit 3c6f8aaa4b7b15afe130ca2dd6a6e52c29b899a8
Merge: 7ea7033 d159f17
Author: yeongkyoon lee <yeongkyoon.lee@samsung.com>
Date: Thu Jul 12 20:31:57 2012 +0900
Merge "[Title] Add DNS support for host has local DNS cache/DNS server [Type] [Module] [Priority] [CQ#] [Redmine#] [Problem] [Cause] [Solution] [TestCase]" into develop
commit d159f17042a3fffb4a753f84fd6fce235f40a8a0
Author: syeon.hwang <syeon.hwang@samsung.com>
Date: Thu Jul 12 20:28:09 2012 +0900
[Title] Add DNS support for host has local DNS cache/DNS server
[Type]
[Module]
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 7ea7033398f63a5da47ff3c6fee881be67198dcc
Merge: 05d8d07 dced2b3
Author: yeongkyoon lee <yeongkyoon.lee@samsung.com>
Date: Thu Jul 12 20:18:29 2012 +0900
Merge "[Title] Fix build failure on some new ubuntu host [Type] [Module] [Priority] [CQ#] [Redmine#] [Problem] [Cause] [Solution] [TestCase]" into develop
commit 05d8d07c8a61e393b4fbda68a24729b3fbec969c
Merge: f91792a 957874b
Author: yeongkyoon lee <yeongkyoon.lee@samsung.com>
Date: Thu Jul 12 20:17:52 2012 +0900
Merge "[Title] Fixed some bugs for camera on Windows. [Type] Bug Fix [Module] Emulatorj / Multimedia / Camera [Priority] Major [CQ#] N_SE-3228, N_SE-1664 [Redmine#] [Problem] [Cause] [Solution] [TestCase]" into develop
commit dced2b31122a0d0809acb7f4529af5a3c9d82fac
Author: syeon.hwang <syeon.hwang@samsung.com>
Date: Thu Jul 12 20:12:23 2012 +0900
[Title] Fix build failure on some new ubuntu host
[Type]
[Module]
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 957874bf4f6e782d0ae08d21cb0833b0d9b35206
Author: jinhyung.jo <jinhyung.jo@samsung.com>
Date: Thu Jul 12 20:06:37 2012 +0900
[Title] Fixed some bugs for camera on Windows.
[Type] Bug Fix
[Module] Emulatorj / Multimedia / Camera
[Priority] Major
[CQ#] N_SE-3228, N_SE-1664
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit f91792a428670beb389fc336b7504fa6461095b8
Author: syeon.hwang <syeon.hwang@samsung.com>
Date: Thu Jul 12 20:03:35 2012 +0900
[Title] Apply SSE2 instruction patch from QEMU 1.1
[Type]
[Module]
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]
commit 4b7ace653cdb65bf05e52d8be31b1d7b01c9c02f
Author: giwoong.kim <giwoong.kim@samsung.com>
Date: Thu Jul 12 10:49:38 2012 +0900
[Title] sdl init refactoring
[Type] enhancement
[Module] Emulator / sdl
[Priority] minor
[Jira#]
[Redmine#]
[Problem]
[Cause] prepare to OpenGL conditions
[Solution]
[TestCase]
244 files changed, 3204 insertions, 14309 deletions
diff --git a/.gitignore b/.gitignore index e252d8ed03..4d8c68cb42 100644 --- a/.gitignore +++ b/.gitignore @@ -76,10 +76,14 @@ cscope.* tags TAGS *~ -tizen/Emulator +tizen/emulator tizen/src/build_info.h tizen/src/skin/client/src/about.properties tizen/src/skin/client/bin tizen/src/skin/client/build tizen/src/skin/client/emulator-skin.jar +tizen/src/skin/client/lib +tizen/src/skin/client/native_src/*.so +tizen/src/skin/client/native_src/*.dynlib + diff --git a/block/raw-win32.c b/block/raw-win32.c index 3fa580c28d..03e9b76f43 100644 --- a/block/raw-win32.c +++ b/block/raw-win32.c @@ -85,6 +85,7 @@ static int raw_open(BlockDriverState *bs, const char *filename, int flags) s->type = FTYPE_FILE; +#ifndef CONFIG_MARU if (flags & BDRV_O_RDWR) { access_flags = GENERIC_READ | GENERIC_WRITE; } else { @@ -96,25 +97,55 @@ static int raw_open(BlockDriverState *bs, const char *filename, int flags) overlapped |= FILE_FLAG_NO_BUFFERING; if (!(flags & BDRV_O_CACHE_WB)) overlapped |= FILE_FLAG_WRITE_THROUGH; -#ifndef CONFIG_MARU s->hfile = CreateFile(filename, access_flags, FILE_SHARE_READ, NULL, OPEN_EXISTING, overlapped, NULL); -#else - s->hfile = CreateFile(g_win32_locale_filename_from_utf8(filename), - access_flags, - FILE_SHARE_READ, NULL, - OPEN_EXISTING, overlapped, NULL); -#endif - if (s->hfile == INVALID_HANDLE_VALUE) { + if (s->hfile == INVALID_HANDLE_VALUE) { int err = GetLastError(); if (err == ERROR_ACCESS_DENIED) return -EACCES; return -1; } - return 0; + +#else + /* + s->hfile = CreateFile(g_win32_locale_filename_from_utf8(filename), + access_flags, + FILE_SHARE_READ, NULL, + OPEN_EXISTING, overlapped, NULL); + */ + +#include <errno.h> + int open_flags = O_BINARY; + open_flags &= ~O_ACCMODE; + if (flags & BDRV_O_RDWR) { + open_flags |= O_RDWR; + } else { + open_flags |= O_RDONLY; + } + + /* Use O_DSYNC for write-through caching, no flags for write-back caching, + * and O_DIRECT for no caching. */ + /* + if ((flags & BDRV_O_NOCACHE)) { + open_flags |= O_DIRECT; + } + if (!(flags & BDRV_O_CACHE_WB)) { + open_flags |= O_DSYNC; + } + */ + + int ret = qemu_open(filename, open_flags, 0644); + if (ret < 0) { + error_report("raw_open failed(%d) \n", ret); + return -errno; + } + s->hfile = (HANDLE)_get_osfhandle(ret); + +#endif + return 0; } static int raw_read(BlockDriverState *bs, int64_t sector_num, @@ -382,7 +413,8 @@ static int hdev_open(BlockDriverState *bs, const char *filename, int flags) } s->type = find_device_type(bs, filename); - if (flags & BDRV_O_RDWR) { +#ifndef CONFIG_MARU + if (flags & BDRV_O_RDWR) { access_flags = GENERIC_READ | GENERIC_WRITE; } else { access_flags = GENERIC_READ; @@ -394,25 +426,56 @@ static int hdev_open(BlockDriverState *bs, const char *filename, int flags) overlapped |= FILE_FLAG_NO_BUFFERING; if (!(flags & BDRV_O_CACHE_WB)) overlapped |= FILE_FLAG_WRITE_THROUGH; -#ifndef CONFIG_MARU + s->hfile = CreateFile(filename, access_flags, FILE_SHARE_READ, NULL, create_flags, overlapped, NULL); -#else - s->hfile = CreateFile(g_win32_locale_filename_from_utf8(filename), - access_flags, - FILE_SHARE_READ, NULL, - create_flags, overlapped, NULL); -#endif - if (s->hfile == INVALID_HANDLE_VALUE) { + if (s->hfile == INVALID_HANDLE_VALUE) { int err = GetLastError(); if (err == ERROR_ACCESS_DENIED) return -EACCES; return -1; } - return 0; + +#else + /* + s->hfile = CreateFile(g_win32_locale_filename_from_utf8(filename), + access_flags, + FILE_SHARE_READ, NULL, + create_flags, overlapped, NULL); + */ +#include <errno.h> + + int open_flags = O_BINARY; + open_flags &= ~O_ACCMODE; + if (flags & BDRV_O_RDWR) { + open_flags |= O_RDWR; + } else { + open_flags |= O_RDONLY; + } + + /* Use O_DSYNC for write-through caching, no flags for write-back caching, + * and O_DIRECT for no caching. */ + /* + if ((flags & BDRV_O_NOCACHE)) { + open_flags |= O_DIRECT; + } + if (!(flags & BDRV_O_CACHE_WB)) { + open_flags |= O_DSYNC; + } + */ + + int ret = qemu_open(filename, open_flags, 0644); + if (ret < 0) { + error_report("raw_open failed(%d) \n", ret); + return -errno; + } + s->hfile = (HANDLE)_get_osfhandle(ret); + +#endif + return 0; } static int hdev_has_zero_init(BlockDriverState *bs) @@ -417,7 +417,7 @@ Darwin) QEMU_CFLAGS="-mdynamic-no-pic $QEMU_CFLAGS" fi darwin_user="yes" - cocoa="yes" + cocoa="no" audio_drv_list="coreaudio" audio_possible_drivers="coreaudio sdl fmod" LDFLAGS="-framework CoreFoundation -framework IOKit $LDFLAGS" diff --git a/fpu/softfloat.h b/fpu/softfloat.h index 063d3dd618..937d7fa949 100644 --- a/fpu/softfloat.h +++ b/fpu/softfloat.h @@ -57,7 +57,10 @@ typedef uint8_t flag; typedef uint8_t uint8; typedef int8_t int8; #ifndef _AIX +#if !(defined(__APPLE__) && defined(_UINT16)) typedef int16_t uint16; +#define _UINT16 +#endif typedef int int16; #endif typedef unsigned int uint32; diff --git a/hw/9pfs/virtio-9p-device.c b/hw/9pfs/virtio-9p-device.c index cd343e1d81..f983532b9d 100644 --- a/hw/9pfs/virtio-9p-device.c +++ b/hw/9pfs/virtio-9p-device.c @@ -20,6 +20,11 @@ #include "virtio-9p-xattr.h" #include "virtio-9p-coth.h" +#ifdef CONFIG_MARU +#include "../tizen/src/maru_err_table.h" +// extern char* maru_convert_path(char* msg, const char *path); +#endif + static uint32_t virtio_9p_get_features(VirtIODevice *vdev, uint32_t features) { features |= 1 << VIRTIO_9P_MOUNT_TAG; @@ -117,6 +122,15 @@ VirtIODevice *virtio_9p_init(DeviceState *dev, V9fsConf *conf) if (s->ops->init(&s->ctx) < 0) { fprintf(stderr, "Virtio-9p Failed to initialize fs-driver with id:%s" " and export path:%s\n", conf->fsdev_id, s->ctx.fs_root); +#ifdef CONFIG_MARU + const char _msg[] = "Failed to find the file sharing path. Check if the path is correct or not.\n\n"; + char* err_msg = NULL; + err_msg = maru_convert_path((char*)_msg, s->ctx.fs_root); + maru_register_exit_msg(MARU_EXIT_UNKNOWN, err_msg); + if (err_msg) { + g_free(err_msg); + } +#endif exit(1); } if (v9fs_init_worker_threads() < 0) { diff --git a/hw/9pfs/virtio-9p-handle.c b/hw/9pfs/virtio-9p-handle.c index f97d8984bd..aa5601d35a 100644 --- a/hw/9pfs/virtio-9p-handle.c +++ b/hw/9pfs/virtio-9p-handle.c @@ -27,6 +27,7 @@ #endif #include <sys/ioctl.h> + #ifndef XFS_SUPER_MAGIC #define XFS_SUPER_MAGIC 0x58465342 #endif @@ -40,11 +41,33 @@ #define BTRFS_SUPER_MAGIC 0x9123683E #endif +#ifdef CONFIG_MARU // added by caramis +#ifndef AT_REMOVEDIR +#define AT_REMOVEDIR 0x200 +#endif +#ifndef AT_EMPTY_PATH +#define AT_EMPTY_PATH 0x1000 /* Allow empty relative pathname */ +#endif +#ifndef O_PATH +#define O_PATH 010000000 +#endif +#endif + struct handle_data { int mountfd; int handle_bytes; }; +#ifndef AT_REMOVEDIR +#define AT_REMOVEDIR 0x200 +#endif +#ifndef AT_EMPTY_PATH +#define AT_EMPTY_PATH 0x1000 /* Allow empty relative pathname */ +#endif +#ifndef O_PATH +#define O_PATH 010000000 +#endif + static inline int name_to_handle(int dirfd, const char *name, struct file_handle *fh, int *mnt_id, int flags) { diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c index 8fb8b9f1d2..bc14b53fa5 100644 --- a/hw/virtio-pci.c +++ b/hw/virtio-pci.c @@ -779,7 +779,7 @@ static int virtio_balloon_exit_pci(PCIDevice *pci_dev) return virtio_exit_pci(pci_dev); } -#ifndef _WIN32
+#ifndef CONFIG_DARWIN extern VirtIODevice *virtio_gl_init(DeviceState *dev); static int virtio_gl_init_pci(PCIDevice *pci_dev) { @@ -793,7 +793,7 @@ static int virtio_gl_init_pci(PCIDevice *pci_dev) virtio_init_pci(proxy, vdev); return 0; } -#endif
+#endif static PCIDeviceInfo virtio_info[] = { { @@ -880,7 +880,7 @@ static PCIDeviceInfo virtio_info[] = { }, .qdev.reset = virtio_pci_reset, },{ -#ifndef _WIN32
+#ifndef CONFIG_DARWIN .qdev.name = "virtio-gl-pci", .qdev.alias = "virtio-gl", .qdev.size = sizeof(VirtIOPCIProxy), @@ -895,7 +895,7 @@ static PCIDeviceInfo virtio_info[] = { }, .qdev.reset = virtio_pci_reset, },{ -#endif
+#endif /* end of list */ } }; diff --git a/package/build.linux b/package/build.linux deleted file mode 100755 index 995b355dd7..0000000000 --- a/package/build.linux +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh -xe -# clean -clean() -{ - cd $SRCDIR/tizen/ - if test -e "Makefile" - then - ./qemu_configure.sh - make clean - fi - rm -rf $SRCDIR/*.zip - rm -rf $SRCDIR/*.tar.gz -} - -# build -build() -{ - cd $SRCDIR/tizen/ - ./qemu_configure.sh - make -} - -# install -install() -{ - BIN_DIR=$SRCDIR/package/emulator.package.linux/data - mkdir -p $BIN_DIR - - cd $SRCDIR/tizen - make install - mv Emulator $BIN_DIR -# cp $SRCDIR/package/emulator.install.linux $BIN_DIR/../ -# cp $SRCDIR/package/emulator.remove.linux $BIN_DIR/../ -} - -[ "$1" = "clean" ] && clean -[ "$1" = "build" ] && build -[ "$1" = "install" ] && install - -echo "success" diff --git a/package/build.ubuntu-32 b/package/build.ubuntu-32 new file mode 100755 index 0000000000..741a3fc61a --- /dev/null +++ b/package/build.ubuntu-32 @@ -0,0 +1,52 @@ +#!/bin/sh -xe +# clean +clean() +{ + prepare + + cd $SRCDIR/tizen/ + if test -e "Makefile" + then + ./emulator_configure.sh + make clean + fi + rm -rf $SRCDIR/*.zip + rm -rf $SRCDIR/*.tar.gz +} + +# check build environment +prepare() +{ + if [ "$JAVA_HOME" = "" ] + then + echo "Make sure that you have installed JDK" + echo "and then set installed JDK/bin path into JAVA_HOME" + echo "as a system environment variable on your PC!!" + exit 1 + fi +} + +# build +build() +{ + cd $SRCDIR/tizen/ +# ./emulator_configure.sh + make all_dibs +} + +# install +install() +{ + BIN_DIR=$SRCDIR/package/emulator-qemu-x86.package.${TARGET_OS}/data/tools + mkdir -p $BIN_DIR + + cd $SRCDIR/tizen + make install_dibs + mv emulator $BIN_DIR +} + +[ "$1" = "clean" ] && clean +[ "$1" = "build" ] && build +[ "$1" = "install" ] && install + +echo "success" diff --git a/package/build.ubuntu-64 b/package/build.ubuntu-64 new file mode 100755 index 0000000000..40856e0334 --- /dev/null +++ b/package/build.ubuntu-64 @@ -0,0 +1,52 @@ +#!/bin/sh -xe +# clean +clean() +{ + prepare + + cd $SRCDIR/tizen/ + if test -e "Makefile" + then + ./emulator_configure.sh + make clean + fi + rm -rf $SRCDIR/*.zip + rm -rf $SRCDIR/*.tar.gz +} + +# check build environment +prepare() +{ + if [ "$JAVA_HOME" = "" ] + then + echo "Make sure that you have installed JDK" + echo "and then set installed JDK/bin path into JAVA_HOME" + echo "as a system environment variable on your PC!!" + exit 1 + fi +} + +# build +build() +{ + cd $SRCDIR/tizen/ +# ./emulator_configure.sh + make all_dibs +} + +# install +install() +{ + BIN_DIR=$SRCDIR/package/emulator-qemu-x86.package.${TARGET_OS}/data/tools + mkdir -p $BIN_DIR + + cd $SRCDIR/tizen + make install_dibs + mv emulator $BIN_DIR +} + +[ "$1" = "clean" ] && clean +[ "$1" = "build" ] && build +[ "$1" = "install" ] && install + +echo "success" diff --git a/package/build.windows b/package/build.windows-32 index 2e337807cd..52a14eae88 100755 --- a/package/build.windows +++ b/package/build.windows-32 @@ -5,10 +5,10 @@ clean() { prepare - cd $SRCDIR/tizen/ + cd $SRCDIR/tizen if test -e "Makefile" then - ./qemu_configure.sh "$BUILD_CFLAGS $BUILD_LDFLAGS" + ./emulator_configure.sh "$BUILD_CFLAGS $BUILD_LDFLAGS" make clean fi rm -rf $SRCDIR/*.zip @@ -34,11 +34,14 @@ prepare() exit 1 fi - PATH=$PATH:$ROOTDIR/bin:$ROOTDIR/apache-ant-1.8.3/bin + + PURIFIED_ROOTDIR=`TEMP=\`echo "${ROOTDIR}" | cut -c-2 | sed "s/[:/]//g" | awk {'print tolower ($_)'}\`; echo \`echo "${ROOTDIR}" | sed "s/^../\/${TEMP}/"\`` + PATH=$PATH:$PURIFIED_ROOTDIR/bin:$PURIFIED_ROOTDIR/apache-ant-1.8.3/bin export PATH + export PKG_CONFIG_PATH=$ROOTDIR/lib/pkgconfig BUILD_CFLAGS=--extra-cflags=-I$ROOTDIR/include - BUILD_LDFLAGS=--extra-ldflags=-L$ROOTDIR/lib + BUILD_LDFLAGS=--extra-ldflags=-L$ROOTDIR/lib } # build @@ -46,31 +49,30 @@ build() { prepare - cd $SRCDIR/tizen/ - ./qemu_configure.sh "$BUILD_CFLAGS $BUILD_LDFLAGS" - make - if [ -f "../i386-softmmu/qemu-system-i386.exe" ] - then - echo "BUILD SUCCESS" - else - echo "BUILD FAIL!!!" - exit 1; - fi + cd $SRCDIR/tizen +# ./emulator_configure.sh "$BUILD_CFLAGS $BUILD_LDFLAGS" + make all_dibs + if [ -f "../i386-softmmu/qemu-system-i386.exe" ] + then + echo "BUILD SUCCESS" + else + echo "BUILD FAIL!!!" + exit 1; + fi } # install install() { - prepare - BIN_DIR=$SRCDIR/package/emulator.package.windows/data + BIN_DIR=$SRCDIR/package/emulator-qemu-x86.package.${TARGET_OS}/data/tools mkdir -p $BIN_DIR cd $SRCDIR/tizen - make install - mv Emulator $BIN_DIR + make install_dibs + mv emulator $BIN_DIR } [ "$1" = "clean" ] && clean diff --git a/package/pkginfo.manifest b/package/pkginfo.manifest index 973b24a4df..cae879346f 100644 --- a/package/pkginfo.manifest +++ b/package/pkginfo.manifest @@ -1,18 +1,29 @@ -Package: emulator -Version:1.2.99 -OS: linux -Build-host-os: linux +Package: emulator-qemu-x86 +Version: 1.3.6 +OS: ubuntu-32 +Build-host-os: ubuntu-32 Maintainer: Yeong-Kyoon Lee<yeongkyoon.lee@samsung.com> -Install-dependency: emulator-kernel [ linux ], emulator-manager [ linux ], emulator-dll [ linux ] +Build-dependency: emulator-lib [ ubuntu-32] +Install-dependency: emulator-kernel-x86 [ ubuntu-32 ], vgabios [ ubuntu-32 ] Source: emulator Description: Tizen Emulator -Package: emulator -Version:1.2.99 -OS: windows -Build-host-os: windows +Package: emulator-qemu-x86 +Version: 1.3.6 +OS: ubuntu-64 +Build-host-os: ubuntu-64 Maintainer: Yeong-Kyoon Lee<yeongkyoon.lee@samsung.com> -Build-dependency: SDL-1.2.14 [ windows ], jpeg-8b [ windows ], libpng-1.4.5 [ windows ], apache-ant-1.8.3-bin [ windows ], gtk-bundle_2.16.6 [ windows ], directx-dev [ windows ] -Install-dependency: emulator-kernel [ windows ], emulator-manager [ windows ], emulator-dll [ windows ] +Build-dependency: emulator-lib [ ubuntu-64] +Install-dependency: emulator-kernel-x86 [ ubuntu-64 ], vgabios [ ubuntu-64 ] +Source: emulator +Description: Tizen Emulator + +Package: emulator-qemu-x86 +Version: 1.3.6 +OS: windows-32 +Build-host-os: windows-32 +Maintainer: Yeong-Kyoon Lee<yeongkyoon.lee@samsung.com> +Build-dependency: SDL-1.2.14 [ windows-32 ], apache-ant-1.8.3-bin [ windows-32 ], gtk-bundle_2.16.6 [ windows-32 ], directx-dev [ windows-32 ], emulator-lib [ windows-32 ] +Install-dependency: emulator-kernel-x86 [ windows-32 ], vgabios [ windows-32 ] Source: emulator Description: Tizen Emulator diff --git a/qemu-char.c b/qemu-char.c index e191f73ed2..554b127491 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -1527,9 +1527,22 @@ static int win_chr_init(CharDriverState *chr, const char *filename) GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); #else - s->hcom = CreateFile(g_win32_locale_filename_from_utf8(filename), + /* + s->hcom = CreateFile(g_win32_locale_filename_from_utf8(filename), GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); + */ + int open_flags = O_BINARY; + open_flags |= O_RDWR; + // TODO : FILE_FLAG_OVERLAPPED + + int ret = qemu_open(filename, open_flags, 0644); + if (ret < 0) { + error_report("win_chr_init failed(%d) \n", ret); + return -errno; + } + s->hcom = (HANDLE)_get_osfhandle(ret); + #endif if (s->hcom == INVALID_HANDLE_VALUE) { fprintf(stderr, "Failed CreateFile (%lu)\n", GetLastError()); @@ -1823,8 +1836,21 @@ static int qemu_chr_open_win_file_out(QemuOpts *opts, CharDriverState **_chr) fd_out = CreateFile(file_out, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); #else + /* fd_out = CreateFile(g_win32_locale_filename_from_utf8(file_out), GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + */ + int open_flags = O_BINARY; + open_flags |= O_RDWR; + open_flags |= O_CREAT; + + int ret = qemu_open(file_out, open_flags, 0644); + if (ret < 0) { + error_report("qemu_chr_open_win_file_out failed(%d) \n", ret); + return -errno; + } + fd_out = (HANDLE)_get_osfhandle(ret); + #endif if (fd_out == INVALID_HANDLE_VALUE) { @@ -82,6 +82,9 @@ typedef enum DisplayType DT_CURSES, DT_SDL, DT_NOGRAPHIC, +#ifdef CONFIG_MARU + DT_MARU, +#endif DT_NONE, } DisplayType; diff --git a/target-i386/TODO b/target-i386/TODO index c8ada075d0..a8d69cf87f 100644 --- a/target-i386/TODO +++ b/target-i386/TODO @@ -15,7 +15,6 @@ Correctness issues: - DRx register support - CR0.AC emulation - SSE alignment checks -- fix SSE min/max with nans Optimizations/Features: diff --git a/target-i386/helper.h b/target-i386/helper.h index 6b518ad89f..761954e925 100644 --- a/target-i386/helper.h +++ b/target-i386/helper.h @@ -197,6 +197,7 @@ DEF_HELPER_2(lzcnt, tl, tl, int) /* MMX/SSE */ +DEF_HELPER_1(ldmxcsr, void, i32) DEF_HELPER_0(enter_mmx, void) DEF_HELPER_0(emms, void) DEF_HELPER_2(movq, void, ptr, ptr) diff --git a/target-i386/ops_sse.h b/target-i386/ops_sse.h index 47dde78f89..0d33ca1985 100644 --- a/target-i386/ops_sse.h +++ b/target-i386/ops_sse.h @@ -584,10 +584,15 @@ void helper_ ## name ## sd (Reg *d, Reg *s)\ #define FPU_SUB(size, a, b) float ## size ## _sub(a, b, &env->sse_status) #define FPU_MUL(size, a, b) float ## size ## _mul(a, b, &env->sse_status) #define FPU_DIV(size, a, b) float ## size ## _div(a, b, &env->sse_status) -#define FPU_MIN(size, a, b) (a) < (b) ? (a) : (b) -#define FPU_MAX(size, a, b) (a) > (b) ? (a) : (b) #define FPU_SQRT(size, a, b) float ## size ## _sqrt(b, &env->sse_status) +/* Note that the choice of comparison op here is important to get the + * special cases right: for min and max Intel specifies that (-0,0), + * (NaN, anything) and (anything, NaN) return the second argument. + */ +#define FPU_MIN(size, a, b) float ## size ## _lt(a, b, &env->sse_status) ? (a) : (b) +#define FPU_MAX(size, a, b) float ## size ## _lt(b, a, &env->sse_status) ? (a) : (b) + SSE_HELPER_S(add, FPU_ADD) SSE_HELPER_S(sub, FPU_SUB) SSE_HELPER_S(mul, FPU_MUL) @@ -1648,10 +1653,10 @@ void glue(helper_roundps, SUFFIX) (Reg *d, Reg *s, uint32_t mode) break; } - d->L(0) = float64_round_to_int(s->L(0), &env->sse_status); - d->L(1) = float64_round_to_int(s->L(1), &env->sse_status); - d->L(2) = float64_round_to_int(s->L(2), &env->sse_status); - d->L(3) = float64_round_to_int(s->L(3), &env->sse_status); + d->XMM_S(0) = float32_round_to_int(s->XMM_S(0), &env->sse_status); + d->XMM_S(1) = float32_round_to_int(s->XMM_S(1), &env->sse_status); + d->XMM_S(2) = float32_round_to_int(s->XMM_S(2), &env->sse_status); + d->XMM_S(3) = float32_round_to_int(s->XMM_S(3), &env->sse_status); #if 0 /* TODO */ if (mode & (1 << 3)) @@ -1684,8 +1689,8 @@ void glue(helper_roundpd, SUFFIX) (Reg *d, Reg *s, uint32_t mode) break; } - d->Q(0) = float64_round_to_int(s->Q(0), &env->sse_status); - d->Q(1) = float64_round_to_int(s->Q(1), &env->sse_status); + d->XMM_D(0) = float64_round_to_int(s->XMM_D(0), &env->sse_status); + d->XMM_D(1) = float64_round_to_int(s->XMM_D(1), &env->sse_status); #if 0 /* TODO */ if (mode & (1 << 3)) @@ -1718,7 +1723,7 @@ void glue(helper_roundss, SUFFIX) (Reg *d, Reg *s, uint32_t mode) break; } - d->L(0) = float64_round_to_int(s->L(0), &env->sse_status); + d->XMM_S(0) = float32_round_to_int(s->XMM_S(0), &env->sse_status); #if 0 /* TODO */ if (mode & (1 << 3)) @@ -1751,7 +1756,7 @@ void glue(helper_roundsd, SUFFIX) (Reg *d, Reg *s, uint32_t mode) break; } - d->Q(0) = float64_round_to_int(s->Q(0), &env->sse_status); + d->XMM_D(0) = float64_round_to_int(s->XMM_D(0), &env->sse_status); #if 0 /* TODO */ if (mode & (1 << 3)) @@ -1770,44 +1775,44 @@ SSE_HELPER_I(helper_pblendw, W, 8, FBLENDP) void glue(helper_dpps, SUFFIX) (Reg *d, Reg *s, uint32_t mask) { - float32 iresult = 0 /*float32_zero*/; + float32 iresult = float32_zero; if (mask & (1 << 4)) iresult = float32_add(iresult, - float32_mul(d->L(0), s->L(0), &env->sse_status), + float32_mul(d->XMM_S(0), s->XMM_S(0), &env->sse_status), &env->sse_status); if (mask & (1 << 5)) iresult = float32_add(iresult, - float32_mul(d->L(1), s->L(1), &env->sse_status), + float32_mul(d->XMM_S(1), s->XMM_S(1), &env->sse_status), &env->sse_status); if (mask & (1 << 6)) iresult = float32_add(iresult, - float32_mul(d->L(2), s->L(2), &env->sse_status), + float32_mul(d->XMM_S(2), s->XMM_S(2), &env->sse_status), &env->sse_status); if (mask & (1 << 7)) iresult = float32_add(iresult, - float32_mul(d->L(3), s->L(3), &env->sse_status), + float32_mul(d->XMM_S(3), s->XMM_S(3), &env->sse_status), &env->sse_status); - d->L(0) = (mask & (1 << 0)) ? iresult : 0 /*float32_zero*/; - d->L(1) = (mask & (1 << 1)) ? iresult : 0 /*float32_zero*/; - d->L(2) = (mask & (1 << 2)) ? iresult : 0 /*float32_zero*/; - d->L(3) = (mask & (1 << 3)) ? iresult : 0 /*float32_zero*/; + d->XMM_S(0) = (mask & (1 << 0)) ? iresult : float32_zero; + d->XMM_S(1) = (mask & (1 << 1)) ? iresult : float32_zero; + d->XMM_S(2) = (mask & (1 << 2)) ? iresult : float32_zero; + d->XMM_S(3) = (mask & (1 << 3)) ? iresult : float32_zero; } void glue(helper_dppd, SUFFIX) (Reg *d, Reg *s, uint32_t mask) { - float64 iresult = 0 /*float64_zero*/; + float64 iresult = float64_zero; if (mask & (1 << 4)) iresult = float64_add(iresult, - float64_mul(d->Q(0), s->Q(0), &env->sse_status), + float64_mul(d->XMM_D(0), s->XMM_D(0), &env->sse_status), &env->sse_status); if (mask & (1 << 5)) iresult = float64_add(iresult, - float64_mul(d->Q(1), s->Q(1), &env->sse_status), + float64_mul(d->XMM_D(1), s->XMM_D(1), &env->sse_status), &env->sse_status); - d->Q(0) = (mask & (1 << 0)) ? iresult : 0 /*float64_zero*/; - d->Q(1) = (mask & (1 << 1)) ? iresult : 0 /*float64_zero*/; + d->XMM_D(0) = (mask & (1 << 0)) ? iresult : float64_zero; + d->XMM_D(1) = (mask & (1 << 1)) ? iresult : float64_zero; } void glue(helper_mpsadbw, SUFFIX) (Reg *d, Reg *s, uint32_t offset) diff --git a/target-i386/translate.c b/target-i386/translate.c index 475614c31b..c97cf844fc 100644 --- a/target-i386/translate.c +++ b/target-i386/translate.c @@ -7545,7 +7545,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) gen_lea_modrm(s, modrm, ®_addr, &offset_addr); if (op == 2) { gen_op_ld_T0_A0(OT_LONG + s->mem_index); - tcg_gen_st32_tl(cpu_T[0], cpu_env, offsetof(CPUX86State, mxcsr)); + gen_helper_ldmxcsr(cpu_T[0]); } else { tcg_gen_ld32u_tl(cpu_T[0], cpu_env, offsetof(CPUX86State, mxcsr)); gen_op_st_T0_A0(OT_LONG + s->mem_index); diff --git a/tizen/Makefile b/tizen/Makefile index 05d761f025..09dc639e70 100644 --- a/tizen/Makefile +++ b/tizen/Makefile @@ -1,14 +1,14 @@ all: - cd src && $(MAKE) -check_hax: - cd src && $(MAKE) check_hax -qemu: - cd src && $(MAKE) qemu -skin_client: - cd src && $(MAKE) skin_client + cd src && $(MAKE) all clean: cd src && $(MAKE) clean distclean: cd src && $(MAKE) distclean install: cd src && $(MAKE) install + +# for dibs system... +all_dibs: + cd src && $(MAKE) all_dibs +install_dibs: + cd src && $(MAKE) install_dibs diff --git a/tizen/build.sh b/tizen/build.sh index dbc266c1fb..b353ce1fd6 100755 --- a/tizen/build.sh +++ b/tizen/build.sh @@ -1,4 +1,4 @@ #!/bin/sh -xe -./qemu_configure.sh -make && make install +./emulator_configure.sh +make -j12 install diff --git a/tizen/distrib/libav/.gitignore b/tizen/distrib/libav/.gitignore index 8887980bc0..6a358b1901 100644 --- a/tizen/distrib/libav/.gitignore +++ b/tizen/distrib/libav/.gitignore @@ -44,3 +44,5 @@ tools/qt-faststart tools/trasher tools/trasher*.d version.h +i386 +x86_64 diff --git a/tizen/distrib/libav/tizen_configure b/tizen/distrib/libav/ffmpeg_configure.sh index f76e6c711e..cb184455e3 100755 --- a/tizen/distrib/libav/tizen_configure +++ b/tizen/distrib/libav/ffmpeg_configure.sh @@ -13,6 +13,6 @@ Linux*) ./configure --prefix=./$BIN_DIR --arch=x86 --enable-static --enable-pic --enable-optimizations --disable-doc --disable-gpl --disable-yasm --disable-postproc --disable-swscale --disable-ffmpeg --disable-ffprobe --disable-ffserver --disable-ffplay --disable-decoders --disable-encoders --disable-muxers --disable-demuxers --disable-parsers --disable-protocols --disable-network --disable-bsfs --disable-devices --disable-filters --enable-encoder=h263 --enable-encoder=h263p --enable-encoder=mpeg4 --enable-encoder=msmpeg4v2 --enable-encoder=msmpeg4v3 --enable-decoder=aac --enable-decoder=h263 --enable-decoder=h264 --enable-decoder=mp3 --enable-decoder=mp3adu --enable-decoder=mpeg4 --enable-decoder=mpegvideo --enable-decoder=msmpeg4v1 --enable-decoder=msmpeg4v2 --enable-decoder=msmpeg4v3 --enable-decoder=wmav1 --enable-decoder=wmav2 --enable-decoder=wmv3 --enable-decoder=vc1 ;; MINGW*) -./configure --prefix=./$BIN_DIR --arch=x86 --enable-shared --disable-static --enable-optimizations --enable-memalign-hack --disable-doc --disable-gpl --disable-yasm --disable-postproc --disable-swscale --disable-ffmpeg --disable-ffprobe --disable-ffserver --disable-ffplay --disable-decoders --disable-encoders --disable-muxers --disable-demuxers --disable-parsers --disable-protocols --disable-network --disable-bsfs --disable-devices --disable-filters --enable-encoder=h263 --enable-encoder=h263p --enable-encoder=mpeg4 --enable-encoder=msmpeg4v2 --enable-encoder=msmpeg4v3 --enable-decoder=aac --enable-decoder=h263 --enable-decoder=h264 --enable-decoder=mp3 --enable-decoder=mp3adu --enable-decoder=mpeg4 --enable-decoder=mpegvideo --enable-decoder=msmpeg4v1 --enable-decoder=msmpeg4v2 --enable-decoder=msmpeg4v3 --enable-decoder=wmav1 --enable-decoder=wmav2 --enable-decoder=wmv3 --enable-decoder=vc1 +./configure --prefix=./$BIN_DIR --arch=x86 --enable-static --enable-w32threads --enable-optimizations --enable-memalign-hack --disable-doc --disable-gpl --disable-yasm --disable-postproc --disable-swscale --disable-ffmpeg --disable-ffprobe --disable-ffserver --disable-ffplay --disable-decoders --disable-encoders --disable-muxers --disable-demuxers --disable-parsers --disable-protocols --disable-network --disable-bsfs --disable-devices --disable-filters --enable-encoder=h263 --enable-encoder=h263p --enable-encoder=mpeg4 --enable-encoder=msmpeg4v2 --enable-encoder=msmpeg4v3 --enable-decoder=aac --enable-decoder=h263 --enable-decoder=h264 --enable-decoder=mp3 --enable-decoder=mp3adu --enable-decoder=mpeg4 --enable-decoder=mpegvideo --enable-decoder=msmpeg4v1 --enable-decoder=msmpeg4v2 --enable-decoder=msmpeg4v3 --enable-decoder=wmav1 --enable-decoder=wmav2 --enable-decoder=wmv3 --enable-decoder=vc1 ;; esac diff --git a/tizen/distrib/libav/i386/bin/avcodec-53.dll b/tizen/distrib/libav/i386/bin/avcodec-53.dll Binary files differdeleted file mode 100644 index cf247c320f..0000000000 --- a/tizen/distrib/libav/i386/bin/avcodec-53.dll +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avcodec-53.lib b/tizen/distrib/libav/i386/bin/avcodec-53.lib Binary files differdeleted file mode 100644 index 2a8e1c3fdb..0000000000 --- a/tizen/distrib/libav/i386/bin/avcodec-53.lib +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avcodec.dll b/tizen/distrib/libav/i386/bin/avcodec.dll Binary files differdeleted file mode 100644 index cf247c320f..0000000000 --- a/tizen/distrib/libav/i386/bin/avcodec.dll +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avcodec.lib b/tizen/distrib/libav/i386/bin/avcodec.lib Binary files differdeleted file mode 100644 index 2a8e1c3fdb..0000000000 --- a/tizen/distrib/libav/i386/bin/avcodec.lib +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avdevice-53.0.0.dll b/tizen/distrib/libav/i386/bin/avdevice-53.0.0.dll Binary files differdeleted file mode 100644 index 896cba96d6..0000000000 --- a/tizen/distrib/libav/i386/bin/avdevice-53.0.0.dll +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avdevice-53.dll b/tizen/distrib/libav/i386/bin/avdevice-53.dll Binary files differdeleted file mode 100644 index 896cba96d6..0000000000 --- a/tizen/distrib/libav/i386/bin/avdevice-53.dll +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avdevice-53.lib b/tizen/distrib/libav/i386/bin/avdevice-53.lib Binary files differdeleted file mode 100644 index 3123f65c38..0000000000 --- a/tizen/distrib/libav/i386/bin/avdevice-53.lib +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avdevice.dll b/tizen/distrib/libav/i386/bin/avdevice.dll Binary files differdeleted file mode 100644 index 896cba96d6..0000000000 --- a/tizen/distrib/libav/i386/bin/avdevice.dll +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avdevice.lib b/tizen/distrib/libav/i386/bin/avdevice.lib Binary files differdeleted file mode 100644 index 3123f65c38..0000000000 --- a/tizen/distrib/libav/i386/bin/avdevice.lib +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avfilter-2.4.0.dll b/tizen/distrib/libav/i386/bin/avfilter-2.4.0.dll Binary files differdeleted file mode 100644 index afcaed1286..0000000000 --- a/tizen/distrib/libav/i386/bin/avfilter-2.4.0.dll +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avfilter-2.dll b/tizen/distrib/libav/i386/bin/avfilter-2.dll Binary files differdeleted file mode 100644 index afcaed1286..0000000000 --- a/tizen/distrib/libav/i386/bin/avfilter-2.dll +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avfilter-2.lib b/tizen/distrib/libav/i386/bin/avfilter-2.lib Binary files differdeleted file mode 100644 index 16b80eb6a6..0000000000 --- a/tizen/distrib/libav/i386/bin/avfilter-2.lib +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avfilter.dll b/tizen/distrib/libav/i386/bin/avfilter.dll Binary files differdeleted file mode 100644 index afcaed1286..0000000000 --- a/tizen/distrib/libav/i386/bin/avfilter.dll +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avfilter.lib b/tizen/distrib/libav/i386/bin/avfilter.lib Binary files differdeleted file mode 100644 index 16b80eb6a6..0000000000 --- a/tizen/distrib/libav/i386/bin/avfilter.lib +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avformat-53.2.0.dll b/tizen/distrib/libav/i386/bin/avformat-53.2.0.dll Binary files differdeleted file mode 100644 index 3b0329919f..0000000000 --- a/tizen/distrib/libav/i386/bin/avformat-53.2.0.dll +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avformat-53.dll b/tizen/distrib/libav/i386/bin/avformat-53.dll Binary files differdeleted file mode 100644 index 3b0329919f..0000000000 --- a/tizen/distrib/libav/i386/bin/avformat-53.dll +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avformat-53.lib b/tizen/distrib/libav/i386/bin/avformat-53.lib Binary files differdeleted file mode 100644 index f9da1cfba6..0000000000 --- a/tizen/distrib/libav/i386/bin/avformat-53.lib +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avformat.dll b/tizen/distrib/libav/i386/bin/avformat.dll Binary files differdeleted file mode 100644 index 3b0329919f..0000000000 --- a/tizen/distrib/libav/i386/bin/avformat.dll +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avformat.lib b/tizen/distrib/libav/i386/bin/avformat.lib Binary files differdeleted file mode 100644 index f9da1cfba6..0000000000 --- a/tizen/distrib/libav/i386/bin/avformat.lib +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avutil-51.7.0.dll b/tizen/distrib/libav/i386/bin/avutil-51.7.0.dll Binary files differdeleted file mode 100644 index 21d8204f8f..0000000000 --- a/tizen/distrib/libav/i386/bin/avutil-51.7.0.dll +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avutil-51.dll b/tizen/distrib/libav/i386/bin/avutil-51.dll Binary files differdeleted file mode 100644 index 21d8204f8f..0000000000 --- a/tizen/distrib/libav/i386/bin/avutil-51.dll +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avutil-51.lib b/tizen/distrib/libav/i386/bin/avutil-51.lib Binary files differdeleted file mode 100644 index e62d1aae1d..0000000000 --- a/tizen/distrib/libav/i386/bin/avutil-51.lib +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avutil.dll b/tizen/distrib/libav/i386/bin/avutil.dll Binary files differdeleted file mode 100644 index 21d8204f8f..0000000000 --- a/tizen/distrib/libav/i386/bin/avutil.dll +++ /dev/null diff --git a/tizen/distrib/libav/i386/bin/avutil.lib b/tizen/distrib/libav/i386/bin/avutil.lib Binary files differdeleted file mode 100644 index e62d1aae1d..0000000000 --- a/tizen/distrib/libav/i386/bin/avutil.lib +++ /dev/null diff --git a/tizen/distrib/libav/i386/include/libavcodec/avcodec.h b/tizen/distrib/libav/i386/include/libavcodec/avcodec.h deleted file mode 100644 index 0269892028..0000000000 --- a/tizen/distrib/libav/i386/include/libavcodec/avcodec.h +++ /dev/null @@ -1,4185 +0,0 @@ -/* - * copyright (c) 2001 Fabrice Bellard - * - * 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 - */ - -#ifndef AVCODEC_AVCODEC_H -#define AVCODEC_AVCODEC_H - -/** - * @file - * external API header - */ - -#include <errno.h> -#include "libavutil/samplefmt.h" -#include "libavutil/avutil.h" -#include "libavutil/cpu.h" - -#include "libavcodec/version.h" - -/** - * Identify the syntax and semantics of the bitstream. - * The principle is roughly: - * Two decoders with the same ID can decode the same streams. - * Two encoders with the same ID can encode compatible streams. - * There may be slight deviations from the principle due to implementation - * details. - * - * If you add a codec ID to this list, add it so that - * 1. no value of a existing codec ID changes (that would break ABI), - * 2. it is as close as possible to similar codecs. - */ -enum CodecID { - CODEC_ID_NONE, - - /* video codecs */ - CODEC_ID_MPEG1VIDEO, - CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding - CODEC_ID_MPEG2VIDEO_XVMC, - CODEC_ID_H261, - CODEC_ID_H263, - CODEC_ID_RV10, - CODEC_ID_RV20, - CODEC_ID_MJPEG, - CODEC_ID_MJPEGB, - CODEC_ID_LJPEG, - CODEC_ID_SP5X, - CODEC_ID_JPEGLS, - CODEC_ID_MPEG4, - CODEC_ID_RAWVIDEO, - CODEC_ID_MSMPEG4V1, - CODEC_ID_MSMPEG4V2, - CODEC_ID_MSMPEG4V3, - CODEC_ID_WMV1, - CODEC_ID_WMV2, - CODEC_ID_H263P, - CODEC_ID_H263I, - CODEC_ID_FLV1, - CODEC_ID_SVQ1, - CODEC_ID_SVQ3, - CODEC_ID_DVVIDEO, - CODEC_ID_HUFFYUV, - CODEC_ID_CYUV, - CODEC_ID_H264, - CODEC_ID_INDEO3, - CODEC_ID_VP3, - CODEC_ID_THEORA, - CODEC_ID_ASV1, - CODEC_ID_ASV2, - CODEC_ID_FFV1, - CODEC_ID_4XM, - CODEC_ID_VCR1, - CODEC_ID_CLJR, - CODEC_ID_MDEC, - CODEC_ID_ROQ, - CODEC_ID_INTERPLAY_VIDEO, - CODEC_ID_XAN_WC3, - CODEC_ID_XAN_WC4, - CODEC_ID_RPZA, - CODEC_ID_CINEPAK, - CODEC_ID_WS_VQA, - CODEC_ID_MSRLE, - CODEC_ID_MSVIDEO1, - CODEC_ID_IDCIN, - CODEC_ID_8BPS, - CODEC_ID_SMC, - CODEC_ID_FLIC, - CODEC_ID_TRUEMOTION1, - CODEC_ID_VMDVIDEO, - CODEC_ID_MSZH, - CODEC_ID_ZLIB, - CODEC_ID_QTRLE, - CODEC_ID_SNOW, - CODEC_ID_TSCC, - CODEC_ID_ULTI, - CODEC_ID_QDRAW, - CODEC_ID_VIXL, - CODEC_ID_QPEG, - CODEC_ID_PNG, - CODEC_ID_PPM, - CODEC_ID_PBM, - CODEC_ID_PGM, - CODEC_ID_PGMYUV, - CODEC_ID_PAM, - CODEC_ID_FFVHUFF, - CODEC_ID_RV30, - CODEC_ID_RV40, - CODEC_ID_VC1, - CODEC_ID_WMV3, - CODEC_ID_LOCO, - CODEC_ID_WNV1, - CODEC_ID_AASC, - CODEC_ID_INDEO2, - CODEC_ID_FRAPS, - CODEC_ID_TRUEMOTION2, - CODEC_ID_BMP, - CODEC_ID_CSCD, - CODEC_ID_MMVIDEO, - CODEC_ID_ZMBV, - CODEC_ID_AVS, - CODEC_ID_SMACKVIDEO, - CODEC_ID_NUV, - CODEC_ID_KMVC, - CODEC_ID_FLASHSV, - CODEC_ID_CAVS, - CODEC_ID_JPEG2000, - CODEC_ID_VMNC, - CODEC_ID_VP5, - CODEC_ID_VP6, - CODEC_ID_VP6F, - CODEC_ID_TARGA, - CODEC_ID_DSICINVIDEO, - CODEC_ID_TIERTEXSEQVIDEO, - CODEC_ID_TIFF, - CODEC_ID_GIF, - CODEC_ID_FFH264, - CODEC_ID_DXA, - CODEC_ID_DNXHD, - CODEC_ID_THP, - CODEC_ID_SGI, - CODEC_ID_C93, - CODEC_ID_BETHSOFTVID, - CODEC_ID_PTX, - CODEC_ID_TXD, - CODEC_ID_VP6A, - CODEC_ID_AMV, - CODEC_ID_VB, - CODEC_ID_PCX, - CODEC_ID_SUNRAST, - CODEC_ID_INDEO4, - CODEC_ID_INDEO5, - CODEC_ID_MIMIC, - CODEC_ID_RL2, - CODEC_ID_8SVX_EXP, - CODEC_ID_8SVX_FIB, - CODEC_ID_ESCAPE124, - CODEC_ID_DIRAC, - CODEC_ID_BFI, - CODEC_ID_CMV, - CODEC_ID_MOTIONPIXELS, - CODEC_ID_TGV, - CODEC_ID_TGQ, - CODEC_ID_TQI, - CODEC_ID_AURA, - CODEC_ID_AURA2, - CODEC_ID_V210X, - CODEC_ID_TMV, - CODEC_ID_V210, - CODEC_ID_DPX, - CODEC_ID_MAD, - CODEC_ID_FRWU, - CODEC_ID_FLASHSV2, - CODEC_ID_CDGRAPHICS, - CODEC_ID_R210, - CODEC_ID_ANM, - CODEC_ID_BINKVIDEO, - CODEC_ID_IFF_ILBM, - CODEC_ID_IFF_BYTERUN1, - CODEC_ID_KGV1, - CODEC_ID_YOP, - CODEC_ID_VP8, - CODEC_ID_PICTOR, - CODEC_ID_ANSI, - CODEC_ID_A64_MULTI, - CODEC_ID_A64_MULTI5, - CODEC_ID_R10K, - CODEC_ID_MXPEG, - CODEC_ID_LAGARITH, - CODEC_ID_PRORES, - CODEC_ID_JV, - CODEC_ID_DFA, - - /* various PCM "codecs" */ - CODEC_ID_PCM_S16LE= 0x10000, - CODEC_ID_PCM_S16BE, - CODEC_ID_PCM_U16LE, - CODEC_ID_PCM_U16BE, - CODEC_ID_PCM_S8, - CODEC_ID_PCM_U8, - CODEC_ID_PCM_MULAW, - CODEC_ID_PCM_ALAW, - CODEC_ID_PCM_S32LE, - CODEC_ID_PCM_S32BE, - CODEC_ID_PCM_U32LE, - CODEC_ID_PCM_U32BE, - CODEC_ID_PCM_S24LE, - CODEC_ID_PCM_S24BE, - CODEC_ID_PCM_U24LE, - CODEC_ID_PCM_U24BE, - CODEC_ID_PCM_S24DAUD, - CODEC_ID_PCM_ZORK, - CODEC_ID_PCM_S16LE_PLANAR, - CODEC_ID_PCM_DVD, - CODEC_ID_PCM_F32BE, - CODEC_ID_PCM_F32LE, - CODEC_ID_PCM_F64BE, - CODEC_ID_PCM_F64LE, - CODEC_ID_PCM_BLURAY, - CODEC_ID_PCM_LXF, - CODEC_ID_S302M, - - /* various ADPCM codecs */ - CODEC_ID_ADPCM_IMA_QT= 0x11000, - CODEC_ID_ADPCM_IMA_WAV, - CODEC_ID_ADPCM_IMA_DK3, - CODEC_ID_ADPCM_IMA_DK4, - CODEC_ID_ADPCM_IMA_WS, - CODEC_ID_ADPCM_IMA_SMJPEG, - CODEC_ID_ADPCM_MS, - CODEC_ID_ADPCM_4XM, - CODEC_ID_ADPCM_XA, - CODEC_ID_ADPCM_ADX, - CODEC_ID_ADPCM_EA, - CODEC_ID_ADPCM_G726, - CODEC_ID_ADPCM_CT, - CODEC_ID_ADPCM_SWF, - CODEC_ID_ADPCM_YAMAHA, - CODEC_ID_ADPCM_SBPRO_4, - CODEC_ID_ADPCM_SBPRO_3, - CODEC_ID_ADPCM_SBPRO_2, - CODEC_ID_ADPCM_THP, - CODEC_ID_ADPCM_IMA_AMV, - CODEC_ID_ADPCM_EA_R1, - CODEC_ID_ADPCM_EA_R3, - CODEC_ID_ADPCM_EA_R2, - CODEC_ID_ADPCM_IMA_EA_SEAD, - CODEC_ID_ADPCM_IMA_EA_EACS, - CODEC_ID_ADPCM_EA_XAS, - CODEC_ID_ADPCM_EA_MAXIS_XA, - CODEC_ID_ADPCM_IMA_ISS, - CODEC_ID_ADPCM_G722, - - /* AMR */ - CODEC_ID_AMR_NB= 0x12000, - CODEC_ID_AMR_WB, - - /* RealAudio codecs*/ - CODEC_ID_RA_144= 0x13000, - CODEC_ID_RA_288, - - /* various DPCM codecs */ - CODEC_ID_ROQ_DPCM= 0x14000, - CODEC_ID_INTERPLAY_DPCM, - CODEC_ID_XAN_DPCM, - CODEC_ID_SOL_DPCM, - - /* audio codecs */ - CODEC_ID_MP2= 0x15000, - CODEC_ID_MP3, ///< preferred ID for decoding MPEG audio layer 1, 2 or 3 - CODEC_ID_AAC, - CODEC_ID_AC3, - CODEC_ID_DTS, - CODEC_ID_VORBIS, - CODEC_ID_DVAUDIO, - CODEC_ID_WMAV1, - CODEC_ID_WMAV2, - CODEC_ID_MACE3, - CODEC_ID_MACE6, - CODEC_ID_VMDAUDIO, - CODEC_ID_SONIC, - CODEC_ID_SONIC_LS, - CODEC_ID_FLAC, - CODEC_ID_MP3ADU, - CODEC_ID_MP3ON4, - CODEC_ID_SHORTEN, - CODEC_ID_ALAC, - CODEC_ID_WESTWOOD_SND1, - CODEC_ID_GSM, ///< as in Berlin toast format - CODEC_ID_QDM2, - CODEC_ID_COOK, - CODEC_ID_TRUESPEECH, - CODEC_ID_TTA, - CODEC_ID_SMACKAUDIO, - CODEC_ID_QCELP, - CODEC_ID_WAVPACK, - CODEC_ID_DSICINAUDIO, - CODEC_ID_IMC, - CODEC_ID_MUSEPACK7, - CODEC_ID_MLP, - CODEC_ID_GSM_MS, /* as found in WAV */ - CODEC_ID_ATRAC3, - CODEC_ID_VOXWARE, - CODEC_ID_APE, - CODEC_ID_NELLYMOSER, - CODEC_ID_MUSEPACK8, - CODEC_ID_SPEEX, - CODEC_ID_WMAVOICE, - CODEC_ID_WMAPRO, - CODEC_ID_WMALOSSLESS, - CODEC_ID_ATRAC3P, - CODEC_ID_EAC3, - CODEC_ID_SIPR, - CODEC_ID_MP1, - CODEC_ID_TWINVQ, - CODEC_ID_TRUEHD, - CODEC_ID_MP4ALS, - CODEC_ID_ATRAC1, - CODEC_ID_BINKAUDIO_RDFT, - CODEC_ID_BINKAUDIO_DCT, - CODEC_ID_AAC_LATM, - CODEC_ID_QDMC, - - /* subtitle codecs */ - CODEC_ID_DVD_SUBTITLE= 0x17000, - CODEC_ID_DVB_SUBTITLE, - CODEC_ID_TEXT, ///< raw UTF-8 text - CODEC_ID_XSUB, - CODEC_ID_SSA, - CODEC_ID_MOV_TEXT, - CODEC_ID_HDMV_PGS_SUBTITLE, - CODEC_ID_DVB_TELETEXT, - CODEC_ID_SRT, - - /* other specific kind of codecs (generally used for attachments) */ - CODEC_ID_TTF= 0x18000, - - CODEC_ID_PROBE= 0x19000, ///< codec_id is not known (like CODEC_ID_NONE) but lavf should attempt to identify it - - CODEC_ID_MPEG2TS= 0x20000, /**< _FAKE_ codec to indicate a raw MPEG-2 TS - * stream (only used by libavformat) */ - CODEC_ID_FFMETADATA=0x21000, ///< Dummy codec for streams containing only metadata information. -}; - -#if FF_API_OLD_SAMPLE_FMT -#define SampleFormat AVSampleFormat - -#define SAMPLE_FMT_NONE AV_SAMPLE_FMT_NONE -#define SAMPLE_FMT_U8 AV_SAMPLE_FMT_U8 -#define SAMPLE_FMT_S16 AV_SAMPLE_FMT_S16 -#define SAMPLE_FMT_S32 AV_SAMPLE_FMT_S32 -#define SAMPLE_FMT_FLT AV_SAMPLE_FMT_FLT -#define SAMPLE_FMT_DBL AV_SAMPLE_FMT_DBL -#define SAMPLE_FMT_NB AV_SAMPLE_FMT_NB -#endif - -#if FF_API_OLD_AUDIOCONVERT -#include "libavutil/audioconvert.h" - -/* Audio channel masks */ -#define CH_FRONT_LEFT AV_CH_FRONT_LEFT -#define CH_FRONT_RIGHT AV_CH_FRONT_RIGHT -#define CH_FRONT_CENTER AV_CH_FRONT_CENTER -#define CH_LOW_FREQUENCY AV_CH_LOW_FREQUENCY -#define CH_BACK_LEFT AV_CH_BACK_LEFT -#define CH_BACK_RIGHT AV_CH_BACK_RIGHT -#define CH_FRONT_LEFT_OF_CENTER AV_CH_FRONT_LEFT_OF_CENTER -#define CH_FRONT_RIGHT_OF_CENTER AV_CH_FRONT_RIGHT_OF_CENTER -#define CH_BACK_CENTER AV_CH_BACK_CENTER -#define CH_SIDE_LEFT AV_CH_SIDE_LEFT -#define CH_SIDE_RIGHT AV_CH_SIDE_RIGHT -#define CH_TOP_CENTER AV_CH_TOP_CENTER -#define CH_TOP_FRONT_LEFT AV_CH_TOP_FRONT_LEFT -#define CH_TOP_FRONT_CENTER AV_CH_TOP_FRONT_CENTER -#define CH_TOP_FRONT_RIGHT AV_CH_TOP_FRONT_RIGHT -#define CH_TOP_BACK_LEFT AV_CH_TOP_BACK_LEFT -#define CH_TOP_BACK_CENTER AV_CH_TOP_BACK_CENTER -#define CH_TOP_BACK_RIGHT AV_CH_TOP_BACK_RIGHT -#define CH_STEREO_LEFT AV_CH_STEREO_LEFT -#define CH_STEREO_RIGHT AV_CH_STEREO_RIGHT - -/** Channel mask value used for AVCodecContext.request_channel_layout - to indicate that the user requests the channel order of the decoder output - to be the native codec channel order. */ -#define CH_LAYOUT_NATIVE AV_CH_LAYOUT_NATIVE - -/* Audio channel convenience macros */ -#define CH_LAYOUT_MONO AV_CH_LAYOUT_MONO -#define CH_LAYOUT_STEREO AV_CH_LAYOUT_STEREO -#define CH_LAYOUT_2_1 AV_CH_LAYOUT_2_1 -#define CH_LAYOUT_SURROUND AV_CH_LAYOUT_SURROUND -#define CH_LAYOUT_4POINT0 AV_CH_LAYOUT_4POINT0 -#define CH_LAYOUT_2_2 AV_CH_LAYOUT_2_2 -#define CH_LAYOUT_QUAD AV_CH_LAYOUT_QUAD -#define CH_LAYOUT_5POINT0 AV_CH_LAYOUT_5POINT0 -#define CH_LAYOUT_5POINT1 AV_CH_LAYOUT_5POINT1 -#define CH_LAYOUT_5POINT0_BACK AV_CH_LAYOUT_5POINT0_BACK -#define CH_LAYOUT_5POINT1_BACK AV_CH_LAYOUT_5POINT1_BACK -#define CH_LAYOUT_7POINT0 AV_CH_LAYOUT_7POINT0 -#define CH_LAYOUT_7POINT1 AV_CH_LAYOUT_7POINT1 -#define CH_LAYOUT_7POINT1_WIDE AV_CH_LAYOUT_7POINT1_WIDE -#define CH_LAYOUT_STEREO_DOWNMIX AV_CH_LAYOUT_STEREO_DOWNMIX -#endif - -/* in bytes */ -#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio - -/** - * Required number of additionally allocated bytes at the end of the input bitstream for decoding. - * This is mainly needed because some optimized bitstream readers read - * 32 or 64 bit at once and could read over the end.<br> - * Note: If the first 23 bits of the additional bytes are not 0, then damaged - * MPEG bitstreams could cause overread and segfault. - */ -#define FF_INPUT_BUFFER_PADDING_SIZE 8 - -/** - * minimum encoding buffer size - * Used to avoid some checks during header writing. - */ -#define FF_MIN_BUFFER_SIZE 16384 - - -/** - * motion estimation type. - */ -enum Motion_Est_ID { - ME_ZERO = 1, ///< no search, that is use 0,0 vector whenever one is needed - ME_FULL, - ME_LOG, - ME_PHODS, - ME_EPZS, ///< enhanced predictive zonal search - ME_X1, ///< reserved for experiments - ME_HEX, ///< hexagon based search - ME_UMH, ///< uneven multi-hexagon search - ME_ITER, ///< iterative search - ME_TESA, ///< transformed exhaustive search algorithm -}; - -enum AVDiscard{ - /* We leave some space between them for extensions (drop some - * keyframes for intra-only or drop just some bidir frames). */ - AVDISCARD_NONE =-16, ///< discard nothing - AVDISCARD_DEFAULT= 0, ///< discard useless packets like 0 size packets in avi - AVDISCARD_NONREF = 8, ///< discard all non reference - AVDISCARD_BIDIR = 16, ///< discard all bidirectional frames - AVDISCARD_NONKEY = 32, ///< discard all frames except keyframes - AVDISCARD_ALL = 48, ///< discard all -}; - -enum AVColorPrimaries{ - AVCOL_PRI_BT709 =1, ///< also ITU-R BT1361 / IEC 61966-2-4 / SMPTE RP177 Annex B - AVCOL_PRI_UNSPECIFIED=2, - AVCOL_PRI_BT470M =4, - AVCOL_PRI_BT470BG =5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM - AVCOL_PRI_SMPTE170M =6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC - AVCOL_PRI_SMPTE240M =7, ///< functionally identical to above - AVCOL_PRI_FILM =8, - AVCOL_PRI_NB , ///< Not part of ABI -}; - -enum AVColorTransferCharacteristic{ - AVCOL_TRC_BT709 =1, ///< also ITU-R BT1361 - AVCOL_TRC_UNSPECIFIED=2, - AVCOL_TRC_GAMMA22 =4, ///< also ITU-R BT470M / ITU-R BT1700 625 PAL & SECAM - AVCOL_TRC_GAMMA28 =5, ///< also ITU-R BT470BG - AVCOL_TRC_NB , ///< Not part of ABI -}; - -enum AVColorSpace{ - AVCOL_SPC_RGB =0, - AVCOL_SPC_BT709 =1, ///< also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / SMPTE RP177 Annex B - AVCOL_SPC_UNSPECIFIED=2, - AVCOL_SPC_FCC =4, - AVCOL_SPC_BT470BG =5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601 - AVCOL_SPC_SMPTE170M =6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC / functionally identical to above - AVCOL_SPC_SMPTE240M =7, - AVCOL_SPC_NB , ///< Not part of ABI -}; - -enum AVColorRange{ - AVCOL_RANGE_UNSPECIFIED=0, - AVCOL_RANGE_MPEG =1, ///< the normal 219*2^(n-8) "MPEG" YUV ranges - AVCOL_RANGE_JPEG =2, ///< the normal 2^n-1 "JPEG" YUV ranges - AVCOL_RANGE_NB , ///< Not part of ABI -}; - -/** - * X X 3 4 X X are luma samples, - * 1 2 1-6 are possible chroma positions - * X X 5 6 X 0 is undefined/unknown position - */ -enum AVChromaLocation{ - AVCHROMA_LOC_UNSPECIFIED=0, - AVCHROMA_LOC_LEFT =1, ///< mpeg2/4, h264 default - AVCHROMA_LOC_CENTER =2, ///< mpeg1, jpeg, h263 - AVCHROMA_LOC_TOPLEFT =3, ///< DV - AVCHROMA_LOC_TOP =4, - AVCHROMA_LOC_BOTTOMLEFT =5, - AVCHROMA_LOC_BOTTOM =6, - AVCHROMA_LOC_NB , ///< Not part of ABI -}; - -#if FF_API_FLAC_GLOBAL_OPTS -/** - * LPC analysis type - */ -attribute_deprecated enum AVLPCType { - AV_LPC_TYPE_DEFAULT = -1, ///< use the codec default LPC type - AV_LPC_TYPE_NONE = 0, ///< do not use LPC prediction or use all zero coefficients - AV_LPC_TYPE_FIXED = 1, ///< fixed LPC coefficients - AV_LPC_TYPE_LEVINSON = 2, ///< Levinson-Durbin recursion - AV_LPC_TYPE_CHOLESKY = 3, ///< Cholesky factorization - AV_LPC_TYPE_NB , ///< Not part of ABI -}; -#endif - -enum AVAudioServiceType { - AV_AUDIO_SERVICE_TYPE_MAIN = 0, - AV_AUDIO_SERVICE_TYPE_EFFECTS = 1, - AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED = 2, - AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED = 3, - AV_AUDIO_SERVICE_TYPE_DIALOGUE = 4, - AV_AUDIO_SERVICE_TYPE_COMMENTARY = 5, - AV_AUDIO_SERVICE_TYPE_EMERGENCY = 6, - AV_AUDIO_SERVICE_TYPE_VOICE_OVER = 7, - AV_AUDIO_SERVICE_TYPE_KARAOKE = 8, - AV_AUDIO_SERVICE_TYPE_NB , ///< Not part of ABI -}; - -typedef struct RcOverride{ - int start_frame; - int end_frame; - int qscale; // If this is 0 then quality_factor will be used instead. - float quality_factor; -} RcOverride; - -#define FF_MAX_B_FRAMES 16 - -/* encoding support - These flags can be passed in AVCodecContext.flags before initialization. - Note: Not everything is supported yet. -*/ - -#define CODEC_FLAG_QSCALE 0x0002 ///< Use fixed qscale. -#define CODEC_FLAG_4MV 0x0004 ///< 4 MV per MB allowed / advanced prediction for H.263. -#define CODEC_FLAG_QPEL 0x0010 ///< Use qpel MC. -#define CODEC_FLAG_GMC 0x0020 ///< Use GMC. -#define CODEC_FLAG_MV0 0x0040 ///< Always try a MB with MV=<0,0>. -#define CODEC_FLAG_PART 0x0080 ///< Use data partitioning. -/** - * The parent program guarantees that the input for B-frames containing - * streams is not written to for at least s->max_b_frames+1 frames, if - * this is not set the input will be copied. - */ -#define CODEC_FLAG_INPUT_PRESERVED 0x0100 -#define CODEC_FLAG_PASS1 0x0200 ///< Use internal 2pass ratecontrol in first pass mode. -#define CODEC_FLAG_PASS2 0x0400 ///< Use internal 2pass ratecontrol in second pass mode. -#define CODEC_FLAG_EXTERN_HUFF 0x1000 ///< Use external Huffman table (for MJPEG). -#define CODEC_FLAG_GRAY 0x2000 ///< Only decode/encode grayscale. -#define CODEC_FLAG_EMU_EDGE 0x4000 ///< Don't draw edges. -#define CODEC_FLAG_PSNR 0x8000 ///< error[?] variables will be set during encoding. -#define CODEC_FLAG_TRUNCATED 0x00010000 /** Input bitstream might be truncated at a random - location instead of only at frame boundaries. */ -#define CODEC_FLAG_NORMALIZE_AQP 0x00020000 ///< Normalize adaptive quantization. -#define CODEC_FLAG_INTERLACED_DCT 0x00040000 ///< Use interlaced DCT. -#define CODEC_FLAG_LOW_DELAY 0x00080000 ///< Force low delay. -#define CODEC_FLAG_ALT_SCAN 0x00100000 ///< Use alternate scan. -#define CODEC_FLAG_GLOBAL_HEADER 0x00400000 ///< Place global headers in extradata instead of every keyframe. -#define CODEC_FLAG_BITEXACT 0x00800000 ///< Use only bitexact stuff (except (I)DCT). -/* Fx : Flag for h263+ extra options */ -#define CODEC_FLAG_AC_PRED 0x01000000 ///< H.263 advanced intra coding / MPEG-4 AC prediction -#define CODEC_FLAG_H263P_UMV 0x02000000 ///< unlimited motion vector -#define CODEC_FLAG_CBP_RD 0x04000000 ///< Use rate distortion optimization for cbp. -#define CODEC_FLAG_QP_RD 0x08000000 ///< Use rate distortion optimization for qp selectioon. -#define CODEC_FLAG_H263P_AIV 0x00000008 ///< H.263 alternative inter VLC -#define CODEC_FLAG_OBMC 0x00000001 ///< OBMC -#define CODEC_FLAG_LOOP_FILTER 0x00000800 ///< loop filter -#define CODEC_FLAG_H263P_SLICE_STRUCT 0x10000000 -#define CODEC_FLAG_INTERLACED_ME 0x20000000 ///< interlaced motion estimation -#define CODEC_FLAG_SVCD_SCAN_OFFSET 0x40000000 ///< Will reserve space for SVCD scan offset user data. -#define CODEC_FLAG_CLOSED_GOP 0x80000000 -#define CODEC_FLAG2_FAST 0x00000001 ///< Allow non spec compliant speedup tricks. -#define CODEC_FLAG2_STRICT_GOP 0x00000002 ///< Strictly enforce GOP size. -#define CODEC_FLAG2_NO_OUTPUT 0x00000004 ///< Skip bitstream encoding. -#define CODEC_FLAG2_LOCAL_HEADER 0x00000008 ///< Place global headers at every keyframe instead of in extradata. -#define CODEC_FLAG2_BPYRAMID 0x00000010 ///< H.264 allow B-frames to be used as references. -#define CODEC_FLAG2_WPRED 0x00000020 ///< H.264 weighted biprediction for B-frames -#define CODEC_FLAG2_MIXED_REFS 0x00000040 ///< H.264 one reference per partition, as opposed to one reference per macroblock -#define CODEC_FLAG2_8X8DCT 0x00000080 ///< H.264 high profile 8x8 transform -#define CODEC_FLAG2_FASTPSKIP 0x00000100 ///< H.264 fast pskip -#define CODEC_FLAG2_AUD 0x00000200 ///< H.264 access unit delimiters -#define CODEC_FLAG2_BRDO 0x00000400 ///< B-frame rate-distortion optimization -#define CODEC_FLAG2_INTRA_VLC 0x00000800 ///< Use MPEG-2 intra VLC table. -#define CODEC_FLAG2_MEMC_ONLY 0x00001000 ///< Only do ME/MC (I frames -> ref, P frame -> ME+MC). -#define CODEC_FLAG2_DROP_FRAME_TIMECODE 0x00002000 ///< timecode is in drop frame format. -#define CODEC_FLAG2_SKIP_RD 0x00004000 ///< RD optimal MB level residual skipping -#define CODEC_FLAG2_CHUNKS 0x00008000 ///< Input bitstream might be truncated at a packet boundaries instead of only at frame boundaries. -#define CODEC_FLAG2_NON_LINEAR_QUANT 0x00010000 ///< Use MPEG-2 nonlinear quantizer. -#define CODEC_FLAG2_BIT_RESERVOIR 0x00020000 ///< Use a bit reservoir when encoding if possible -#define CODEC_FLAG2_MBTREE 0x00040000 ///< Use macroblock tree ratecontrol (x264 only) -#define CODEC_FLAG2_PSY 0x00080000 ///< Use psycho visual optimizations. -#define CODEC_FLAG2_SSIM 0x00100000 ///< Compute SSIM during encoding, error[] values are undefined. -#define CODEC_FLAG2_INTRA_REFRESH 0x00200000 ///< Use periodic insertion of intra blocks instead of keyframes. - -/* Unsupported options : - * Syntax Arithmetic coding (SAC) - * Reference Picture Selection - * Independent Segment Decoding */ -/* /Fx */ -/* codec capabilities */ - -#define CODEC_CAP_DRAW_HORIZ_BAND 0x0001 ///< Decoder can use draw_horiz_band callback. -/** - * Codec uses get_buffer() for allocating buffers and supports custom allocators. - * If not set, it might not use get_buffer() at all or use operations that - * assume the buffer was allocated by avcodec_default_get_buffer. - */ -#define CODEC_CAP_DR1 0x0002 -/* If 'parse_only' field is true, then avcodec_parse_frame() can be used. */ -#define CODEC_CAP_PARSE_ONLY 0x0004 -#define CODEC_CAP_TRUNCATED 0x0008 -/* Codec can export data for HW decoding (XvMC). */ -#define CODEC_CAP_HWACCEL 0x0010 -/** - * Codec has a nonzero delay and needs to be fed with NULL at the end to get the delayed data. - * If this is not set, the codec is guaranteed to never be fed with NULL data. - */ -#define CODEC_CAP_DELAY 0x0020 -/** - * Codec can be fed a final frame with a smaller size. - * This can be used to prevent truncation of the last audio samples. - */ -#define CODEC_CAP_SMALL_LAST_FRAME 0x0040 -/** - * Codec can export data for HW decoding (VDPAU). - */ -#define CODEC_CAP_HWACCEL_VDPAU 0x0080 -/** - * Codec can output multiple frames per AVPacket - * Normally demuxers return one frame at a time, demuxers which do not do - * are connected to a parser to split what they return into proper frames. - * This flag is reserved to the very rare category of codecs which have a - * bitstream that cannot be split into frames without timeconsuming - * operations like full decoding. Demuxers carring such bitstreams thus - * may return multiple frames in a packet. This has many disadvantages like - * prohibiting stream copy in many cases thus it should only be considered - * as a last resort. - */ -#define CODEC_CAP_SUBFRAMES 0x0100 -/** - * Codec is experimental and is thus avoided in favor of non experimental - * encoders - */ -#define CODEC_CAP_EXPERIMENTAL 0x0200 -/** - * Codec should fill in channel configuration and samplerate instead of container - */ -#define CODEC_CAP_CHANNEL_CONF 0x0400 -/** - * Codec is able to deal with negative linesizes - */ -#define CODEC_CAP_NEG_LINESIZES 0x0800 -/** - * Codec supports frame-level multithreading. - */ -#define CODEC_CAP_FRAME_THREADS 0x1000 -/** - * Codec supports slice-based (or partition-based) multithreading. - */ -#define CODEC_CAP_SLICE_THREADS 0x2000 - -//The following defines may change, don't expect compatibility if you use them. -#define MB_TYPE_INTRA4x4 0x0001 -#define MB_TYPE_INTRA16x16 0x0002 //FIXME H.264-specific -#define MB_TYPE_INTRA_PCM 0x0004 //FIXME H.264-specific -#define MB_TYPE_16x16 0x0008 -#define MB_TYPE_16x8 0x0010 -#define MB_TYPE_8x16 0x0020 -#define MB_TYPE_8x8 0x0040 -#define MB_TYPE_INTERLACED 0x0080 -#define MB_TYPE_DIRECT2 0x0100 //FIXME -#define MB_TYPE_ACPRED 0x0200 -#define MB_TYPE_GMC 0x0400 -#define MB_TYPE_SKIP 0x0800 -#define MB_TYPE_P0L0 0x1000 -#define MB_TYPE_P1L0 0x2000 -#define MB_TYPE_P0L1 0x4000 -#define MB_TYPE_P1L1 0x8000 -#define MB_TYPE_L0 (MB_TYPE_P0L0 | MB_TYPE_P1L0) -#define MB_TYPE_L1 (MB_TYPE_P0L1 | MB_TYPE_P1L1) -#define MB_TYPE_L0L1 (MB_TYPE_L0 | MB_TYPE_L1) -#define MB_TYPE_QUANT 0x00010000 -#define MB_TYPE_CBP 0x00020000 -//Note bits 24-31 are reserved for codec specific use (h264 ref0, mpeg1 0mv, ...) - -/** - * Pan Scan area. - * This specifies the area which should be displayed. - * Note there may be multiple such areas for one frame. - */ -typedef struct AVPanScan{ - /** - * id - * - encoding: Set by user. - * - decoding: Set by libavcodec. - */ - int id; - - /** - * width and height in 1/16 pel - * - encoding: Set by user. - * - decoding: Set by libavcodec. - */ - int width; - int height; - - /** - * position of the top left corner in 1/16 pel for up to 3 fields/frames - * - encoding: Set by user. - * - decoding: Set by libavcodec. - */ - int16_t position[3][2]; -}AVPanScan; - -#define FF_COMMON_FRAME \ - /**\ - * pointer to the picture planes.\ - * This might be different from the first allocated byte\ - * - encoding: \ - * - decoding: \ - */\ - uint8_t *data[4];\ - int linesize[4];\ - /**\ - * pointer to the first allocated byte of the picture. Can be used in get_buffer/release_buffer.\ - * This isn't used by libavcodec unless the default get/release_buffer() is used.\ - * - encoding: \ - * - decoding: \ - */\ - uint8_t *base[4];\ - /**\ - * 1 -> keyframe, 0-> not\ - * - encoding: Set by libavcodec.\ - * - decoding: Set by libavcodec.\ - */\ - int key_frame;\ -\ - /**\ - * Picture type of the frame, see ?_TYPE below.\ - * - encoding: Set by libavcodec. for coded_picture (and set by user for input).\ - * - decoding: Set by libavcodec.\ - */\ - enum AVPictureType pict_type;\ -\ - /**\ - * presentation timestamp in time_base units (time when frame should be shown to user)\ - * If AV_NOPTS_VALUE then frame_rate = 1/time_base will be assumed.\ - * - encoding: MUST be set by user.\ - * - decoding: Set by libavcodec.\ - */\ - int64_t pts;\ -\ - /**\ - * picture number in bitstream order\ - * - encoding: set by\ - * - decoding: Set by libavcodec.\ - */\ - int coded_picture_number;\ - /**\ - * picture number in display order\ - * - encoding: set by\ - * - decoding: Set by libavcodec.\ - */\ - int display_picture_number;\ -\ - /**\ - * quality (between 1 (good) and FF_LAMBDA_MAX (bad)) \ - * - encoding: Set by libavcodec. for coded_picture (and set by user for input).\ - * - decoding: Set by libavcodec.\ - */\ - int quality; \ -\ - /**\ - * buffer age (1->was last buffer and dint change, 2->..., ...).\ - * Set to INT_MAX if the buffer has not been used yet.\ - * - encoding: unused\ - * - decoding: MUST be set by get_buffer().\ - */\ - int age;\ -\ - /**\ - * is this picture used as reference\ - * The values for this are the same as the MpegEncContext.picture_structure\ - * variable, that is 1->top field, 2->bottom field, 3->frame/both fields.\ - * Set to 4 for delayed, non-reference frames.\ - * - encoding: unused\ - * - decoding: Set by libavcodec. (before get_buffer() call)).\ - */\ - int reference;\ -\ - /**\ - * QP table\ - * - encoding: unused\ - * - decoding: Set by libavcodec.\ - */\ - int8_t *qscale_table;\ - /**\ - * QP store stride\ - * - encoding: unused\ - * - decoding: Set by libavcodec.\ - */\ - int qstride;\ -\ - /**\ - * mbskip_table[mb]>=1 if MB didn't change\ - * stride= mb_width = (width+15)>>4\ - * - encoding: unused\ - * - decoding: Set by libavcodec.\ - */\ - uint8_t *mbskip_table;\ -\ - /**\ - * motion vector table\ - * @code\ - * example:\ - * int mv_sample_log2= 4 - motion_subsample_log2;\ - * int mb_width= (width+15)>>4;\ - * int mv_stride= (mb_width << mv_sample_log2) + 1;\ - * motion_val[direction][x + y*mv_stride][0->mv_x, 1->mv_y];\ - * @endcode\ - * - encoding: Set by user.\ - * - decoding: Set by libavcodec.\ - */\ - int16_t (*motion_val[2])[2];\ -\ - /**\ - * macroblock type table\ - * mb_type_base + mb_width + 2\ - * - encoding: Set by user.\ - * - decoding: Set by libavcodec.\ - */\ - uint32_t *mb_type;\ -\ - /**\ - * log2 of the size of the block which a single vector in motion_val represents: \ - * (4->16x16, 3->8x8, 2-> 4x4, 1-> 2x2)\ - * - encoding: unused\ - * - decoding: Set by libavcodec.\ - */\ - uint8_t motion_subsample_log2;\ -\ - /**\ - * for some private data of the user\ - * - encoding: unused\ - * - decoding: Set by user.\ - */\ - void *opaque;\ -\ - /**\ - * error\ - * - encoding: Set by libavcodec. if flags&CODEC_FLAG_PSNR.\ - * - decoding: unused\ - */\ - uint64_t error[4];\ -\ - /**\ - * type of the buffer (to keep track of who has to deallocate data[*])\ - * - encoding: Set by the one who allocates it.\ - * - decoding: Set by the one who allocates it.\ - * Note: User allocated (direct rendering) & internal buffers cannot coexist currently.\ - */\ - int type;\ - \ - /**\ - * When decoding, this signals how much the picture must be delayed.\ - * extra_delay = repeat_pict / (2*fps)\ - * - encoding: unused\ - * - decoding: Set by libavcodec.\ - */\ - int repeat_pict;\ - \ - /**\ - * \ - */\ - int qscale_type;\ - \ - /**\ - * The content of the picture is interlaced.\ - * - encoding: Set by user.\ - * - decoding: Set by libavcodec. (default 0)\ - */\ - int interlaced_frame;\ - \ - /**\ - * If the content is interlaced, is top field displayed first.\ - * - encoding: Set by user.\ - * - decoding: Set by libavcodec.\ - */\ - int top_field_first;\ - \ - /**\ - * Pan scan.\ - * - encoding: Set by user.\ - * - decoding: Set by libavcodec.\ - */\ - AVPanScan *pan_scan;\ - \ - /**\ - * Tell user application that palette has changed from previous frame.\ - * - encoding: ??? (no palette-enabled encoder yet)\ - * - decoding: Set by libavcodec. (default 0).\ - */\ - int palette_has_changed;\ - \ - /**\ - * codec suggestion on buffer type if != 0\ - * - encoding: unused\ - * - decoding: Set by libavcodec. (before get_buffer() call)).\ - */\ - int buffer_hints;\ -\ - /**\ - * DCT coefficients\ - * - encoding: unused\ - * - decoding: Set by libavcodec.\ - */\ - short *dct_coeff;\ -\ - /**\ - * motion reference frame index\ - * the order in which these are stored can depend on the codec.\ - * - encoding: Set by user.\ - * - decoding: Set by libavcodec.\ - */\ - int8_t *ref_index[2];\ -\ - /**\ - * reordered opaque 64bit (generally an integer or a double precision float\ - * PTS but can be anything). \ - * The user sets AVCodecContext.reordered_opaque to represent the input at\ - * that time,\ - * the decoder reorders values as needed and sets AVFrame.reordered_opaque\ - * to exactly one of the values provided by the user through AVCodecContext.reordered_opaque \ - * @deprecated in favor of pkt_pts\ - * - encoding: unused\ - * - decoding: Read by user.\ - */\ - int64_t reordered_opaque;\ -\ - /**\ - * hardware accelerator private data (Libav-allocated)\ - * - encoding: unused\ - * - decoding: Set by libavcodec\ - */\ - void *hwaccel_picture_private;\ -\ - /**\ - * reordered pts from the last AVPacket that has been input into the decoder\ - * - encoding: unused\ - * - decoding: Read by user.\ - */\ - int64_t pkt_pts;\ -\ - /**\ - * dts from the last AVPacket that has been input into the decoder\ - * - encoding: unused\ - * - decoding: Read by user.\ - */\ - int64_t pkt_dts;\ -\ - /**\ - * the AVCodecContext which ff_thread_get_buffer() was last called on\ - * - encoding: Set by libavcodec.\ - * - decoding: Set by libavcodec.\ - */\ - struct AVCodecContext *owner;\ -\ - /**\ - * used by multithreading to store frame-specific info\ - * - encoding: Set by libavcodec.\ - * - decoding: Set by libavcodec.\ - */\ - void *thread_opaque;\ - -#define FF_QSCALE_TYPE_MPEG1 0 -#define FF_QSCALE_TYPE_MPEG2 1 -#define FF_QSCALE_TYPE_H264 2 -#define FF_QSCALE_TYPE_VP56 3 - -#define FF_BUFFER_TYPE_INTERNAL 1 -#define FF_BUFFER_TYPE_USER 2 ///< direct rendering buffers (image is (de)allocated by user) -#define FF_BUFFER_TYPE_SHARED 4 ///< Buffer from somewhere else; don't deallocate image (data/base), all other tables are not shared. -#define FF_BUFFER_TYPE_COPY 8 ///< Just a (modified) copy of some other buffer, don't deallocate anything. - -#if FF_API_OLD_FF_PICT_TYPES -/* DEPRECATED, directly use the AV_PICTURE_TYPE_* enum values */ -#define FF_I_TYPE AV_PICTURE_TYPE_I ///< Intra -#define FF_P_TYPE AV_PICTURE_TYPE_P ///< Predicted -#define FF_B_TYPE AV_PICTURE_TYPE_B ///< Bi-dir predicted -#define FF_S_TYPE AV_PICTURE_TYPE_S ///< S(GMC)-VOP MPEG4 -#define FF_SI_TYPE AV_PICTURE_TYPE_SI ///< Switching Intra -#define FF_SP_TYPE AV_PICTURE_TYPE_SP ///< Switching Predicted -#define FF_BI_TYPE AV_PICTURE_TYPE_BI -#endif - -#define FF_BUFFER_HINTS_VALID 0x01 // Buffer hints value is meaningful (if 0 ignore). -#define FF_BUFFER_HINTS_READABLE 0x02 // Codec will read from buffer. -#define FF_BUFFER_HINTS_PRESERVE 0x04 // User must not alter buffer content. -#define FF_BUFFER_HINTS_REUSABLE 0x08 // Codec will reuse the buffer (update). - -enum AVPacketSideDataType { - AV_PKT_DATA_PALETTE, -}; - -typedef struct AVPacket { - /** - * Presentation timestamp in AVStream->time_base units; the time at which - * the decompressed packet will be presented to the user. - * Can be AV_NOPTS_VALUE if it is not stored in the file. - * pts MUST be larger or equal to dts as presentation cannot happen before - * decompression, unless one wants to view hex dumps. Some formats misuse - * the terms dts and pts/cts to mean something different. Such timestamps - * must be converted to true pts/dts before they are stored in AVPacket. - */ - int64_t pts; - /** - * Decompression timestamp in AVStream->time_base units; the time at which - * the packet is decompressed. - * Can be AV_NOPTS_VALUE if it is not stored in the file. - */ - int64_t dts; - uint8_t *data; - int size; - int stream_index; - int flags; - /** - * Additional packet data that can be provided by the container. - * Packet can contain several types of side information. - */ - struct { - uint8_t *data; - int size; - enum AVPacketSideDataType type; - } *side_data; - int side_data_elems; - - /** - * Duration of this packet in AVStream->time_base units, 0 if unknown. - * Equals next_pts - this_pts in presentation order. - */ - int duration; - void (*destruct)(struct AVPacket *); - void *priv; - int64_t pos; ///< byte position in stream, -1 if unknown - - /** - * Time difference in AVStream->time_base units from the pts of this - * packet to the point at which the output from the decoder has converged - * independent from the availability of previous frames. That is, the - * frames are virtually identical no matter if decoding started from - * the very first frame or from this keyframe. - * Is AV_NOPTS_VALUE if unknown. - * This field is not the display duration of the current packet. - * This field has no meaning if the packet does not have AV_PKT_FLAG_KEY - * set. - * - * The purpose of this field is to allow seeking in streams that have no - * keyframes in the conventional sense. It corresponds to the - * recovery point SEI in H.264 and match_time_delta in NUT. It is also - * essential for some types of subtitle streams to ensure that all - * subtitles are correctly displayed after seeking. - */ - int64_t convergence_duration; -} AVPacket; -#define AV_PKT_FLAG_KEY 0x0001 - -/** - * Audio Video Frame. - * New fields can be added to the end of FF_COMMON_FRAME with minor version - * bumps. - * Removal, reordering and changes to existing fields require a major - * version bump. No fields should be added into AVFrame before or after - * FF_COMMON_FRAME! - * sizeof(AVFrame) must not be used outside libav*. - */ -typedef struct AVFrame { - FF_COMMON_FRAME -} AVFrame; - -/** - * main external API structure. - * New fields can be added to the end with minor version bumps. - * Removal, reordering and changes to existing fields require a major - * version bump. - * sizeof(AVCodecContext) must not be used outside libav*. - */ -typedef struct AVCodecContext { - /** - * information on struct for av_log - * - set by avcodec_alloc_context - */ - const AVClass *av_class; - /** - * the average bitrate - * - encoding: Set by user; unused for constant quantizer encoding. - * - decoding: Set by libavcodec. 0 or some bitrate if this info is available in the stream. - */ - int bit_rate; - - /** - * number of bits the bitstream is allowed to diverge from the reference. - * the reference can be CBR (for CBR pass1) or VBR (for pass2) - * - encoding: Set by user; unused for constant quantizer encoding. - * - decoding: unused - */ - int bit_rate_tolerance; - - /** - * CODEC_FLAG_*. - * - encoding: Set by user. - * - decoding: Set by user. - */ - int flags; - - /** - * Some codecs need additional format info. It is stored here. - * If any muxer uses this then ALL demuxers/parsers AND encoders for the - * specific codec MUST set it correctly otherwise stream copy breaks. - * In general use of this field by muxers is not recommanded. - * - encoding: Set by libavcodec. - * - decoding: Set by libavcodec. (FIXME: Is this OK?) - */ - int sub_id; - - /** - * Motion estimation algorithm used for video coding. - * 1 (zero), 2 (full), 3 (log), 4 (phods), 5 (epzs), 6 (x1), 7 (hex), - * 8 (umh), 9 (iter), 10 (tesa) [7, 8, 10 are x264 specific, 9 is snow specific] - * - encoding: MUST be set by user. - * - decoding: unused - */ - int me_method; - - /** - * some codecs need / can use extradata like Huffman tables. - * mjpeg: Huffman tables - * rv10: additional flags - * mpeg4: global headers (they can be in the bitstream or here) - * The allocated memory should be FF_INPUT_BUFFER_PADDING_SIZE bytes larger - * than extradata_size to avoid prolems if it is read with the bitstream reader. - * The bytewise contents of extradata must not depend on the architecture or CPU endianness. - * - encoding: Set/allocated/freed by libavcodec. - * - decoding: Set/allocated/freed by user. - */ - uint8_t *extradata; - int extradata_size; - - /** - * This is the fundamental unit of time (in seconds) in terms - * of which frame timestamps are represented. For fixed-fps content, - * timebase should be 1/framerate and timestamp increments should be - * identically 1. - * - encoding: MUST be set by user. - * - decoding: Set by libavcodec. - */ - AVRational time_base; - - /* video only */ - /** - * picture width / height. - * - encoding: MUST be set by user. - * - decoding: Set by libavcodec. - * Note: For compatibility it is possible to set this instead of - * coded_width/height before decoding. - */ - int width, height; - -#define FF_ASPECT_EXTENDED 15 - - /** - * the number of pictures in a group of pictures, or 0 for intra_only - * - encoding: Set by user. - * - decoding: unused - */ - int gop_size; - - /** - * Pixel format, see PIX_FMT_xxx. - * May be set by the demuxer if known from headers. - * May be overriden by the decoder if it knows better. - * - encoding: Set by user. - * - decoding: Set by user if known, overridden by libavcodec if known - */ - enum PixelFormat pix_fmt; - - /** - * If non NULL, 'draw_horiz_band' is called by the libavcodec - * decoder to draw a horizontal band. It improves cache usage. Not - * all codecs can do that. You must check the codec capabilities - * beforehand. - * When multithreading is used, it may be called from multiple threads - * at the same time; threads might draw different parts of the same AVFrame, - * or multiple AVFrames, and there is no guarantee that slices will be drawn - * in order. - * The function is also used by hardware acceleration APIs. - * It is called at least once during frame decoding to pass - * the data needed for hardware render. - * In that mode instead of pixel data, AVFrame points to - * a structure specific to the acceleration API. The application - * reads the structure and can change some fields to indicate progress - * or mark state. - * - encoding: unused - * - decoding: Set by user. - * @param height the height of the slice - * @param y the y position of the slice - * @param type 1->top field, 2->bottom field, 3->frame - * @param offset offset into the AVFrame.data from which the slice should be read - */ - void (*draw_horiz_band)(struct AVCodecContext *s, - const AVFrame *src, int offset[4], - int y, int type, int height); - - /* audio only */ - int sample_rate; ///< samples per second - int channels; ///< number of audio channels - - /** - * audio sample format - * - encoding: Set by user. - * - decoding: Set by libavcodec. - */ - enum AVSampleFormat sample_fmt; ///< sample format - - /* The following data should not be initialized. */ - /** - * Samples per packet, initialized when calling 'init'. - */ - int frame_size; - int frame_number; ///< audio or video frame number - - /** - * Number of frames the decoded output will be delayed relative to - * the encoded input. - * - encoding: Set by libavcodec. - * - decoding: unused - */ - int delay; - - /* - encoding parameters */ - float qcompress; ///< amount of qscale change between easy & hard scenes (0.0-1.0) - float qblur; ///< amount of qscale smoothing over time (0.0-1.0) - - /** - * minimum quantizer - * - encoding: Set by user. - * - decoding: unused - */ - int qmin; - - /** - * maximum quantizer - * - encoding: Set by user. - * - decoding: unused - */ - int qmax; - - /** - * maximum quantizer difference between frames - * - encoding: Set by user. - * - decoding: unused - */ - int max_qdiff; - - /** - * maximum number of B-frames between non-B-frames - * Note: The output will be delayed by max_b_frames+1 relative to the input. - * - encoding: Set by user. - * - decoding: unused - */ - int max_b_frames; - - /** - * qscale factor between IP and B-frames - * If > 0 then the last P-frame quantizer will be used (q= lastp_q*factor+offset). - * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset). - * - encoding: Set by user. - * - decoding: unused - */ - float b_quant_factor; - - /** obsolete FIXME remove */ - int rc_strategy; -#define FF_RC_STRATEGY_XVID 1 - - int b_frame_strategy; - - struct AVCodec *codec; - - void *priv_data; - - int rtp_payload_size; /* The size of the RTP payload: the coder will */ - /* do its best to deliver a chunk with size */ - /* below rtp_payload_size, the chunk will start */ - /* with a start code on some codecs like H.263. */ - /* This doesn't take account of any particular */ - /* headers inside the transmitted RTP payload. */ - - - /* The RTP callback: This function is called */ - /* every time the encoder has a packet to send. */ - /* It depends on the encoder if the data starts */ - /* with a Start Code (it should). H.263 does. */ - /* mb_nb contains the number of macroblocks */ - /* encoded in the RTP payload. */ - void (*rtp_callback)(struct AVCodecContext *avctx, void *data, int size, int mb_nb); - - /* statistics, used for 2-pass encoding */ - int mv_bits; - int header_bits; - int i_tex_bits; - int p_tex_bits; - int i_count; - int p_count; - int skip_count; - int misc_bits; - - /** - * number of bits used for the previously encoded frame - * - encoding: Set by libavcodec. - * - decoding: unused - */ - int frame_bits; - - /** - * Private data of the user, can be used to carry app specific stuff. - * - encoding: Set by user. - * - decoding: Set by user. - */ - void *opaque; - - char codec_name[32]; - enum AVMediaType codec_type; /* see AVMEDIA_TYPE_xxx */ - enum CodecID codec_id; /* see CODEC_ID_xxx */ - - /** - * fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A'). - * This is used to work around some encoder bugs. - * A demuxer should set this to what is stored in the field used to identify the codec. - * If there are multiple such fields in a container then the demuxer should choose the one - * which maximizes the information about the used codec. - * If the codec tag field in a container is larger then 32 bits then the demuxer should - * remap the longer ID to 32 bits with a table or other structure. Alternatively a new - * extra_codec_tag + size could be added but for this a clear advantage must be demonstrated - * first. - * - encoding: Set by user, if not then the default based on codec_id will be used. - * - decoding: Set by user, will be converted to uppercase by libavcodec during init. - */ - unsigned int codec_tag; - - /** - * Work around bugs in encoders which sometimes cannot be detected automatically. - * - encoding: Set by user - * - decoding: Set by user - */ - int workaround_bugs; -#define FF_BUG_AUTODETECT 1 ///< autodetection -#define FF_BUG_OLD_MSMPEG4 2 -#define FF_BUG_XVID_ILACE 4 -#define FF_BUG_UMP4 8 -#define FF_BUG_NO_PADDING 16 -#define FF_BUG_AMV 32 -#define FF_BUG_AC_VLC 0 ///< Will be removed, libavcodec can now handle these non-compliant files by default. -#define FF_BUG_QPEL_CHROMA 64 -#define FF_BUG_STD_QPEL 128 -#define FF_BUG_QPEL_CHROMA2 256 -#define FF_BUG_DIRECT_BLOCKSIZE 512 -#define FF_BUG_EDGE 1024 -#define FF_BUG_HPEL_CHROMA 2048 -#define FF_BUG_DC_CLIP 4096 -#define FF_BUG_MS 8192 ///< Work around various bugs in Microsoft's broken decoders. -#define FF_BUG_TRUNCATED 16384 -//#define FF_BUG_FAKE_SCALABILITY 16 //Autodetection should work 100%. - - /** - * luma single coefficient elimination threshold - * - encoding: Set by user. - * - decoding: unused - */ - int luma_elim_threshold; - - /** - * chroma single coeff elimination threshold - * - encoding: Set by user. - * - decoding: unused - */ - int chroma_elim_threshold; - - /** - * strictly follow the standard (MPEG4, ...). - * - encoding: Set by user. - * - decoding: Set by user. - * Setting this to STRICT or higher means the encoder and decoder will - * generally do stupid things, whereas setting it to unofficial or lower - * will mean the encoder might produce output that is not supported by all - * spec-compliant decoders. Decoders don't differentiate between normal, - * unofficial and experimental (that is, they always try to decode things - * when they can) unless they are explicitly asked to behave stupidly - * (=strictly conform to the specs) - */ - int strict_std_compliance; -#define FF_COMPLIANCE_VERY_STRICT 2 ///< Strictly conform to an older more strict version of the spec or reference software. -#define FF_COMPLIANCE_STRICT 1 ///< Strictly conform to all the things in the spec no matter what consequences. -#define FF_COMPLIANCE_NORMAL 0 -#define FF_COMPLIANCE_UNOFFICIAL -1 ///< Allow unofficial extensions -#define FF_COMPLIANCE_EXPERIMENTAL -2 ///< Allow nonstandardized experimental things. - - /** - * qscale offset between IP and B-frames - * - encoding: Set by user. - * - decoding: unused - */ - float b_quant_offset; - - /** - * Error recognization; higher values will detect more errors but may - * misdetect some more or less valid parts as errors. - * - encoding: unused - * - decoding: Set by user. - */ - int error_recognition; -#define FF_ER_CAREFUL 1 -#define FF_ER_COMPLIANT 2 -#define FF_ER_AGGRESSIVE 3 -#define FF_ER_VERY_AGGRESSIVE 4 - - /** - * Called at the beginning of each frame to get a buffer for it. - * If pic.reference is set then the frame will be read later by libavcodec. - * avcodec_align_dimensions2() should be used to find the required width and - * height, as they normally need to be rounded up to the next multiple of 16. - * if CODEC_CAP_DR1 is not set then get_buffer() must call - * avcodec_default_get_buffer() instead of providing buffers allocated by - * some other means. - * If frame multithreading is used and thread_safe_callbacks is set, - * it may be called from a different thread, but not from more than one at once. - * Does not need to be reentrant. - * - encoding: unused - * - decoding: Set by libavcodec, user can override. - */ - int (*get_buffer)(struct AVCodecContext *c, AVFrame *pic); - - /** - * Called to release buffers which were allocated with get_buffer. - * A released buffer can be reused in get_buffer(). - * pic.data[*] must be set to NULL. - * May be called from a different thread if frame multithreading is used, - * but not by more than one thread at once, so does not need to be reentrant. - * - encoding: unused - * - decoding: Set by libavcodec, user can override. - */ - void (*release_buffer)(struct AVCodecContext *c, AVFrame *pic); - - /** - * Size of the frame reordering buffer in the decoder. - * For MPEG-2 it is 1 IPB or 0 low delay IP. - * - encoding: Set by libavcodec. - * - decoding: Set by libavcodec. - */ - int has_b_frames; - - /** - * number of bytes per packet if constant and known or 0 - * Used by some WAV based audio codecs. - */ - int block_align; - - int parse_only; /* - decoding only: If true, only parsing is done - (function avcodec_parse_frame()). The frame - data is returned. Only MPEG codecs support this now. */ - - /** - * 0-> h263 quant 1-> mpeg quant - * - encoding: Set by user. - * - decoding: unused - */ - int mpeg_quant; - - /** - * pass1 encoding statistics output buffer - * - encoding: Set by libavcodec. - * - decoding: unused - */ - char *stats_out; - - /** - * pass2 encoding statistics input buffer - * Concatenated stuff from stats_out of pass1 should be placed here. - * - encoding: Allocated/set/freed by user. - * - decoding: unused - */ - char *stats_in; - - /** - * ratecontrol qmin qmax limiting method - * 0-> clipping, 1-> use a nice continous function to limit qscale wthin qmin/qmax. - * - encoding: Set by user. - * - decoding: unused - */ - float rc_qsquish; - - float rc_qmod_amp; - int rc_qmod_freq; - - /** - * ratecontrol override, see RcOverride - * - encoding: Allocated/set/freed by user. - * - decoding: unused - */ - RcOverride *rc_override; - int rc_override_count; - - /** - * rate control equation - * - encoding: Set by user - * - decoding: unused - */ - const char *rc_eq; - - /** - * maximum bitrate - * - encoding: Set by user. - * - decoding: unused - */ - int rc_max_rate; - - /** - * minimum bitrate - * - encoding: Set by user. - * - decoding: unused - */ - int rc_min_rate; - - /** - * decoder bitstream buffer size - * - encoding: Set by user. - * - decoding: unused - */ - int rc_buffer_size; - float rc_buffer_aggressivity; - - /** - * qscale factor between P and I-frames - * If > 0 then the last p frame quantizer will be used (q= lastp_q*factor+offset). - * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset). - * - encoding: Set by user. - * - decoding: unused - */ - float i_quant_factor; - - /** - * qscale offset between P and I-frames - * - encoding: Set by user. - * - decoding: unused - */ - float i_quant_offset; - - /** - * initial complexity for pass1 ratecontrol - * - encoding: Set by user. - * - decoding: unused - */ - float rc_initial_cplx; - - /** - * DCT algorithm, see FF_DCT_* below - * - encoding: Set by user. - * - decoding: unused - */ - int dct_algo; -#define FF_DCT_AUTO 0 -#define FF_DCT_FASTINT 1 -#define FF_DCT_INT 2 -#define FF_DCT_MMX 3 -#define FF_DCT_MLIB 4 -#define FF_DCT_ALTIVEC 5 -#define FF_DCT_FAAN 6 - - /** - * luminance masking (0-> disabled) - * - encoding: Set by user. - * - decoding: unused - */ - float lumi_masking; - - /** - * temporary complexity masking (0-> disabled) - * - encoding: Set by user. - * - decoding: unused - */ - float temporal_cplx_masking; - - /** - * spatial complexity masking (0-> disabled) - * - encoding: Set by user. - * - decoding: unused - */ - float spatial_cplx_masking; - - /** - * p block masking (0-> disabled) - * - encoding: Set by user. - * - decoding: unused - */ - float p_masking; - - /** - * darkness masking (0-> disabled) - * - encoding: Set by user. - * - decoding: unused - */ - float dark_masking; - - /** - * IDCT algorithm, see FF_IDCT_* below. - * - encoding: Set by user. - * - decoding: Set by user. - */ - int idct_algo; -#define FF_IDCT_AUTO 0 -#define FF_IDCT_INT 1 -#define FF_IDCT_SIMPLE 2 -#define FF_IDCT_SIMPLEMMX 3 -#define FF_IDCT_LIBMPEG2MMX 4 -#define FF_IDCT_PS2 5 -#define FF_IDCT_MLIB 6 -#define FF_IDCT_ARM 7 -#define FF_IDCT_ALTIVEC 8 -#define FF_IDCT_SH4 9 -#define FF_IDCT_SIMPLEARM 10 -#define FF_IDCT_H264 11 -#define FF_IDCT_VP3 12 -#define FF_IDCT_IPP 13 -#define FF_IDCT_XVIDMMX 14 -#define FF_IDCT_CAVS 15 -#define FF_IDCT_SIMPLEARMV5TE 16 -#define FF_IDCT_SIMPLEARMV6 17 -#define FF_IDCT_SIMPLEVIS 18 -#define FF_IDCT_WMV2 19 -#define FF_IDCT_FAAN 20 -#define FF_IDCT_EA 21 -#define FF_IDCT_SIMPLENEON 22 -#define FF_IDCT_SIMPLEALPHA 23 -#define FF_IDCT_BINK 24 - - /** - * slice count - * - encoding: Set by libavcodec. - * - decoding: Set by user (or 0). - */ - int slice_count; - /** - * slice offsets in the frame in bytes - * - encoding: Set/allocated by libavcodec. - * - decoding: Set/allocated by user (or NULL). - */ - int *slice_offset; - - /** - * error concealment flags - * - encoding: unused - * - decoding: Set by user. - */ - int error_concealment; -#define FF_EC_GUESS_MVS 1 -#define FF_EC_DEBLOCK 2 - - /** - * dsp_mask could be add used to disable unwanted CPU features - * CPU features (i.e. MMX, SSE. ...) - * - * With the FORCE flag you may instead enable given CPU features. - * (Dangerous: Usable in case of misdetection, improper usage however will - * result into program crash.) - */ - unsigned dsp_mask; - - /** - * bits per sample/pixel from the demuxer (needed for huffyuv). - * - encoding: Set by libavcodec. - * - decoding: Set by user. - */ - int bits_per_coded_sample; - - /** - * prediction method (needed for huffyuv) - * - encoding: Set by user. - * - decoding: unused - */ - int prediction_method; -#define FF_PRED_LEFT 0 -#define FF_PRED_PLANE 1 -#define FF_PRED_MEDIAN 2 - - /** - * sample aspect ratio (0 if unknown) - * That is the width of a pixel divided by the height of the pixel. - * Numerator and denominator must be relatively prime and smaller than 256 for some video standards. - * - encoding: Set by user. - * - decoding: Set by libavcodec. - */ - AVRational sample_aspect_ratio; - - /** - * the picture in the bitstream - * - encoding: Set by libavcodec. - * - decoding: Set by libavcodec. - */ - AVFrame *coded_frame; - - /** - * debug - * - encoding: Set by user. - * - decoding: Set by user. - */ - int debug; -#define FF_DEBUG_PICT_INFO 1 -#define FF_DEBUG_RC 2 -#define FF_DEBUG_BITSTREAM 4 -#define FF_DEBUG_MB_TYPE 8 -#define FF_DEBUG_QP 16 -#define FF_DEBUG_MV 32 -#define FF_DEBUG_DCT_COEFF 0x00000040 -#define FF_DEBUG_SKIP 0x00000080 -#define FF_DEBUG_STARTCODE 0x00000100 -#define FF_DEBUG_PTS 0x00000200 -#define FF_DEBUG_ER 0x00000400 -#define FF_DEBUG_MMCO 0x00000800 -#define FF_DEBUG_BUGS 0x00001000 -#define FF_DEBUG_VIS_QP 0x00002000 -#define FF_DEBUG_VIS_MB_TYPE 0x00004000 -#define FF_DEBUG_BUFFERS 0x00008000 -#define FF_DEBUG_THREADS 0x00010000 - - /** - * debug - * - encoding: Set by user. - * - decoding: Set by user. - */ - int debug_mv; -#define FF_DEBUG_VIS_MV_P_FOR 0x00000001 //visualize forward predicted MVs of P frames -#define FF_DEBUG_VIS_MV_B_FOR 0x00000002 //visualize forward predicted MVs of B frames -#define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames - - /** - * error - * - encoding: Set by libavcodec if flags&CODEC_FLAG_PSNR. - * - decoding: unused - */ - uint64_t error[4]; - - /** - * motion estimation comparison function - * - encoding: Set by user. - * - decoding: unused - */ - int me_cmp; - /** - * subpixel motion estimation comparison function - * - encoding: Set by user. - * - decoding: unused - */ - int me_sub_cmp; - /** - * macroblock comparison function (not supported yet) - * - encoding: Set by user. - * - decoding: unused - */ - int mb_cmp; - /** - * interlaced DCT comparison function - * - encoding: Set by user. - * - decoding: unused - */ - int ildct_cmp; -#define FF_CMP_SAD 0 -#define FF_CMP_SSE 1 -#define FF_CMP_SATD 2 -#define FF_CMP_DCT 3 -#define FF_CMP_PSNR 4 -#define FF_CMP_BIT 5 -#define FF_CMP_RD 6 -#define FF_CMP_ZERO 7 -#define FF_CMP_VSAD 8 -#define FF_CMP_VSSE 9 -#define FF_CMP_NSSE 10 -#define FF_CMP_W53 11 -#define FF_CMP_W97 12 -#define FF_CMP_DCTMAX 13 -#define FF_CMP_DCT264 14 -#define FF_CMP_CHROMA 256 - - /** - * ME diamond size & shape - * - encoding: Set by user. - * - decoding: unused - */ - int dia_size; - - /** - * amount of previous MV predictors (2a+1 x 2a+1 square) - * - encoding: Set by user. - * - decoding: unused - */ - int last_predictor_count; - - /** - * prepass for motion estimation - * - encoding: Set by user. - * - decoding: unused - */ - int pre_me; - - /** - * motion estimation prepass comparison function - * - encoding: Set by user. - * - decoding: unused - */ - int me_pre_cmp; - - /** - * ME prepass diamond size & shape - * - encoding: Set by user. - * - decoding: unused - */ - int pre_dia_size; - - /** - * subpel ME quality - * - encoding: Set by user. - * - decoding: unused - */ - int me_subpel_quality; - - /** - * callback to negotiate the pixelFormat - * @param fmt is the list of formats which are supported by the codec, - * it is terminated by -1 as 0 is a valid format, the formats are ordered by quality. - * The first is always the native one. - * @return the chosen format - * - encoding: unused - * - decoding: Set by user, if not set the native format will be chosen. - */ - enum PixelFormat (*get_format)(struct AVCodecContext *s, const enum PixelFormat * fmt); - - /** - * DTG active format information (additional aspect ratio - * information only used in DVB MPEG-2 transport streams) - * 0 if not set. - * - * - encoding: unused - * - decoding: Set by decoder. - */ - int dtg_active_format; -#define FF_DTG_AFD_SAME 8 -#define FF_DTG_AFD_4_3 9 -#define FF_DTG_AFD_16_9 10 -#define FF_DTG_AFD_14_9 11 -#define FF_DTG_AFD_4_3_SP_14_9 13 -#define FF_DTG_AFD_16_9_SP_14_9 14 -#define FF_DTG_AFD_SP_4_3 15 - - /** - * maximum motion estimation search range in subpel units - * If 0 then no limit. - * - * - encoding: Set by user. - * - decoding: unused - */ - int me_range; - - /** - * intra quantizer bias - * - encoding: Set by user. - * - decoding: unused - */ - int intra_quant_bias; -#define FF_DEFAULT_QUANT_BIAS 999999 - - /** - * inter quantizer bias - * - encoding: Set by user. - * - decoding: unused - */ - int inter_quant_bias; - - /** - * color table ID - * - encoding: unused - * - decoding: Which clrtable should be used for 8bit RGB images. - * Tables have to be stored somewhere. FIXME - */ - int color_table_id; - - /** - * internal_buffer count - * Don't touch, used by libavcodec default_get_buffer(). - */ - int internal_buffer_count; - - /** - * internal_buffers - * Don't touch, used by libavcodec default_get_buffer(). - */ - void *internal_buffer; - - /** - * Global quality for codecs which cannot change it per frame. - * This should be proportional to MPEG-1/2/4 qscale. - * - encoding: Set by user. - * - decoding: unused - */ - int global_quality; - -#define FF_CODER_TYPE_VLC 0 -#define FF_CODER_TYPE_AC 1 -#define FF_CODER_TYPE_RAW 2 -#define FF_CODER_TYPE_RLE 3 -#define FF_CODER_TYPE_DEFLATE 4 - /** - * coder type - * - encoding: Set by user. - * - decoding: unused - */ - int coder_type; - - /** - * context model - * - encoding: Set by user. - * - decoding: unused - */ - int context_model; -#if 0 - /** - * - * - encoding: unused - * - decoding: Set by user. - */ - uint8_t * (*realloc)(struct AVCodecContext *s, uint8_t *buf, int buf_size); -#endif - - /** - * slice flags - * - encoding: unused - * - decoding: Set by user. - */ - int slice_flags; -#define SLICE_FLAG_CODED_ORDER 0x0001 ///< draw_horiz_band() is called in coded order instead of display -#define SLICE_FLAG_ALLOW_FIELD 0x0002 ///< allow draw_horiz_band() with field slices (MPEG2 field pics) -#define SLICE_FLAG_ALLOW_PLANE 0x0004 ///< allow draw_horiz_band() with 1 component at a time (SVQ1) - - /** - * XVideo Motion Acceleration - * - encoding: forbidden - * - decoding: set by decoder - */ - int xvmc_acceleration; - - /** - * macroblock decision mode - * - encoding: Set by user. - * - decoding: unused - */ - int mb_decision; -#define FF_MB_DECISION_SIMPLE 0 ///< uses mb_cmp -#define FF_MB_DECISION_BITS 1 ///< chooses the one which needs the fewest bits -#define FF_MB_DECISION_RD 2 ///< rate distortion - - /** - * custom intra quantization matrix - * - encoding: Set by user, can be NULL. - * - decoding: Set by libavcodec. - */ - uint16_t *intra_matrix; - - /** - * custom inter quantization matrix - * - encoding: Set by user, can be NULL. - * - decoding: Set by libavcodec. - */ - uint16_t *inter_matrix; - - /** - * fourcc from the AVI stream header (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A'). - * This is used to work around some encoder bugs. - * - encoding: unused - * - decoding: Set by user, will be converted to uppercase by libavcodec during init. - */ - unsigned int stream_codec_tag; - - /** - * scene change detection threshold - * 0 is default, larger means fewer detected scene changes. - * - encoding: Set by user. - * - decoding: unused - */ - int scenechange_threshold; - - /** - * minimum Lagrange multipler - * - encoding: Set by user. - * - decoding: unused - */ - int lmin; - - /** - * maximum Lagrange multipler - * - encoding: Set by user. - * - decoding: unused - */ - int lmax; - -#if FF_API_PALETTE_CONTROL - /** - * palette control structure - * - encoding: ??? (no palette-enabled encoder yet) - * - decoding: Set by user. - */ - struct AVPaletteControl *palctrl; -#endif - - /** - * noise reduction strength - * - encoding: Set by user. - * - decoding: unused - */ - int noise_reduction; - - /** - * Called at the beginning of a frame to get cr buffer for it. - * Buffer type (size, hints) must be the same. libavcodec won't check it. - * libavcodec will pass previous buffer in pic, function should return - * same buffer or new buffer with old frame "painted" into it. - * If pic.data[0] == NULL must behave like get_buffer(). - * if CODEC_CAP_DR1 is not set then reget_buffer() must call - * avcodec_default_reget_buffer() instead of providing buffers allocated by - * some other means. - * - encoding: unused - * - decoding: Set by libavcodec, user can override. - */ - int (*reget_buffer)(struct AVCodecContext *c, AVFrame *pic); - - /** - * Number of bits which should be loaded into the rc buffer before decoding starts. - * - encoding: Set by user. - * - decoding: unused - */ - int rc_initial_buffer_occupancy; - - /** - * - * - encoding: Set by user. - * - decoding: unused - */ - int inter_threshold; - - /** - * CODEC_FLAG2_* - * - encoding: Set by user. - * - decoding: Set by user. - */ - int flags2; - - /** - * Simulates errors in the bitstream to test error concealment. - * - encoding: Set by user. - * - decoding: unused - */ - int error_rate; - -#if FF_API_ANTIALIAS_ALGO - /** - * MP3 antialias algorithm, see FF_AA_* below. - * - encoding: unused - * - decoding: Set by user. - */ - attribute_deprecated int antialias_algo; -#define FF_AA_AUTO 0 -#define FF_AA_FASTINT 1 //not implemented yet -#define FF_AA_INT 2 -#define FF_AA_FLOAT 3 -#endif - - /** - * quantizer noise shaping - * - encoding: Set by user. - * - decoding: unused - */ - int quantizer_noise_shaping; - - /** - * thread count - * is used to decide how many independent tasks should be passed to execute() - * - encoding: Set by user. - * - decoding: Set by user. - */ - int thread_count; - - /** - * The codec may call this to execute several independent things. - * It will return only after finishing all tasks. - * The user may replace this with some multithreaded implementation, - * the default implementation will execute the parts serially. - * @param count the number of things to execute - * - encoding: Set by libavcodec, user can override. - * - decoding: Set by libavcodec, user can override. - */ - int (*execute)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg), void *arg2, int *ret, int count, int size); - - /** - * thread opaque - * Can be used by execute() to store some per AVCodecContext stuff. - * - encoding: set by execute() - * - decoding: set by execute() - */ - void *thread_opaque; - - /** - * Motion estimation threshold below which no motion estimation is - * performed, but instead the user specified motion vectors are used. - * - * - encoding: Set by user. - * - decoding: unused - */ - int me_threshold; - - /** - * Macroblock threshold below which the user specified macroblock types will be used. - * - encoding: Set by user. - * - decoding: unused - */ - int mb_threshold; - - /** - * precision of the intra DC coefficient - 8 - * - encoding: Set by user. - * - decoding: unused - */ - int intra_dc_precision; - - /** - * noise vs. sse weight for the nsse comparsion function - * - encoding: Set by user. - * - decoding: unused - */ - int nsse_weight; - - /** - * Number of macroblock rows at the top which are skipped. - * - encoding: unused - * - decoding: Set by user. - */ - int skip_top; - - /** - * Number of macroblock rows at the bottom which are skipped. - * - encoding: unused - * - decoding: Set by user. - */ - int skip_bottom; - - /** - * profile - * - encoding: Set by user. - * - decoding: Set by libavcodec. - */ - int profile; -#define FF_PROFILE_UNKNOWN -99 -#define FF_PROFILE_RESERVED -100 - -#define FF_PROFILE_AAC_MAIN 0 -#define FF_PROFILE_AAC_LOW 1 -#define FF_PROFILE_AAC_SSR 2 -#define FF_PROFILE_AAC_LTP 3 - -#define FF_PROFILE_DTS 20 -#define FF_PROFILE_DTS_ES 30 -#define FF_PROFILE_DTS_96_24 40 -#define FF_PROFILE_DTS_HD_HRA 50 -#define FF_PROFILE_DTS_HD_MA 60 - -#define FF_PROFILE_MPEG2_422 0 -#define FF_PROFILE_MPEG2_HIGH 1 -#define FF_PROFILE_MPEG2_SS 2 -#define FF_PROFILE_MPEG2_SNR_SCALABLE 3 -#define FF_PROFILE_MPEG2_MAIN 4 -#define FF_PROFILE_MPEG2_SIMPLE 5 - -#define FF_PROFILE_H264_CONSTRAINED (1<<9) // 8+1; constraint_set1_flag -#define FF_PROFILE_H264_INTRA (1<<11) // 8+3; constraint_set3_flag - -#define FF_PROFILE_H264_BASELINE 66 -#define FF_PROFILE_H264_CONSTRAINED_BASELINE (66|FF_PROFILE_H264_CONSTRAINED) -#define FF_PROFILE_H264_MAIN 77 -#define FF_PROFILE_H264_EXTENDED 88 -#define FF_PROFILE_H264_HIGH 100 -#define FF_PROFILE_H264_HIGH_10 110 -#define FF_PROFILE_H264_HIGH_10_INTRA (110|FF_PROFILE_H264_INTRA) -#define FF_PROFILE_H264_HIGH_422 122 -#define FF_PROFILE_H264_HIGH_422_INTRA (122|FF_PROFILE_H264_INTRA) -#define FF_PROFILE_H264_HIGH_444 144 -#define FF_PROFILE_H264_HIGH_444_PREDICTIVE 244 -#define FF_PROFILE_H264_HIGH_444_INTRA (244|FF_PROFILE_H264_INTRA) -#define FF_PROFILE_H264_CAVLC_444 44 - -#define FF_PROFILE_VC1_SIMPLE 0 -#define FF_PROFILE_VC1_MAIN 1 -#define FF_PROFILE_VC1_COMPLEX 2 -#define FF_PROFILE_VC1_ADVANCED 3 - - /** - * level - * - encoding: Set by user. - * - decoding: Set by libavcodec. - */ - int level; -#define FF_LEVEL_UNKNOWN -99 - - /** - * low resolution decoding, 1-> 1/2 size, 2->1/4 size - * - encoding: unused - * - decoding: Set by user. - */ - int lowres; - - /** - * Bitstream width / height, may be different from width/height if lowres - * or other things are used. - * - encoding: unused - * - decoding: Set by user before init if known. Codec should override / dynamically change if needed. - */ - int coded_width, coded_height; - - /** - * frame skip threshold - * - encoding: Set by user. - * - decoding: unused - */ - int frame_skip_threshold; - - /** - * frame skip factor - * - encoding: Set by user. - * - decoding: unused - */ - int frame_skip_factor; - - /** - * frame skip exponent - * - encoding: Set by user. - * - decoding: unused - */ - int frame_skip_exp; - - /** - * frame skip comparison function - * - encoding: Set by user. - * - decoding: unused - */ - int frame_skip_cmp; - - /** - * Border processing masking, raises the quantizer for mbs on the borders - * of the picture. - * - encoding: Set by user. - * - decoding: unused - */ - float border_masking; - - /** - * minimum MB lagrange multipler - * - encoding: Set by user. - * - decoding: unused - */ - int mb_lmin; - - /** - * maximum MB lagrange multipler - * - encoding: Set by user. - * - decoding: unused - */ - int mb_lmax; - - /** - * - * - encoding: Set by user. - * - decoding: unused - */ - int me_penalty_compensation; - - /** - * - * - encoding: unused - * - decoding: Set by user. - */ - enum AVDiscard skip_loop_filter; - - /** - * - * - encoding: unused - * - decoding: Set by user. - */ - enum AVDiscard skip_idct; - - /** - * - * - encoding: unused - * - decoding: Set by user. - */ - enum AVDiscard skip_frame; - - /** - * - * - encoding: Set by user. - * - decoding: unused - */ - int bidir_refine; - - /** - * - * - encoding: Set by user. - * - decoding: unused - */ - int brd_scale; - - /** - * constant rate factor - quality-based VBR - values ~correspond to qps - * - encoding: Set by user. - * - decoding: unused - */ - float crf; - - /** - * constant quantization parameter rate control method - * - encoding: Set by user. - * - decoding: unused - */ - int cqp; - - /** - * minimum GOP size - * - encoding: Set by user. - * - decoding: unused - */ - int keyint_min; - - /** - * number of reference frames - * - encoding: Set by user. - * - decoding: Set by lavc. - */ - int refs; - - /** - * chroma qp offset from luma - * - encoding: Set by user. - * - decoding: unused - */ - int chromaoffset; - - /** - * Influences how often B-frames are used. - * - encoding: Set by user. - * - decoding: unused - */ - int bframebias; - - /** - * trellis RD quantization - * - encoding: Set by user. - * - decoding: unused - */ - int trellis; - - /** - * Reduce fluctuations in qp (before curve compression). - * - encoding: Set by user. - * - decoding: unused - */ - float complexityblur; - - /** - * in-loop deblocking filter alphac0 parameter - * alpha is in the range -6...6 - * - encoding: Set by user. - * - decoding: unused - */ - int deblockalpha; - - /** - * in-loop deblocking filter beta parameter - * beta is in the range -6...6 - * - encoding: Set by user. - * - decoding: unused - */ - int deblockbeta; - - /** - * macroblock subpartition sizes to consider - p8x8, p4x4, b8x8, i8x8, i4x4 - * - encoding: Set by user. - * - decoding: unused - */ - int partitions; -#define X264_PART_I4X4 0x001 /* Analyze i4x4 */ -#define X264_PART_I8X8 0x002 /* Analyze i8x8 (requires 8x8 transform) */ -#define X264_PART_P8X8 0x010 /* Analyze p16x8, p8x16 and p8x8 */ -#define X264_PART_P4X4 0x020 /* Analyze p8x4, p4x8, p4x4 */ -#define X264_PART_B8X8 0x100 /* Analyze b16x8, b8x16 and b8x8 */ - - /** - * direct MV prediction mode - 0 (none), 1 (spatial), 2 (temporal), 3 (auto) - * - encoding: Set by user. - * - decoding: unused - */ - int directpred; - - /** - * Audio cutoff bandwidth (0 means "automatic") - * - encoding: Set by user. - * - decoding: unused - */ - int cutoff; - - /** - * Multiplied by qscale for each frame and added to scene_change_score. - * - encoding: Set by user. - * - decoding: unused - */ - int scenechange_factor; - - /** - * - * Note: Value depends upon the compare function used for fullpel ME. - * - encoding: Set by user. - * - decoding: unused - */ - int mv0_threshold; - - /** - * Adjusts sensitivity of b_frame_strategy 1. - * - encoding: Set by user. - * - decoding: unused - */ - int b_sensitivity; - - /** - * - encoding: Set by user. - * - decoding: unused - */ - int compression_level; -#define FF_COMPRESSION_DEFAULT -1 - - /** - * - encoding: Set by user. - * - decoding: unused - */ - int min_prediction_order; - - /** - * - encoding: Set by user. - * - decoding: unused - */ - int max_prediction_order; - -#if FF_API_FLAC_GLOBAL_OPTS - /** - * @name FLAC options - * @deprecated Use FLAC encoder private options instead. - * @{ - */ - - /** - * LPC coefficient precision - used by FLAC encoder - * - encoding: Set by user. - * - decoding: unused - */ - attribute_deprecated int lpc_coeff_precision; - - /** - * search method for selecting prediction order - * - encoding: Set by user. - * - decoding: unused - */ - attribute_deprecated int prediction_order_method; - - /** - * - encoding: Set by user. - * - decoding: unused - */ - attribute_deprecated int min_partition_order; - - /** - * - encoding: Set by user. - * - decoding: unused - */ - attribute_deprecated int max_partition_order; - /** - * @} - */ -#endif - - /** - * GOP timecode frame start number, in non drop frame format - * - encoding: Set by user. - * - decoding: unused - */ - int64_t timecode_frame_start; - -#if FF_API_REQUEST_CHANNELS - /** - * Decoder should decode to this many channels if it can (0 for default) - * - encoding: unused - * - decoding: Set by user. - * @deprecated Deprecated in favor of request_channel_layout. - */ - int request_channels; -#endif - - /** - * Percentage of dynamic range compression to be applied by the decoder. - * The default value is 1.0, corresponding to full compression. - * - encoding: unused - * - decoding: Set by user. - */ - float drc_scale; - - /** - * opaque 64bit number (generally a PTS) that will be reordered and - * output in AVFrame.reordered_opaque - * @deprecated in favor of pkt_pts - * - encoding: unused - * - decoding: Set by user. - */ - int64_t reordered_opaque; - - /** - * Bits per sample/pixel of internal libavcodec pixel/sample format. - * - encoding: set by user. - * - decoding: set by libavcodec. - */ - int bits_per_raw_sample; - - /** - * Audio channel layout. - * - encoding: set by user. - * - decoding: set by libavcodec. - */ - int64_t channel_layout; - - /** - * Request decoder to use this channel layout if it can (0 for default) - * - encoding: unused - * - decoding: Set by user. - */ - int64_t request_channel_layout; - - /** - * Ratecontrol attempt to use, at maximum, <value> of what can be used without an underflow. - * - encoding: Set by user. - * - decoding: unused. - */ - float rc_max_available_vbv_use; - - /** - * Ratecontrol attempt to use, at least, <value> times the amount needed to prevent a vbv overflow. - * - encoding: Set by user. - * - decoding: unused. - */ - float rc_min_vbv_overflow_use; - - /** - * Hardware accelerator in use - * - encoding: unused. - * - decoding: Set by libavcodec - */ - struct AVHWAccel *hwaccel; - - /** - * For some codecs, the time base is closer to the field rate than the frame rate. - * Most notably, H.264 and MPEG-2 specify time_base as half of frame duration - * if no telecine is used ... - * - * Set to time_base ticks per frame. Default 1, e.g., H.264/MPEG-2 set it to 2. - */ - int ticks_per_frame; - - /** - * Hardware accelerator context. - * For some hardware accelerators, a global context needs to be - * provided by the user. In that case, this holds display-dependent - * data Libav cannot instantiate itself. Please refer to the - * Libav HW accelerator documentation to know how to fill this - * is. e.g. for VA API, this is a struct vaapi_context. - * - encoding: unused - * - decoding: Set by user - */ - void *hwaccel_context; - - /** - * Chromaticity coordinates of the source primaries. - * - encoding: Set by user - * - decoding: Set by libavcodec - */ - enum AVColorPrimaries color_primaries; - - /** - * Color Transfer Characteristic. - * - encoding: Set by user - * - decoding: Set by libavcodec - */ - enum AVColorTransferCharacteristic color_trc; - - /** - * YUV colorspace type. - * - encoding: Set by user - * - decoding: Set by libavcodec - */ - enum AVColorSpace colorspace; - - /** - * MPEG vs JPEG YUV range. - * - encoding: Set by user - * - decoding: Set by libavcodec - */ - enum AVColorRange color_range; - - /** - * This defines the location of chroma samples. - * - encoding: Set by user - * - decoding: Set by libavcodec - */ - enum AVChromaLocation chroma_sample_location; - - /** - * The codec may call this to execute several independent things. - * It will return only after finishing all tasks. - * The user may replace this with some multithreaded implementation, - * the default implementation will execute the parts serially. - * Also see avcodec_thread_init and e.g. the --enable-pthread configure option. - * @param c context passed also to func - * @param count the number of things to execute - * @param arg2 argument passed unchanged to func - * @param ret return values of executed functions, must have space for "count" values. May be NULL. - * @param func function that will be called count times, with jobnr from 0 to count-1. - * threadnr will be in the range 0 to c->thread_count-1 < MAX_THREADS and so that no - * two instances of func executing at the same time will have the same threadnr. - * @return always 0 currently, but code should handle a future improvement where when any call to func - * returns < 0 no further calls to func may be done and < 0 is returned. - * - encoding: Set by libavcodec, user can override. - * - decoding: Set by libavcodec, user can override. - */ - int (*execute2)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg, int jobnr, int threadnr), void *arg2, int *ret, int count); - - /** - * explicit P-frame weighted prediction analysis method - * 0: off - * 1: fast blind weighting (one reference duplicate with -1 offset) - * 2: smart weighting (full fade detection analysis) - * - encoding: Set by user. - * - decoding: unused - */ - int weighted_p_pred; - - /** - * AQ mode - * 0: Disabled - * 1: Variance AQ (complexity mask) - * 2: Auto-variance AQ (experimental) - * - encoding: Set by user - * - decoding: unused - */ - int aq_mode; - - /** - * AQ strength - * Reduces blocking and blurring in flat and textured areas. - * - encoding: Set by user - * - decoding: unused - */ - float aq_strength; - - /** - * PSY RD - * Strength of psychovisual optimization - * - encoding: Set by user - * - decoding: unused - */ - float psy_rd; - - /** - * PSY trellis - * Strength of psychovisual optimization - * - encoding: Set by user - * - decoding: unused - */ - float psy_trellis; - - /** - * RC lookahead - * Number of frames for frametype and ratecontrol lookahead - * - encoding: Set by user - * - decoding: unused - */ - int rc_lookahead; - - /** - * Constant rate factor maximum - * With CRF encoding mode and VBV restrictions enabled, prevents quality from being worse - * than crf_max, even if doing so would violate VBV restrictions. - * - encoding: Set by user. - * - decoding: unused - */ - float crf_max; - - int log_level_offset; - -#if FF_API_FLAC_GLOBAL_OPTS - /** - * Determines which LPC analysis algorithm to use. - * - encoding: Set by user - * - decoding: unused - */ - attribute_deprecated enum AVLPCType lpc_type; - - /** - * Number of passes to use for Cholesky factorization during LPC analysis - * - encoding: Set by user - * - decoding: unused - */ - attribute_deprecated int lpc_passes; -#endif - - /** - * Number of slices. - * Indicates number of picture subdivisions. Used for parallelized - * decoding. - * - encoding: Set by user - * - decoding: unused - */ - int slices; - - /** - * Header containing style information for text subtitles. - * For SUBTITLE_ASS subtitle type, it should contain the whole ASS - * [Script Info] and [V4+ Styles] section, plus the [Events] line and - * the Format line following. It shouldn't include any Dialogue line. - * - encoding: Set/allocated/freed by user (before avcodec_open()) - * - decoding: Set/allocated/freed by libavcodec (by avcodec_open()) - */ - uint8_t *subtitle_header; - int subtitle_header_size; - - /** - * Current packet as passed into the decoder, to avoid having - * to pass the packet into every function. Currently only valid - * inside lavc and get/release_buffer callbacks. - * - decoding: set by avcodec_decode_*, read by get_buffer() for setting pkt_pts - * - encoding: unused - */ - AVPacket *pkt; - - /** - * Whether this is a copy of the context which had init() called on it. - * This is used by multithreading - shared tables and picture pointers - * should be freed from the original context only. - * - encoding: Set by libavcodec. - * - decoding: Set by libavcodec. - */ - int is_copy; - - /** - * Which multithreading methods to use. - * Use of FF_THREAD_FRAME will increase decoding delay by one frame per thread, - * so clients which cannot provide future frames should not use it. - * - * - encoding: Set by user, otherwise the default is used. - * - decoding: Set by user, otherwise the default is used. - */ - int thread_type; -#define FF_THREAD_FRAME 1 //< Decode more than one frame at once -#define FF_THREAD_SLICE 2 //< Decode more than one part of a single frame at once - - /** - * Which multithreading methods are in use by the codec. - * - encoding: Set by libavcodec. - * - decoding: Set by libavcodec. - */ - int active_thread_type; - - /** - * Set by the client if its custom get_buffer() callback can be called - * from another thread, which allows faster multithreaded decoding. - * draw_horiz_band() will be called from other threads regardless of this setting. - * Ignored if the default get_buffer() is used. - * - encoding: Set by user. - * - decoding: Set by user. - */ - int thread_safe_callbacks; - - /** - * VBV delay coded in the last frame (in periods of a 27 MHz clock). - * Used for compliant TS muxing. - * - encoding: Set by libavcodec. - * - decoding: unused. - */ - uint64_t vbv_delay; - - /** - * Type of service that the audio stream conveys. - * - encoding: Set by user. - * - decoding: Set by libavcodec. - */ - enum AVAudioServiceType audio_service_type; - - /** - * Used to request a sample format from the decoder. - * - encoding: unused. - * - decoding: Set by user. - */ - enum AVSampleFormat request_sample_fmt; -} AVCodecContext; - -/** - * AVProfile. - */ -typedef struct AVProfile { - int profile; - const char *name; ///< short name for the profile -} AVProfile; - -/** - * AVCodec. - */ -typedef struct AVCodec { - /** - * Name of the codec implementation. - * The name is globally unique among encoders and among decoders (but an - * encoder and a decoder can share the same name). - * This is the primary way to find a codec from the user perspective. - */ - const char *name; - enum AVMediaType type; - enum CodecID id; - int priv_data_size; - int (*init)(AVCodecContext *); - int (*encode)(AVCodecContext *, uint8_t *buf, int buf_size, void *data); - int (*close)(AVCodecContext *); - int (*decode)(AVCodecContext *, void *outdata, int *outdata_size, AVPacket *avpkt); - /** - * Codec capabilities. - * see CODEC_CAP_* - */ - int capabilities; - struct AVCodec *next; - /** - * Flush buffers. - * Will be called when seeking - */ - void (*flush)(AVCodecContext *); - const AVRational *supported_framerates; ///< array of supported framerates, or NULL if any, array is terminated by {0,0} - const enum PixelFormat *pix_fmts; ///< array of supported pixel formats, or NULL if unknown, array is terminated by -1 - /** - * Descriptive name for the codec, meant to be more human readable than name. - * You should use the NULL_IF_CONFIG_SMALL() macro to define it. - */ - const char *long_name; - const int *supported_samplerates; ///< array of supported audio samplerates, or NULL if unknown, array is terminated by 0 - const enum AVSampleFormat *sample_fmts; ///< array of supported sample formats, or NULL if unknown, array is terminated by -1 - const int64_t *channel_layouts; ///< array of support channel layouts, or NULL if unknown. array is terminated by 0 - uint8_t max_lowres; ///< maximum value for lowres supported by the decoder - const AVClass *priv_class; ///< AVClass for the private context - const AVProfile *profiles; ///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN} - - /** - * @name Frame-level threading support functions - * @{ - */ - /** - * If defined, called on thread contexts when they are created. - * If the codec allocates writable tables in init(), re-allocate them here. - * priv_data will be set to a copy of the original. - */ - int (*init_thread_copy)(AVCodecContext *); - /** - * Copy necessary context variables from a previous thread context to the current one. - * If not defined, the next thread will start automatically; otherwise, the codec - * must call ff_thread_finish_setup(). - * - * dst and src will (rarely) point to the same context, in which case memcpy should be skipped. - */ - int (*update_thread_context)(AVCodecContext *dst, const AVCodecContext *src); - /** @} */ -} AVCodec; - -/** - * AVHWAccel. - */ -typedef struct AVHWAccel { - /** - * Name of the hardware accelerated codec. - * The name is globally unique among encoders and among decoders (but an - * encoder and a decoder can share the same name). - */ - const char *name; - - /** - * Type of codec implemented by the hardware accelerator. - * - * See AVMEDIA_TYPE_xxx - */ - enum AVMediaType type; - - /** - * Codec implemented by the hardware accelerator. - * - * See CODEC_ID_xxx - */ - enum CodecID id; - - /** - * Supported pixel format. - * - * Only hardware accelerated formats are supported here. - */ - enum PixelFormat pix_fmt; - - /** - * Hardware accelerated codec capabilities. - * see FF_HWACCEL_CODEC_CAP_* - */ - int capabilities; - - struct AVHWAccel *next; - - /** - * Called at the beginning of each frame or field picture. - * - * Meaningful frame information (codec specific) is guaranteed to - * be parsed at this point. This function is mandatory. - * - * Note that buf can be NULL along with buf_size set to 0. - * Otherwise, this means the whole frame is available at this point. - * - * @param avctx the codec context - * @param buf the frame data buffer base - * @param buf_size the size of the frame in bytes - * @return zero if successful, a negative value otherwise - */ - int (*start_frame)(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size); - - /** - * Callback for each slice. - * - * Meaningful slice information (codec specific) is guaranteed to - * be parsed at this point. This function is mandatory. - * - * @param avctx the codec context - * @param buf the slice data buffer base - * @param buf_size the size of the slice in bytes - * @return zero if successful, a negative value otherwise - */ - int (*decode_slice)(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size); - - /** - * Called at the end of each frame or field picture. - * - * The whole picture is parsed at this point and can now be sent - * to the hardware accelerator. This function is mandatory. - * - * @param avctx the codec context - * @return zero if successful, a negative value otherwise - */ - int (*end_frame)(AVCodecContext *avctx); - - /** - * Size of HW accelerator private data. - * - * Private data is allocated with av_mallocz() before - * AVCodecContext.get_buffer() and deallocated after - * AVCodecContext.release_buffer(). - */ - int priv_data_size; -} AVHWAccel; - -/** - * four components are given, that's all. - * the last component is alpha - */ -typedef struct AVPicture { - uint8_t *data[4]; - int linesize[4]; ///< number of bytes per line -} AVPicture; - -#if FF_API_PALETTE_CONTROL -/** - * AVPaletteControl - * This structure defines a method for communicating palette changes - * between and demuxer and a decoder. - * - * @deprecated Use AVPacket to send palette changes instead. - * This is totally broken. - */ -#define AVPALETTE_SIZE 1024 -#define AVPALETTE_COUNT 256 -typedef struct AVPaletteControl { - - /* Demuxer sets this to 1 to indicate the palette has changed; - * decoder resets to 0. */ - int palette_changed; - - /* 4-byte ARGB palette entries, stored in native byte order; note that - * the individual palette components should be on a 8-bit scale; if - * the palette data comes from an IBM VGA native format, the component - * data is probably 6 bits in size and needs to be scaled. */ - unsigned int palette[AVPALETTE_COUNT]; - -} AVPaletteControl attribute_deprecated; -#endif - -enum AVSubtitleType { - SUBTITLE_NONE, - - SUBTITLE_BITMAP, ///< A bitmap, pict will be set - - /** - * Plain text, the text field must be set by the decoder and is - * authoritative. ass and pict fields may contain approximations. - */ - SUBTITLE_TEXT, - - /** - * Formatted text, the ass field must be set by the decoder and is - * authoritative. pict and text fields may contain approximations. - */ - SUBTITLE_ASS, -}; - -typedef struct AVSubtitleRect { - int x; ///< top left corner of pict, undefined when pict is not set - int y; ///< top left corner of pict, undefined when pict is not set - int w; ///< width of pict, undefined when pict is not set - int h; ///< height of pict, undefined when pict is not set - int nb_colors; ///< number of colors in pict, undefined when pict is not set - - /** - * data+linesize for the bitmap of this subtitle. - * can be set for text/ass as well once they where rendered - */ - AVPicture pict; - enum AVSubtitleType type; - - char *text; ///< 0 terminated plain UTF-8 text - - /** - * 0 terminated ASS/SSA compatible event line. - * The pressentation of this is unaffected by the other values in this - * struct. - */ - char *ass; -} AVSubtitleRect; - -typedef struct AVSubtitle { - uint16_t format; /* 0 = graphics */ - uint32_t start_display_time; /* relative to packet pts, in ms */ - uint32_t end_display_time; /* relative to packet pts, in ms */ - unsigned num_rects; - AVSubtitleRect **rects; - int64_t pts; ///< Same as packet pts, in AV_TIME_BASE -} AVSubtitle; - -/* packet functions */ - -/** - * @deprecated use NULL instead - */ -attribute_deprecated void av_destruct_packet_nofree(AVPacket *pkt); - -/** - * Default packet destructor. - */ -void av_destruct_packet(AVPacket *pkt); - -/** - * Initialize optional fields of a packet with default values. - * - * @param pkt packet - */ -void av_init_packet(AVPacket *pkt); - -/** - * Allocate the payload of a packet and initialize its fields with - * default values. - * - * @param pkt packet - * @param size wanted payload size - * @return 0 if OK, AVERROR_xxx otherwise - */ -int av_new_packet(AVPacket *pkt, int size); - -/** - * Reduce packet size, correctly zeroing padding - * - * @param pkt packet - * @param size new size - */ -void av_shrink_packet(AVPacket *pkt, int size); - -/** - * Increase packet size, correctly zeroing padding - * - * @param pkt packet - * @param grow_by number of bytes by which to increase the size of the packet - */ -int av_grow_packet(AVPacket *pkt, int grow_by); - -/** - * @warning This is a hack - the packet memory allocation stuff is broken. The - * packet is allocated if it was not really allocated. - */ -int av_dup_packet(AVPacket *pkt); - -/** - * Free a packet. - * - * @param pkt packet to free - */ -void av_free_packet(AVPacket *pkt); - -/** - * Allocate new information of a packet. - * - * @param pkt packet - * @param type side information type - * @param size side information size - * @return pointer to fresh allocated data or NULL otherwise - */ -uint8_t* av_packet_new_side_data(AVPacket *pkt, enum AVPacketSideDataType type, - int size); - -/** - * Get side information from packet. - * - * @param pkt packet - * @param type desired side information type - * @param size pointer for side information size to store (optional) - * @return pointer to data if present or NULL otherwise - */ -uint8_t* av_packet_get_side_data(AVPacket *pkt, enum AVPacketSideDataType type, - int *size); - -/* resample.c */ - -struct ReSampleContext; -struct AVResampleContext; - -typedef struct ReSampleContext ReSampleContext; - -/** - * Initialize audio resampling context. - * - * @param output_channels number of output channels - * @param input_channels number of input channels - * @param output_rate output sample rate - * @param input_rate input sample rate - * @param sample_fmt_out requested output sample format - * @param sample_fmt_in input sample format - * @param filter_length length of each FIR filter in the filterbank relative to the cutoff frequency - * @param log2_phase_count log2 of the number of entries in the polyphase filterbank - * @param linear if 1 then the used FIR filter will be linearly interpolated - between the 2 closest, if 0 the closest will be used - * @param cutoff cutoff frequency, 1.0 corresponds to half the output sampling rate - * @return allocated ReSampleContext, NULL if error occured - */ -ReSampleContext *av_audio_resample_init(int output_channels, int input_channels, - int output_rate, int input_rate, - enum AVSampleFormat sample_fmt_out, - enum AVSampleFormat sample_fmt_in, - int filter_length, int log2_phase_count, - int linear, double cutoff); - -int audio_resample(ReSampleContext *s, short *output, short *input, int nb_samples); - -/** - * Free resample context. - * - * @param s a non-NULL pointer to a resample context previously - * created with av_audio_resample_init() - */ -void audio_resample_close(ReSampleContext *s); - - -/** - * Initialize an audio resampler. - * Note, if either rate is not an integer then simply scale both rates up so they are. - * @param filter_length length of each FIR filter in the filterbank relative to the cutoff freq - * @param log2_phase_count log2 of the number of entries in the polyphase filterbank - * @param linear If 1 then the used FIR filter will be linearly interpolated - between the 2 closest, if 0 the closest will be used - * @param cutoff cutoff frequency, 1.0 corresponds to half the output sampling rate - */ -struct AVResampleContext *av_resample_init(int out_rate, int in_rate, int filter_length, int log2_phase_count, int linear, double cutoff); - -/** - * Resample an array of samples using a previously configured context. - * @param src an array of unconsumed samples - * @param consumed the number of samples of src which have been consumed are returned here - * @param src_size the number of unconsumed samples available - * @param dst_size the amount of space in samples available in dst - * @param update_ctx If this is 0 then the context will not be modified, that way several channels can be resampled with the same context. - * @return the number of samples written in dst or -1 if an error occurred - */ -int av_resample(struct AVResampleContext *c, short *dst, short *src, int *consumed, int src_size, int dst_size, int update_ctx); - - -/** - * Compensate samplerate/timestamp drift. The compensation is done by changing - * the resampler parameters, so no audible clicks or similar distortions occur - * @param compensation_distance distance in output samples over which the compensation should be performed - * @param sample_delta number of output samples which should be output less - * - * example: av_resample_compensate(c, 10, 500) - * here instead of 510 samples only 500 samples would be output - * - * note, due to rounding the actual compensation might be slightly different, - * especially if the compensation_distance is large and the in_rate used during init is small - */ -void av_resample_compensate(struct AVResampleContext *c, int sample_delta, int compensation_distance); -void av_resample_close(struct AVResampleContext *c); - -/** - * Allocate memory for a picture. Call avpicture_free() to free it. - * - * \see avpicture_fill() - * - * @param picture the picture to be filled in - * @param pix_fmt the format of the picture - * @param width the width of the picture - * @param height the height of the picture - * @return zero if successful, a negative value if not - */ -int avpicture_alloc(AVPicture *picture, enum PixelFormat pix_fmt, int width, int height); - -/** - * Free a picture previously allocated by avpicture_alloc(). - * The data buffer used by the AVPicture is freed, but the AVPicture structure - * itself is not. - * - * @param picture the AVPicture to be freed - */ -void avpicture_free(AVPicture *picture); - -/** - * Fill in the AVPicture fields. - * The fields of the given AVPicture are filled in by using the 'ptr' address - * which points to the image data buffer. Depending on the specified picture - * format, one or multiple image data pointers and line sizes will be set. - * If a planar format is specified, several pointers will be set pointing to - * the different picture planes and the line sizes of the different planes - * will be stored in the lines_sizes array. - * Call with ptr == NULL to get the required size for the ptr buffer. - * - * To allocate the buffer and fill in the AVPicture fields in one call, - * use avpicture_alloc(). - * - * @param picture AVPicture whose fields are to be filled in - * @param ptr Buffer which will contain or contains the actual image data - * @param pix_fmt The format in which the picture data is stored. - * @param width the width of the image in pixels - * @param height the height of the image in pixels - * @return size of the image data in bytes - */ -int avpicture_fill(AVPicture *picture, uint8_t *ptr, - enum PixelFormat pix_fmt, int width, int height); - -/** - * Copy pixel data from an AVPicture into a buffer. - * The data is stored compactly, without any gaps for alignment or padding - * which may be applied by avpicture_fill(). - * - * \see avpicture_get_size() - * - * @param[in] src AVPicture containing image data - * @param[in] pix_fmt The format in which the picture data is stored. - * @param[in] width the width of the image in pixels. - * @param[in] height the height of the image in pixels. - * @param[out] dest A buffer into which picture data will be copied. - * @param[in] dest_size The size of 'dest'. - * @return The number of bytes written to dest, or a negative value (error code) on error. - */ -int avpicture_layout(const AVPicture* src, enum PixelFormat pix_fmt, int width, int height, - unsigned char *dest, int dest_size); - -/** - * Calculate the size in bytes that a picture of the given width and height - * would occupy if stored in the given picture format. - * Note that this returns the size of a compact representation as generated - * by avpicture_layout(), which can be smaller than the size required for e.g. - * avpicture_fill(). - * - * @param pix_fmt the given picture format - * @param width the width of the image - * @param height the height of the image - * @return Image data size in bytes or -1 on error (e.g. too large dimensions). - */ -int avpicture_get_size(enum PixelFormat pix_fmt, int width, int height); -void avcodec_get_chroma_sub_sample(enum PixelFormat pix_fmt, int *h_shift, int *v_shift); - -#if FF_API_GET_PIX_FMT_NAME -/** - * @deprecated Deprecated in favor of av_get_pix_fmt_name(). - */ -attribute_deprecated -const char *avcodec_get_pix_fmt_name(enum PixelFormat pix_fmt); -#endif - -void avcodec_set_dimensions(AVCodecContext *s, int width, int height); - -/** - * Return a value representing the fourCC code associated to the - * pixel format pix_fmt, or 0 if no associated fourCC code can be - * found. - */ -unsigned int avcodec_pix_fmt_to_codec_tag(enum PixelFormat pix_fmt); - -/** - * Put a string representing the codec tag codec_tag in buf. - * - * @param buf_size size in bytes of buf - * @return the length of the string that would have been generated if - * enough space had been available, excluding the trailing null - */ -size_t av_get_codec_tag_string(char *buf, size_t buf_size, unsigned int codec_tag); - -#define FF_LOSS_RESOLUTION 0x0001 /**< loss due to resolution change */ -#define FF_LOSS_DEPTH 0x0002 /**< loss due to color depth change */ -#define FF_LOSS_COLORSPACE 0x0004 /**< loss due to color space conversion */ -#define FF_LOSS_ALPHA 0x0008 /**< loss of alpha bits */ -#define FF_LOSS_COLORQUANT 0x0010 /**< loss due to color quantization */ -#define FF_LOSS_CHROMA 0x0020 /**< loss of chroma (e.g. RGB to gray conversion) */ - -/** - * Compute what kind of losses will occur when converting from one specific - * pixel format to another. - * When converting from one pixel format to another, information loss may occur. - * For example, when converting from RGB24 to GRAY, the color information will - * be lost. Similarly, other losses occur when converting from some formats to - * other formats. These losses can involve loss of chroma, but also loss of - * resolution, loss of color depth, loss due to the color space conversion, loss - * of the alpha bits or loss due to color quantization. - * avcodec_get_fix_fmt_loss() informs you about the various types of losses - * which will occur when converting from one pixel format to another. - * - * @param[in] dst_pix_fmt destination pixel format - * @param[in] src_pix_fmt source pixel format - * @param[in] has_alpha Whether the source pixel format alpha channel is used. - * @return Combination of flags informing you what kind of losses will occur. - */ -int avcodec_get_pix_fmt_loss(enum PixelFormat dst_pix_fmt, enum PixelFormat src_pix_fmt, - int has_alpha); - -/** - * Find the best pixel format to convert to given a certain source pixel - * format. When converting from one pixel format to another, information loss - * may occur. For example, when converting from RGB24 to GRAY, the color - * information will be lost. Similarly, other losses occur when converting from - * some formats to other formats. avcodec_find_best_pix_fmt() searches which of - * the given pixel formats should be used to suffer the least amount of loss. - * The pixel formats from which it chooses one, are determined by the - * pix_fmt_mask parameter. - * - * @code - * src_pix_fmt = PIX_FMT_YUV420P; - * pix_fmt_mask = (1 << PIX_FMT_YUV422P) || (1 << PIX_FMT_RGB24); - * dst_pix_fmt = avcodec_find_best_pix_fmt(pix_fmt_mask, src_pix_fmt, alpha, &loss); - * @endcode - * - * @param[in] pix_fmt_mask bitmask determining which pixel format to choose from - * @param[in] src_pix_fmt source pixel format - * @param[in] has_alpha Whether the source pixel format alpha channel is used. - * @param[out] loss_ptr Combination of flags informing you what kind of losses will occur. - * @return The best pixel format to convert to or -1 if none was found. - */ -enum PixelFormat avcodec_find_best_pix_fmt(int64_t pix_fmt_mask, enum PixelFormat src_pix_fmt, - int has_alpha, int *loss_ptr); - -#define FF_ALPHA_TRANSP 0x0001 /* image has some totally transparent pixels */ -#define FF_ALPHA_SEMI_TRANSP 0x0002 /* image has some transparent pixels */ - -/** - * Tell if an image really has transparent alpha values. - * @return ored mask of FF_ALPHA_xxx constants - */ -int img_get_alpha_info(const AVPicture *src, - enum PixelFormat pix_fmt, int width, int height); - -/* deinterlace a picture */ -/* deinterlace - if not supported return -1 */ -int avpicture_deinterlace(AVPicture *dst, const AVPicture *src, - enum PixelFormat pix_fmt, int width, int height); - -/* external high level API */ - -/** - * If c is NULL, returns the first registered codec, - * if c is non-NULL, returns the next registered codec after c, - * or NULL if c is the last one. - */ -AVCodec *av_codec_next(AVCodec *c); - -/** - * Return the LIBAVCODEC_VERSION_INT constant. - */ -unsigned avcodec_version(void); - -/** - * Return the libavcodec build-time configuration. - */ -const char *avcodec_configuration(void); - -/** - * Return the libavcodec license. - */ -const char *avcodec_license(void); - -/** - * Initialize libavcodec. - * If called more than once, does nothing. - * - * @warning This function must be called before any other libavcodec - * function. - * - * @warning This function is not thread-safe. - */ -void avcodec_init(void); - -/** - * Register the codec codec and initialize libavcodec. - * - * @see avcodec_init(), avcodec_register_all() - */ -void avcodec_register(AVCodec *codec); - -/** - * Find a registered encoder with a matching codec ID. - * - * @param id CodecID of the requested encoder - * @return An encoder if one was found, NULL otherwise. - */ -AVCodec *avcodec_find_encoder(enum CodecID id); - -/** - * Find a registered encoder with the specified name. - * - * @param name name of the requested encoder - * @return An encoder if one was found, NULL otherwise. - */ -AVCodec *avcodec_find_encoder_by_name(const char *name); - -/** - * Find a registered decoder with a matching codec ID. - * - * @param id CodecID of the requested decoder - * @return A decoder if one was found, NULL otherwise. - */ -AVCodec *avcodec_find_decoder(enum CodecID id); - -/** - * Find a registered decoder with the specified name. - * - * @param name name of the requested decoder - * @return A decoder if one was found, NULL otherwise. - */ -AVCodec *avcodec_find_decoder_by_name(const char *name); -void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode); - -/** - * Return a name for the specified profile, if available. - * - * @param codec the codec that is searched for the given profile - * @param profile the profile value for which a name is requested - * @return A name for the profile if found, NULL otherwise. - */ -const char *av_get_profile_name(const AVCodec *codec, int profile); - -/** - * Set the fields of the given AVCodecContext to default values. - * - * @param s The AVCodecContext of which the fields should be set to default values. - */ -void avcodec_get_context_defaults(AVCodecContext *s); - -/** THIS FUNCTION IS NOT YET PART OF THE PUBLIC API! - * we WILL change its arguments and name a few times! */ -void avcodec_get_context_defaults2(AVCodecContext *s, enum AVMediaType); - -/** THIS FUNCTION IS NOT YET PART OF THE PUBLIC API! - * we WILL change its arguments and name a few times! */ -int avcodec_get_context_defaults3(AVCodecContext *s, AVCodec *codec); - -/** - * Allocate an AVCodecContext and set its fields to default values. The - * resulting struct can be deallocated by simply calling av_free(). - * - * @return An AVCodecContext filled with default values or NULL on failure. - * @see avcodec_get_context_defaults - */ -AVCodecContext *avcodec_alloc_context(void); - -/** THIS FUNCTION IS NOT YET PART OF THE PUBLIC API! - * we WILL change its arguments and name a few times! */ -AVCodecContext *avcodec_alloc_context2(enum AVMediaType); - -/** THIS FUNCTION IS NOT YET PART OF THE PUBLIC API! - * we WILL change its arguments and name a few times! */ -AVCodecContext *avcodec_alloc_context3(AVCodec *codec); - -/** - * Copy the settings of the source AVCodecContext into the destination - * AVCodecContext. The resulting destination codec context will be - * unopened, i.e. you are required to call avcodec_open() before you - * can use this AVCodecContext to decode/encode video/audio data. - * - * @param dest target codec context, should be initialized with - * avcodec_alloc_context(), but otherwise uninitialized - * @param src source codec context - * @return AVERROR() on error (e.g. memory allocation error), 0 on success - */ -int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src); - -/** - * Set the fields of the given AVFrame to default values. - * - * @param pic The AVFrame of which the fields should be set to default values. - */ -void avcodec_get_frame_defaults(AVFrame *pic); - -/** - * Allocate an AVFrame and set its fields to default values. The resulting - * struct can be deallocated by simply calling av_free(). - * - * @return An AVFrame filled with default values or NULL on failure. - * @see avcodec_get_frame_defaults - */ -AVFrame *avcodec_alloc_frame(void); - -int avcodec_default_get_buffer(AVCodecContext *s, AVFrame *pic); -void avcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic); -int avcodec_default_reget_buffer(AVCodecContext *s, AVFrame *pic); - -/** - * Return the amount of padding in pixels which the get_buffer callback must - * provide around the edge of the image for codecs which do not have the - * CODEC_FLAG_EMU_EDGE flag. - * - * @return Required padding in pixels. - */ -unsigned avcodec_get_edge_width(void); -/** - * Modify width and height values so that they will result in a memory - * buffer that is acceptable for the codec if you do not use any horizontal - * padding. - * - * May only be used if a codec with CODEC_CAP_DR1 has been opened. - * If CODEC_FLAG_EMU_EDGE is not set, the dimensions must have been increased - * according to avcodec_get_edge_width() before. - */ -void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height); -/** - * Modify width and height values so that they will result in a memory - * buffer that is acceptable for the codec if you also ensure that all - * line sizes are a multiple of the respective linesize_align[i]. - * - * May only be used if a codec with CODEC_CAP_DR1 has been opened. - * If CODEC_FLAG_EMU_EDGE is not set, the dimensions must have been increased - * according to avcodec_get_edge_width() before. - */ -void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, - int linesize_align[4]); - -enum PixelFormat avcodec_default_get_format(struct AVCodecContext *s, const enum PixelFormat * fmt); - -#if FF_API_THREAD_INIT -/** - * @deprecated Set s->thread_count before calling avcodec_open() instead of calling this. - */ -attribute_deprecated -int avcodec_thread_init(AVCodecContext *s, int thread_count); -#endif - -int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2),void *arg, int *ret, int count, int size); -int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2, int, int),void *arg, int *ret, int count); -//FIXME func typedef - -/** - * Initialize the AVCodecContext to use the given AVCodec. Prior to using this - * function the context has to be allocated. - * - * The functions avcodec_find_decoder_by_name(), avcodec_find_encoder_by_name(), - * avcodec_find_decoder() and avcodec_find_encoder() provide an easy way for - * retrieving a codec. - * - * @warning This function is not thread safe! - * - * @code - * avcodec_register_all(); - * codec = avcodec_find_decoder(CODEC_ID_H264); - * if (!codec) - * exit(1); - * - * context = avcodec_alloc_context(); - * - * if (avcodec_open(context, codec) < 0) - * exit(1); - * @endcode - * - * @param avctx The context which will be set up to use the given codec. - * @param codec The codec to use within the context. - * @return zero on success, a negative value on error - * @see avcodec_alloc_context, avcodec_find_decoder, avcodec_find_encoder, avcodec_close - */ -int avcodec_open(AVCodecContext *avctx, AVCodec *codec); - -/** - * Decode the audio frame of size avpkt->size from avpkt->data into samples. - * Some decoders may support multiple frames in a single AVPacket, such - * decoders would then just decode the first frame. In this case, - * avcodec_decode_audio3 has to be called again with an AVPacket that contains - * the remaining data in order to decode the second frame etc. - * If no frame - * could be outputted, frame_size_ptr is zero. Otherwise, it is the - * decompressed frame size in bytes. - * - * @warning You must set frame_size_ptr to the allocated size of the - * output buffer before calling avcodec_decode_audio3(). - * - * @warning The input buffer must be FF_INPUT_BUFFER_PADDING_SIZE larger than - * the actual read bytes because some optimized bitstream readers read 32 or 64 - * bits at once and could read over the end. - * - * @warning The end of the input buffer avpkt->data should be set to 0 to ensure that - * no overreading happens for damaged MPEG streams. - * - * @note You might have to align the input buffer avpkt->data and output buffer - * samples. The alignment requirements depend on the CPU: On some CPUs it isn't - * necessary at all, on others it won't work at all if not aligned and on others - * it will work but it will have an impact on performance. - * - * In practice, avpkt->data should have 4 byte alignment at minimum and - * samples should be 16 byte aligned unless the CPU doesn't need it - * (AltiVec and SSE do). - * - * @param avctx the codec context - * @param[out] samples the output buffer, sample type in avctx->sample_fmt - * @param[in,out] frame_size_ptr the output buffer size in bytes - * @param[in] avpkt The input AVPacket containing the input buffer. - * You can create such packet with av_init_packet() and by then setting - * data and size, some decoders might in addition need other fields. - * All decoders are designed to use the least fields possible though. - * @return On error a negative value is returned, otherwise the number of bytes - * used or zero if no frame data was decompressed (used) from the input AVPacket. - */ -int avcodec_decode_audio3(AVCodecContext *avctx, int16_t *samples, - int *frame_size_ptr, - AVPacket *avpkt); - -/** - * Decode the video frame of size avpkt->size from avpkt->data into picture. - * Some decoders may support multiple frames in a single AVPacket, such - * decoders would then just decode the first frame. - * - * @warning The input buffer must be FF_INPUT_BUFFER_PADDING_SIZE larger than - * the actual read bytes because some optimized bitstream readers read 32 or 64 - * bits at once and could read over the end. - * - * @warning The end of the input buffer buf should be set to 0 to ensure that - * no overreading happens for damaged MPEG streams. - * - * @note You might have to align the input buffer avpkt->data. - * The alignment requirements depend on the CPU: on some CPUs it isn't - * necessary at all, on others it won't work at all if not aligned and on others - * it will work but it will have an impact on performance. - * - * In practice, avpkt->data should have 4 byte alignment at minimum. - * - * @note Some codecs have a delay between input and output, these need to be - * fed with avpkt->data=NULL, avpkt->size=0 at the end to return the remaining frames. - * - * @param avctx the codec context - * @param[out] picture The AVFrame in which the decoded video frame will be stored. - * Use avcodec_alloc_frame to get an AVFrame, the codec will - * allocate memory for the actual bitmap. - * with default get/release_buffer(), the decoder frees/reuses the bitmap as it sees fit. - * with overridden get/release_buffer() (needs CODEC_CAP_DR1) the user decides into what buffer the decoder - * decodes and the decoder tells the user once it does not need the data anymore, - * the user app can at this point free/reuse/keep the memory as it sees fit. - * - * @param[in] avpkt The input AVpacket containing the input buffer. - * You can create such packet with av_init_packet() and by then setting - * data and size, some decoders might in addition need other fields like - * flags&AV_PKT_FLAG_KEY. All decoders are designed to use the least - * fields possible. - * @param[in,out] got_picture_ptr Zero if no frame could be decompressed, otherwise, it is nonzero. - * @return On error a negative value is returned, otherwise the number of bytes - * used or zero if no frame could be decompressed. - */ -int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture, - int *got_picture_ptr, - AVPacket *avpkt); - -/** - * Decode a subtitle message. - * Return a negative value on error, otherwise return the number of bytes used. - * If no subtitle could be decompressed, got_sub_ptr is zero. - * Otherwise, the subtitle is stored in *sub. - * Note that CODEC_CAP_DR1 is not available for subtitle codecs. This is for - * simplicity, because the performance difference is expect to be negligible - * and reusing a get_buffer written for video codecs would probably perform badly - * due to a potentially very different allocation pattern. - * - * @param avctx the codec context - * @param[out] sub The AVSubtitle in which the decoded subtitle will be stored, must be - freed with avsubtitle_free if *got_sub_ptr is set. - * @param[in,out] got_sub_ptr Zero if no subtitle could be decompressed, otherwise, it is nonzero. - * @param[in] avpkt The input AVPacket containing the input buffer. - */ -int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, - int *got_sub_ptr, - AVPacket *avpkt); - -/** - * Frees all allocated data in the given subtitle struct. - * - * @param sub AVSubtitle to free. - */ -void avsubtitle_free(AVSubtitle *sub); - -int avcodec_parse_frame(AVCodecContext *avctx, uint8_t **pdata, - int *data_size_ptr, - uint8_t *buf, int buf_size); - -/** - * Encode an audio frame from samples into buf. - * - * @note The output buffer should be at least FF_MIN_BUFFER_SIZE bytes large. - * However, for PCM audio the user will know how much space is needed - * because it depends on the value passed in buf_size as described - * below. In that case a lower value can be used. - * - * @param avctx the codec context - * @param[out] buf the output buffer - * @param[in] buf_size the output buffer size - * @param[in] samples the input buffer containing the samples - * The number of samples read from this buffer is frame_size*channels, - * both of which are defined in avctx. - * For PCM audio the number of samples read from samples is equal to - * buf_size * input_sample_size / output_sample_size. - * @return On error a negative value is returned, on success zero or the number - * of bytes used to encode the data read from the input buffer. - */ -int avcodec_encode_audio(AVCodecContext *avctx, uint8_t *buf, int buf_size, - const short *samples); - -/** - * Encode a video frame from pict into buf. - * The input picture should be - * stored using a specific format, namely avctx.pix_fmt. - * - * @param avctx the codec context - * @param[out] buf the output buffer for the bitstream of encoded frame - * @param[in] buf_size the size of the output buffer in bytes - * @param[in] pict the input picture to encode - * @return On error a negative value is returned, on success zero or the number - * of bytes used from the output buffer. - */ -int avcodec_encode_video(AVCodecContext *avctx, uint8_t *buf, int buf_size, - const AVFrame *pict); -int avcodec_encode_subtitle(AVCodecContext *avctx, uint8_t *buf, int buf_size, - const AVSubtitle *sub); - -int avcodec_close(AVCodecContext *avctx); - -/** - * Register all the codecs, parsers and bitstream filters which were enabled at - * configuration time. If you do not call this function you can select exactly - * which formats you want to support, by using the individual registration - * functions. - * - * @see avcodec_register - * @see av_register_codec_parser - * @see av_register_bitstream_filter - */ -void avcodec_register_all(void); - -/** - * Flush buffers, should be called when seeking or when switching to a different stream. - */ -void avcodec_flush_buffers(AVCodecContext *avctx); - -void avcodec_default_free_buffers(AVCodecContext *s); - -/* misc useful functions */ - -#if FF_API_OLD_FF_PICT_TYPES -/** - * Return a single letter to describe the given picture type pict_type. - * - * @param[in] pict_type the picture type - * @return A single character representing the picture type. - * @deprecated Use av_get_picture_type_char() instead. - */ -attribute_deprecated -char av_get_pict_type_char(int pict_type); -#endif - -/** - * Return codec bits per sample. - * - * @param[in] codec_id the codec - * @return Number of bits per sample or zero if unknown for the given codec. - */ -int av_get_bits_per_sample(enum CodecID codec_id); - -#if FF_API_OLD_SAMPLE_FMT -/** - * @deprecated Use av_get_bytes_per_sample() instead. - */ -attribute_deprecated -int av_get_bits_per_sample_format(enum AVSampleFormat sample_fmt); -#endif - -/* frame parsing */ -typedef struct AVCodecParserContext { - void *priv_data; - struct AVCodecParser *parser; - int64_t frame_offset; /* offset of the current frame */ - int64_t cur_offset; /* current offset - (incremented by each av_parser_parse()) */ - int64_t next_frame_offset; /* offset of the next frame */ - /* video info */ - int pict_type; /* XXX: Put it back in AVCodecContext. */ - /** - * This field is used for proper frame duration computation in lavf. - * It signals, how much longer the frame duration of the current frame - * is compared to normal frame duration. - * - * frame_duration = (1 + repeat_pict) * time_base - * - * It is used by codecs like H.264 to display telecined material. - */ - int repeat_pict; /* XXX: Put it back in AVCodecContext. */ - int64_t pts; /* pts of the current frame */ - int64_t dts; /* dts of the current frame */ - - /* private data */ - int64_t last_pts; - int64_t last_dts; - int fetch_timestamp; - -#define AV_PARSER_PTS_NB 4 - int cur_frame_start_index; - int64_t cur_frame_offset[AV_PARSER_PTS_NB]; - int64_t cur_frame_pts[AV_PARSER_PTS_NB]; - int64_t cur_frame_dts[AV_PARSER_PTS_NB]; - - int flags; -#define PARSER_FLAG_COMPLETE_FRAMES 0x0001 -#define PARSER_FLAG_ONCE 0x0002 -/// Set if the parser has a valid file offset -#define PARSER_FLAG_FETCHED_OFFSET 0x0004 - - int64_t offset; ///< byte offset from starting packet start - int64_t cur_frame_end[AV_PARSER_PTS_NB]; - - /*! - * Set by parser to 1 for key frames and 0 for non-key frames. - * It is initialized to -1, so if the parser doesn't set this flag, - * old-style fallback using AV_PICTURE_TYPE_I picture type as key frames - * will be used. - */ - int key_frame; - - /** - * Time difference in stream time base units from the pts of this - * packet to the point at which the output from the decoder has converged - * independent from the availability of previous frames. That is, the - * frames are virtually identical no matter if decoding started from - * the very first frame or from this keyframe. - * Is AV_NOPTS_VALUE if unknown. - * This field is not the display duration of the current frame. - * This field has no meaning if the packet does not have AV_PKT_FLAG_KEY - * set. - * - * The purpose of this field is to allow seeking in streams that have no - * keyframes in the conventional sense. It corresponds to the - * recovery point SEI in H.264 and match_time_delta in NUT. It is also - * essential for some types of subtitle streams to ensure that all - * subtitles are correctly displayed after seeking. - */ - int64_t convergence_duration; - - // Timestamp generation support: - /** - * Synchronization point for start of timestamp generation. - * - * Set to >0 for sync point, 0 for no sync point and <0 for undefined - * (default). - * - * For example, this corresponds to presence of H.264 buffering period - * SEI message. - */ - int dts_sync_point; - - /** - * Offset of the current timestamp against last timestamp sync point in - * units of AVCodecContext.time_base. - * - * Set to INT_MIN when dts_sync_point unused. Otherwise, it must - * contain a valid timestamp offset. - * - * Note that the timestamp of sync point has usually a nonzero - * dts_ref_dts_delta, which refers to the previous sync point. Offset of - * the next frame after timestamp sync point will be usually 1. - * - * For example, this corresponds to H.264 cpb_removal_delay. - */ - int dts_ref_dts_delta; - - /** - * Presentation delay of current frame in units of AVCodecContext.time_base. - * - * Set to INT_MIN when dts_sync_point unused. Otherwise, it must - * contain valid non-negative timestamp delta (presentation time of a frame - * must not lie in the past). - * - * This delay represents the difference between decoding and presentation - * time of the frame. - * - * For example, this corresponds to H.264 dpb_output_delay. - */ - int pts_dts_delta; - - /** - * Position of the packet in file. - * - * Analogous to cur_frame_pts/dts - */ - int64_t cur_frame_pos[AV_PARSER_PTS_NB]; - - /** - * Byte position of currently parsed frame in stream. - */ - int64_t pos; - - /** - * Previous frame byte position. - */ - int64_t last_pos; -} AVCodecParserContext; - -typedef struct AVCodecParser { - int codec_ids[5]; /* several codec IDs are permitted */ - int priv_data_size; - int (*parser_init)(AVCodecParserContext *s); - int (*parser_parse)(AVCodecParserContext *s, - AVCodecContext *avctx, - const uint8_t **poutbuf, int *poutbuf_size, - const uint8_t *buf, int buf_size); - void (*parser_close)(AVCodecParserContext *s); - int (*split)(AVCodecContext *avctx, const uint8_t *buf, int buf_size); - struct AVCodecParser *next; -} AVCodecParser; - -AVCodecParser *av_parser_next(AVCodecParser *c); - -void av_register_codec_parser(AVCodecParser *parser); -AVCodecParserContext *av_parser_init(int codec_id); - -/** - * Parse a packet. - * - * @param s parser context. - * @param avctx codec context. - * @param poutbuf set to pointer to parsed buffer or NULL if not yet finished. - * @param poutbuf_size set to size of parsed buffer or zero if not yet finished. - * @param buf input buffer. - * @param buf_size input length, to signal EOF, this should be 0 (so that the last frame can be output). - * @param pts input presentation timestamp. - * @param dts input decoding timestamp. - * @param pos input byte position in stream. - * @return the number of bytes of the input bitstream used. - * - * Example: - * @code - * while(in_len){ - * len = av_parser_parse2(myparser, AVCodecContext, &data, &size, - * in_data, in_len, - * pts, dts, pos); - * in_data += len; - * in_len -= len; - * - * if(size) - * decode_frame(data, size); - * } - * @endcode - */ -int av_parser_parse2(AVCodecParserContext *s, - AVCodecContext *avctx, - uint8_t **poutbuf, int *poutbuf_size, - const uint8_t *buf, int buf_size, - int64_t pts, int64_t dts, - int64_t pos); - -int av_parser_change(AVCodecParserContext *s, - AVCodecContext *avctx, - uint8_t **poutbuf, int *poutbuf_size, - const uint8_t *buf, int buf_size, int keyframe); -void av_parser_close(AVCodecParserContext *s); - - -typedef struct AVBitStreamFilterContext { - void *priv_data; - struct AVBitStreamFilter *filter; - AVCodecParserContext *parser; - struct AVBitStreamFilterContext *next; -} AVBitStreamFilterContext; - - -typedef struct AVBitStreamFilter { - const char *name; - int priv_data_size; - int (*filter)(AVBitStreamFilterContext *bsfc, - AVCodecContext *avctx, const char *args, - uint8_t **poutbuf, int *poutbuf_size, - const uint8_t *buf, int buf_size, int keyframe); - void (*close)(AVBitStreamFilterContext *bsfc); - struct AVBitStreamFilter *next; -} AVBitStreamFilter; - -void av_register_bitstream_filter(AVBitStreamFilter *bsf); -AVBitStreamFilterContext *av_bitstream_filter_init(const char *name); -int av_bitstream_filter_filter(AVBitStreamFilterContext *bsfc, - AVCodecContext *avctx, const char *args, - uint8_t **poutbuf, int *poutbuf_size, - const uint8_t *buf, int buf_size, int keyframe); -void av_bitstream_filter_close(AVBitStreamFilterContext *bsf); - -AVBitStreamFilter *av_bitstream_filter_next(AVBitStreamFilter *f); - -/* memory */ - -/** - * Reallocate the given block if it is not large enough, otherwise do nothing. - * - * @see av_realloc - */ -void *av_fast_realloc(void *ptr, unsigned int *size, size_t min_size); - -/** - * Allocate a buffer, reusing the given one if large enough. - * - * Contrary to av_fast_realloc the current buffer contents might not be - * preserved and on error the old buffer is freed, thus no special - * handling to avoid memleaks is necessary. - * - * @param ptr pointer to pointer to already allocated buffer, overwritten with pointer to new buffer - * @param size size of the buffer *ptr points to - * @param min_size minimum size of *ptr buffer after returning, *ptr will be NULL and - * *size 0 if an error occurred. - */ -void av_fast_malloc(void *ptr, unsigned int *size, size_t min_size); - -/** - * Copy image src to dst. Wraps av_picture_data_copy() above. - */ -void av_picture_copy(AVPicture *dst, const AVPicture *src, - enum PixelFormat pix_fmt, int width, int height); - -/** - * Crop image top and left side. - */ -int av_picture_crop(AVPicture *dst, const AVPicture *src, - enum PixelFormat pix_fmt, int top_band, int left_band); - -/** - * Pad image. - */ -int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width, enum PixelFormat pix_fmt, - int padtop, int padbottom, int padleft, int padright, int *color); - -/** - * Encode extradata length to a buffer. Used by xiph codecs. - * - * @param s buffer to write to; must be at least (v/255+1) bytes long - * @param v size of extradata in bytes - * @return number of bytes written to the buffer. - */ -unsigned int av_xiphlacing(unsigned char *s, unsigned int v); - -/** - * Logs a generic warning message about a missing feature. This function is - * intended to be used internally by Libav (libavcodec, libavformat, etc.) - * only, and would normally not be used by applications. - * @param[in] avc a pointer to an arbitrary struct of which the first field is - * a pointer to an AVClass struct - * @param[in] feature string containing the name of the missing feature - * @param[in] want_sample indicates if samples are wanted which exhibit this feature. - * If want_sample is non-zero, additional verbage will be added to the log - * message which tells the user how to report samples to the development - * mailing list. - */ -void av_log_missing_feature(void *avc, const char *feature, int want_sample); - -/** - * Log a generic warning message asking for a sample. This function is - * intended to be used internally by Libav (libavcodec, libavformat, etc.) - * only, and would normally not be used by applications. - * @param[in] avc a pointer to an arbitrary struct of which the first field is - * a pointer to an AVClass struct - * @param[in] msg string containing an optional message, or NULL if no message - */ -void av_log_ask_for_sample(void *avc, const char *msg, ...); - -/** - * Register the hardware accelerator hwaccel. - */ -void av_register_hwaccel(AVHWAccel *hwaccel); - -/** - * If hwaccel is NULL, returns the first registered hardware accelerator, - * if hwaccel is non-NULL, returns the next registered hardware accelerator - * after hwaccel, or NULL if hwaccel is the last one. - */ -AVHWAccel *av_hwaccel_next(AVHWAccel *hwaccel); - - -/** - * Lock operation used by lockmgr - */ -enum AVLockOp { - AV_LOCK_CREATE, ///< Create a mutex - AV_LOCK_OBTAIN, ///< Lock the mutex - AV_LOCK_RELEASE, ///< Unlock the mutex - AV_LOCK_DESTROY, ///< Free mutex resources -}; - -/** - * Register a user provided lock manager supporting the operations - * specified by AVLockOp. mutex points to a (void *) where the - * lockmgr should store/get a pointer to a user allocated mutex. It's - * NULL upon AV_LOCK_CREATE and != NULL for all other ops. - * - * @param cb User defined callback. Note: Libav may invoke calls to this - * callback during the call to av_lockmgr_register(). - * Thus, the application must be prepared to handle that. - * If cb is set to NULL the lockmgr will be unregistered. - * Also note that during unregistration the previously registered - * lockmgr callback may also be invoked. - */ -int av_lockmgr_register(int (*cb)(void **mutex, enum AVLockOp op)); - -#endif /* AVCODEC_AVCODEC_H */ diff --git a/tizen/distrib/libav/i386/include/libavcodec/avfft.h b/tizen/distrib/libav/i386/include/libavcodec/avfft.h deleted file mode 100644 index 91fe2f4297..0000000000 --- a/tizen/distrib/libav/i386/include/libavcodec/avfft.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - * 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 - */ - -#ifndef AVCODEC_AVFFT_H -#define AVCODEC_AVFFT_H - -typedef float FFTSample; - -typedef struct FFTComplex { - FFTSample re, im; -} FFTComplex; - -typedef struct FFTContext FFTContext; - -/** - * Set up a complex FFT. - * @param nbits log2 of the length of the input array - * @param inverse if 0 perform the forward transform, if 1 perform the inverse - */ -FFTContext *av_fft_init(int nbits, int inverse); - -/** - * Do the permutation needed BEFORE calling ff_fft_calc(). - */ -void av_fft_permute(FFTContext *s, FFTComplex *z); - -/** - * Do a complex FFT with the parameters defined in av_fft_init(). The - * input data must be permuted before. No 1.0/sqrt(n) normalization is done. - */ -void av_fft_calc(FFTContext *s, FFTComplex *z); - -void av_fft_end(FFTContext *s); - -FFTContext *av_mdct_init(int nbits, int inverse, double scale); -void av_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); -void av_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input); -void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); -void av_mdct_end(FFTContext *s); - -/* Real Discrete Fourier Transform */ - -enum RDFTransformType { - DFT_R2C, - IDFT_C2R, - IDFT_R2C, - DFT_C2R, -}; - -typedef struct RDFTContext RDFTContext; - -/** - * Set up a real FFT. - * @param nbits log2 of the length of the input array - * @param trans the type of transform - */ -RDFTContext *av_rdft_init(int nbits, enum RDFTransformType trans); -void av_rdft_calc(RDFTContext *s, FFTSample *data); -void av_rdft_end(RDFTContext *s); - -/* Discrete Cosine Transform */ - -typedef struct DCTContext DCTContext; - -enum DCTTransformType { - DCT_II = 0, - DCT_III, - DCT_I, - DST_I, -}; - -/** - * Set up DCT. - * @param nbits size of the input array: - * (1 << nbits) for DCT-II, DCT-III and DST-I - * (1 << nbits) + 1 for DCT-I - * - * @note the first element of the input of DST-I is ignored - */ -DCTContext *av_dct_init(int nbits, enum DCTTransformType type); -void av_dct_calc(DCTContext *s, FFTSample *data); -void av_dct_end (DCTContext *s); - -#endif /* AVCODEC_AVFFT_H */ diff --git a/tizen/distrib/libav/i386/include/libavcodec/dxva2.h b/tizen/distrib/libav/i386/include/libavcodec/dxva2.h deleted file mode 100644 index 5db5d0bc9f..0000000000 --- a/tizen/distrib/libav/i386/include/libavcodec/dxva2.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * DXVA2 HW acceleration - * - * copyright (c) 2009 Laurent Aimar - * - * 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 - */ - -#ifndef AVCODEC_DXVA_H -#define AVCODEC_DXVA_H - -#include <stdint.h> - -#include <dxva2api.h> - -/** - * This structure is used to provides the necessary configurations and data - * to the DXVA2 Libav HWAccel implementation. - * - * The application must make it available as AVCodecContext.hwaccel_context. - */ -struct dxva_context { - /** - * DXVA2 decoder object - */ - IDirectXVideoDecoder *decoder; - - /** - * DXVA2 configuration used to create the decoder - */ - const DXVA2_ConfigPictureDecode *cfg; - - /** - * The number of surface in the surface array - */ - unsigned surface_count; - - /** - * The array of Direct3D surfaces used to create the decoder - */ - LPDIRECT3DSURFACE9 *surface; - - /** - * A bit field configuring the workarounds needed for using the decoder - */ - uint64_t workaround; - - /** - * Private to the Libav AVHWAccel implementation - */ - unsigned report_id; -}; - -#endif /* AVCODEC_DXVA_H */ diff --git a/tizen/distrib/libav/i386/include/libavcodec/opt.h b/tizen/distrib/libav/i386/include/libavcodec/opt.h deleted file mode 100644 index 2380e74332..0000000000 --- a/tizen/distrib/libav/i386/include/libavcodec/opt.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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 - * on next major bump - */ - -#ifndef AVCODEC_OPT_H -#define AVCODEC_OPT_H - -#include "libavcodec/version.h" - -#if FF_API_OPT_H -#include "libavutil/opt.h" -#endif - -#endif /* AVCODEC_OPT_H */ diff --git a/tizen/distrib/libav/i386/include/libavcodec/vaapi.h b/tizen/distrib/libav/i386/include/libavcodec/vaapi.h deleted file mode 100644 index 306e164b88..0000000000 --- a/tizen/distrib/libav/i386/include/libavcodec/vaapi.h +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Video Acceleration API (shared data between Libav and the video player) - * HW decode acceleration for MPEG-2, MPEG-4, H.264 and VC-1 - * - * Copyright (C) 2008-2009 Splitted-Desktop Systems - * - * 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 - */ - -#ifndef AVCODEC_VAAPI_H -#define AVCODEC_VAAPI_H - -#include <stdint.h> - -/** - * \defgroup VAAPI_Decoding VA API Decoding - * \ingroup Decoder - * @{ - */ - -/** - * This structure is used to share data between the Libav library and - * the client video application. - * This shall be zero-allocated and available as - * AVCodecContext.hwaccel_context. All user members can be set once - * during initialization or through each AVCodecContext.get_buffer() - * function call. In any case, they must be valid prior to calling - * decoding functions. - */ -struct vaapi_context { - /** - * Window system dependent data - * - * - encoding: unused - * - decoding: Set by user - */ - void *display; - - /** - * Configuration ID - * - * - encoding: unused - * - decoding: Set by user - */ - uint32_t config_id; - - /** - * Context ID (video decode pipeline) - * - * - encoding: unused - * - decoding: Set by user - */ - uint32_t context_id; - - /** - * VAPictureParameterBuffer ID - * - * - encoding: unused - * - decoding: Set by libavcodec - */ - uint32_t pic_param_buf_id; - - /** - * VAIQMatrixBuffer ID - * - * - encoding: unused - * - decoding: Set by libavcodec - */ - uint32_t iq_matrix_buf_id; - - /** - * VABitPlaneBuffer ID (for VC-1 decoding) - * - * - encoding: unused - * - decoding: Set by libavcodec - */ - uint32_t bitplane_buf_id; - - /** - * Slice parameter/data buffer IDs - * - * - encoding: unused - * - decoding: Set by libavcodec - */ - uint32_t *slice_buf_ids; - - /** - * Number of effective slice buffer IDs to send to the HW - * - * - encoding: unused - * - decoding: Set by libavcodec - */ - unsigned int n_slice_buf_ids; - - /** - * Size of pre-allocated slice_buf_ids - * - * - encoding: unused - * - decoding: Set by libavcodec - */ - unsigned int slice_buf_ids_alloc; - - /** - * Pointer to VASliceParameterBuffers - * - * - encoding: unused - * - decoding: Set by libavcodec - */ - void *slice_params; - - /** - * Size of a VASliceParameterBuffer element - * - * - encoding: unused - * - decoding: Set by libavcodec - */ - unsigned int slice_param_size; - - /** - * Size of pre-allocated slice_params - * - * - encoding: unused - * - decoding: Set by libavcodec - */ - unsigned int slice_params_alloc; - - /** - * Number of slices currently filled in - * - * - encoding: unused - * - decoding: Set by libavcodec - */ - unsigned int slice_count; - - /** - * Pointer to slice data buffer base - * - encoding: unused - * - decoding: Set by libavcodec - */ - const uint8_t *slice_data; - - /** - * Current size of slice data - * - * - encoding: unused - * - decoding: Set by libavcodec - */ - uint32_t slice_data_size; -}; - -/* @} */ - -#endif /* AVCODEC_VAAPI_H */ diff --git a/tizen/distrib/libav/i386/include/libavcodec/vdpau.h b/tizen/distrib/libav/i386/include/libavcodec/vdpau.h deleted file mode 100644 index d06ba634fb..0000000000 --- a/tizen/distrib/libav/i386/include/libavcodec/vdpau.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * The Video Decode and Presentation API for UNIX (VDPAU) is used for - * hardware-accelerated decoding of MPEG-1/2, H.264 and VC-1. - * - * Copyright (C) 2008 NVIDIA - * - * 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 - */ - -#ifndef AVCODEC_VDPAU_H -#define AVCODEC_VDPAU_H - -/** - * \defgroup Decoder VDPAU Decoder and Renderer - * - * VDPAU hardware acceleration has two modules - * - VDPAU decoding - * - VDPAU presentation - * - * The VDPAU decoding module parses all headers using Libav - * parsing mechanisms and uses VDPAU for the actual decoding. - * - * As per the current implementation, the actual decoding - * and rendering (API calls) are done as part of the VDPAU - * presentation (vo_vdpau.c) module. - * - * \defgroup VDPAU_Decoding VDPAU Decoding - * \ingroup Decoder - * @{ - */ - -#include <vdpau/vdpau.h> -#include <vdpau/vdpau_x11.h> - -/** \brief The videoSurface is used for rendering. */ -#define FF_VDPAU_STATE_USED_FOR_RENDER 1 - -/** - * \brief The videoSurface is needed for reference/prediction. - * The codec manipulates this. - */ -#define FF_VDPAU_STATE_USED_FOR_REFERENCE 2 - -/** - * \brief This structure is used as a callback between the Libav - * decoder (vd_) and presentation (vo_) module. - * This is used for defining a video frame containing surface, - * picture parameter, bitstream information etc which are passed - * between the Libav decoder and its clients. - */ -struct vdpau_render_state { - VdpVideoSurface surface; ///< Used as rendered surface, never changed. - - int state; ///< Holds FF_VDPAU_STATE_* values. - - /** picture parameter information for all supported codecs */ - union VdpPictureInfo { - VdpPictureInfoH264 h264; - VdpPictureInfoMPEG1Or2 mpeg; - VdpPictureInfoVC1 vc1; - VdpPictureInfoMPEG4Part2 mpeg4; - } info; - - /** Describe size/location of the compressed video data. - Set to 0 when freeing bitstream_buffers. */ - int bitstream_buffers_allocated; - int bitstream_buffers_used; - /** The user is responsible for freeing this buffer using av_freep(). */ - VdpBitstreamBuffer *bitstream_buffers; -}; - -/* @}*/ - -#endif /* AVCODEC_VDPAU_H */ diff --git a/tizen/distrib/libav/i386/include/libavcodec/version.h b/tizen/distrib/libav/i386/include/libavcodec/version.h deleted file mode 100644 index aded68e83e..0000000000 --- a/tizen/distrib/libav/i386/include/libavcodec/version.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * - * 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 - */ - -#ifndef AVCODEC_VERSION_H -#define AVCODEC_VERSION_H - -#define LIBAVCODEC_VERSION_MAJOR 53 -#define LIBAVCODEC_VERSION_MINOR 5 -#define LIBAVCODEC_VERSION_MICRO 0 - -#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ - LIBAVCODEC_VERSION_MINOR, \ - LIBAVCODEC_VERSION_MICRO) -#define LIBAVCODEC_VERSION AV_VERSION(LIBAVCODEC_VERSION_MAJOR, \ - LIBAVCODEC_VERSION_MINOR, \ - LIBAVCODEC_VERSION_MICRO) -#define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT - -#define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION) - -/** - * Those FF_API_* defines are not part of public API. - * They may change, break or disappear at any time. - */ -#ifndef FF_API_PALETTE_CONTROL -#define FF_API_PALETTE_CONTROL (LIBAVCODEC_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_OLD_SAMPLE_FMT -#define FF_API_OLD_SAMPLE_FMT (LIBAVCODEC_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_OLD_AUDIOCONVERT -#define FF_API_OLD_AUDIOCONVERT (LIBAVCODEC_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_ANTIALIAS_ALGO -#define FF_API_ANTIALIAS_ALGO (LIBAVCODEC_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_REQUEST_CHANNELS -#define FF_API_REQUEST_CHANNELS (LIBAVCODEC_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_OPT_H -#define FF_API_OPT_H (LIBAVCODEC_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_THREAD_INIT -#define FF_API_THREAD_INIT (LIBAVCODEC_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_OLD_FF_PICT_TYPES -#define FF_API_OLD_FF_PICT_TYPES (LIBAVCODEC_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_FLAC_GLOBAL_OPTS -#define FF_API_FLAC_GLOBAL_OPTS (LIBAVCODEC_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_GET_PIX_FMT_NAME -#define FF_API_GET_PIX_FMT_NAME (LIBAVCODEC_VERSION_MAJOR < 54) -#endif - -#endif /* AVCODEC_VERSION_H */ diff --git a/tizen/distrib/libav/i386/include/libavcodec/xvmc.h b/tizen/distrib/libav/i386/include/libavcodec/xvmc.h deleted file mode 100644 index 1239015fcd..0000000000 --- a/tizen/distrib/libav/i386/include/libavcodec/xvmc.h +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Copyright (C) 2003 Ivan Kalvachev - * - * 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 - */ - -#ifndef AVCODEC_XVMC_H -#define AVCODEC_XVMC_H - -#include <X11/extensions/XvMC.h> - -#include "avcodec.h" - -#define AV_XVMC_ID 0x1DC711C0 /**< special value to ensure that regular pixel routines haven't corrupted the struct - the number is 1337 speak for the letters IDCT MCo (motion compensation) */ - -struct xvmc_pix_fmt { - /** The field contains the special constant value AV_XVMC_ID. - It is used as a test that the application correctly uses the API, - and that there is no corruption caused by pixel routines. - - application - set during initialization - - libavcodec - unchanged - */ - int xvmc_id; - - /** Pointer to the block array allocated by XvMCCreateBlocks(). - The array has to be freed by XvMCDestroyBlocks(). - Each group of 64 values represents one data block of differential - pixel information (in MoCo mode) or coefficients for IDCT. - - application - set the pointer during initialization - - libavcodec - fills coefficients/pixel data into the array - */ - short* data_blocks; - - /** Pointer to the macroblock description array allocated by - XvMCCreateMacroBlocks() and freed by XvMCDestroyMacroBlocks(). - - application - set the pointer during initialization - - libavcodec - fills description data into the array - */ - XvMCMacroBlock* mv_blocks; - - /** Number of macroblock descriptions that can be stored in the mv_blocks - array. - - application - set during initialization - - libavcodec - unchanged - */ - int allocated_mv_blocks; - - /** Number of blocks that can be stored at once in the data_blocks array. - - application - set during initialization - - libavcodec - unchanged - */ - int allocated_data_blocks; - - /** Indicate that the hardware would interpret data_blocks as IDCT - coefficients and perform IDCT on them. - - application - set during initialization - - libavcodec - unchanged - */ - int idct; - - /** In MoCo mode it indicates that intra macroblocks are assumed to be in - unsigned format; same as the XVMC_INTRA_UNSIGNED flag. - - application - set during initialization - - libavcodec - unchanged - */ - int unsigned_intra; - - /** Pointer to the surface allocated by XvMCCreateSurface(). - It has to be freed by XvMCDestroySurface() on application exit. - It identifies the frame and its state on the video hardware. - - application - set during initialization - - libavcodec - unchanged - */ - XvMCSurface* p_surface; - -/** Set by the decoder before calling ff_draw_horiz_band(), - needed by the XvMCRenderSurface function. */ -//@{ - /** Pointer to the surface used as past reference - - application - unchanged - - libavcodec - set - */ - XvMCSurface* p_past_surface; - - /** Pointer to the surface used as future reference - - application - unchanged - - libavcodec - set - */ - XvMCSurface* p_future_surface; - - /** top/bottom field or frame - - application - unchanged - - libavcodec - set - */ - unsigned int picture_structure; - - /** XVMC_SECOND_FIELD - 1st or 2nd field in the sequence - - application - unchanged - - libavcodec - set - */ - unsigned int flags; -//}@ - - /** Number of macroblock descriptions in the mv_blocks array - that have already been passed to the hardware. - - application - zeroes it on get_buffer(). - A successful ff_draw_horiz_band() may increment it - with filled_mb_block_num or zero both. - - libavcodec - unchanged - */ - int start_mv_blocks_num; - - /** Number of new macroblock descriptions in the mv_blocks array (after - start_mv_blocks_num) that are filled by libavcodec and have to be - passed to the hardware. - - application - zeroes it on get_buffer() or after successful - ff_draw_horiz_band(). - - libavcodec - increment with one of each stored MB - */ - int filled_mv_blocks_num; - - /** Number of the the next free data block; one data block consists of - 64 short values in the data_blocks array. - All blocks before this one have already been claimed by placing their - position into the corresponding block description structure field, - that are part of the mv_blocks array. - - application - zeroes it on get_buffer(). - A successful ff_draw_horiz_band() may zero it together - with start_mb_blocks_num. - - libavcodec - each decoded macroblock increases it by the number - of coded blocks it contains. - */ - int next_free_data_block_num; -}; - -#endif /* AVCODEC_XVMC_H */ diff --git a/tizen/distrib/libav/i386/include/libavdevice/avdevice.h b/tizen/distrib/libav/i386/include/libavdevice/avdevice.h deleted file mode 100644 index d82b26fda6..0000000000 --- a/tizen/distrib/libav/i386/include/libavdevice/avdevice.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * 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 - */ - -#ifndef AVDEVICE_AVDEVICE_H -#define AVDEVICE_AVDEVICE_H - -#include "libavutil/avutil.h" - -#define LIBAVDEVICE_VERSION_MAJOR 53 -#define LIBAVDEVICE_VERSION_MINOR 0 -#define LIBAVDEVICE_VERSION_MICRO 0 - -#define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR, \ - LIBAVDEVICE_VERSION_MINOR, \ - LIBAVDEVICE_VERSION_MICRO) -#define LIBAVDEVICE_VERSION AV_VERSION(LIBAVDEVICE_VERSION_MAJOR, \ - LIBAVDEVICE_VERSION_MINOR, \ - LIBAVDEVICE_VERSION_MICRO) -#define LIBAVDEVICE_BUILD LIBAVDEVICE_VERSION_INT - -#ifndef FF_API_V4L -#define FF_API_V4L (LIBAVDEVICE_VERSION_MAJOR < 54) -#endif - -/** - * Return the LIBAVDEVICE_VERSION_INT constant. - */ -unsigned avdevice_version(void); - -/** - * Return the libavdevice build-time configuration. - */ -const char *avdevice_configuration(void); - -/** - * Return the libavdevice license. - */ -const char *avdevice_license(void); - -/** - * Initialize libavdevice and register all the input and output devices. - * @warning This function is not thread safe. - */ -void avdevice_register_all(void); - -#endif /* AVDEVICE_AVDEVICE_H */ - diff --git a/tizen/distrib/libav/i386/include/libavfilter/avfilter.h b/tizen/distrib/libav/i386/include/libavfilter/avfilter.h deleted file mode 100644 index 33e93e27fc..0000000000 --- a/tizen/distrib/libav/i386/include/libavfilter/avfilter.h +++ /dev/null @@ -1,862 +0,0 @@ -/* - * filter layer - * Copyright (c) 2007 Bobby Bingham - * - * 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 - */ - -#ifndef AVFILTER_AVFILTER_H -#define AVFILTER_AVFILTER_H - -#include "libavutil/avutil.h" -#include "libavutil/samplefmt.h" - -#define LIBAVFILTER_VERSION_MAJOR 2 -#define LIBAVFILTER_VERSION_MINOR 4 -#define LIBAVFILTER_VERSION_MICRO 0 - -#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ - LIBAVFILTER_VERSION_MINOR, \ - LIBAVFILTER_VERSION_MICRO) -#define LIBAVFILTER_VERSION AV_VERSION(LIBAVFILTER_VERSION_MAJOR, \ - LIBAVFILTER_VERSION_MINOR, \ - LIBAVFILTER_VERSION_MICRO) -#define LIBAVFILTER_BUILD LIBAVFILTER_VERSION_INT - -#include <stddef.h> - -/** - * Return the LIBAVFILTER_VERSION_INT constant. - */ -unsigned avfilter_version(void); - -/** - * Return the libavfilter build-time configuration. - */ -const char *avfilter_configuration(void); - -/** - * Return the libavfilter license. - */ -const char *avfilter_license(void); - - -typedef struct AVFilterContext AVFilterContext; -typedef struct AVFilterLink AVFilterLink; -typedef struct AVFilterPad AVFilterPad; - -/** - * A reference-counted buffer data type used by the filter system. Filters - * should not store pointers to this structure directly, but instead use the - * AVFilterBufferRef structure below. - */ -typedef struct AVFilterBuffer { - uint8_t *data[8]; ///< buffer data for each plane/channel - int linesize[8]; ///< number of bytes per line - - unsigned refcount; ///< number of references to this buffer - - /** private data to be used by a custom free function */ - void *priv; - /** - * A pointer to the function to deallocate this buffer if the default - * function is not sufficient. This could, for example, add the memory - * back into a memory pool to be reused later without the overhead of - * reallocating it from scratch. - */ - void (*free)(struct AVFilterBuffer *buf); - - int format; ///< media format - int w, h; ///< width and height of the allocated buffer -} AVFilterBuffer; - -#define AV_PERM_READ 0x01 ///< can read from the buffer -#define AV_PERM_WRITE 0x02 ///< can write to the buffer -#define AV_PERM_PRESERVE 0x04 ///< nobody else can overwrite the buffer -#define AV_PERM_REUSE 0x08 ///< can output the buffer multiple times, with the same contents each time -#define AV_PERM_REUSE2 0x10 ///< can output the buffer multiple times, modified each time -#define AV_PERM_NEG_LINESIZES 0x20 ///< the buffer requested can have negative linesizes - -/** - * Audio specific properties in a reference to an AVFilterBuffer. Since - * AVFilterBufferRef is common to different media formats, audio specific - * per reference properties must be separated out. - */ -typedef struct AVFilterBufferRefAudioProps { - int64_t channel_layout; ///< channel layout of audio buffer - int nb_samples; ///< number of audio samples - int size; ///< audio buffer size - uint32_t sample_rate; ///< audio buffer sample rate - int planar; ///< audio buffer - planar or packed -} AVFilterBufferRefAudioProps; - -/** - * Video specific properties in a reference to an AVFilterBuffer. Since - * AVFilterBufferRef is common to different media formats, video specific - * per reference properties must be separated out. - */ -typedef struct AVFilterBufferRefVideoProps { - int w; ///< image width - int h; ///< image height - AVRational pixel_aspect; ///< pixel aspect ratio - int interlaced; ///< is frame interlaced - int top_field_first; ///< field order - enum AVPictureType pict_type; ///< picture type of the frame - int key_frame; ///< 1 -> keyframe, 0-> not -} AVFilterBufferRefVideoProps; - -/** - * A reference to an AVFilterBuffer. Since filters can manipulate the origin of - * a buffer to, for example, crop image without any memcpy, the buffer origin - * and dimensions are per-reference properties. Linesize is also useful for - * image flipping, frame to field filters, etc, and so is also per-reference. - * - * TODO: add anything necessary for frame reordering - */ -typedef struct AVFilterBufferRef { - AVFilterBuffer *buf; ///< the buffer that this is a reference to - uint8_t *data[8]; ///< picture/audio data for each plane - int linesize[8]; ///< number of bytes per line - int format; ///< media format - - /** - * presentation timestamp. The time unit may change during - * filtering, as it is specified in the link and the filter code - * may need to rescale the PTS accordingly. - */ - int64_t pts; - int64_t pos; ///< byte position in stream, -1 if unknown - - int perms; ///< permissions, see the AV_PERM_* flags - - enum AVMediaType type; ///< media type of buffer data - AVFilterBufferRefVideoProps *video; ///< video buffer specific properties - AVFilterBufferRefAudioProps *audio; ///< audio buffer specific properties -} AVFilterBufferRef; - -/** - * Copy properties of src to dst, without copying the actual data - */ -static inline void avfilter_copy_buffer_ref_props(AVFilterBufferRef *dst, AVFilterBufferRef *src) -{ - // copy common properties - dst->pts = src->pts; - dst->pos = src->pos; - - switch (src->type) { - case AVMEDIA_TYPE_VIDEO: *dst->video = *src->video; break; - case AVMEDIA_TYPE_AUDIO: *dst->audio = *src->audio; break; - } -} - -/** - * Add a new reference to a buffer. - * - * @param ref an existing reference to the buffer - * @param pmask a bitmask containing the allowable permissions in the new - * reference - * @return a new reference to the buffer with the same properties as the - * old, excluding any permissions denied by pmask - */ -AVFilterBufferRef *avfilter_ref_buffer(AVFilterBufferRef *ref, int pmask); - -/** - * Remove a reference to a buffer. If this is the last reference to the - * buffer, the buffer itself is also automatically freed. - * - * @param ref reference to the buffer, may be NULL - */ -void avfilter_unref_buffer(AVFilterBufferRef *ref); - -/** - * A list of supported formats for one end of a filter link. This is used - * during the format negotiation process to try to pick the best format to - * use to minimize the number of necessary conversions. Each filter gives a - * list of the formats supported by each input and output pad. The list - * given for each pad need not be distinct - they may be references to the - * same list of formats, as is often the case when a filter supports multiple - * formats, but will always output the same format as it is given in input. - * - * In this way, a list of possible input formats and a list of possible - * output formats are associated with each link. When a set of formats is - * negotiated over a link, the input and output lists are merged to form a - * new list containing only the common elements of each list. In the case - * that there were no common elements, a format conversion is necessary. - * Otherwise, the lists are merged, and all other links which reference - * either of the format lists involved in the merge are also affected. - * - * For example, consider the filter chain: - * filter (a) --> (b) filter (b) --> (c) filter - * - * where the letters in parenthesis indicate a list of formats supported on - * the input or output of the link. Suppose the lists are as follows: - * (a) = {A, B} - * (b) = {A, B, C} - * (c) = {B, C} - * - * First, the first link's lists are merged, yielding: - * filter (a) --> (a) filter (a) --> (c) filter - * - * Notice that format list (b) now refers to the same list as filter list (a). - * Next, the lists for the second link are merged, yielding: - * filter (a) --> (a) filter (a) --> (a) filter - * - * where (a) = {B}. - * - * Unfortunately, when the format lists at the two ends of a link are merged, - * we must ensure that all links which reference either pre-merge format list - * get updated as well. Therefore, we have the format list structure store a - * pointer to each of the pointers to itself. - */ -typedef struct AVFilterFormats { - unsigned format_count; ///< number of formats - int *formats; ///< list of media formats - - unsigned refcount; ///< number of references to this list - struct AVFilterFormats ***refs; ///< references to this list -} AVFilterFormats; - -/** - * Create a list of supported formats. This is intended for use in - * AVFilter->query_formats(). - * - * @param fmts list of media formats, terminated by -1 - * @return the format list, with no existing references - */ -AVFilterFormats *avfilter_make_format_list(const int *fmts); - -/** - * Add fmt to the list of media formats contained in *avff. - * If *avff is NULL the function allocates the filter formats struct - * and puts its pointer in *avff. - * - * @return a non negative value in case of success, or a negative - * value corresponding to an AVERROR code in case of error - */ -int avfilter_add_format(AVFilterFormats **avff, int fmt); - -/** - * Return a list of all formats supported by Libav for the given media type. - */ -AVFilterFormats *avfilter_all_formats(enum AVMediaType type); - -/** - * Return a format list which contains the intersection of the formats of - * a and b. Also, all the references of a, all the references of b, and - * a and b themselves will be deallocated. - * - * If a and b do not share any common formats, neither is modified, and NULL - * is returned. - */ -AVFilterFormats *avfilter_merge_formats(AVFilterFormats *a, AVFilterFormats *b); - -/** - * Add *ref as a new reference to formats. - * That is the pointers will point like in the ascii art below: - * ________ - * |formats |<--------. - * | ____ | ____|___________________ - * | |refs| | | __|_ - * | |* * | | | | | | AVFilterLink - * | |* *--------->|*ref| - * | |____| | | |____| - * |________| |________________________ - */ -void avfilter_formats_ref(AVFilterFormats *formats, AVFilterFormats **ref); - -/** - * If *ref is non-NULL, remove *ref as a reference to the format list - * it currently points to, deallocates that list if this was the last - * reference, and sets *ref to NULL. - * - * Before After - * ________ ________ NULL - * |formats |<--------. |formats | ^ - * | ____ | ____|________________ | ____ | ____|________________ - * | |refs| | | __|_ | |refs| | | __|_ - * | |* * | | | | | | AVFilterLink | |* * | | | | | | AVFilterLink - * | |* *--------->|*ref| | |* | | | |*ref| - * | |____| | | |____| | |____| | | |____| - * |________| |_____________________ |________| |_____________________ - */ -void avfilter_formats_unref(AVFilterFormats **ref); - -/** - * - * Before After - * ________ ________ - * |formats |<---------. |formats |<---------. - * | ____ | ___|___ | ____ | ___|___ - * | |refs| | | | | | |refs| | | | | NULL - * | |* *--------->|*oldref| | |* *--------->|*newref| ^ - * | |* * | | |_______| | |* * | | |_______| ___|___ - * | |____| | | |____| | | | | - * |________| |________| |*oldref| - * |_______| - */ -void avfilter_formats_changeref(AVFilterFormats **oldref, - AVFilterFormats **newref); - -/** - * A filter pad used for either input or output. - */ -struct AVFilterPad { - /** - * Pad name. The name is unique among inputs and among outputs, but an - * input may have the same name as an output. This may be NULL if this - * pad has no need to ever be referenced by name. - */ - const char *name; - - /** - * AVFilterPad type. Only video supported now, hopefully someone will - * add audio in the future. - */ - enum AVMediaType type; - - /** - * Minimum required permissions on incoming buffers. Any buffer with - * insufficient permissions will be automatically copied by the filter - * system to a new buffer which provides the needed access permissions. - * - * Input pads only. - */ - int min_perms; - - /** - * Permissions which are not accepted on incoming buffers. Any buffer - * which has any of these permissions set will be automatically copied - * by the filter system to a new buffer which does not have those - * permissions. This can be used to easily disallow buffers with - * AV_PERM_REUSE. - * - * Input pads only. - */ - int rej_perms; - - /** - * Callback called before passing the first slice of a new frame. If - * NULL, the filter layer will default to storing a reference to the - * picture inside the link structure. - * - * Input video pads only. - */ - void (*start_frame)(AVFilterLink *link, AVFilterBufferRef *picref); - - /** - * Callback function to get a video buffer. If NULL, the filter system will - * use avfilter_default_get_video_buffer(). - * - * Input video pads only. - */ - AVFilterBufferRef *(*get_video_buffer)(AVFilterLink *link, int perms, int w, int h); - - /** - * Callback function to get an audio buffer. If NULL, the filter system will - * use avfilter_default_get_audio_buffer(). - * - * Input audio pads only. - */ - AVFilterBufferRef *(*get_audio_buffer)(AVFilterLink *link, int perms, - enum AVSampleFormat sample_fmt, int size, - int64_t channel_layout, int planar); - - /** - * Callback called after the slices of a frame are completely sent. If - * NULL, the filter layer will default to releasing the reference stored - * in the link structure during start_frame(). - * - * Input video pads only. - */ - void (*end_frame)(AVFilterLink *link); - - /** - * Slice drawing callback. This is where a filter receives video data - * and should do its processing. - * - * Input video pads only. - */ - void (*draw_slice)(AVFilterLink *link, int y, int height, int slice_dir); - - /** - * Samples filtering callback. This is where a filter receives audio data - * and should do its processing. - * - * Input audio pads only. - */ - void (*filter_samples)(AVFilterLink *link, AVFilterBufferRef *samplesref); - - /** - * Frame poll callback. This returns the number of immediately available - * samples. It should return a positive value if the next request_frame() - * is guaranteed to return one frame (with no delay). - * - * Defaults to just calling the source poll_frame() method. - * - * Output video pads only. - */ - int (*poll_frame)(AVFilterLink *link); - - /** - * Frame request callback. A call to this should result in at least one - * frame being output over the given link. This should return zero on - * success, and another value on error. - * - * Output video pads only. - */ - int (*request_frame)(AVFilterLink *link); - - /** - * Link configuration callback. - * - * For output pads, this should set the link properties such as - * width/height. This should NOT set the format property - that is - * negotiated between filters by the filter system using the - * query_formats() callback before this function is called. - * - * For input pads, this should check the properties of the link, and update - * the filter's internal state as necessary. - * - * For both input and output filters, this should return zero on success, - * and another value on error. - */ - int (*config_props)(AVFilterLink *link); -}; - -/** default handler for start_frame() for video inputs */ -void avfilter_default_start_frame(AVFilterLink *link, AVFilterBufferRef *picref); - -/** default handler for draw_slice() for video inputs */ -void avfilter_default_draw_slice(AVFilterLink *link, int y, int h, int slice_dir); - -/** default handler for end_frame() for video inputs */ -void avfilter_default_end_frame(AVFilterLink *link); - -/** default handler for filter_samples() for audio inputs */ -void avfilter_default_filter_samples(AVFilterLink *link, AVFilterBufferRef *samplesref); - -/** default handler for config_props() for audio/video outputs */ -int avfilter_default_config_output_link(AVFilterLink *link); - -/** default handler for config_props() for audio/video inputs */ -int avfilter_default_config_input_link (AVFilterLink *link); - -/** default handler for get_video_buffer() for video inputs */ -AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link, - int perms, int w, int h); - -/** default handler for get_audio_buffer() for audio inputs */ -AVFilterBufferRef *avfilter_default_get_audio_buffer(AVFilterLink *link, int perms, - enum AVSampleFormat sample_fmt, int size, - int64_t channel_layout, int planar); - -/** - * A helper for query_formats() which sets all links to the same list of - * formats. If there are no links hooked to this filter, the list of formats is - * freed. - */ -void avfilter_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats); - -/** Default handler for query_formats() */ -int avfilter_default_query_formats(AVFilterContext *ctx); - -/** start_frame() handler for filters which simply pass video along */ -void avfilter_null_start_frame(AVFilterLink *link, AVFilterBufferRef *picref); - -/** draw_slice() handler for filters which simply pass video along */ -void avfilter_null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir); - -/** end_frame() handler for filters which simply pass video along */ -void avfilter_null_end_frame(AVFilterLink *link); - -/** filter_samples() handler for filters which simply pass audio along */ -void avfilter_null_filter_samples(AVFilterLink *link, AVFilterBufferRef *samplesref); - -/** get_video_buffer() handler for filters which simply pass video along */ -AVFilterBufferRef *avfilter_null_get_video_buffer(AVFilterLink *link, - int perms, int w, int h); - -/** get_audio_buffer() handler for filters which simply pass audio along */ -AVFilterBufferRef *avfilter_null_get_audio_buffer(AVFilterLink *link, int perms, - enum AVSampleFormat sample_fmt, int size, - int64_t channel_layout, int planar); - -/** - * Filter definition. This defines the pads a filter contains, and all the - * callback functions used to interact with the filter. - */ -typedef struct AVFilter { - const char *name; ///< filter name - - int priv_size; ///< size of private data to allocate for the filter - - /** - * Filter initialization function. Args contains the user-supplied - * parameters. FIXME: maybe an AVOption-based system would be better? - * opaque is data provided by the code requesting creation of the filter, - * and is used to pass data to the filter. - */ - int (*init)(AVFilterContext *ctx, const char *args, void *opaque); - - /** - * Filter uninitialization function. Should deallocate any memory held - * by the filter, release any buffer references, etc. This does not need - * to deallocate the AVFilterContext->priv memory itself. - */ - void (*uninit)(AVFilterContext *ctx); - - /** - * Queries formats supported by the filter and its pads, and sets the - * in_formats for links connected to its output pads, and out_formats - * for links connected to its input pads. - * - * @return zero on success, a negative value corresponding to an - * AVERROR code otherwise - */ - int (*query_formats)(AVFilterContext *); - - const AVFilterPad *inputs; ///< NULL terminated list of inputs. NULL if none - const AVFilterPad *outputs; ///< NULL terminated list of outputs. NULL if none - - /** - * A description for the filter. You should use the - * NULL_IF_CONFIG_SMALL() macro to define it. - */ - const char *description; -} AVFilter; - -/** An instance of a filter */ -struct AVFilterContext { - const AVClass *av_class; ///< needed for av_log() - - AVFilter *filter; ///< the AVFilter of which this is an instance - - char *name; ///< name of this filter instance - - unsigned input_count; ///< number of input pads - AVFilterPad *input_pads; ///< array of input pads - AVFilterLink **inputs; ///< array of pointers to input links - - unsigned output_count; ///< number of output pads - AVFilterPad *output_pads; ///< array of output pads - AVFilterLink **outputs; ///< array of pointers to output links - - void *priv; ///< private data for use by the filter -}; - -/** - * A link between two filters. This contains pointers to the source and - * destination filters between which this link exists, and the indexes of - * the pads involved. In addition, this link also contains the parameters - * which have been negotiated and agreed upon between the filter, such as - * image dimensions, format, etc. - */ -struct AVFilterLink { - AVFilterContext *src; ///< source filter - AVFilterPad *srcpad; ///< output pad on the source filter - - AVFilterContext *dst; ///< dest filter - AVFilterPad *dstpad; ///< input pad on the dest filter - - /** stage of the initialization of the link properties (dimensions, etc) */ - enum { - AVLINK_UNINIT = 0, ///< not started - AVLINK_STARTINIT, ///< started, but incomplete - AVLINK_INIT ///< complete - } init_state; - - enum AVMediaType type; ///< filter media type - - /* These parameters apply only to video */ - int w; ///< agreed upon image width - int h; ///< agreed upon image height - AVRational sample_aspect_ratio; ///< agreed upon sample aspect ratio - /* These two parameters apply only to audio */ - int64_t channel_layout; ///< channel layout of current buffer (see libavutil/audioconvert.h) - int64_t sample_rate; ///< samples per second - - int format; ///< agreed upon media format - - /** - * Lists of formats supported by the input and output filters respectively. - * These lists are used for negotiating the format to actually be used, - * which will be loaded into the format member, above, when chosen. - */ - AVFilterFormats *in_formats; - AVFilterFormats *out_formats; - - /** - * The buffer reference currently being sent across the link by the source - * filter. This is used internally by the filter system to allow - * automatic copying of buffers which do not have sufficient permissions - * for the destination. This should not be accessed directly by the - * filters. - */ - AVFilterBufferRef *src_buf; - - AVFilterBufferRef *cur_buf; - AVFilterBufferRef *out_buf; - - /** - * Define the time base used by the PTS of the frames/samples - * which will pass through this link. - * During the configuration stage, each filter is supposed to - * change only the output timebase, while the timebase of the - * input link is assumed to be an unchangeable property. - */ - AVRational time_base; -}; - -/** - * Link two filters together. - * - * @param src the source filter - * @param srcpad index of the output pad on the source filter - * @param dst the destination filter - * @param dstpad index of the input pad on the destination filter - * @return zero on success - */ -int avfilter_link(AVFilterContext *src, unsigned srcpad, - AVFilterContext *dst, unsigned dstpad); - -/** - * Negotiate the media format, dimensions, etc of all inputs to a filter. - * - * @param filter the filter to negotiate the properties for its inputs - * @return zero on successful negotiation - */ -int avfilter_config_links(AVFilterContext *filter); - -/** - * Request a picture buffer with a specific set of permissions. - * - * @param link the output link to the filter from which the buffer will - * be requested - * @param perms the required access permissions - * @param w the minimum width of the buffer to allocate - * @param h the minimum height of the buffer to allocate - * @return A reference to the buffer. This must be unreferenced with - * avfilter_unref_buffer when you are finished with it. - */ -AVFilterBufferRef *avfilter_get_video_buffer(AVFilterLink *link, int perms, - int w, int h); - -/** - * Create a buffer reference wrapped around an already allocated image - * buffer. - * - * @param data pointers to the planes of the image to reference - * @param linesize linesizes for the planes of the image to reference - * @param perms the required access permissions - * @param w the width of the image specified by the data and linesize arrays - * @param h the height of the image specified by the data and linesize arrays - * @param format the pixel format of the image specified by the data and linesize arrays - */ -AVFilterBufferRef * -avfilter_get_video_buffer_ref_from_arrays(uint8_t *data[4], int linesize[4], int perms, - int w, int h, enum PixelFormat format); - -/** - * Request an audio samples buffer with a specific set of permissions. - * - * @param link the output link to the filter from which the buffer will - * be requested - * @param perms the required access permissions - * @param sample_fmt the format of each sample in the buffer to allocate - * @param size the buffer size in bytes - * @param channel_layout the number and type of channels per sample in the buffer to allocate - * @param planar audio data layout - planar or packed - * @return A reference to the samples. This must be unreferenced with - * avfilter_unref_buffer when you are finished with it. - */ -AVFilterBufferRef *avfilter_get_audio_buffer(AVFilterLink *link, int perms, - enum AVSampleFormat sample_fmt, int size, - int64_t channel_layout, int planar); - -/** - * Request an input frame from the filter at the other end of the link. - * - * @param link the input link - * @return zero on success - */ -int avfilter_request_frame(AVFilterLink *link); - -/** - * Poll a frame from the filter chain. - * - * @param link the input link - * @return the number of immediately available frames, a negative - * number in case of error - */ -int avfilter_poll_frame(AVFilterLink *link); - -/** - * Notifie the next filter of the start of a frame. - * - * @param link the output link the frame will be sent over - * @param picref A reference to the frame about to be sent. The data for this - * frame need only be valid once draw_slice() is called for that - * portion. The receiving filter will free this reference when - * it no longer needs it. - */ -void avfilter_start_frame(AVFilterLink *link, AVFilterBufferRef *picref); - -/** - * Notifie the next filter that the current frame has finished. - * - * @param link the output link the frame was sent over - */ -void avfilter_end_frame(AVFilterLink *link); - -/** - * Send a slice to the next filter. - * - * Slices have to be provided in sequential order, either in - * top-bottom or bottom-top order. If slices are provided in - * non-sequential order the behavior of the function is undefined. - * - * @param link the output link over which the frame is being sent - * @param y offset in pixels from the top of the image for this slice - * @param h height of this slice in pixels - * @param slice_dir the assumed direction for sending slices, - * from the top slice to the bottom slice if the value is 1, - * from the bottom slice to the top slice if the value is -1, - * for other values the behavior of the function is undefined. - */ -void avfilter_draw_slice(AVFilterLink *link, int y, int h, int slice_dir); - -/** - * Send a buffer of audio samples to the next filter. - * - * @param link the output link over which the audio samples are being sent - * @param samplesref a reference to the buffer of audio samples being sent. The - * receiving filter will free this reference when it no longer - * needs it or pass it on to the next filter. - */ -void avfilter_filter_samples(AVFilterLink *link, AVFilterBufferRef *samplesref); - -/** Initialize the filter system. Register all builtin filters. */ -void avfilter_register_all(void); - -/** Uninitialize the filter system. Unregister all filters. */ -void avfilter_uninit(void); - -/** - * Register a filter. This is only needed if you plan to use - * avfilter_get_by_name later to lookup the AVFilter structure by name. A - * filter can still by instantiated with avfilter_open even if it is not - * registered. - * - * @param filter the filter to register - * @return 0 if the registration was succesfull, a negative value - * otherwise - */ -int avfilter_register(AVFilter *filter); - -/** - * Get a filter definition matching the given name. - * - * @param name the filter name to find - * @return the filter definition, if any matching one is registered. - * NULL if none found. - */ -AVFilter *avfilter_get_by_name(const char *name); - -/** - * If filter is NULL, returns a pointer to the first registered filter pointer, - * if filter is non-NULL, returns the next pointer after filter. - * If the returned pointer points to NULL, the last registered filter - * was already reached. - */ -AVFilter **av_filter_next(AVFilter **filter); - -/** - * Create a filter instance. - * - * @param filter_ctx put here a pointer to the created filter context - * on success, NULL on failure - * @param filter the filter to create an instance of - * @param inst_name Name to give to the new instance. Can be NULL for none. - * @return >= 0 in case of success, a negative error code otherwise - */ -int avfilter_open(AVFilterContext **filter_ctx, AVFilter *filter, const char *inst_name); - -/** - * Initialize a filter. - * - * @param filter the filter to initialize - * @param args A string of parameters to use when initializing the filter. - * The format and meaning of this string varies by filter. - * @param opaque Any extra non-string data needed by the filter. The meaning - * of this parameter varies by filter. - * @return zero on success - */ -int avfilter_init_filter(AVFilterContext *filter, const char *args, void *opaque); - -/** - * Free a filter context. - * - * @param filter the filter to free - */ -void avfilter_free(AVFilterContext *filter); - -/** - * Insert a filter in the middle of an existing link. - * - * @param link the link into which the filter should be inserted - * @param filt the filter to be inserted - * @param filt_srcpad_idx the input pad on the filter to connect - * @param filt_dstpad_idx the output pad on the filter to connect - * @return zero on success - */ -int avfilter_insert_filter(AVFilterLink *link, AVFilterContext *filt, - unsigned filt_srcpad_idx, unsigned filt_dstpad_idx); - -/** - * Insert a new pad. - * - * @param idx Insertion point. Pad is inserted at the end if this point - * is beyond the end of the list of pads. - * @param count Pointer to the number of pads in the list - * @param padidx_off Offset within an AVFilterLink structure to the element - * to increment when inserting a new pad causes link - * numbering to change - * @param pads Pointer to the pointer to the beginning of the list of pads - * @param links Pointer to the pointer to the beginning of the list of links - * @param newpad The new pad to add. A copy is made when adding. - */ -void avfilter_insert_pad(unsigned idx, unsigned *count, size_t padidx_off, - AVFilterPad **pads, AVFilterLink ***links, - AVFilterPad *newpad); - -/** Insert a new input pad for the filter. */ -static inline void avfilter_insert_inpad(AVFilterContext *f, unsigned index, - AVFilterPad *p) -{ - avfilter_insert_pad(index, &f->input_count, offsetof(AVFilterLink, dstpad), - &f->input_pads, &f->inputs, p); -} - -/** Insert a new output pad for the filter. */ -static inline void avfilter_insert_outpad(AVFilterContext *f, unsigned index, - AVFilterPad *p) -{ - avfilter_insert_pad(index, &f->output_count, offsetof(AVFilterLink, srcpad), - &f->output_pads, &f->outputs, p); -} - -#endif /* AVFILTER_AVFILTER_H */ diff --git a/tizen/distrib/libav/i386/include/libavfilter/avfiltergraph.h b/tizen/distrib/libav/i386/include/libavfilter/avfiltergraph.h deleted file mode 100644 index a0f6b2e01f..0000000000 --- a/tizen/distrib/libav/i386/include/libavfilter/avfiltergraph.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Filter graphs - * copyright (c) 2007 Bobby Bingham - * - * 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 - */ - -#ifndef AVFILTER_AVFILTERGRAPH_H -#define AVFILTER_AVFILTERGRAPH_H - -#include "avfilter.h" - -typedef struct AVFilterGraph { - unsigned filter_count; - AVFilterContext **filters; - - char *scale_sws_opts; ///< sws options to use for the auto-inserted scale filters -} AVFilterGraph; - -/** - * Allocate a filter graph. - */ -AVFilterGraph *avfilter_graph_alloc(void); - -/** - * Get a filter instance with name name from graph. - * - * @return the pointer to the found filter instance or NULL if it - * cannot be found. - */ -AVFilterContext *avfilter_graph_get_filter(AVFilterGraph *graph, char *name); - -/** - * Add an existing filter instance to a filter graph. - * - * @param graphctx the filter graph - * @param filter the filter to be added - */ -int avfilter_graph_add_filter(AVFilterGraph *graphctx, AVFilterContext *filter); - -/** - * Create and add a filter instance into an existing graph. - * The filter instance is created from the filter filt and inited - * with the parameters args and opaque. - * - * In case of success put in *filt_ctx the pointer to the created - * filter instance, otherwise set *filt_ctx to NULL. - * - * @param name the instance name to give to the created filter instance - * @param graph_ctx the filter graph - * @return a negative AVERROR error code in case of failure, a non - * negative value otherwise - */ -int avfilter_graph_create_filter(AVFilterContext **filt_ctx, AVFilter *filt, - const char *name, const char *args, void *opaque, - AVFilterGraph *graph_ctx); - -/** - * Check validity and configure all the links and formats in the graph. - * - * @param graphctx the filter graph - * @param log_ctx context used for logging - * @return 0 in case of success, a negative AVERROR code otherwise - */ -int avfilter_graph_config(AVFilterGraph *graphctx, AVClass *log_ctx); - -/** - * Free a graph, destroy its links, and set *graph to NULL. - * If *graph is NULL, do nothing. - */ -void avfilter_graph_free(AVFilterGraph **graph); - -/** - * A linked-list of the inputs/outputs of the filter chain. - * - * This is mainly useful for avfilter_graph_parse(), since this - * function may accept a description of a graph with not connected - * input/output pads. This struct specifies, per each not connected - * pad contained in the graph, the filter context and the pad index - * required for establishing a link. - */ -typedef struct AVFilterInOut { - /** unique name for this input/output in the list */ - char *name; - - /** filter context associated to this input/output */ - AVFilterContext *filter_ctx; - - /** index of the filt_ctx pad to use for linking */ - int pad_idx; - - /** next input/input in the list, NULL if this is the last */ - struct AVFilterInOut *next; -} AVFilterInOut; - -/** - * Add a graph described by a string to a graph. - * - * @param graph the filter graph where to link the parsed graph context - * @param filters string to be parsed - * @param inputs linked list to the inputs of the graph - * @param outputs linked list to the outputs of the graph - * @return zero on success, a negative AVERROR code on error - */ -int avfilter_graph_parse(AVFilterGraph *graph, const char *filters, - AVFilterInOut *inputs, AVFilterInOut *outputs, - AVClass *log_ctx); - -#endif /* AVFILTER_AVFILTERGRAPH_H */ diff --git a/tizen/distrib/libav/i386/include/libavformat/avformat.h b/tizen/distrib/libav/i386/include/libavformat/avformat.h deleted file mode 100644 index 8561a50c01..0000000000 --- a/tizen/distrib/libav/i386/include/libavformat/avformat.h +++ /dev/null @@ -1,1544 +0,0 @@ -/* - * copyright (c) 2001 Fabrice Bellard - * - * 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 - */ - -#ifndef AVFORMAT_AVFORMAT_H -#define AVFORMAT_AVFORMAT_H - - -/** - * Return the LIBAVFORMAT_VERSION_INT constant. - */ -unsigned avformat_version(void); - -/** - * Return the libavformat build-time configuration. - */ -const char *avformat_configuration(void); - -/** - * Return the libavformat license. - */ -const char *avformat_license(void); - -#include <time.h> -#include <stdio.h> /* FILE */ -#include "libavcodec/avcodec.h" -#include "libavutil/dict.h" - -#include "avio.h" -#include "libavformat/version.h" - -struct AVFormatContext; - - -/** - * @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 Libav, - * 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: - * - 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. - * - 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. - * - 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. - * - 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. - * - 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". - * - * - 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: - * - @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 -/** - * @defgroup old_metadata Old metadata API - * The following functions are deprecated, use - * their equivalents from libavutil/dict.h instead. - * @{ - */ - -#define AV_METADATA_MATCH_CASE AV_DICT_MATCH_CASE -#define AV_METADATA_IGNORE_SUFFIX AV_DICT_IGNORE_SUFFIX -#define AV_METADATA_DONT_STRDUP_KEY AV_DICT_DONT_STRDUP_KEY -#define AV_METADATA_DONT_STRDUP_VAL AV_DICT_DONT_STRDUP_VAL -#define AV_METADATA_DONT_OVERWRITE AV_DICT_DONT_OVERWRITE - -typedef attribute_deprecated AVDictionary AVMetadata; -typedef attribute_deprecated AVDictionaryEntry AVMetadataTag; - -typedef struct AVMetadataConv AVMetadataConv; - -/** - * Get a metadata element with matching key. - * - * @param prev Set to the previous matching element to find the next. - * If set to NULL the first matching element is returned. - * @param flags Allows case as well as suffix-insensitive comparisons. - * @return Found tag or NULL, changing key or value leads to undefined behavior. - */ -attribute_deprecated AVDictionaryEntry * -av_metadata_get(AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags); - -/** - * Set the given tag in *pm, overwriting an existing tag. - * - * @param pm pointer to a pointer to a metadata struct. If *pm is NULL - * a metadata struct is allocated and put in *pm. - * @param key tag key to add to *pm (will be av_strduped depending on flags) - * @param value tag value to add to *pm (will be av_strduped depending on flags). - * Passing a NULL value will cause an existing tag to be deleted. - * @return >= 0 on success otherwise an error code <0 - */ -attribute_deprecated int av_metadata_set2(AVDictionary **pm, const char *key, const char *value, int flags); - -/** - * This function is provided for compatibility reason and currently does nothing. - */ -attribute_deprecated void av_metadata_conv(struct AVFormatContext *ctx, const AVMetadataConv *d_conv, - const AVMetadataConv *s_conv); - -/** - * Copy metadata from one AVDictionary struct into another. - * @param dst pointer to a pointer to a AVDictionary struct. If *dst is NULL, - * this function will allocate a struct for you and put it in *dst - * @param src pointer to source AVDictionary struct - * @param flags flags to use when setting metadata in *dst - * @note metadata is read using the AV_DICT_IGNORE_SUFFIX flag - */ -attribute_deprecated void av_metadata_copy(AVDictionary **dst, AVDictionary *src, int flags); - -/** - * Free all the memory allocated for an AVDictionary struct. - */ -attribute_deprecated void av_metadata_free(AVDictionary **m); -/** - * @} - */ -#endif - - -/* packet functions */ - - -/** - * Allocate and read the payload of a packet and initialize its - * fields with default values. - * - * @param pkt packet - * @param size desired payload size - * @return >0 (read size) if OK, AVERROR_xxx otherwise - */ -int av_get_packet(AVIOContext *s, AVPacket *pkt, int size); - - -/** - * Read data and append it to the current content of the AVPacket. - * If pkt->size is 0 this is identical to av_get_packet. - * Note that this uses av_grow_packet and thus involves a realloc - * which is inefficient. Thus this function should only be used - * when there is no reasonable way to know (an upper bound of) - * the final size. - * - * @param pkt packet - * @param size amount of data to read - * @return >0 (read size) if OK, AVERROR_xxx otherwise, previous data - * will not be lost even if an error occurs. - */ -int av_append_packet(AVIOContext *s, AVPacket *pkt, int size); - -/*************************************************/ -/* fractional numbers for exact pts handling */ - -/** - * The exact value of the fractional number is: 'val + num / den'. - * num is assumed to be 0 <= num < den. - */ -typedef struct AVFrac { - int64_t val, num, den; -} AVFrac; - -/*************************************************/ -/* input/output formats */ - -struct AVCodecTag; - -/** - * This structure contains the data a format has to probe a file. - */ -typedef struct AVProbeData { - const char *filename; - unsigned char *buf; /**< Buffer must have AVPROBE_PADDING_SIZE of extra allocated bytes filled with zero. */ - int buf_size; /**< Size of buf except extra allocated bytes */ -} AVProbeData; - -#define AVPROBE_SCORE_MAX 100 ///< maximum score, half of that is used for file-extension-based detection -#define AVPROBE_PADDING_SIZE 32 ///< extra allocated bytes at the end of the probe buffer - -typedef struct AVFormatParameters { -#if FF_API_FORMAT_PARAMETERS - attribute_deprecated AVRational time_base; - attribute_deprecated int sample_rate; - attribute_deprecated int channels; - attribute_deprecated int width; - attribute_deprecated int height; - attribute_deprecated enum PixelFormat pix_fmt; - attribute_deprecated int channel; /**< Used to select DV channel. */ - attribute_deprecated const char *standard; /**< deprecated, use demuxer-specific options instead. */ - attribute_deprecated unsigned int mpeg2ts_raw:1; /**< deprecated, use mpegtsraw demuxer */ - /**< deprecated, use mpegtsraw demuxer-specific options instead */ - attribute_deprecated unsigned int mpeg2ts_compute_pcr:1; - attribute_deprecated unsigned int initial_pause:1; /**< Do not begin to play the stream - immediately (RTSP only). */ - attribute_deprecated unsigned int prealloced_context:1; -#endif -} AVFormatParameters; - -//! Demuxer will use avio_open, no opened file should be provided by the caller. -#define AVFMT_NOFILE 0x0001 -#define AVFMT_NEEDNUMBER 0x0002 /**< Needs '%d' in filename. */ -#define AVFMT_SHOW_IDS 0x0008 /**< Show format stream IDs numbers. */ -#define AVFMT_RAWPICTURE 0x0020 /**< Format wants AVPicture structure for - raw picture data. */ -#define AVFMT_GLOBALHEADER 0x0040 /**< Format wants global header. */ -#define AVFMT_NOTIMESTAMPS 0x0080 /**< Format does not need / have any timestamps. */ -#define AVFMT_GENERIC_INDEX 0x0100 /**< Use generic index building code. */ -#define AVFMT_TS_DISCONT 0x0200 /**< Format allows timestamp discontinuities. Note, muxers always require valid (monotone) timestamps */ -#define AVFMT_VARIABLE_FPS 0x0400 /**< Format allows variable fps. */ -#define AVFMT_NODIMENSIONS 0x0800 /**< Format does not need width/height */ -#define AVFMT_NOSTREAMS 0x1000 /**< Format does not require any streams */ -#define AVFMT_NOBINSEARCH 0x2000 /**< Format does not allow to fallback to binary search via read_timestamp */ -#define AVFMT_NOGENSEARCH 0x4000 /**< Format does not allow to fallback to generic search */ - -typedef struct AVOutputFormat { - const char *name; - /** - * Descriptive name for the format, meant to be more human-readable - * than name. You should use the NULL_IF_CONFIG_SMALL() macro - * to define it. - */ - const char *long_name; - const char *mime_type; - const char *extensions; /**< comma-separated filename extensions */ - /** - * size of private data so that it can be allocated in the wrapper - */ - int priv_data_size; - /* output support */ - enum CodecID audio_codec; /**< default audio codec */ - enum CodecID video_codec; /**< default video codec */ - int (*write_header)(struct AVFormatContext *); - int (*write_packet)(struct AVFormatContext *, AVPacket *pkt); - int (*write_trailer)(struct AVFormatContext *); - /** - * can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_RAWPICTURE, - * AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_VARIABLE_FPS, - * AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS - */ - int flags; - /** - * Currently only used to set pixel format if not YUV420P. - */ - int (*set_parameters)(struct AVFormatContext *, AVFormatParameters *); - int (*interleave_packet)(struct AVFormatContext *, AVPacket *out, - AVPacket *in, int flush); - - /** - * List of supported codec_id-codec_tag pairs, ordered by "better - * choice first". The arrays are all terminated by CODEC_ID_NONE. - */ - const struct AVCodecTag * const *codec_tag; - - enum CodecID subtitle_codec; /**< default subtitle codec */ - -#if FF_API_OLD_METADATA2 - const AVMetadataConv *metadata_conv; -#endif - - const AVClass *priv_class; ///< AVClass for the private context - - /* private fields */ - struct AVOutputFormat *next; -} AVOutputFormat; - -typedef struct AVInputFormat { - /** - * A comma separated list of short names for the format. New names - * may be appended with a minor bump. - */ - const char *name; - - /** - * Descriptive name for the format, meant to be more human-readable - * than name. You should use the NULL_IF_CONFIG_SMALL() macro - * to define it. - */ - const char *long_name; - - /** - * Size of private data so that it can be allocated in the wrapper. - */ - int priv_data_size; - - /** - * Tell if a given file has a chance of being parsed as this format. - * The buffer provided is guaranteed to be AVPROBE_PADDING_SIZE bytes - * big so you do not have to check for that unless you need more. - */ - int (*read_probe)(AVProbeData *); - - /** - * Read the format header and initialize the AVFormatContext - * structure. Return 0 if OK. 'ap' if non-NULL contains - * additional parameters. Only used in raw format right - * now. 'av_new_stream' should be called to create new streams. - */ - int (*read_header)(struct AVFormatContext *, - AVFormatParameters *ap); - - /** - * Read one packet and put it in 'pkt'. pts and flags are also - * set. 'av_new_stream' can be called only if the flag - * AVFMTCTX_NOHEADER is used and only in the calling thread (not in a - * background thread). - * @return 0 on success, < 0 on error. - * When returning an error, pkt must not have been allocated - * or must be freed before returning - */ - int (*read_packet)(struct AVFormatContext *, AVPacket *pkt); - - /** - * Close the stream. The AVFormatContext and AVStreams are not - * freed by this function - */ - int (*read_close)(struct AVFormatContext *); - -#if FF_API_READ_SEEK - /** - * Seek to a given timestamp relative to the frames in - * stream component stream_index. - * @param stream_index Must not be -1. - * @param flags Selects which direction should be preferred if no exact - * match is available. - * @return >= 0 on success (but not necessarily the new offset) - */ - attribute_deprecated int (*read_seek)(struct AVFormatContext *, - int stream_index, int64_t timestamp, int flags); -#endif - /** - * Gets the next timestamp in stream[stream_index].time_base units. - * @return the timestamp or AV_NOPTS_VALUE if an error occurred - */ - int64_t (*read_timestamp)(struct AVFormatContext *s, int stream_index, - int64_t *pos, int64_t pos_limit); - - /** - * Can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER. - */ - int flags; - - /** - * If extensions are defined, then no probe is done. You should - * usually not use extension format guessing because it is not - * reliable enough - */ - const char *extensions; - - /** - * General purpose read-only value that the format can use. - */ - int value; - - /** - * Start/resume playing - only meaningful if using a network-based format - * (RTSP). - */ - int (*read_play)(struct AVFormatContext *); - - /** - * Pause playing - only meaningful if using a network-based format - * (RTSP). - */ - int (*read_pause)(struct AVFormatContext *); - - const struct AVCodecTag * const *codec_tag; - - /** - * Seek to timestamp ts. - * Seeking will be done so that the point from which all active streams - * can be presented successfully will be closest to ts and within min/max_ts. - * Active streams are all streams that have AVStream.discard < AVDISCARD_ALL. - */ - int (*read_seek2)(struct AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags); - -#if FF_API_OLD_METADATA2 - const AVMetadataConv *metadata_conv; -#endif - - const AVClass *priv_class; ///< AVClass for the private context - - /* private fields */ - struct AVInputFormat *next; -} AVInputFormat; - -enum AVStreamParseType { - AVSTREAM_PARSE_NONE, - AVSTREAM_PARSE_FULL, /**< full parsing and repack */ - AVSTREAM_PARSE_HEADERS, /**< Only parse headers, do not repack. */ - AVSTREAM_PARSE_TIMESTAMPS, /**< full parsing and interpolation of timestamps for frames not starting on a packet boundary */ - AVSTREAM_PARSE_FULL_ONCE, /**< full parsing and repack of the first frame only, only implemented for H.264 currently */ -}; - -typedef struct AVIndexEntry { - int64_t pos; - int64_t timestamp; -#define AVINDEX_KEYFRAME 0x0001 - int flags:2; - int size:30; //Yeah, trying to keep the size of this small to reduce memory requirements (it is 24 vs. 32 bytes due to possible 8-byte alignment). - int min_distance; /**< Minimum distance between this and the previous keyframe, used to avoid unneeded searching. */ -} AVIndexEntry; - -#define AV_DISPOSITION_DEFAULT 0x0001 -#define AV_DISPOSITION_DUB 0x0002 -#define AV_DISPOSITION_ORIGINAL 0x0004 -#define AV_DISPOSITION_COMMENT 0x0008 -#define AV_DISPOSITION_LYRICS 0x0010 -#define AV_DISPOSITION_KARAOKE 0x0020 - -/** - * Track should be used during playback by default. - * Useful for subtitle track that should be displayed - * even when user did not explicitly ask for subtitles. - */ -#define AV_DISPOSITION_FORCED 0x0040 -#define AV_DISPOSITION_HEARING_IMPAIRED 0x0080 /**< stream for hearing impaired audiences */ -#define AV_DISPOSITION_VISUAL_IMPAIRED 0x0100 /**< stream for visual impaired audiences */ -#define AV_DISPOSITION_CLEAN_EFFECTS 0x0200 /**< stream without voice */ - -/** - * Stream structure. - * New fields can be added to the end with minor version bumps. - * Removal, reordering and changes to existing fields require a major - * version bump. - * sizeof(AVStream) must not be used outside libav*. - */ -typedef struct AVStream { - int index; /**< stream index in AVFormatContext */ - int id; /**< format-specific stream ID */ - AVCodecContext *codec; /**< codec context */ - /** - * Real base framerate of the stream. - * This is the lowest framerate with which all timestamps can be - * represented accurately (it is the least common multiple of all - * framerates in the stream). Note, this value is just a guess! - * For example, if the time base is 1/90000 and all frames have either - * approximately 3600 or 1800 timer ticks, then r_frame_rate will be 50/1. - */ - AVRational r_frame_rate; - void *priv_data; - - /* internal data used in av_find_stream_info() */ - int64_t first_dts; - - /** - * encoding: pts generation when outputting stream - */ - struct AVFrac pts; - - /** - * This is the fundamental unit of time (in seconds) in terms - * of which frame timestamps are represented. For fixed-fps content, - * time base should be 1/framerate and timestamp increments should be 1. - * decoding: set by libavformat - * encoding: set by libavformat in av_write_header - */ - AVRational time_base; - int pts_wrap_bits; /**< number of bits in pts (used for wrapping control) */ - /* ffmpeg.c private use */ - int stream_copy; /**< If set, just copy stream. */ - enum AVDiscard discard; ///< Selects which packets can be discarded at will and do not need to be demuxed. - - //FIXME move stuff to a flags field? - /** - * Quality, as it has been removed from AVCodecContext and put in AVVideoFrame. - * MN: dunno if that is the right place for it - */ - float quality; - - /** - * Decoding: pts of the first frame of the stream, in stream time base. - * Only set this if you are absolutely 100% sure that the value you set - * it to really is the pts of the first frame. - * This may be undefined (AV_NOPTS_VALUE). - */ - int64_t start_time; - - /** - * Decoding: duration of the stream, in stream time base. - * If a source file does not specify a duration, but does specify - * a bitrate, this value will be estimated from bitrate and file size. - */ - int64_t duration; - - /* av_read_frame() support */ - enum AVStreamParseType need_parsing; - struct AVCodecParserContext *parser; - - int64_t cur_dts; - int last_IP_duration; - int64_t last_IP_pts; - /* av_seek_frame() support */ - AVIndexEntry *index_entries; /**< Only used if the format does not - support seeking natively. */ - int nb_index_entries; - unsigned int index_entries_allocated_size; - - int64_t nb_frames; ///< number of frames in this stream if known or 0 - - int disposition; /**< AV_DISPOSITION_* bit field */ - - AVProbeData probe_data; -#define MAX_REORDER_DELAY 16 - int64_t pts_buffer[MAX_REORDER_DELAY+1]; - - /** - * sample aspect ratio (0 if unknown) - * - encoding: Set by user. - * - decoding: Set by libavformat. - */ - AVRational sample_aspect_ratio; - - AVDictionary *metadata; - - /* Intended mostly for av_read_frame() support. Not supposed to be used by */ - /* external applications; try to use something else if at all possible. */ - const uint8_t *cur_ptr; - int cur_len; - AVPacket cur_pkt; - - // Timestamp generation support: - /** - * Timestamp corresponding to the last dts sync point. - * - * Initialized when AVCodecParserContext.dts_sync_point >= 0 and - * a DTS is received from the underlying container. Otherwise set to - * AV_NOPTS_VALUE by default. - */ - int64_t reference_dts; - - /** - * Number of packets to buffer for codec probing - * NOT PART OF PUBLIC API - */ -#define MAX_PROBE_PACKETS 2500 - int probe_packets; - - /** - * last packet in packet_buffer for this stream when muxing. - * used internally, NOT PART OF PUBLIC API, dont read or write from outside of libav* - */ - struct AVPacketList *last_in_packet_buffer; - - /** - * Average framerate - */ - AVRational avg_frame_rate; - - /** - * Number of frames that have been demuxed during av_find_stream_info() - */ - int codec_info_nb_frames; - - /** - * Stream informations used internally by av_find_stream_info() - */ -#define MAX_STD_TIMEBASES (60*12+5) - struct { - int64_t last_dts; - int64_t duration_gcd; - int duration_count; - double duration_error[MAX_STD_TIMEBASES]; - int64_t codec_info_duration; - } *info; -} AVStream; - -#define AV_PROGRAM_RUNNING 1 - -/** - * New fields can be added to the end with minor version bumps. - * Removal, reordering and changes to existing fields require a major - * version bump. - * sizeof(AVProgram) must not be used outside libav*. - */ -typedef struct AVProgram { - int id; - int flags; - enum AVDiscard discard; ///< selects which program to discard and which to feed to the caller - unsigned int *stream_index; - unsigned int nb_stream_indexes; - AVDictionary *metadata; -} AVProgram; - -#define AVFMTCTX_NOHEADER 0x0001 /**< signal that no header is present - (streams are added dynamically) */ - -typedef struct AVChapter { - int id; ///< unique ID to identify the chapter - AVRational time_base; ///< time base in which the start/end timestamps are specified - int64_t start, end; ///< chapter start/end time in time_base units - AVDictionary *metadata; -} AVChapter; - -/** - * Format I/O context. - * New fields can be added to the end with minor version bumps. - * Removal, reordering and changes to existing fields require a major - * version bump. - * sizeof(AVFormatContext) must not be used outside libav*. - */ -typedef struct AVFormatContext { - const AVClass *av_class; /**< Set by avformat_alloc_context. */ - /* Can only be iformat or oformat, not both at the same time. */ - struct AVInputFormat *iformat; - struct AVOutputFormat *oformat; - void *priv_data; - AVIOContext *pb; - unsigned int nb_streams; - AVStream **streams; - char filename[1024]; /**< input or output filename */ - /* stream info */ - int64_t timestamp; - - int ctx_flags; /**< Format-specific flags, see AVFMTCTX_xx */ - /* private data for pts handling (do not modify directly). */ - /** - * This buffer is only needed when packets were already buffered but - * not decoded, for example to get the codec parameters in MPEG - * streams. - */ - struct AVPacketList *packet_buffer; - - /** - * Decoding: position of the first frame of the component, in - * AV_TIME_BASE fractional seconds. NEVER set this value directly: - * It is deduced from the AVStream values. - */ - int64_t start_time; - - /** - * Decoding: duration of the stream, in AV_TIME_BASE fractional - * seconds. Only set this value if you know none of the individual stream - * durations and also dont set any of them. This is deduced from the - * AVStream values if not set. - */ - int64_t duration; - - /** - * decoding: total file size, 0 if unknown - */ - int64_t file_size; - - /** - * Decoding: total stream bitrate in bit/s, 0 if not - * available. Never set it directly if the file_size and the - * duration are known as Libav can compute it automatically. - */ - int bit_rate; - - /* av_read_frame() support */ - AVStream *cur_st; - - /* av_seek_frame() support */ - int64_t data_offset; /**< offset of the first packet */ - - int mux_rate; - unsigned int packet_size; - int preload; - int max_delay; - -#define AVFMT_NOOUTPUTLOOP -1 -#define AVFMT_INFINITEOUTPUTLOOP 0 - /** - * number of times to loop output in formats that support it - */ - int loop_output; - - int flags; -#define AVFMT_FLAG_GENPTS 0x0001 ///< Generate missing pts even if it requires parsing future frames. -#define AVFMT_FLAG_IGNIDX 0x0002 ///< Ignore index. -#define AVFMT_FLAG_NONBLOCK 0x0004 ///< Do not block when reading packets from input. -#define AVFMT_FLAG_IGNDTS 0x0008 ///< Ignore DTS on frames that contain both DTS & PTS -#define AVFMT_FLAG_NOFILLIN 0x0010 ///< Do not infer any values from other values, just return what is stored in the container -#define AVFMT_FLAG_NOPARSE 0x0020 ///< Do not use AVParsers, you also must set AVFMT_FLAG_NOFILLIN as the fillin code works on frames and no parsing -> no frames. Also seeking to frames can not work if parsing to find frame boundaries has been disabled -#if FF_API_FLAG_RTP_HINT -#define AVFMT_FLAG_RTP_HINT 0x0040 ///< Deprecated, use the -movflags rtphint muxer specific AVOption instead -#endif -#define AVFMT_FLAG_CUSTOM_IO 0x0080 ///< The caller has supplied a custom AVIOContext, don't avio_close() it. - - int loop_input; - - /** - * decoding: size of data to probe; encoding: unused. - */ - unsigned int probesize; - - /** - * Maximum time (in AV_TIME_BASE units) during which the input should - * be analyzed in av_find_stream_info(). - */ - int max_analyze_duration; - - const uint8_t *key; - int keylen; - - unsigned int nb_programs; - AVProgram **programs; - - /** - * Forced video codec_id. - * Demuxing: Set by user. - */ - enum CodecID video_codec_id; - - /** - * Forced audio codec_id. - * Demuxing: Set by user. - */ - enum CodecID audio_codec_id; - - /** - * Forced subtitle codec_id. - * Demuxing: Set by user. - */ - enum CodecID subtitle_codec_id; - - /** - * Maximum amount of memory in bytes to use for the index of each stream. - * If the index exceeds this size, entries will be discarded as - * needed to maintain a smaller size. This can lead to slower or less - * accurate seeking (depends on demuxer). - * Demuxers for which a full in-memory index is mandatory will ignore - * this. - * muxing : unused - * demuxing: set by user - */ - unsigned int max_index_size; - - /** - * Maximum amount of memory in bytes to use for buffering frames - * obtained from realtime capture devices. - */ - unsigned int max_picture_buffer; - - unsigned int nb_chapters; - AVChapter **chapters; - - /** - * Flags to enable debugging. - */ - int debug; -#define FF_FDEBUG_TS 0x0001 - - /** - * Raw packets from the demuxer, prior to parsing and decoding. - * This buffer is used for buffering packets until the codec can - * be identified, as parsing cannot be done without knowing the - * codec. - */ - struct AVPacketList *raw_packet_buffer; - struct AVPacketList *raw_packet_buffer_end; - - struct AVPacketList *packet_buffer_end; - - AVDictionary *metadata; - - /** - * Remaining size available for raw_packet_buffer, in bytes. - * NOT PART OF PUBLIC API - */ -#define RAW_PACKET_BUFFER_SIZE 2500000 - int raw_packet_buffer_remaining_size; - - /** - * Start time of the stream in real world time, in microseconds - * since the unix epoch (00:00 1st January 1970). That is, pts=0 - * in the stream was captured at this real world time. - * - encoding: Set by user. - * - decoding: Unused. - */ - int64_t start_time_realtime; - - /** - * decoding: number of frames used to probe fps - */ - int fps_probe_size; -} AVFormatContext; - -typedef struct AVPacketList { - AVPacket pkt; - struct AVPacketList *next; -} AVPacketList; - -/** - * If f is NULL, returns the first registered input format, - * if f is non-NULL, returns the next registered input format after f - * or NULL if f is the last one. - */ -AVInputFormat *av_iformat_next(AVInputFormat *f); - -/** - * If f is NULL, returns the first registered output format, - * if f is non-NULL, returns the next registered output format after f - * or NULL if f is the last one. - */ -AVOutputFormat *av_oformat_next(AVOutputFormat *f); - -#if FF_API_GUESS_IMG2_CODEC -attribute_deprecated enum CodecID av_guess_image2_codec(const char *filename); -#endif - -/* XXX: Use automatic init with either ELF sections or C file parser */ -/* modules. */ - -/* utils.c */ -void av_register_input_format(AVInputFormat *format); -void av_register_output_format(AVOutputFormat *format); - -/** - * Return the output format in the list of registered output formats - * which best matches the provided parameters, or return NULL if - * there is no match. - * - * @param short_name if non-NULL checks if short_name matches with the - * names of the registered formats - * @param filename if non-NULL checks if filename terminates with the - * extensions of the registered formats - * @param mime_type if non-NULL checks if mime_type matches with the - * MIME type of the registered formats - */ -AVOutputFormat *av_guess_format(const char *short_name, - const char *filename, - const char *mime_type); - -/** - * Guess the codec ID based upon muxer and filename. - */ -enum CodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name, - const char *filename, const char *mime_type, - enum AVMediaType type); - -/** - * Send a nice hexadecimal dump of a buffer to the specified file stream. - * - * @param f The file stream pointer where the dump should be sent to. - * @param buf buffer - * @param size buffer size - * - * @see av_hex_dump_log, av_pkt_dump2, av_pkt_dump_log2 - */ -void av_hex_dump(FILE *f, uint8_t *buf, int size); - -/** - * Send a nice hexadecimal dump of a buffer to the log. - * - * @param avcl A pointer to an arbitrary struct of which the first field is a - * pointer to an AVClass struct. - * @param level The importance level of the message, lower values signifying - * higher importance. - * @param buf buffer - * @param size buffer size - * - * @see av_hex_dump, av_pkt_dump2, av_pkt_dump_log2 - */ -void av_hex_dump_log(void *avcl, int level, uint8_t *buf, int size); - -/** - * Send a nice dump of a packet to the specified file stream. - * - * @param f The file stream pointer where the dump should be sent to. - * @param pkt packet to dump - * @param dump_payload True if the payload must be displayed, too. - * @param st AVStream that the packet belongs to - */ -void av_pkt_dump2(FILE *f, AVPacket *pkt, int dump_payload, AVStream *st); - - -/** - * Send a nice dump of a packet to the log. - * - * @param avcl A pointer to an arbitrary struct of which the first field is a - * pointer to an AVClass struct. - * @param level The importance level of the message, lower values signifying - * higher importance. - * @param pkt packet to dump - * @param dump_payload True if the payload must be displayed, too. - * @param st AVStream that the packet belongs to - */ -void av_pkt_dump_log2(void *avcl, int level, AVPacket *pkt, int dump_payload, - AVStream *st); - -#if FF_API_PKT_DUMP -attribute_deprecated void av_pkt_dump(FILE *f, AVPacket *pkt, int dump_payload); -attribute_deprecated void av_pkt_dump_log(void *avcl, int level, AVPacket *pkt, - int dump_payload); -#endif - -/** - * Initialize libavformat and register all the muxers, demuxers and - * protocols. If you do not call this function, then you can select - * exactly which formats you want to support. - * - * @see av_register_input_format() - * @see av_register_output_format() - * @see av_register_protocol() - */ -void av_register_all(void); - -/** - * Get the CodecID for the given codec tag tag. - * If no codec id is found returns CODEC_ID_NONE. - * - * @param tags list of supported codec_id-codec_tag pairs, as stored - * in AVInputFormat.codec_tag and AVOutputFormat.codec_tag - */ -enum CodecID av_codec_get_id(const struct AVCodecTag * const *tags, unsigned int tag); - -/** - * Get the codec tag for the given codec id id. - * If no codec tag is found returns 0. - * - * @param tags list of supported codec_id-codec_tag pairs, as stored - * in AVInputFormat.codec_tag and AVOutputFormat.codec_tag - */ -unsigned int av_codec_get_tag(const struct AVCodecTag * const *tags, enum CodecID id); - -/* media file input */ - -/** - * Find AVInputFormat based on the short name of the input format. - */ -AVInputFormat *av_find_input_format(const char *short_name); - -/** - * Guess the file format. - * - * @param is_opened Whether the file is already opened; determines whether - * demuxers with or without AVFMT_NOFILE are probed. - */ -AVInputFormat *av_probe_input_format(AVProbeData *pd, int is_opened); - -/** - * Guess the file format. - * - * @param is_opened Whether the file is already opened; determines whether - * demuxers with or without AVFMT_NOFILE are probed. - * @param score_max A probe score larger that this is required to accept a - * detection, the variable is set to the actual detection - * score afterwards. - * If the score is <= AVPROBE_SCORE_MAX / 4 it is recommended - * to retry with a larger probe buffer. - */ -AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score_max); - -/** - * Probe a bytestream to determine the input format. Each time a probe returns - * with a score that is too low, the probe buffer size is increased and another - * attempt is made. When the maximum probe size is reached, the input format - * with the highest score is returned. - * - * @param pb the bytestream to probe - * @param fmt the input format is put here - * @param filename the filename of the stream - * @param logctx the log context - * @param offset the offset within the bytestream to probe from - * @param max_probe_size the maximum probe buffer size (zero for default) - * @return 0 in case of success, a negative value corresponding to an - * AVERROR code otherwise - */ -int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt, - const char *filename, void *logctx, - unsigned int offset, unsigned int max_probe_size); - -#if FF_API_FORMAT_PARAMETERS -/** - * Allocate all the structures needed to read an input stream. - * This does not open the needed codecs for decoding the stream[s]. - * @deprecated use avformat_open_input instead. - */ -attribute_deprecated int av_open_input_stream(AVFormatContext **ic_ptr, - AVIOContext *pb, const char *filename, - AVInputFormat *fmt, AVFormatParameters *ap); - -/** - * Open a media file as input. The codecs are not opened. Only the file - * header (if present) is read. - * - * @param ic_ptr The opened media file handle is put here. - * @param filename filename to open - * @param fmt If non-NULL, force the file format to use. - * @param buf_size optional buffer size (zero if default is OK) - * @param ap Additional parameters needed when opening the file - * (NULL if default). - * @return 0 if OK, AVERROR_xxx otherwise - * - * @deprecated use avformat_open_input instead. - */ -attribute_deprecated int av_open_input_file(AVFormatContext **ic_ptr, const char *filename, - AVInputFormat *fmt, - int buf_size, - AVFormatParameters *ap); -#endif - -/** - * Open an input stream and read the header. The codecs are not opened. - * The stream must be closed with av_close_input_file(). - * - * @param ps Pointer to user-supplied AVFormatContext (allocated by avformat_alloc_context). - * May be a pointer to NULL, in which case an AVFormatContext is allocated by this - * function and written into ps. - * Note that a user-supplied AVFormatContext will be freed on failure. - * @param filename Name of the stream to open. - * @param fmt If non-NULL, this parameter forces a specific input format. - * Otherwise the format is autodetected. - * @param options A dictionary filled with AVFormatContext and demuxer-private options. - * On return this parameter will be destroyed and replaced with a dict containing - * options that were not found. May be NULL. - * - * @return 0 on success, a negative AVERROR on failure. - * - * @note If you want to use custom IO, preallocate the format context and set its pb field. - */ -int avformat_open_input(AVFormatContext **ps, const char *filename, AVInputFormat *fmt, AVDictionary **options); - -/** - * Allocate an AVFormatContext. - * avformat_free_context() can be used to free the context and everything - * allocated by the framework within it. - */ -AVFormatContext *avformat_alloc_context(void); - -/** - * Read packets of a media file to get stream information. This - * is useful for file formats with no headers such as MPEG. This - * function also computes the real framerate in case of MPEG-2 repeat - * frame mode. - * The logical file position is not changed by this function; - * examined packets may be buffered for later processing. - * - * @param ic media file handle - * @return >=0 if OK, AVERROR_xxx on error - * @todo Let the user decide somehow what information is needed so that - * we do not waste time getting stuff the user does not need. - */ -int av_find_stream_info(AVFormatContext *ic); - -/** - * Find the "best" stream in the file. - * The best stream is determined according to various heuristics as the most - * likely to be what the user expects. - * If the decoder parameter is non-NULL, av_find_best_stream will find the - * default decoder for the stream's codec; streams for which no decoder can - * be found are ignored. - * - * @param ic media file handle - * @param type stream type: video, audio, subtitles, etc. - * @param wanted_stream_nb user-requested stream number, - * or -1 for automatic selection - * @param related_stream try to find a stream related (eg. in the same - * program) to this one, or -1 if none - * @param decoder_ret if non-NULL, returns the decoder for the - * selected stream - * @param flags flags; none are currently defined - * @return the non-negative stream number in case of success, - * AVERROR_STREAM_NOT_FOUND if no stream with the requested type - * could be found, - * AVERROR_DECODER_NOT_FOUND if streams were found but no decoder - * @note If av_find_best_stream returns successfully and decoder_ret is not - * NULL, then *decoder_ret is guaranteed to be set to a valid AVCodec. - */ -int av_find_best_stream(AVFormatContext *ic, - enum AVMediaType type, - int wanted_stream_nb, - int related_stream, - AVCodec **decoder_ret, - int flags); - -/** - * Read a transport packet from a media file. - * - * This function is obsolete and should never be used. - * Use av_read_frame() instead. - * - * @param s media file handle - * @param pkt is filled - * @return 0 if OK, AVERROR_xxx on error - */ -int av_read_packet(AVFormatContext *s, AVPacket *pkt); - -/** - * Return the next frame of a stream. - * This function returns what is stored in the file, and does not validate - * that what is there are valid frames for the decoder. It will split what is - * stored in the file into frames and return one for each call. It will not - * omit invalid data between valid frames so as to give the decoder the maximum - * information possible for decoding. - * - * The returned packet is valid - * until the next av_read_frame() or until av_close_input_file() and - * must be freed with av_free_packet. For video, the packet contains - * exactly one frame. For audio, it contains an integer number of - * frames if each frame has a known fixed size (e.g. PCM or ADPCM - * data). If the audio frames have a variable size (e.g. MPEG audio), - * then it contains one frame. - * - * pkt->pts, pkt->dts and pkt->duration are always set to correct - * values in AVStream.time_base units (and guessed if the format cannot - * provide them). pkt->pts can be AV_NOPTS_VALUE if the video format - * has B-frames, so it is better to rely on pkt->dts if you do not - * decompress the payload. - * - * @return 0 if OK, < 0 on error or end of file - */ -int av_read_frame(AVFormatContext *s, AVPacket *pkt); - -/** - * Seek to the keyframe at timestamp. - * 'timestamp' in 'stream_index'. - * @param stream_index If stream_index is (-1), a default - * stream is selected, and timestamp is automatically converted - * from AV_TIME_BASE units to the stream specific time_base. - * @param timestamp Timestamp in AVStream.time_base units - * or, if no stream is specified, in AV_TIME_BASE units. - * @param flags flags which select direction and seeking mode - * @return >= 0 on success - */ -int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp, - int flags); - -/** - * Seek to timestamp ts. - * Seeking will be done so that the point from which all active streams - * can be presented successfully will be closest to ts and within min/max_ts. - * Active streams are all streams that have AVStream.discard < AVDISCARD_ALL. - * - * If flags contain AVSEEK_FLAG_BYTE, then all timestamps are in bytes and - * are the file position (this may not be supported by all demuxers). - * If flags contain AVSEEK_FLAG_FRAME, then all timestamps are in frames - * in the stream with stream_index (this may not be supported by all demuxers). - * Otherwise all timestamps are in units of the stream selected by stream_index - * or if stream_index is -1, in AV_TIME_BASE units. - * If flags contain AVSEEK_FLAG_ANY, then non-keyframes are treated as - * keyframes (this may not be supported by all demuxers). - * - * @param stream_index index of the stream which is used as time base reference - * @param min_ts smallest acceptable timestamp - * @param ts target timestamp - * @param max_ts largest acceptable timestamp - * @param flags flags - * @return >=0 on success, error code otherwise - * - * @note This is part of the new seek API which is still under construction. - * Thus do not use this yet. It may change at any time, do not expect - * ABI compatibility yet! - */ -int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags); - -/** - * Start playing a network-based stream (e.g. RTSP stream) at the - * current position. - */ -int av_read_play(AVFormatContext *s); - -/** - * Pause a network-based stream (e.g. RTSP stream). - * - * Use av_read_play() to resume it. - */ -int av_read_pause(AVFormatContext *s); - -/** - * Free a AVFormatContext allocated by av_open_input_stream. - * @param s context to free - */ -void av_close_input_stream(AVFormatContext *s); - -/** - * Close a media file (but not its codecs). - * - * @param s media file handle - */ -void av_close_input_file(AVFormatContext *s); - -/** - * Free an AVFormatContext and all its streams. - * @param s context to free - */ -void avformat_free_context(AVFormatContext *s); - -/** - * Add a new stream to a media file. - * - * Can only be called in the read_header() function. If the flag - * AVFMTCTX_NOHEADER is in the format context, then new streams - * can be added in read_packet too. - * - * @param s media file handle - * @param id file-format-dependent stream ID - */ -AVStream *av_new_stream(AVFormatContext *s, int id); -AVProgram *av_new_program(AVFormatContext *s, int id); - -/** - * Set the pts for a given stream. If the new values would be invalid - * (<= 0), it leaves the AVStream unchanged. - * - * @param s stream - * @param pts_wrap_bits number of bits effectively used by the pts - * (used for wrap control, 33 is the value for MPEG) - * @param pts_num numerator to convert to seconds (MPEG: 1) - * @param pts_den denominator to convert to seconds (MPEG: 90000) - */ -void av_set_pts_info(AVStream *s, int pts_wrap_bits, - unsigned int pts_num, unsigned int pts_den); - -#define AVSEEK_FLAG_BACKWARD 1 ///< seek backward -#define AVSEEK_FLAG_BYTE 2 ///< seeking based on position in bytes -#define AVSEEK_FLAG_ANY 4 ///< seek to any frame, even non-keyframes -#define AVSEEK_FLAG_FRAME 8 ///< seeking based on frame number - -int av_find_default_stream_index(AVFormatContext *s); - -/** - * Get the index for a specific timestamp. - * @param flags if AVSEEK_FLAG_BACKWARD then the returned index will correspond - * to the timestamp which is <= the requested one, if backward - * is 0, then it will be >= - * if AVSEEK_FLAG_ANY seek to any frame, only keyframes otherwise - * @return < 0 if no such timestamp could be found - */ -int av_index_search_timestamp(AVStream *st, int64_t timestamp, int flags); - -/** - * Add an index entry into a sorted list. Update the entry if the list - * already contains it. - * - * @param timestamp timestamp in the time base of the given stream - */ -int av_add_index_entry(AVStream *st, int64_t pos, int64_t timestamp, - int size, int distance, int flags); - -/** - * Perform a binary search using av_index_search_timestamp() and - * AVInputFormat.read_timestamp(). - * This is not supposed to be called directly by a user application, - * but by demuxers. - * @param target_ts target timestamp in the time base of the given stream - * @param stream_index stream number - */ -int av_seek_frame_binary(AVFormatContext *s, int stream_index, - int64_t target_ts, int flags); - -/** - * Update cur_dts of all streams based on the given timestamp and AVStream. - * - * Stream ref_st unchanged, others set cur_dts in their native time base. - * Only needed for timestamp wrapping or if (dts not set and pts!=dts). - * @param timestamp new dts expressed in time_base of param ref_st - * @param ref_st reference stream giving time_base of param timestamp - */ -void av_update_cur_dts(AVFormatContext *s, AVStream *ref_st, int64_t timestamp); - -/** - * Perform a binary search using read_timestamp(). - * This is not supposed to be called directly by a user application, - * but by demuxers. - * @param target_ts target timestamp in the time base of the given stream - * @param stream_index stream number - */ -int64_t av_gen_search(AVFormatContext *s, int stream_index, - int64_t target_ts, int64_t pos_min, - int64_t pos_max, int64_t pos_limit, - int64_t ts_min, int64_t ts_max, - int flags, int64_t *ts_ret, - int64_t (*read_timestamp)(struct AVFormatContext *, int , int64_t *, int64_t )); - -/** - * media file output - */ -#if FF_API_FORMAT_PARAMETERS -/** - * @deprecated pass the options to avformat_write_header directly. - */ -attribute_deprecated int av_set_parameters(AVFormatContext *s, AVFormatParameters *ap); -#endif - -/** - * Split a URL string into components. - * - * The pointers to buffers for storing individual components may be null, - * in order to ignore that component. Buffers for components not found are - * set to empty strings. If the port is not found, it is set to a negative - * value. - * - * @param proto the buffer for the protocol - * @param proto_size the size of the proto buffer - * @param authorization the buffer for the authorization - * @param authorization_size the size of the authorization buffer - * @param hostname the buffer for the host name - * @param hostname_size the size of the hostname buffer - * @param port_ptr a pointer to store the port number in - * @param path the buffer for the path - * @param path_size the size of the path buffer - * @param url the URL to split - */ -void av_url_split(char *proto, int proto_size, - char *authorization, int authorization_size, - char *hostname, int hostname_size, - int *port_ptr, - char *path, int path_size, - const char *url); - -/** - * Allocate the stream private data and write the stream header to - * an output media file. - * - * @param s Media file handle, must be allocated with avformat_alloc_context(). - * Its oformat field must be set to the desired output format; - * Its pb field must be set to an already openened AVIOContext. - * @param options An AVDictionary filled with AVFormatContext and muxer-private options. - * On return this parameter will be destroyed and replaced with a dict containing - * options that were not found. May be NULL. - * - * @return 0 on success, negative AVERROR on failure. - * - * @see av_opt_find, av_dict_set, avio_open, av_oformat_next. - */ -int avformat_write_header(AVFormatContext *s, AVDictionary **options); - -#if FF_API_FORMAT_PARAMETERS -/** - * Allocate the stream private data and write the stream header to an - * output media file. - * @note: this sets stream time-bases, if possible to stream->codec->time_base - * but for some formats it might also be some other time base - * - * @param s media file handle - * @return 0 if OK, AVERROR_xxx on error - * - * @deprecated use avformat_write_header. - */ -attribute_deprecated int av_write_header(AVFormatContext *s); -#endif - -/** - * Write a packet to an output media file. - * - * The packet shall contain one audio or video frame. - * The packet must be correctly interleaved according to the container - * specification, if not then av_interleaved_write_frame must be used. - * - * @param s media file handle - * @param pkt The packet, which contains the stream_index, buf/buf_size, - dts/pts, ... - * @return < 0 on error, = 0 if OK, 1 if end of stream wanted - */ -int av_write_frame(AVFormatContext *s, AVPacket *pkt); - -/** - * Write a packet to an output media file ensuring correct interleaving. - * - * The packet must contain one audio or video frame. - * If the packets are already correctly interleaved, the application should - * call av_write_frame() instead as it is slightly faster. It is also important - * to keep in mind that completely non-interleaved input will need huge amounts - * of memory to interleave with this, so it is preferable to interleave at the - * demuxer level. - * - * @param s media file handle - * @param pkt The packet, which contains the stream_index, buf/buf_size, - dts/pts, ... - * @return < 0 on error, = 0 if OK, 1 if end of stream wanted - */ -int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt); - -/** - * Interleave a packet per dts in an output media file. - * - * Packets with pkt->destruct == av_destruct_packet will be freed inside this - * function, so they cannot be used after it. Note that calling av_free_packet() - * on them is still safe. - * - * @param s media file handle - * @param out the interleaved packet will be output here - * @param pkt the input packet - * @param flush 1 if no further packets are available as input and all - * remaining packets should be output - * @return 1 if a packet was output, 0 if no packet could be output, - * < 0 if an error occurred - */ -int av_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out, - AVPacket *pkt, int flush); - -/** - * Write the stream trailer to an output media file and free the - * file private data. - * - * May only be called after a successful call to av_write_header. - * - * @param s media file handle - * @return 0 if OK, AVERROR_xxx on error - */ -int av_write_trailer(AVFormatContext *s); - -#if FF_API_DUMP_FORMAT -attribute_deprecated void dump_format(AVFormatContext *ic, - int index, - const char *url, - int is_output); -#endif - -void av_dump_format(AVFormatContext *ic, - int index, - const char *url, - int is_output); - -#if FF_API_PARSE_DATE -/** - * Parse datestr and return a corresponding number of microseconds. - * - * @param datestr String representing a date or a duration. - * See av_parse_time() for the syntax of the provided string. - * @deprecated in favor of av_parse_time() - */ -attribute_deprecated -int64_t parse_date(const char *datestr, int duration); -#endif - -/** - * Get the current time in microseconds. - */ -int64_t av_gettime(void); - -#if FF_API_FIND_INFO_TAG -/** - * @deprecated use av_find_info_tag in libavutil instead. - */ -attribute_deprecated int find_info_tag(char *arg, int arg_size, const char *tag1, const char *info); -#endif - -/** - * Return in 'buf' the path with '%d' replaced by a number. - * - * Also handles the '%0nd' format where 'n' is the total number - * of digits and '%%'. - * - * @param buf destination buffer - * @param buf_size destination buffer size - * @param path numbered sequence string - * @param number frame number - * @return 0 if OK, -1 on format error - */ -int av_get_frame_filename(char *buf, int buf_size, - const char *path, int number); - -/** - * Check whether filename actually is a numbered sequence generator. - * - * @param filename possible numbered sequence string - * @return 1 if a valid numbered sequence string, 0 otherwise - */ -int av_filename_number_test(const char *filename); - -/** - * Generate an SDP for an RTP session. - * - * @param ac array of AVFormatContexts describing the RTP streams. If the - * array is composed by only one context, such context can contain - * multiple AVStreams (one AVStream per RTP stream). Otherwise, - * all the contexts in the array (an AVCodecContext per RTP stream) - * must contain only one AVStream. - * @param n_files number of AVCodecContexts contained in ac - * @param buf buffer where the SDP will be stored (must be allocated by - * the caller) - * @param size the size of the buffer - * @return 0 if OK, AVERROR_xxx on error - */ -int av_sdp_create(AVFormatContext *ac[], int n_files, char *buf, int size); - -#if FF_API_SDP_CREATE -attribute_deprecated int avf_sdp_create(AVFormatContext *ac[], int n_files, char *buff, int size); -#endif - -/** - * Return a positive value if the given filename has one of the given - * extensions, 0 otherwise. - * - * @param extensions a comma-separated list of filename extensions - */ -int av_match_ext(const char *filename, const char *extensions); - -#endif /* AVFORMAT_AVFORMAT_H */ diff --git a/tizen/distrib/libav/i386/include/libavformat/avio.h b/tizen/distrib/libav/i386/include/libavformat/avio.h deleted file mode 100644 index 211fe9349e..0000000000 --- a/tizen/distrib/libav/i386/include/libavformat/avio.h +++ /dev/null @@ -1,634 +0,0 @@ -/* - * copyright (c) 2001 Fabrice Bellard - * - * 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 - */ -#ifndef AVFORMAT_AVIO_H -#define AVFORMAT_AVIO_H - -/** - * @file - * Buffered I/O operations - */ - -#include <stdint.h> - -#include "libavutil/common.h" -#include "libavutil/log.h" - -#include "libavformat/version.h" - - -#define AVIO_SEEKABLE_NORMAL 0x0001 /**< Seeking works like for a local file */ - -/** - * Bytestream IO Context. - * New fields can be added to the end with minor version bumps. - * Removal, reordering and changes to existing fields require a major - * version bump. - * sizeof(AVIOContext) must not be used outside libav*. - * - * @note None of the function pointers in AVIOContext should be called - * directly, they should only be set by the client application - * when implementing custom I/O. Normally these are set to the - * function pointers specified in avio_alloc_context() - */ -typedef struct { - unsigned char *buffer; /**< Start of the buffer. */ - int buffer_size; /**< Maximum buffer size */ - unsigned char *buf_ptr; /**< Current position in the buffer */ - unsigned char *buf_end; /**< End of the data, may be less than - buffer+buffer_size if the read function returned - less data than requested, e.g. for streams where - no more data has been received yet. */ - void *opaque; /**< A private pointer, passed to the read/write/seek/... - functions. */ - int (*read_packet)(void *opaque, uint8_t *buf, int buf_size); - int (*write_packet)(void *opaque, uint8_t *buf, int buf_size); - int64_t (*seek)(void *opaque, int64_t offset, int whence); - int64_t pos; /**< position in the file of the current buffer */ - int must_flush; /**< true if the next seek should flush */ - int eof_reached; /**< true if eof reached */ - int write_flag; /**< true if open for writing */ -#if FF_API_OLD_AVIO - attribute_deprecated int is_streamed; -#endif - int max_packet_size; - unsigned long checksum; - unsigned char *checksum_ptr; - unsigned long (*update_checksum)(unsigned long checksum, const uint8_t *buf, unsigned int size); - int error; /**< contains the error code or 0 if no error happened */ - /** - * Pause or resume playback for network streaming protocols - e.g. MMS. - */ - int (*read_pause)(void *opaque, int pause); - /** - * Seek to a given timestamp in stream with the specified stream_index. - * Needed for some network streaming protocols which don't support seeking - * to byte position. - */ - int64_t (*read_seek)(void *opaque, int stream_index, - int64_t timestamp, int flags); - /** - * A combination of AVIO_SEEKABLE_ flags or 0 when the stream is not seekable. - */ - int seekable; -} AVIOContext; - -/* unbuffered I/O */ - -#if FF_API_OLD_AVIO -/** - * URL Context. - * New fields can be added to the end with minor version bumps. - * Removal, reordering and changes to existing fields require a major - * version bump. - * sizeof(URLContext) must not be used outside libav*. - * @deprecated This struct will be made private - */ -typedef struct URLContext { - const AVClass *av_class; ///< information for av_log(). Set by url_open(). - struct URLProtocol *prot; - int flags; - int is_streamed; /**< true if streamed (no seek possible), default = false */ - int max_packet_size; /**< if non zero, the stream is packetized with this max packet size */ - void *priv_data; - char *filename; /**< specified URL */ - int is_connected; -} URLContext; - -#define URL_PROTOCOL_FLAG_NESTED_SCHEME 1 /*< The protocol name can be the first part of a nested protocol scheme */ - -/** - * @deprecated This struct is to be made private. Use the higher-level - * AVIOContext-based API instead. - */ -typedef struct URLProtocol { - const char *name; - int (*url_open)(URLContext *h, const char *url, int flags); - int (*url_read)(URLContext *h, unsigned char *buf, int size); - int (*url_write)(URLContext *h, const unsigned char *buf, int size); - int64_t (*url_seek)(URLContext *h, int64_t pos, int whence); - int (*url_close)(URLContext *h); - struct URLProtocol *next; - int (*url_read_pause)(URLContext *h, int pause); - int64_t (*url_read_seek)(URLContext *h, int stream_index, - int64_t timestamp, int flags); - int (*url_get_file_handle)(URLContext *h); - int priv_data_size; - const AVClass *priv_data_class; - int flags; - int (*url_check)(URLContext *h, int mask); -} URLProtocol; - -typedef struct URLPollEntry { - URLContext *handle; - int events; - int revents; -} URLPollEntry; - -/* not implemented */ -attribute_deprecated int url_poll(URLPollEntry *poll_table, int n, int timeout); - -/** - * @name URL open modes - * The flags argument to url_open and cosins must be one of the following - * constants, optionally ORed with other flags. - * @{ - */ -#define URL_RDONLY 1 /**< read-only */ -#define URL_WRONLY 2 /**< write-only */ -#define URL_RDWR (URL_RDONLY|URL_WRONLY) /**< read-write */ -/** - * @} - */ - -/** - * Use non-blocking mode. - * If this flag is set, operations on the context will return - * AVERROR(EAGAIN) if they can not be performed immediately. - * If this flag is not set, operations on the context will never return - * AVERROR(EAGAIN). - * Note that this flag does not affect the opening/connecting of the - * context. Connecting a protocol will always block if necessary (e.g. on - * network protocols) but never hang (e.g. on busy devices). - * Warning: non-blocking protocols is work-in-progress; this flag may be - * silently ignored. - */ -#define URL_FLAG_NONBLOCK 4 - -typedef int URLInterruptCB(void); -extern URLInterruptCB *url_interrupt_cb; - -/** - * @defgroup old_url_funcs Old url_* functions - * The following functions are deprecated. Use the buffered API based on #AVIOContext instead. - * @{ - */ -attribute_deprecated int url_open_protocol (URLContext **puc, struct URLProtocol *up, - const char *url, int flags); -attribute_deprecated int url_alloc(URLContext **h, const char *url, int flags); -attribute_deprecated int url_connect(URLContext *h); -attribute_deprecated int url_open(URLContext **h, const char *url, int flags); -attribute_deprecated int url_read(URLContext *h, unsigned char *buf, int size); -attribute_deprecated int url_read_complete(URLContext *h, unsigned char *buf, int size); -attribute_deprecated int url_write(URLContext *h, const unsigned char *buf, int size); -attribute_deprecated int64_t url_seek(URLContext *h, int64_t pos, int whence); -attribute_deprecated int url_close(URLContext *h); -attribute_deprecated int64_t url_filesize(URLContext *h); -attribute_deprecated int url_get_file_handle(URLContext *h); -attribute_deprecated int url_get_max_packet_size(URLContext *h); -attribute_deprecated void url_get_filename(URLContext *h, char *buf, int buf_size); -attribute_deprecated int av_url_read_pause(URLContext *h, int pause); -attribute_deprecated int64_t av_url_read_seek(URLContext *h, int stream_index, - int64_t timestamp, int flags); -attribute_deprecated void url_set_interrupt_cb(int (*interrupt_cb)(void)); -/** - * If protocol is NULL, returns the first registered protocol, - * if protocol is non-NULL, returns the next registered protocol after protocol, - * or NULL if protocol is the last one. - */ -attribute_deprecated URLProtocol *av_protocol_next(URLProtocol *p); -/** - * Register the URLProtocol protocol. - * - * @param size the size of the URLProtocol struct referenced - */ -attribute_deprecated int av_register_protocol2(URLProtocol *protocol, int size); -/** - * @} - */ - - -typedef attribute_deprecated AVIOContext ByteIOContext; - -attribute_deprecated int init_put_byte(AVIOContext *s, - unsigned char *buffer, - int buffer_size, - int write_flag, - void *opaque, - int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), - int (*write_packet)(void *opaque, uint8_t *buf, int buf_size), - int64_t (*seek)(void *opaque, int64_t offset, int whence)); -attribute_deprecated AVIOContext *av_alloc_put_byte( - unsigned char *buffer, - int buffer_size, - int write_flag, - void *opaque, - int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), - int (*write_packet)(void *opaque, uint8_t *buf, int buf_size), - int64_t (*seek)(void *opaque, int64_t offset, int whence)); - -/** - * @defgroup old_avio_funcs Old put_/get_*() functions - * The following functions are deprecated. Use the "avio_"-prefixed functions instead. - * @{ - */ -attribute_deprecated int get_buffer(AVIOContext *s, unsigned char *buf, int size); -attribute_deprecated int get_partial_buffer(AVIOContext *s, unsigned char *buf, int size); -attribute_deprecated int get_byte(AVIOContext *s); -attribute_deprecated unsigned int get_le16(AVIOContext *s); -attribute_deprecated unsigned int get_le24(AVIOContext *s); -attribute_deprecated unsigned int get_le32(AVIOContext *s); -attribute_deprecated uint64_t get_le64(AVIOContext *s); -attribute_deprecated unsigned int get_be16(AVIOContext *s); -attribute_deprecated unsigned int get_be24(AVIOContext *s); -attribute_deprecated unsigned int get_be32(AVIOContext *s); -attribute_deprecated uint64_t get_be64(AVIOContext *s); - -attribute_deprecated void put_byte(AVIOContext *s, int b); -attribute_deprecated void put_nbyte(AVIOContext *s, int b, int count); -attribute_deprecated void put_buffer(AVIOContext *s, const unsigned char *buf, int size); -attribute_deprecated void put_le64(AVIOContext *s, uint64_t val); -attribute_deprecated void put_be64(AVIOContext *s, uint64_t val); -attribute_deprecated void put_le32(AVIOContext *s, unsigned int val); -attribute_deprecated void put_be32(AVIOContext *s, unsigned int val); -attribute_deprecated void put_le24(AVIOContext *s, unsigned int val); -attribute_deprecated void put_be24(AVIOContext *s, unsigned int val); -attribute_deprecated void put_le16(AVIOContext *s, unsigned int val); -attribute_deprecated void put_be16(AVIOContext *s, unsigned int val); -attribute_deprecated void put_tag(AVIOContext *s, const char *tag); -/** - * @} - */ - -attribute_deprecated int av_url_read_fpause(AVIOContext *h, int pause); -attribute_deprecated int64_t av_url_read_fseek (AVIOContext *h, int stream_index, - int64_t timestamp, int flags); - -/** - * @defgroup old_url_f_funcs Old url_f* functions - * The following functions are deprecated, use the "avio_"-prefixed functions instead. - * @{ - */ -attribute_deprecated int url_fopen( AVIOContext **s, const char *url, int flags); -attribute_deprecated int url_fclose(AVIOContext *s); -attribute_deprecated int64_t url_fseek(AVIOContext *s, int64_t offset, int whence); -attribute_deprecated int url_fskip(AVIOContext *s, int64_t offset); -attribute_deprecated int64_t url_ftell(AVIOContext *s); -attribute_deprecated int64_t url_fsize(AVIOContext *s); -#define URL_EOF (-1) -attribute_deprecated int url_fgetc(AVIOContext *s); -attribute_deprecated int url_setbufsize(AVIOContext *s, int buf_size); -#ifdef __GNUC__ -attribute_deprecated int url_fprintf(AVIOContext *s, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); -#else -attribute_deprecated int url_fprintf(AVIOContext *s, const char *fmt, ...); -#endif -attribute_deprecated void put_flush_packet(AVIOContext *s); -attribute_deprecated int url_open_dyn_buf(AVIOContext **s); -attribute_deprecated int url_open_dyn_packet_buf(AVIOContext **s, int max_packet_size); -attribute_deprecated int url_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer); -attribute_deprecated int url_fdopen(AVIOContext **s, URLContext *h); -/** - * @} - */ - -/** - * @deprecated use AVIOContext.eof_reached - */ -attribute_deprecated int url_feof(AVIOContext *s); -attribute_deprecated int url_ferror(AVIOContext *s); - -attribute_deprecated int udp_set_remote_url(URLContext *h, const char *uri); -attribute_deprecated int udp_get_local_port(URLContext *h); - -attribute_deprecated void init_checksum(AVIOContext *s, - unsigned long (*update_checksum)(unsigned long c, const uint8_t *p, unsigned int len), - unsigned long checksum); -attribute_deprecated unsigned long get_checksum(AVIOContext *s); -attribute_deprecated void put_strz(AVIOContext *s, const char *buf); -/** @note unlike fgets, the EOL character is not returned and a whole - line is parsed. return NULL if first char read was EOF */ -attribute_deprecated char *url_fgets(AVIOContext *s, char *buf, int buf_size); -/** - * @deprecated use avio_get_str instead - */ -attribute_deprecated char *get_strz(AVIOContext *s, char *buf, int maxlen); -/** - * @deprecated Use AVIOContext.seekable field directly. - */ -attribute_deprecated static inline int url_is_streamed(AVIOContext *s) -{ - return !s->seekable; -} -attribute_deprecated URLContext *url_fileno(AVIOContext *s); - -/** - * @deprecated use AVIOContext.max_packet_size directly. - */ -attribute_deprecated int url_fget_max_packet_size(AVIOContext *s); - -attribute_deprecated int url_open_buf(AVIOContext **s, uint8_t *buf, int buf_size, int flags); - -/** return the written or read size */ -attribute_deprecated int url_close_buf(AVIOContext *s); - -/** - * Return a non-zero value if the resource indicated by url - * exists, 0 otherwise. - * @deprecated Use avio_check instead. - */ -attribute_deprecated int url_exist(const char *url); -#endif // FF_API_OLD_AVIO - -/** - * Return AVIO_FLAG_* access flags corresponding to the access permissions - * of the resource in url, or a negative value corresponding to an - * AVERROR code in case of failure. The returned access flags are - * masked by the value in flags. - * - * @note This function is intrinsically unsafe, in the sense that the - * checked resource may change its existence or permission status from - * one call to another. Thus you should not trust the returned value, - * unless you are sure that no other processes are accessing the - * checked resource. - */ -int avio_check(const char *url, int flags); - -/** - * The callback is called in blocking functions to test regulary if - * asynchronous interruption is needed. AVERROR_EXIT is returned - * in this case by the interrupted function. 'NULL' means no interrupt - * callback is given. - */ -void avio_set_interrupt_cb(int (*interrupt_cb)(void)); - -/** - * Allocate and initialize an AVIOContext for buffered I/O. It must be later - * freed with av_free(). - * - * @param buffer Memory block for input/output operations via AVIOContext. - * The buffer must be allocated with av_malloc() and friends. - * @param buffer_size The buffer size is very important for performance. - * For protocols with fixed blocksize it should be set to this blocksize. - * For others a typical size is a cache page, e.g. 4kb. - * @param write_flag Set to 1 if the buffer should be writable, 0 otherwise. - * @param opaque An opaque pointer to user-specific data. - * @param read_packet A function for refilling the buffer, may be NULL. - * @param write_packet A function for writing the buffer contents, may be NULL. - * @param seek A function for seeking to specified byte position, may be NULL. - * - * @return Allocated AVIOContext or NULL on failure. - */ -AVIOContext *avio_alloc_context( - unsigned char *buffer, - int buffer_size, - int write_flag, - void *opaque, - int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), - int (*write_packet)(void *opaque, uint8_t *buf, int buf_size), - int64_t (*seek)(void *opaque, int64_t offset, int whence)); - -void avio_w8(AVIOContext *s, int b); -void avio_write(AVIOContext *s, const unsigned char *buf, int size); -void avio_wl64(AVIOContext *s, uint64_t val); -void avio_wb64(AVIOContext *s, uint64_t val); -void avio_wl32(AVIOContext *s, unsigned int val); -void avio_wb32(AVIOContext *s, unsigned int val); -void avio_wl24(AVIOContext *s, unsigned int val); -void avio_wb24(AVIOContext *s, unsigned int val); -void avio_wl16(AVIOContext *s, unsigned int val); -void avio_wb16(AVIOContext *s, unsigned int val); - -/** - * Write a NULL-terminated string. - * @return number of bytes written. - */ -int avio_put_str(AVIOContext *s, const char *str); - -/** - * Convert an UTF-8 string to UTF-16LE and write it. - * @return number of bytes written. - */ -int avio_put_str16le(AVIOContext *s, const char *str); - -/** - * Passing this as the "whence" parameter to a seek function causes it to - * return the filesize without seeking anywhere. Supporting this is optional. - * If it is not supported then the seek function will return <0. - */ -#define AVSEEK_SIZE 0x10000 - -/** - * Oring this flag as into the "whence" parameter to a seek function causes it to - * seek by any means (like reopening and linear reading) or other normally unreasonble - * means that can be extreemly slow. - * This may be ignored by the seek code. - */ -#define AVSEEK_FORCE 0x20000 - -/** - * fseek() equivalent for AVIOContext. - * @return new position or AVERROR. - */ -int64_t avio_seek(AVIOContext *s, int64_t offset, int whence); - -/** - * Skip given number of bytes forward - * @return new position or AVERROR. - */ -static av_always_inline int64_t avio_skip(AVIOContext *s, int64_t offset) -{ - return avio_seek(s, offset, SEEK_CUR); -} - -/** - * ftell() equivalent for AVIOContext. - * @return position or AVERROR. - */ -static av_always_inline int64_t avio_tell(AVIOContext *s) -{ - return avio_seek(s, 0, SEEK_CUR); -} - -/** - * Get the filesize. - * @return filesize or AVERROR - */ -int64_t avio_size(AVIOContext *s); - -/** @warning currently size is limited */ -#ifdef __GNUC__ -int avio_printf(AVIOContext *s, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); -#else -int avio_printf(AVIOContext *s, const char *fmt, ...); -#endif - -void avio_flush(AVIOContext *s); - - -/** - * Read size bytes from AVIOContext into buf. - * @return number of bytes read or AVERROR - */ -int avio_read(AVIOContext *s, unsigned char *buf, int size); - -/** - * @name Functions for reading from AVIOContext - * @{ - * - * @note return 0 if EOF, so you cannot use it if EOF handling is - * necessary - */ -int avio_r8 (AVIOContext *s); -unsigned int avio_rl16(AVIOContext *s); -unsigned int avio_rl24(AVIOContext *s); -unsigned int avio_rl32(AVIOContext *s); -uint64_t avio_rl64(AVIOContext *s); -unsigned int avio_rb16(AVIOContext *s); -unsigned int avio_rb24(AVIOContext *s); -unsigned int avio_rb32(AVIOContext *s); -uint64_t avio_rb64(AVIOContext *s); -/** - * @} - */ - -/** - * Read a string from pb into buf. The reading will terminate when either - * a NULL character was encountered, maxlen bytes have been read, or nothing - * more can be read from pb. The result is guaranteed to be NULL-terminated, it - * will be truncated if buf is too small. - * Note that the string is not interpreted or validated in any way, it - * might get truncated in the middle of a sequence for multi-byte encodings. - * - * @return number of bytes read (is always <= maxlen). - * If reading ends on EOF or error, the return value will be one more than - * bytes actually read. - */ -int avio_get_str(AVIOContext *pb, int maxlen, char *buf, int buflen); - -/** - * Read a UTF-16 string from pb and convert it to UTF-8. - * The reading will terminate when either a null or invalid character was - * encountered or maxlen bytes have been read. - * @return number of bytes read (is always <= maxlen) - */ -int avio_get_str16le(AVIOContext *pb, int maxlen, char *buf, int buflen); -int avio_get_str16be(AVIOContext *pb, int maxlen, char *buf, int buflen); - - -/** - * @name URL open modes - * The flags argument to avio_open must be one of the following - * constants, optionally ORed with other flags. - * @{ - */ -#define AVIO_FLAG_READ 1 /**< read-only */ -#define AVIO_FLAG_WRITE 2 /**< write-only */ -#define AVIO_FLAG_READ_WRITE (AVIO_FLAG_READ|AVIO_FLAG_WRITE) /**< read-write pseudo flag */ -/** - * @} - */ - -/** - * Use non-blocking mode. - * If this flag is set, operations on the context will return - * AVERROR(EAGAIN) if they can not be performed immediately. - * If this flag is not set, operations on the context will never return - * AVERROR(EAGAIN). - * Note that this flag does not affect the opening/connecting of the - * context. Connecting a protocol will always block if necessary (e.g. on - * network protocols) but never hang (e.g. on busy devices). - * Warning: non-blocking protocols is work-in-progress; this flag may be - * silently ignored. - */ -#define AVIO_FLAG_NONBLOCK 8 - -/** - * Create and initialize a AVIOContext for accessing the - * resource indicated by url. - * @note When the resource indicated by url has been opened in - * read+write mode, the AVIOContext can be used only for writing. - * - * @param s Used to return the pointer to the created AVIOContext. - * In case of failure the pointed to value is set to NULL. - * @param flags flags which control how the resource indicated by url - * is to be opened - * @return 0 in case of success, a negative value corresponding to an - * AVERROR code in case of failure - */ -int avio_open(AVIOContext **s, const char *url, int flags); - -/** - * Close the resource accessed by the AVIOContext s and free it. - * This function can only be used if s was opened by avio_open(). - * - * @return 0 on success, an AVERROR < 0 on error. - */ -int avio_close(AVIOContext *s); - -/** - * Open a write only memory stream. - * - * @param s new IO context - * @return zero if no error. - */ -int avio_open_dyn_buf(AVIOContext **s); - -/** - * Return the written size and a pointer to the buffer. The buffer - * must be freed with av_free(). - * Padding of FF_INPUT_BUFFER_PADDING_SIZE is added to the buffer. - * - * @param s IO context - * @param pbuffer pointer to a byte buffer - * @return the length of the byte buffer - */ -int avio_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer); - -/** - * Iterate through names of available protocols. - * - * @param opaque A private pointer representing current protocol. - * It must be a pointer to NULL on first iteration and will - * be updated by successive calls to avio_enum_protocols. - * @param output If set to 1, iterate over output protocols, - * otherwise over input protocols. - * - * @return A static string containing the name of current protocol or NULL - */ -const char *avio_enum_protocols(void **opaque, int output); - -/** - * Pause and resume playing - only meaningful if using a network streaming - * protocol (e.g. MMS). - * @param pause 1 for pause, 0 for resume - */ -int avio_pause(AVIOContext *h, int pause); - -/** - * Seek to a given timestamp relative to some component stream. - * Only meaningful if using a network streaming protocol (e.g. MMS.). - * @param stream_index The stream index that the timestamp is relative to. - * If stream_index is (-1) the timestamp should be in AV_TIME_BASE - * units from the beginning of the presentation. - * If a stream_index >= 0 is used and the protocol does not support - * seeking based on component streams, the call will fail with ENOTSUP. - * @param timestamp timestamp in AVStream.time_base units - * or if there is no stream specified then in AV_TIME_BASE units. - * @param flags Optional combination of AVSEEK_FLAG_BACKWARD, AVSEEK_FLAG_BYTE - * and AVSEEK_FLAG_ANY. The protocol may silently ignore - * AVSEEK_FLAG_BACKWARD and AVSEEK_FLAG_ANY, but AVSEEK_FLAG_BYTE will - * fail with ENOTSUP if used and not supported. - * @return >= 0 on success - * @see AVInputFormat::read_seek - */ -int64_t avio_seek_time(AVIOContext *h, int stream_index, - int64_t timestamp, int flags); - -#endif /* AVFORMAT_AVIO_H */ diff --git a/tizen/distrib/libav/i386/include/libavformat/version.h b/tizen/distrib/libav/i386/include/libavformat/version.h deleted file mode 100644 index 3cc1718f2b..0000000000 --- a/tizen/distrib/libav/i386/include/libavformat/version.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Version macros. - * - * 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 - */ - -#ifndef AVFORMAT_VERSION_H -#define AVFORMAT_VERSION_H - -#include "libavutil/avutil.h" - -#define LIBAVFORMAT_VERSION_MAJOR 53 -#define LIBAVFORMAT_VERSION_MINOR 2 -#define LIBAVFORMAT_VERSION_MICRO 0 - -#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ - LIBAVFORMAT_VERSION_MINOR, \ - LIBAVFORMAT_VERSION_MICRO) -#define LIBAVFORMAT_VERSION AV_VERSION(LIBAVFORMAT_VERSION_MAJOR, \ - LIBAVFORMAT_VERSION_MINOR, \ - LIBAVFORMAT_VERSION_MICRO) -#define LIBAVFORMAT_BUILD LIBAVFORMAT_VERSION_INT - -#define LIBAVFORMAT_IDENT "Lavf" AV_STRINGIFY(LIBAVFORMAT_VERSION) - -/** - * Those FF_API_* defines are not part of public API. - * They may change, break or disappear at any time. - */ -#ifndef FF_API_OLD_METADATA2 -#define FF_API_OLD_METADATA2 (LIBAVFORMAT_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_READ_SEEK -#define FF_API_READ_SEEK (LIBAVFORMAT_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_OLD_AVIO -#define FF_API_OLD_AVIO (LIBAVFORMAT_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_DUMP_FORMAT -#define FF_API_DUMP_FORMAT (LIBAVFORMAT_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_PARSE_DATE -#define FF_API_PARSE_DATE (LIBAVFORMAT_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_FIND_INFO_TAG -#define FF_API_FIND_INFO_TAG (LIBAVFORMAT_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_PKT_DUMP -#define FF_API_PKT_DUMP (LIBAVFORMAT_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_GUESS_IMG2_CODEC -#define FF_API_GUESS_IMG2_CODEC (LIBAVFORMAT_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_SDP_CREATE -#define FF_API_SDP_CREATE (LIBAVFORMAT_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_FORMAT_PARAMETERS -#define FF_API_FORMAT_PARAMETERS (LIBAVFORMAT_VERSION_MAJOR < 54) -#endif -#ifndef FF_API_FLAG_RTP_HINT -#define FF_API_FLAG_RTP_HINT (LIBAVFORMAT_VERSION_MAJOR < 54) -#endif - -#endif /* AVFORMAT_VERSION_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/adler32.h b/tizen/distrib/libav/i386/include/libavutil/adler32.h deleted file mode 100644 index 913db2d0b6..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/adler32.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * copyright (c) 2006 Mans Rullgard - * - * 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 - */ - -#ifndef AVUTIL_ADLER32_H -#define AVUTIL_ADLER32_H - -#include <stdint.h> -#include "attributes.h" - -/** - * Calculate the Adler32 checksum of a buffer. - * - * Passing the return value to a subsequent av_adler32_update() call - * allows the checksum of multiple buffers to be calculated as though - * they were concatenated. - * - * @param adler initial checksum value - * @param buf pointer to input buffer - * @param len size of input buffer - * @return updated checksum - */ -unsigned long av_adler32_update(unsigned long adler, const uint8_t *buf, - unsigned int len) av_pure; - -#endif /* AVUTIL_ADLER32_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/aes.h b/tizen/distrib/libav/i386/include/libavutil/aes.h deleted file mode 100644 index 6e5d320487..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/aes.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * copyright (c) 2007 Michael Niedermayer <michaelni@gmx.at> - * - * 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 - */ - -#ifndef AVUTIL_AES_H -#define AVUTIL_AES_H - -#include <stdint.h> - -extern const int av_aes_size; - -struct AVAES; - -/** - * Initialize an AVAES context. - * @param key_bits 128, 192 or 256 - * @param decrypt 0 for encryption, 1 for decryption - */ -int av_aes_init(struct AVAES *a, const uint8_t *key, int key_bits, int decrypt); - -/** - * Encrypt or decrypt a buffer using a previously initialized context. - * @param count number of 16 byte blocks - * @param dst destination array, can be equal to src - * @param src source array, can be equal to dst - * @param iv initialization vector for CBC mode, if NULL then ECB will be used - * @param decrypt 0 for encryption, 1 for decryption - */ -void av_aes_crypt(struct AVAES *a, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt); - -#endif /* AVUTIL_AES_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/attributes.h b/tizen/distrib/libav/i386/include/libavutil/attributes.h deleted file mode 100644 index 4abe78f3bf..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/attributes.h +++ /dev/null @@ -1,134 +0,0 @@ -/* - * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at> - * - * 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 - * Macro definitions for various function/variable attributes - */ - -#ifndef AVUTIL_ATTRIBUTES_H -#define AVUTIL_ATTRIBUTES_H - -#ifdef __GNUC__ -# define AV_GCC_VERSION_AT_LEAST(x,y) (__GNUC__ > x || __GNUC__ == x && __GNUC_MINOR__ >= y) -#else -# define AV_GCC_VERSION_AT_LEAST(x,y) 0 -#endif - -#ifndef av_always_inline -#if AV_GCC_VERSION_AT_LEAST(3,1) -# define av_always_inline __attribute__((always_inline)) inline -#else -# define av_always_inline inline -#endif -#endif - -#ifndef av_noinline -#if AV_GCC_VERSION_AT_LEAST(3,1) -# define av_noinline __attribute__((noinline)) -#else -# define av_noinline -#endif -#endif - -#ifndef av_pure -#if AV_GCC_VERSION_AT_LEAST(3,1) -# define av_pure __attribute__((pure)) -#else -# define av_pure -#endif -#endif - -#ifndef av_const -#if AV_GCC_VERSION_AT_LEAST(2,6) -# define av_const __attribute__((const)) -#else -# define av_const -#endif -#endif - -#ifndef av_cold -#if AV_GCC_VERSION_AT_LEAST(4,3) -# define av_cold __attribute__((cold)) -#else -# define av_cold -#endif -#endif - -#ifndef av_flatten -#if AV_GCC_VERSION_AT_LEAST(4,1) -# define av_flatten __attribute__((flatten)) -#else -# define av_flatten -#endif -#endif - -#ifndef attribute_deprecated -#if AV_GCC_VERSION_AT_LEAST(3,1) -# define attribute_deprecated __attribute__((deprecated)) -#else -# define attribute_deprecated -#endif -#endif - -#ifndef av_unused -#if defined(__GNUC__) -# define av_unused __attribute__((unused)) -#else -# define av_unused -#endif -#endif - -/** - * Mark a variable as used and prevent the compiler from optimizing it - * away. This is useful for variables accessed only from inline - * assembler without the compiler being aware. - */ -#ifndef av_used -#if AV_GCC_VERSION_AT_LEAST(3,1) -# define av_used __attribute__((used)) -#else -# define av_used -#endif -#endif - -#ifndef av_alias -#if AV_GCC_VERSION_AT_LEAST(3,3) -# define av_alias __attribute__((may_alias)) -#else -# define av_alias -#endif -#endif - -#ifndef av_uninit -#if defined(__GNUC__) && !defined(__ICC) -# define av_uninit(x) x=x -#else -# define av_uninit(x) x -#endif -#endif - -#ifdef __GNUC__ -# define av_builtin_constant_p __builtin_constant_p -#else -# define av_builtin_constant_p(x) 0 -#endif - -#endif /* AVUTIL_ATTRIBUTES_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/audioconvert.h b/tizen/distrib/libav/i386/include/libavutil/audioconvert.h deleted file mode 100644 index e37a2e84c1..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/audioconvert.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at> - * Copyright (c) 2008 Peter Ross - * - * 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 - */ - -#ifndef AVUTIL_AUDIOCONVERT_H -#define AVUTIL_AUDIOCONVERT_H - -#include <stdint.h> - -/** - * @file - * audio conversion routines - */ - -/* Audio channel masks */ -#define AV_CH_FRONT_LEFT 0x00000001 -#define AV_CH_FRONT_RIGHT 0x00000002 -#define AV_CH_FRONT_CENTER 0x00000004 -#define AV_CH_LOW_FREQUENCY 0x00000008 -#define AV_CH_BACK_LEFT 0x00000010 -#define AV_CH_BACK_RIGHT 0x00000020 -#define AV_CH_FRONT_LEFT_OF_CENTER 0x00000040 -#define AV_CH_FRONT_RIGHT_OF_CENTER 0x00000080 -#define AV_CH_BACK_CENTER 0x00000100 -#define AV_CH_SIDE_LEFT 0x00000200 -#define AV_CH_SIDE_RIGHT 0x00000400 -#define AV_CH_TOP_CENTER 0x00000800 -#define AV_CH_TOP_FRONT_LEFT 0x00001000 -#define AV_CH_TOP_FRONT_CENTER 0x00002000 -#define AV_CH_TOP_FRONT_RIGHT 0x00004000 -#define AV_CH_TOP_BACK_LEFT 0x00008000 -#define AV_CH_TOP_BACK_CENTER 0x00010000 -#define AV_CH_TOP_BACK_RIGHT 0x00020000 -#define AV_CH_STEREO_LEFT 0x20000000 ///< Stereo downmix. -#define AV_CH_STEREO_RIGHT 0x40000000 ///< See AV_CH_STEREO_LEFT. - -/** Channel mask value used for AVCodecContext.request_channel_layout - to indicate that the user requests the channel order of the decoder output - to be the native codec channel order. */ -#define AV_CH_LAYOUT_NATIVE 0x8000000000000000LL - -/* Audio channel convenience macros */ -#define AV_CH_LAYOUT_MONO (AV_CH_FRONT_CENTER) -#define AV_CH_LAYOUT_STEREO (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT) -#define AV_CH_LAYOUT_2_1 (AV_CH_LAYOUT_STEREO|AV_CH_BACK_CENTER) -#define AV_CH_LAYOUT_SURROUND (AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER) -#define AV_CH_LAYOUT_4POINT0 (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_CENTER) -#define AV_CH_LAYOUT_2_2 (AV_CH_LAYOUT_STEREO|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT) -#define AV_CH_LAYOUT_QUAD (AV_CH_LAYOUT_STEREO|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) -#define AV_CH_LAYOUT_5POINT0 (AV_CH_LAYOUT_SURROUND|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT) -#define AV_CH_LAYOUT_5POINT1 (AV_CH_LAYOUT_5POINT0|AV_CH_LOW_FREQUENCY) -#define AV_CH_LAYOUT_5POINT0_BACK (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) -#define AV_CH_LAYOUT_5POINT1_BACK (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_LOW_FREQUENCY) -#define AV_CH_LAYOUT_7POINT0 (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) -#define AV_CH_LAYOUT_7POINT1 (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) -#define AV_CH_LAYOUT_7POINT1_WIDE (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) -#define AV_CH_LAYOUT_STEREO_DOWNMIX (AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT) - -/** - * Return a channel layout id that matches name, 0 if no match. - */ -int64_t av_get_channel_layout(const char *name); - -/** - * Return a description of a channel layout. - * If nb_channels is <= 0, it is guessed from the channel_layout. - * - * @param buf put here the string containing the channel layout - * @param buf_size size in bytes of the buffer - */ -void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels, int64_t channel_layout); - -/** - * Return the number of channels in the channel layout. - */ -int av_get_channel_layout_nb_channels(int64_t channel_layout); - -#endif /* AVUTIL_AUDIOCONVERT_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/avassert.h b/tizen/distrib/libav/i386/include/libavutil/avassert.h deleted file mode 100644 index b223d26e8d..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/avassert.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * copyright (c) 2010 Michael Niedermayer <michaelni@gmx.at> - * - * 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 - * simple assert() macros that are a bit more flexible than ISO C assert(). - * @author Michael Niedermayer <michaelni@gmx.at> - */ - -#ifndef AVUTIL_AVASSERT_H -#define AVUTIL_AVASSERT_H - -#include <stdlib.h> -#include "avutil.h" -#include "log.h" - -/** - * assert() equivalent, that is always enabled. - */ -#define av_assert0(cond) do { \ - if (!(cond)) { \ - av_log(NULL, AV_LOG_FATAL, "Assertion %s failed at %s:%d\n", \ - AV_STRINGIFY(cond), __FILE__, __LINE__); \ - abort(); \ - } \ -} while (0) - - -/** - * assert() equivalent, that does not lie in speed critical code. - * These asserts() thus can be enabled without fearing speedloss. - */ -#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 0 -#define av_assert1(cond) av_assert0(cond) -#else -#define av_assert1(cond) ((void)0) -#endif - - -/** - * assert() equivalent, that does lie in speed critical code. - */ -#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 1 -#define av_assert2(cond) av_assert0(cond) -#else -#define av_assert2(cond) ((void)0) -#endif - -#endif /* AVUTIL_AVASSERT_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/avconfig.h b/tizen/distrib/libav/i386/include/libavutil/avconfig.h deleted file mode 100644 index f10aa6186b..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/avconfig.h +++ /dev/null @@ -1,6 +0,0 @@ -/* Generated by ffconf */ -#ifndef AVUTIL_AVCONFIG_H -#define AVUTIL_AVCONFIG_H -#define AV_HAVE_BIGENDIAN 0 -#define AV_HAVE_FAST_UNALIGNED 1 -#endif /* AVUTIL_AVCONFIG_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/avstring.h b/tizen/distrib/libav/i386/include/libavutil/avstring.h deleted file mode 100644 index b40acf6ebb..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/avstring.h +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (c) 2007 Mans Rullgard - * - * 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 - */ - -#ifndef AVUTIL_AVSTRING_H -#define AVUTIL_AVSTRING_H - -#include <stddef.h> - -/** - * Return non-zero if pfx is a prefix of str. If it is, *ptr is set to - * the address of the first character in str after the prefix. - * - * @param str input string - * @param pfx prefix to test - * @param ptr updated if the prefix is matched inside str - * @return non-zero if the prefix matches, zero otherwise - */ -int av_strstart(const char *str, const char *pfx, const char **ptr); - -/** - * Return non-zero if pfx is a prefix of str independent of case. If - * it is, *ptr is set to the address of the first character in str - * after the prefix. - * - * @param str input string - * @param pfx prefix to test - * @param ptr updated if the prefix is matched inside str - * @return non-zero if the prefix matches, zero otherwise - */ -int av_stristart(const char *str, const char *pfx, const char **ptr); - -/** - * Locate the first case-independent occurrence in the string haystack - * of the string needle. A zero-length string needle is considered to - * match at the start of haystack. - * - * This function is a case-insensitive version of the standard strstr(). - * - * @param haystack string to search in - * @param needle string to search for - * @return pointer to the located match within haystack - * or a null pointer if no match - */ -char *av_stristr(const char *haystack, const char *needle); - -/** - * Copy the string src to dst, but no more than size - 1 bytes, and - * null-terminate dst. - * - * This function is the same as BSD strlcpy(). - * - * @param dst destination buffer - * @param src source string - * @param size size of destination buffer - * @return the length of src - * - * WARNING: since the return value is the length of src, src absolutely - * _must_ be a properly 0-terminated string, otherwise this will read beyond - * the end of the buffer and possibly crash. - */ -size_t av_strlcpy(char *dst, const char *src, size_t size); - -/** - * Append the string src to the string dst, but to a total length of - * no more than size - 1 bytes, and null-terminate dst. - * - * This function is similar to BSD strlcat(), but differs when - * size <= strlen(dst). - * - * @param dst destination buffer - * @param src source string - * @param size size of destination buffer - * @return the total length of src and dst - * - * WARNING: since the return value use the length of src and dst, these absolutely - * _must_ be a properly 0-terminated strings, otherwise this will read beyond - * the end of the buffer and possibly crash. - */ -size_t av_strlcat(char *dst, const char *src, size_t size); - -/** - * Append output to a string, according to a format. Never write out of - * the destination buffer, and always put a terminating 0 within - * the buffer. - * @param dst destination buffer (string to which the output is - * appended) - * @param size total size of the destination buffer - * @param fmt printf-compatible format string, specifying how the - * following parameters are used - * @return the length of the string that would have been generated - * if enough space had been available - */ -size_t av_strlcatf(char *dst, size_t size, const char *fmt, ...); - -/** - * Convert a number to a av_malloced string. - */ -char *av_d2str(double d); - -/** - * Unescape the given string until a non escaped terminating char, - * and return the token corresponding to the unescaped string. - * - * The normal \ and ' escaping is supported. Leading and trailing - * whitespaces are removed, unless they are escaped with '\' or are - * enclosed between ''. - * - * @param buf the buffer to parse, buf will be updated to point to the - * terminating char - * @param term a 0-terminated list of terminating chars - * @return the malloced unescaped string, which must be av_freed by - * the user, NULL in case of allocation failure - */ -char *av_get_token(const char **buf, const char *term); - -#endif /* AVUTIL_AVSTRING_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/avutil.h b/tizen/distrib/libav/i386/include/libavutil/avutil.h deleted file mode 100644 index 18461467b4..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/avutil.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at> - * - * 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 - */ - -#ifndef AVUTIL_AVUTIL_H -#define AVUTIL_AVUTIL_H - -/** - * @file - * external API header - */ - - -#define AV_STRINGIFY(s) AV_TOSTRING(s) -#define AV_TOSTRING(s) #s - -#define AV_GLUE(a, b) a ## b -#define AV_JOIN(a, b) AV_GLUE(a, b) - -#define AV_PRAGMA(s) _Pragma(#s) - -#define AV_VERSION_INT(a, b, c) (a<<16 | b<<8 | c) -#define AV_VERSION_DOT(a, b, c) a ##.## b ##.## c -#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c) - -#define LIBAVUTIL_VERSION_MAJOR 51 -#define LIBAVUTIL_VERSION_MINOR 7 -#define LIBAVUTIL_VERSION_MICRO 0 - -#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ - LIBAVUTIL_VERSION_MINOR, \ - LIBAVUTIL_VERSION_MICRO) -#define LIBAVUTIL_VERSION AV_VERSION(LIBAVUTIL_VERSION_MAJOR, \ - LIBAVUTIL_VERSION_MINOR, \ - LIBAVUTIL_VERSION_MICRO) -#define LIBAVUTIL_BUILD LIBAVUTIL_VERSION_INT - -#define LIBAVUTIL_IDENT "Lavu" AV_STRINGIFY(LIBAVUTIL_VERSION) - -/** - * Those FF_API_* defines are not part of public API. - * They may change, break or disappear at any time. - */ -#ifndef FF_API_GET_BITS_PER_SAMPLE_FMT -#define FF_API_GET_BITS_PER_SAMPLE_FMT (LIBAVUTIL_VERSION_MAJOR < 52) -#endif -#ifndef FF_API_FIND_OPT -#define FF_API_FIND_OPT (LIBAVUTIL_VERSION_MAJOR < 52) -#endif - -/** - * Return the LIBAVUTIL_VERSION_INT constant. - */ -unsigned avutil_version(void); - -/** - * Return the libavutil build-time configuration. - */ -const char *avutil_configuration(void); - -/** - * Return the libavutil license. - */ -const char *avutil_license(void); - -enum AVMediaType { - AVMEDIA_TYPE_UNKNOWN = -1, - AVMEDIA_TYPE_VIDEO, - AVMEDIA_TYPE_AUDIO, - AVMEDIA_TYPE_DATA, - AVMEDIA_TYPE_SUBTITLE, - AVMEDIA_TYPE_ATTACHMENT, - AVMEDIA_TYPE_NB -}; - -#define FF_LAMBDA_SHIFT 7 -#define FF_LAMBDA_SCALE (1<<FF_LAMBDA_SHIFT) -#define FF_QP2LAMBDA 118 ///< factor to convert from H.263 QP to lambda -#define FF_LAMBDA_MAX (256*128-1) - -#define FF_QUALITY_SCALE FF_LAMBDA_SCALE //FIXME maybe remove - -#define AV_NOPTS_VALUE INT64_C(0x8000000000000000) -#define AV_TIME_BASE 1000000 -#define AV_TIME_BASE_Q (AVRational){1, AV_TIME_BASE} - -enum AVPictureType { - AV_PICTURE_TYPE_I = 1, ///< Intra - AV_PICTURE_TYPE_P, ///< Predicted - AV_PICTURE_TYPE_B, ///< Bi-dir predicted - AV_PICTURE_TYPE_S, ///< S(GMC)-VOP MPEG4 - AV_PICTURE_TYPE_SI, ///< Switching Intra - AV_PICTURE_TYPE_SP, ///< Switching Predicted - AV_PICTURE_TYPE_BI, ///< BI type -}; - -/** - * Return a single letter to describe the given picture type - * pict_type. - * - * @param[in] pict_type the picture type @return a single character - * representing the picture type, '?' if pict_type is unknown - */ -char av_get_picture_type_char(enum AVPictureType pict_type); - -#include "common.h" -#include "error.h" -#include "mathematics.h" -#include "rational.h" -#include "intfloat_readwrite.h" -#include "log.h" -#include "pixfmt.h" - -#endif /* AVUTIL_AVUTIL_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/base64.h b/tizen/distrib/libav/i386/include/libavutil/base64.h deleted file mode 100644 index 96c0a4a41e..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/base64.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2006 Ryan Martell. (rdm4@martellventures.com) - * - * 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 - */ - -#ifndef AVUTIL_BASE64_H -#define AVUTIL_BASE64_H - -#include <stdint.h> - -/** - * Decode a base64-encoded string. - * - * @param out buffer for decoded data - * @param in null-terminated input string - * @param out_size size in bytes of the out buffer, must be at - * least 3/4 of the length of in - * @return number of bytes written, or a negative value in case of - * invalid input - */ -int av_base64_decode(uint8_t *out, const char *in, int out_size); - -/** - * Encode data to base64 and null-terminate. - * - * @param out buffer for encoded data - * @param out_size size in bytes of the output buffer, must be at - * least AV_BASE64_SIZE(in_size) - * @param in_size size in bytes of the 'in' buffer - * @return 'out' or NULL in case of error - */ -char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size); - -/** - * Calculate the output size needed to base64-encode x bytes. - */ -#define AV_BASE64_SIZE(x) (((x)+2) / 3 * 4 + 1) - -#endif /* AVUTIL_BASE64_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/bswap.h b/tizen/distrib/libav/i386/include/libavutil/bswap.h deleted file mode 100644 index 3657ccd402..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/bswap.h +++ /dev/null @@ -1,118 +0,0 @@ -/* - * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at> - * - * 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 - * byte swapping routines - */ - -#ifndef AVUTIL_BSWAP_H -#define AVUTIL_BSWAP_H - -#include <stdint.h> -#include "libavutil/avconfig.h" -#include "attributes.h" - -#ifdef HAVE_AV_CONFIG_H - -#include "config.h" - -#if ARCH_ARM -# include "arm/bswap.h" -#elif ARCH_AVR32 -# include "avr32/bswap.h" -#elif ARCH_BFIN -# include "bfin/bswap.h" -#elif ARCH_SH4 -# include "sh4/bswap.h" -#elif ARCH_X86 -# include "x86/bswap.h" -#endif - -#endif /* HAVE_AV_CONFIG_H */ - -#define AV_BSWAP16C(x) (((x) << 8 & 0xff00) | ((x) >> 8 & 0x00ff)) -#define AV_BSWAP32C(x) (AV_BSWAP16C(x) << 16 | AV_BSWAP16C((x) >> 16)) -#define AV_BSWAP64C(x) (AV_BSWAP32C(x) << 32 | AV_BSWAP32C((x) >> 32)) - -#define AV_BSWAPC(s, x) AV_BSWAP##s##C(x) - -#ifndef av_bswap16 -static av_always_inline av_const uint16_t av_bswap16(uint16_t x) -{ - x= (x>>8) | (x<<8); - return x; -} -#endif - -#ifndef av_bswap32 -static av_always_inline av_const uint32_t av_bswap32(uint32_t x) -{ - x= ((x<<8)&0xFF00FF00) | ((x>>8)&0x00FF00FF); - x= (x>>16) | (x<<16); - return x; -} -#endif - -#ifndef av_bswap64 -static inline uint64_t av_const av_bswap64(uint64_t x) -{ - union { - uint64_t ll; - uint32_t l[2]; - } w, r; - w.ll = x; - r.l[0] = av_bswap32 (w.l[1]); - r.l[1] = av_bswap32 (w.l[0]); - return r.ll; -} -#endif - -// be2ne ... big-endian to native-endian -// le2ne ... little-endian to native-endian - -#if AV_HAVE_BIGENDIAN -#define av_be2ne16(x) (x) -#define av_be2ne32(x) (x) -#define av_be2ne64(x) (x) -#define av_le2ne16(x) av_bswap16(x) -#define av_le2ne32(x) av_bswap32(x) -#define av_le2ne64(x) av_bswap64(x) -#define AV_BE2NEC(s, x) (x) -#define AV_LE2NEC(s, x) AV_BSWAPC(s, x) -#else -#define av_be2ne16(x) av_bswap16(x) -#define av_be2ne32(x) av_bswap32(x) -#define av_be2ne64(x) av_bswap64(x) -#define av_le2ne16(x) (x) -#define av_le2ne32(x) (x) -#define av_le2ne64(x) (x) -#define AV_BE2NEC(s, x) AV_BSWAPC(s, x) -#define AV_LE2NEC(s, x) (x) -#endif - -#define AV_BE2NE16C(x) AV_BE2NEC(16, x) -#define AV_BE2NE32C(x) AV_BE2NEC(32, x) -#define AV_BE2NE64C(x) AV_BE2NEC(64, x) -#define AV_LE2NE16C(x) AV_LE2NEC(16, x) -#define AV_LE2NE32C(x) AV_LE2NEC(32, x) -#define AV_LE2NE64C(x) AV_LE2NEC(64, x) - -#endif /* AVUTIL_BSWAP_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/common.h b/tizen/distrib/libav/i386/include/libavutil/common.h deleted file mode 100644 index a985fa4804..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/common.h +++ /dev/null @@ -1,385 +0,0 @@ -/* - * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at> - * - * 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 - * common internal and external API header - */ - -#ifndef AVUTIL_COMMON_H -#define AVUTIL_COMMON_H - -#include <ctype.h> -#include <errno.h> -#include <inttypes.h> -#include <limits.h> -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include "attributes.h" -#include "libavutil/avconfig.h" - -#if AV_HAVE_BIGENDIAN -# define AV_NE(be, le) (be) -#else -# define AV_NE(be, le) (le) -#endif - -//rounded division & shift -#define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b)) -/* assume b>0 */ -#define ROUNDED_DIV(a,b) (((a)>0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b)) -#define FFABS(a) ((a) >= 0 ? (a) : (-(a))) -#define FFSIGN(a) ((a) > 0 ? 1 : -1) - -#define FFMAX(a,b) ((a) > (b) ? (a) : (b)) -#define FFMAX3(a,b,c) FFMAX(FFMAX(a,b),c) -#define FFMIN(a,b) ((a) > (b) ? (b) : (a)) -#define FFMIN3(a,b,c) FFMIN(FFMIN(a,b),c) - -#define FFSWAP(type,a,b) do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0) -#define FF_ARRAY_ELEMS(a) (sizeof(a) / sizeof((a)[0])) -#define FFALIGN(x, a) (((x)+(a)-1)&~((a)-1)) - -/* misc math functions */ -extern const uint8_t ff_log2_tab[256]; - -extern const uint8_t av_reverse[256]; - -static av_always_inline av_const int av_log2_c(unsigned int v) -{ - int n = 0; - if (v & 0xffff0000) { - v >>= 16; - n += 16; - } - if (v & 0xff00) { - v >>= 8; - n += 8; - } - n += ff_log2_tab[v]; - - return n; -} - -static av_always_inline av_const int av_log2_16bit_c(unsigned int v) -{ - int n = 0; - if (v & 0xff00) { - v >>= 8; - n += 8; - } - n += ff_log2_tab[v]; - - return n; -} - -#ifdef HAVE_AV_CONFIG_H -# include "config.h" -# include "intmath.h" -#endif - -/* Pull in unguarded fallback defines at the end of this file. */ -#include "common.h" - -/** - * Clip a signed integer value into the amin-amax range. - * @param a value to clip - * @param amin minimum value of the clip range - * @param amax maximum value of the clip range - * @return clipped value - */ -static av_always_inline av_const int av_clip_c(int a, int amin, int amax) -{ - if (a < amin) return amin; - else if (a > amax) return amax; - else return a; -} - -/** - * Clip a signed integer value into the 0-255 range. - * @param a value to clip - * @return clipped value - */ -static av_always_inline av_const uint8_t av_clip_uint8_c(int a) -{ - if (a&(~0xFF)) return (-a)>>31; - else return a; -} - -/** - * Clip a signed integer value into the -128,127 range. - * @param a value to clip - * @return clipped value - */ -static av_always_inline av_const int8_t av_clip_int8_c(int a) -{ - if ((a+0x80) & ~0xFF) return (a>>31) ^ 0x7F; - else return a; -} - -/** - * Clip a signed integer value into the 0-65535 range. - * @param a value to clip - * @return clipped value - */ -static av_always_inline av_const uint16_t av_clip_uint16_c(int a) -{ - if (a&(~0xFFFF)) return (-a)>>31; - else return a; -} - -/** - * Clip a signed integer value into the -32768,32767 range. - * @param a value to clip - * @return clipped value - */ -static av_always_inline av_const int16_t av_clip_int16_c(int a) -{ - if ((a+0x8000) & ~0xFFFF) return (a>>31) ^ 0x7FFF; - else return a; -} - -/** - * Clip a signed 64-bit integer value into the -2147483648,2147483647 range. - * @param a value to clip - * @return clipped value - */ -static av_always_inline av_const int32_t av_clipl_int32_c(int64_t a) -{ - if ((a+0x80000000u) & ~UINT64_C(0xFFFFFFFF)) return (a>>63) ^ 0x7FFFFFFF; - else return a; -} - -/** - * Clip a signed integer to an unsigned power of two range. - * @param a value to clip - * @param p bit position to clip at - * @return clipped value - */ -static av_always_inline av_const unsigned av_clip_uintp2_c(int a, int p) -{ - if (a & ~((1<<p) - 1)) return -a >> 31 & ((1<<p) - 1); - else return a; -} - -/** - * Clip a float value into the amin-amax range. - * @param a value to clip - * @param amin minimum value of the clip range - * @param amax maximum value of the clip range - * @return clipped value - */ -static av_always_inline av_const float av_clipf_c(float a, float amin, float amax) -{ - if (a < amin) return amin; - else if (a > amax) return amax; - else return a; -} - -/** Compute ceil(log2(x)). - * @param x value used to compute ceil(log2(x)) - * @return computed ceiling of log2(x) - */ -static av_always_inline av_const int av_ceil_log2_c(int x) -{ - return av_log2((x - 1) << 1); -} - -/** - * Count number of bits set to one in x - * @param x value to count bits of - * @return the number of bits set to one in x - */ -static av_always_inline av_const int av_popcount_c(uint32_t x) -{ - x -= (x >> 1) & 0x55555555; - x = (x & 0x33333333) + ((x >> 2) & 0x33333333); - x = (x + (x >> 4)) & 0x0F0F0F0F; - x += x >> 8; - return (x + (x >> 16)) & 0x3F; -} - -#define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((d) << 24)) -#define MKBETAG(a,b,c,d) ((d) | ((c) << 8) | ((b) << 16) | ((a) << 24)) - -/** - * Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form. - * - * @param val Output value, must be an lvalue of type uint32_t. - * @param GET_BYTE Expression reading one byte from the input. - * Evaluated up to 7 times (4 for the currently - * assigned Unicode range). With a memory buffer - * input, this could be *ptr++. - * @param ERROR Expression to be evaluated on invalid input, - * typically a goto statement. - */ -#define GET_UTF8(val, GET_BYTE, ERROR)\ - val= GET_BYTE;\ - {\ - int ones= 7 - av_log2(val ^ 255);\ - if(ones==1)\ - ERROR\ - val&= 127>>ones;\ - while(--ones > 0){\ - int tmp= GET_BYTE - 128;\ - if(tmp>>6)\ - ERROR\ - val= (val<<6) + tmp;\ - }\ - } - -/** - * Convert a UTF-16 character (2 or 4 bytes) to its 32-bit UCS-4 encoded form. - * - * @param val Output value, must be an lvalue of type uint32_t. - * @param GET_16BIT Expression returning two bytes of UTF-16 data converted - * to native byte order. Evaluated one or two times. - * @param ERROR Expression to be evaluated on invalid input, - * typically a goto statement. - */ -#define GET_UTF16(val, GET_16BIT, ERROR)\ - val = GET_16BIT;\ - {\ - unsigned int hi = val - 0xD800;\ - if (hi < 0x800) {\ - val = GET_16BIT - 0xDC00;\ - if (val > 0x3FFU || hi > 0x3FFU)\ - ERROR\ - val += (hi<<10) + 0x10000;\ - }\ - }\ - -/*! - * \def PUT_UTF8(val, tmp, PUT_BYTE) - * Convert a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes long). - * \param val is an input-only argument and should be of type uint32_t. It holds - * a UCS-4 encoded Unicode character that is to be converted to UTF-8. If - * val is given as a function it is executed only once. - * \param tmp is a temporary variable and should be of type uint8_t. It - * represents an intermediate value during conversion that is to be - * output by PUT_BYTE. - * \param PUT_BYTE writes the converted UTF-8 bytes to any proper destination. - * It could be a function or a statement, and uses tmp as the input byte. - * For example, PUT_BYTE could be "*output++ = tmp;" PUT_BYTE will be - * executed up to 4 times for values in the valid UTF-8 range and up to - * 7 times in the general case, depending on the length of the converted - * Unicode character. - */ -#define PUT_UTF8(val, tmp, PUT_BYTE)\ - {\ - int bytes, shift;\ - uint32_t in = val;\ - if (in < 0x80) {\ - tmp = in;\ - PUT_BYTE\ - } else {\ - bytes = (av_log2(in) + 4) / 5;\ - shift = (bytes - 1) * 6;\ - tmp = (256 - (256 >> bytes)) | (in >> shift);\ - PUT_BYTE\ - while (shift >= 6) {\ - shift -= 6;\ - tmp = 0x80 | ((in >> shift) & 0x3f);\ - PUT_BYTE\ - }\ - }\ - } - -/*! - * \def PUT_UTF16(val, tmp, PUT_16BIT) - * Convert a 32-bit Unicode character to its UTF-16 encoded form (2 or 4 bytes). - * \param val is an input-only argument and should be of type uint32_t. It holds - * a UCS-4 encoded Unicode character that is to be converted to UTF-16. If - * val is given as a function it is executed only once. - * \param tmp is a temporary variable and should be of type uint16_t. It - * represents an intermediate value during conversion that is to be - * output by PUT_16BIT. - * \param PUT_16BIT writes the converted UTF-16 data to any proper destination - * in desired endianness. It could be a function or a statement, and uses tmp - * as the input byte. For example, PUT_BYTE could be "*output++ = tmp;" - * PUT_BYTE will be executed 1 or 2 times depending on input character. - */ -#define PUT_UTF16(val, tmp, PUT_16BIT)\ - {\ - uint32_t in = val;\ - if (in < 0x10000) {\ - tmp = in;\ - PUT_16BIT\ - } else {\ - tmp = 0xD800 | ((in - 0x10000) >> 10);\ - PUT_16BIT\ - tmp = 0xDC00 | ((in - 0x10000) & 0x3FF);\ - PUT_16BIT\ - }\ - }\ - - - -#include "mem.h" - -#ifdef HAVE_AV_CONFIG_H -# include "internal.h" -#endif /* HAVE_AV_CONFIG_H */ - -#endif /* AVUTIL_COMMON_H */ - -/* - * The following definitions are outside the multiple inclusion guard - * to ensure they are immediately available in intmath.h. - */ - -#ifndef av_log2 -# define av_log2 av_log2_c -#endif -#ifndef av_log2_16bit -# define av_log2_16bit av_log2_16bit_c -#endif -#ifndef av_ceil_log2 -# define av_ceil_log2 av_ceil_log2_c -#endif -#ifndef av_clip -# define av_clip av_clip_c -#endif -#ifndef av_clip_uint8 -# define av_clip_uint8 av_clip_uint8_c -#endif -#ifndef av_clip_int8 -# define av_clip_int8 av_clip_int8_c -#endif -#ifndef av_clip_uint16 -# define av_clip_uint16 av_clip_uint16_c -#endif -#ifndef av_clip_int16 -# define av_clip_int16 av_clip_int16_c -#endif -#ifndef av_clipl_int32 -# define av_clipl_int32 av_clipl_int32_c -#endif -#ifndef av_clip_uintp2 -# define av_clip_uintp2 av_clip_uintp2_c -#endif -#ifndef av_clipf -# define av_clipf av_clipf_c -#endif -#ifndef av_popcount -# define av_popcount av_popcount_c -#endif diff --git a/tizen/distrib/libav/i386/include/libavutil/cpu.h b/tizen/distrib/libav/i386/include/libavutil/cpu.h deleted file mode 100644 index 777cdc01d1..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/cpu.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2000, 2001, 2002 Fabrice Bellard - * - * 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 - */ - -#ifndef AVUTIL_CPU_H -#define AVUTIL_CPU_H - -#define AV_CPU_FLAG_FORCE 0x80000000 /* force usage of selected flags (OR) */ - - /* lower 16 bits - CPU features */ -#define AV_CPU_FLAG_MMX 0x0001 ///< standard MMX -#define AV_CPU_FLAG_MMX2 0x0002 ///< SSE integer functions or AMD MMX ext -#define AV_CPU_FLAG_3DNOW 0x0004 ///< AMD 3DNOW -#define AV_CPU_FLAG_SSE 0x0008 ///< SSE functions -#define AV_CPU_FLAG_SSE2 0x0010 ///< PIV SSE2 functions -#define AV_CPU_FLAG_SSE2SLOW 0x40000000 ///< SSE2 supported, but usually not faster -#define AV_CPU_FLAG_3DNOWEXT 0x0020 ///< AMD 3DNowExt -#define AV_CPU_FLAG_SSE3 0x0040 ///< Prescott SSE3 functions -#define AV_CPU_FLAG_SSE3SLOW 0x20000000 ///< SSE3 supported, but usually not faster -#define AV_CPU_FLAG_SSSE3 0x0080 ///< Conroe SSSE3 functions -#define AV_CPU_FLAG_ATOM 0x10000000 ///< Atom processor, some SSSE3 instructions are slower -#define AV_CPU_FLAG_SSE4 0x0100 ///< Penryn SSE4.1 functions -#define AV_CPU_FLAG_SSE42 0x0200 ///< Nehalem SSE4.2 functions -#define AV_CPU_FLAG_AVX 0x4000 ///< AVX functions: requires OS support even if YMM registers aren't used -#define AV_CPU_FLAG_IWMMXT 0x0100 ///< XScale IWMMXT -#define AV_CPU_FLAG_ALTIVEC 0x0001 ///< standard - -/** - * Return the flags which specify extensions supported by the CPU. - */ -int av_get_cpu_flags(void); - -/* The following CPU-specific functions shall not be called directly. */ -int ff_get_cpu_flags_arm(void); -int ff_get_cpu_flags_ppc(void); -int ff_get_cpu_flags_x86(void); - -#endif /* AVUTIL_CPU_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/crc.h b/tizen/distrib/libav/i386/include/libavutil/crc.h deleted file mode 100644 index a934119413..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/crc.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at> - * - * 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 - */ - -#ifndef AVUTIL_CRC_H -#define AVUTIL_CRC_H - -#include <stdint.h> -#include <stddef.h> -#include "attributes.h" - -typedef uint32_t AVCRC; - -typedef enum { - AV_CRC_8_ATM, - AV_CRC_16_ANSI, - AV_CRC_16_CCITT, - AV_CRC_32_IEEE, - AV_CRC_32_IEEE_LE, /*< reversed bitorder version of AV_CRC_32_IEEE */ - AV_CRC_MAX, /*< Not part of public API! Do not use outside libavutil. */ -}AVCRCId; - -int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size); -const AVCRC *av_crc_get_table(AVCRCId crc_id); -uint32_t av_crc(const AVCRC *ctx, uint32_t start_crc, const uint8_t *buffer, size_t length) av_pure; - -#endif /* AVUTIL_CRC_H */ - diff --git a/tizen/distrib/libav/i386/include/libavutil/dict.h b/tizen/distrib/libav/i386/include/libavutil/dict.h deleted file mode 100644 index 397ce3852f..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/dict.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * - * 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 - * Public dictionary API. - */ - -#ifndef AVUTIL_DICT_H -#define AVUTIL_DICT_H - -#define AV_DICT_MATCH_CASE 1 -#define AV_DICT_IGNORE_SUFFIX 2 -#define AV_DICT_DONT_STRDUP_KEY 4 -#define AV_DICT_DONT_STRDUP_VAL 8 -#define AV_DICT_DONT_OVERWRITE 16 ///< Don't overwrite existing entries. -#define AV_DICT_APPEND 32 /**< If the entry already exists, append to it. Note that no - delimiter is added, the strings are simply concatenated. */ - -typedef struct { - char *key; - char *value; -} AVDictionaryEntry; - -typedef struct AVDictionary AVDictionary; - -/** - * Get a dictionary entry with matching key. - * - * @param prev Set to the previous matching element to find the next. - * If set to NULL the first matching element is returned. - * @param flags Allows case as well as suffix-insensitive comparisons. - * @return Found entry or NULL, changing key or value leads to undefined behavior. - */ -AVDictionaryEntry * -av_dict_get(AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags); - -/** - * Set the given entry in *pm, overwriting an existing entry. - * - * @param pm pointer to a pointer to a dictionary struct. If *pm is NULL - * a dictionary struct is allocated and put in *pm. - * @param key entry key to add to *pm (will be av_strduped depending on flags) - * @param value entry value to add to *pm (will be av_strduped depending on flags). - * Passing a NULL value will cause an existing tag to be deleted. - * @return >= 0 on success otherwise an error code <0 - */ -int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags); - -/** - * Copy entries from one AVDictionary struct into another. - * @param dst pointer to a pointer to a AVDictionary struct. If *dst is NULL, - * this function will allocate a struct for you and put it in *dst - * @param src pointer to source AVDictionary struct - * @param flags flags to use when setting entries in *dst - * @note metadata is read using the AV_DICT_IGNORE_SUFFIX flag - */ -void av_dict_copy(AVDictionary **dst, AVDictionary *src, int flags); - -/** - * Free all the memory allocated for an AVDictionary struct. - */ -void av_dict_free(AVDictionary **m); - -#endif // AVUTIL_DICT_H diff --git a/tizen/distrib/libav/i386/include/libavutil/error.h b/tizen/distrib/libav/i386/include/libavutil/error.h deleted file mode 100644 index ba12d2bfae..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/error.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * 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 - * error code definitions - */ - -#ifndef AVUTIL_ERROR_H -#define AVUTIL_ERROR_H - -#include <errno.h> -#include "avutil.h" - -/* error handling */ -#if EDOM > 0 -#define AVERROR(e) (-(e)) ///< Returns a negative error code from a POSIX error code, to return from library functions. -#define AVUNERROR(e) (-(e)) ///< Returns a POSIX error code from a library function error return value. -#else -/* Some platforms have E* and errno already negated. */ -#define AVERROR(e) (e) -#define AVUNERROR(e) (e) -#endif - -#define AVERROR_BSF_NOT_FOUND (-MKTAG(0xF8,'B','S','F')) ///< Bitstream filter not found -#define AVERROR_DECODER_NOT_FOUND (-MKTAG(0xF8,'D','E','C')) ///< Decoder not found -#define AVERROR_DEMUXER_NOT_FOUND (-MKTAG(0xF8,'D','E','M')) ///< Demuxer not found -#define AVERROR_ENCODER_NOT_FOUND (-MKTAG(0xF8,'E','N','C')) ///< Encoder not found -#define AVERROR_EOF (-MKTAG( 'E','O','F',' ')) ///< End of file -#define AVERROR_EXIT (-MKTAG( 'E','X','I','T')) ///< Immediate exit was requested; the called function should not be restarted -#define AVERROR_FILTER_NOT_FOUND (-MKTAG(0xF8,'F','I','L')) ///< Filter not found -#define AVERROR_INVALIDDATA (-MKTAG( 'I','N','D','A')) ///< Invalid data found when processing input -#define AVERROR_MUXER_NOT_FOUND (-MKTAG(0xF8,'M','U','X')) ///< Muxer not found -#define AVERROR_OPTION_NOT_FOUND (-MKTAG(0xF8,'O','P','T')) ///< Option not found -#define AVERROR_PATCHWELCOME (-MKTAG( 'P','A','W','E')) ///< Not yet implemented in Libav, patches welcome -#define AVERROR_PROTOCOL_NOT_FOUND (-MKTAG(0xF8,'P','R','O')) ///< Protocol not found -#define AVERROR_STREAM_NOT_FOUND (-MKTAG(0xF8,'S','T','R')) ///< Stream not found - -/** - * Put a description of the AVERROR code errnum in errbuf. - * In case of failure the global variable errno is set to indicate the - * error. Even in case of failure av_strerror() will print a generic - * error message indicating the errnum provided to errbuf. - * - * @param errnum error code to describe - * @param errbuf buffer to which description is written - * @param errbuf_size the size in bytes of errbuf - * @return 0 on success, a negative value if a description for errnum - * cannot be found - */ -int av_strerror(int errnum, char *errbuf, size_t errbuf_size); - -#endif /* AVUTIL_ERROR_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/eval.h b/tizen/distrib/libav/i386/include/libavutil/eval.h deleted file mode 100644 index c485c69fb1..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/eval.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (c) 2002 Michael Niedermayer <michaelni@gmx.at> - * - * 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 - * simple arithmetic expression evaluator - */ - -#ifndef AVUTIL_EVAL_H -#define AVUTIL_EVAL_H - -#include "avutil.h" - -typedef struct AVExpr AVExpr; - -/** - * Parse and evaluate an expression. - * Note, this is significantly slower than av_expr_eval(). - * - * @param res a pointer to a double where is put the result value of - * the expression, or NAN in case of error - * @param s expression as a zero terminated string, for example "1+2^3+5*5+sin(2/3)" - * @param const_names NULL terminated array of zero terminated strings of constant identifiers, for example {"PI", "E", 0} - * @param const_values a zero terminated array of values for the identifiers from const_names - * @param func1_names NULL terminated array of zero terminated strings of funcs1 identifiers - * @param funcs1 NULL terminated array of function pointers for functions which take 1 argument - * @param func2_names NULL terminated array of zero terminated strings of funcs2 identifiers - * @param funcs2 NULL terminated array of function pointers for functions which take 2 arguments - * @param opaque a pointer which will be passed to all functions from funcs1 and funcs2 - * @param log_ctx parent logging context - * @return 0 in case of success, a negative value corresponding to an - * AVERROR code otherwise - */ -int av_expr_parse_and_eval(double *res, const char *s, - const char * const *const_names, const double *const_values, - const char * const *func1_names, double (* const *funcs1)(void *, double), - const char * const *func2_names, double (* const *funcs2)(void *, double, double), - void *opaque, int log_offset, void *log_ctx); - -/** - * Parse an expression. - * - * @param expr a pointer where is put an AVExpr containing the parsed - * value in case of successfull parsing, or NULL otherwise. - * The pointed to AVExpr must be freed with av_expr_free() by the user - * when it is not needed anymore. - * @param s expression as a zero terminated string, for example "1+2^3+5*5+sin(2/3)" - * @param const_names NULL terminated array of zero terminated strings of constant identifiers, for example {"PI", "E", 0} - * @param func1_names NULL terminated array of zero terminated strings of funcs1 identifiers - * @param funcs1 NULL terminated array of function pointers for functions which take 1 argument - * @param func2_names NULL terminated array of zero terminated strings of funcs2 identifiers - * @param funcs2 NULL terminated array of function pointers for functions which take 2 arguments - * @param log_ctx parent logging context - * @return 0 in case of success, a negative value corresponding to an - * AVERROR code otherwise - */ -int av_expr_parse(AVExpr **expr, const char *s, - const char * const *const_names, - const char * const *func1_names, double (* const *funcs1)(void *, double), - const char * const *func2_names, double (* const *funcs2)(void *, double, double), - int log_offset, void *log_ctx); - -/** - * Evaluate a previously parsed expression. - * - * @param const_values a zero terminated array of values for the identifiers from av_expr_parse() const_names - * @param opaque a pointer which will be passed to all functions from funcs1 and funcs2 - * @return the value of the expression - */ -double av_expr_eval(AVExpr *e, const double *const_values, void *opaque); - -/** - * Free a parsed expression previously created with av_expr_parse(). - */ -void av_expr_free(AVExpr *e); - -/** - * Parse the string in numstr and return its value as a double. If - * the string is empty, contains only whitespaces, or does not contain - * an initial substring that has the expected syntax for a - * floating-point number, no conversion is performed. In this case, - * returns a value of zero and the value returned in tail is the value - * of numstr. - * - * @param numstr a string representing a number, may contain one of - * the International System number postfixes, for example 'K', 'M', - * 'G'. If 'i' is appended after the postfix, powers of 2 are used - * instead of powers of 10. The 'B' postfix multiplies the value for - * 8, and can be appended after another postfix or used alone. This - * allows using for example 'KB', 'MiB', 'G' and 'B' as postfix. - * @param tail if non-NULL puts here the pointer to the char next - * after the last parsed character - */ -double av_strtod(const char *numstr, char **tail); - -#endif /* AVUTIL_EVAL_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/fifo.h b/tizen/distrib/libav/i386/include/libavutil/fifo.h deleted file mode 100644 index cd361b0222..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/fifo.h +++ /dev/null @@ -1,116 +0,0 @@ -/* - * 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 - * a very simple circular buffer FIFO implementation - */ - -#ifndef AVUTIL_FIFO_H -#define AVUTIL_FIFO_H - -#include <stdint.h> - -typedef struct AVFifoBuffer { - uint8_t *buffer; - uint8_t *rptr, *wptr, *end; - uint32_t rndx, wndx; -} AVFifoBuffer; - -/** - * Initialize an AVFifoBuffer. - * @param size of FIFO - * @return AVFifoBuffer or NULL in case of memory allocation failure - */ -AVFifoBuffer *av_fifo_alloc(unsigned int size); - -/** - * Free an AVFifoBuffer. - * @param *f AVFifoBuffer to free - */ -void av_fifo_free(AVFifoBuffer *f); - -/** - * Reset the AVFifoBuffer to the state right after av_fifo_alloc, in particular it is emptied. - * @param *f AVFifoBuffer to reset - */ -void av_fifo_reset(AVFifoBuffer *f); - -/** - * Return the amount of data in bytes in the AVFifoBuffer, that is the - * amount of data you can read from it. - * @param *f AVFifoBuffer to read from - * @return size - */ -int av_fifo_size(AVFifoBuffer *f); - -/** - * Return the amount of space in bytes in the AVFifoBuffer, that is the - * amount of data you can write into it. - * @param *f AVFifoBuffer to write into - * @return size - */ -int av_fifo_space(AVFifoBuffer *f); - -/** - * Feed data from an AVFifoBuffer to a user-supplied callback. - * @param *f AVFifoBuffer to read from - * @param buf_size number of bytes to read - * @param *func generic read function - * @param *dest data destination - */ -int av_fifo_generic_read(AVFifoBuffer *f, void *dest, int buf_size, void (*func)(void*, void*, int)); - -/** - * Feed data from a user-supplied callback to an AVFifoBuffer. - * @param *f AVFifoBuffer to write to - * @param *src data source; non-const since it may be used as a - * modifiable context by the function defined in func - * @param size number of bytes to write - * @param *func generic write function; the first parameter is src, - * the second is dest_buf, the third is dest_buf_size. - * func must return the number of bytes written to dest_buf, or <= 0 to - * indicate no more data available to write. - * If func is NULL, src is interpreted as a simple byte array for source data. - * @return the number of bytes written to the FIFO - */ -int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void*, void*, int)); - -/** - * Resize an AVFifoBuffer. - * @param *f AVFifoBuffer to resize - * @param size new AVFifoBuffer size in bytes - * @return <0 for failure, >=0 otherwise - */ -int av_fifo_realloc2(AVFifoBuffer *f, unsigned int size); - -/** - * Read and discard the specified amount of data from an AVFifoBuffer. - * @param *f AVFifoBuffer to read from - * @param size amount of data to read in bytes - */ -void av_fifo_drain(AVFifoBuffer *f, int size); - -static inline uint8_t av_fifo_peek(AVFifoBuffer *f, int offs) -{ - uint8_t *ptr = f->rptr + offs; - if (ptr >= f->end) - ptr -= f->end - f->buffer; - return *ptr; -} -#endif /* AVUTIL_FIFO_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/file.h b/tizen/distrib/libav/i386/include/libavutil/file.h deleted file mode 100644 index c481c37f93..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/file.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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 - */ - -#ifndef AVUTIL_FILE_H -#define AVUTIL_FILE_H - -#include "avutil.h" - -/** - * @file - * Misc file utilities. - */ - -/** - * Read the file with name filename, and put its content in a newly - * allocated buffer or map it with mmap() when available. - * In case of success set *bufptr to the read or mmapped buffer, and - * *size to the size in bytes of the buffer in *bufptr. - * The returned buffer must be released with av_file_unmap(). - * - * @param log_offset loglevel offset used for logging - * @param log_ctx context used for logging - * @return a non negative number in case of success, a negative value - * corresponding to an AVERROR error code in case of failure - */ -int av_file_map(const char *filename, uint8_t **bufptr, size_t *size, - int log_offset, void *log_ctx); - -/** - * Unmap or free the buffer bufptr created by av_file_map(). - * - * @param size size in bytes of bufptr, must be the same as returned - * by av_file_map() - */ -void av_file_unmap(uint8_t *bufptr, size_t size); - -#endif /* AVUTIL_FILE_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/imgutils.h b/tizen/distrib/libav/i386/include/libavutil/imgutils.h deleted file mode 100644 index fad4435b94..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/imgutils.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * 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 - */ - -#ifndef AVUTIL_IMGUTILS_H -#define AVUTIL_IMGUTILS_H - -/** - * @file - * misc image utilities - */ - -#include "avutil.h" -#include "pixdesc.h" - -/** - * Compute the max pixel step for each plane of an image with a - * format described by pixdesc. - * - * The pixel step is the distance in bytes between the first byte of - * the group of bytes which describe a pixel component and the first - * byte of the successive group in the same plane for the same - * component. - * - * @param max_pixsteps an array which is filled with the max pixel step - * for each plane. Since a plane may contain different pixel - * components, the computed max_pixsteps[plane] is relative to the - * component in the plane with the max pixel step. - * @param max_pixstep_comps an array which is filled with the component - * for each plane which has the max pixel step. May be NULL. - */ -void av_image_fill_max_pixsteps(int max_pixsteps[4], int max_pixstep_comps[4], - const AVPixFmtDescriptor *pixdesc); - -/** - * Compute the size of an image line with format pix_fmt and width - * width for the plane plane. - * - * @return the computed size in bytes - */ -int av_image_get_linesize(enum PixelFormat pix_fmt, int width, int plane); - -/** - * Fill plane linesizes for an image with pixel format pix_fmt and - * width width. - * - * @param linesizes array to be filled with the linesize for each plane - * @return >= 0 in case of success, a negative error code otherwise - */ -int av_image_fill_linesizes(int linesizes[4], enum PixelFormat pix_fmt, int width); - -/** - * Fill plane data pointers for an image with pixel format pix_fmt and - * height height. - * - * @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 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 - */ -int av_image_fill_pointers(uint8_t *data[4], enum PixelFormat pix_fmt, int height, - uint8_t *ptr, const int linesizes[4]); - -/** - * Allocate an image with size w and h and pixel format pix_fmt, and - * fill pointers and linesizes accordingly. - * The allocated image buffer has to be freed by using - * av_freep(&pointers[0]). - * - * @param align the value to use for buffer size alignment - * @return the size in bytes required for the image buffer, a negative - * error code in case of failure - */ -int av_image_alloc(uint8_t *pointers[4], int linesizes[4], - int w, int h, enum PixelFormat pix_fmt, int align); - -/** - * Copy image plane from src to dst. - * That is, copy "height" number of lines of "bytewidth" bytes each. - * The first byte of each successive line is separated by *_linesize - * bytes. - * - * @param dst_linesize linesize for the image plane in dst - * @param src_linesize linesize for the image plane in src - */ -void av_image_copy_plane(uint8_t *dst, int dst_linesize, - const uint8_t *src, int src_linesize, - int bytewidth, int height); - -/** - * Copy image in src_data to dst_data. - * - * @param dst_linesize linesizes for the image in dst_data - * @param src_linesize linesizes for the image in src_data - */ -void av_image_copy(uint8_t *dst_data[4], int dst_linesizes[4], - const uint8_t *src_data[4], const int src_linesizes[4], - enum PixelFormat pix_fmt, int width, int height); - -/** - * Check if the given dimension of an image is valid, meaning that all - * bytes of the image can be addressed with a signed int. - * - * @param w the width of the picture - * @param h the height of the picture - * @param log_offset the offset to sum to the log level for logging with log_ctx - * @param log_ctx the parent logging context, it may be NULL - * @return >= 0 if valid, a negative error code otherwise - */ -int av_image_check_size(unsigned int w, unsigned int h, int log_offset, void *log_ctx); - -int ff_set_systematic_pal2(uint32_t pal[256], enum PixelFormat pix_fmt); - -#endif /* AVUTIL_IMGUTILS_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/intfloat_readwrite.h b/tizen/distrib/libav/i386/include/libavutil/intfloat_readwrite.h deleted file mode 100644 index 10ecbed76c..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/intfloat_readwrite.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * copyright (c) 2005 Michael Niedermayer <michaelni@gmx.at> - * - * 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 - */ - -#ifndef AVUTIL_INTFLOAT_READWRITE_H -#define AVUTIL_INTFLOAT_READWRITE_H - -#include <stdint.h> -#include "attributes.h" - -/* IEEE 80 bits extended float */ -typedef struct AVExtFloat { - uint8_t exponent[2]; - uint8_t mantissa[8]; -} AVExtFloat; - -double av_int2dbl(int64_t v) av_const; -float av_int2flt(int32_t v) av_const; -double av_ext2dbl(const AVExtFloat ext) av_const; -int64_t av_dbl2int(double d) av_const; -int32_t av_flt2int(float d) av_const; -AVExtFloat av_dbl2ext(double d) av_const; - -#endif /* AVUTIL_INTFLOAT_READWRITE_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/intreadwrite.h b/tizen/distrib/libav/i386/include/libavutil/intreadwrite.h deleted file mode 100644 index 01eb27804a..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/intreadwrite.h +++ /dev/null @@ -1,522 +0,0 @@ -/* - * 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 - */ - -#ifndef AVUTIL_INTREADWRITE_H -#define AVUTIL_INTREADWRITE_H - -#include <stdint.h> -#include "libavutil/avconfig.h" -#include "attributes.h" -#include "bswap.h" - -typedef union { - uint64_t u64; - uint32_t u32[2]; - uint16_t u16[4]; - uint8_t u8 [8]; - double f64; - float f32[2]; -} av_alias av_alias64; - -typedef union { - uint32_t u32; - uint16_t u16[2]; - uint8_t u8 [4]; - float f32; -} av_alias av_alias32; - -typedef union { - uint16_t u16; - uint8_t u8 [2]; -} av_alias av_alias16; - -/* - * Arch-specific headers can provide any combination of - * AV_[RW][BLN](16|24|32|64) and AV_(COPY|SWAP|ZERO)(64|128) macros. - * Preprocessor symbols must be defined, even if these are implemented - * as inline functions. - */ - -#ifdef HAVE_AV_CONFIG_H - -#include "config.h" - -#if ARCH_ARM -# include "arm/intreadwrite.h" -#elif ARCH_AVR32 -# include "avr32/intreadwrite.h" -#elif ARCH_MIPS -# include "mips/intreadwrite.h" -#elif ARCH_PPC -# include "ppc/intreadwrite.h" -#elif ARCH_TOMI -# include "tomi/intreadwrite.h" -#elif ARCH_X86 -# include "x86/intreadwrite.h" -#endif - -#endif /* HAVE_AV_CONFIG_H */ - -/* - * Map AV_RNXX <-> AV_R[BL]XX for all variants provided by per-arch headers. - */ - -#if AV_HAVE_BIGENDIAN - -# if defined(AV_RN16) && !defined(AV_RB16) -# define AV_RB16(p) AV_RN16(p) -# elif !defined(AV_RN16) && defined(AV_RB16) -# define AV_RN16(p) AV_RB16(p) -# endif - -# if defined(AV_WN16) && !defined(AV_WB16) -# define AV_WB16(p, v) AV_WN16(p, v) -# elif !defined(AV_WN16) && defined(AV_WB16) -# define AV_WN16(p, v) AV_WB16(p, v) -# endif - -# if defined(AV_RN24) && !defined(AV_RB24) -# define AV_RB24(p) AV_RN24(p) -# elif !defined(AV_RN24) && defined(AV_RB24) -# define AV_RN24(p) AV_RB24(p) -# endif - -# if defined(AV_WN24) && !defined(AV_WB24) -# define AV_WB24(p, v) AV_WN24(p, v) -# elif !defined(AV_WN24) && defined(AV_WB24) -# define AV_WN24(p, v) AV_WB24(p, v) -# endif - -# if defined(AV_RN32) && !defined(AV_RB32) -# define AV_RB32(p) AV_RN32(p) -# elif !defined(AV_RN32) && defined(AV_RB32) -# define AV_RN32(p) AV_RB32(p) -# endif - -# if defined(AV_WN32) && !defined(AV_WB32) -# define AV_WB32(p, v) AV_WN32(p, v) -# elif !defined(AV_WN32) && defined(AV_WB32) -# define AV_WN32(p, v) AV_WB32(p, v) -# endif - -# if defined(AV_RN64) && !defined(AV_RB64) -# define AV_RB64(p) AV_RN64(p) -# elif !defined(AV_RN64) && defined(AV_RB64) -# define AV_RN64(p) AV_RB64(p) -# endif - -# if defined(AV_WN64) && !defined(AV_WB64) -# define AV_WB64(p, v) AV_WN64(p, v) -# elif !defined(AV_WN64) && defined(AV_WB64) -# define AV_WN64(p, v) AV_WB64(p, v) -# endif - -#else /* AV_HAVE_BIGENDIAN */ - -# if defined(AV_RN16) && !defined(AV_RL16) -# define AV_RL16(p) AV_RN16(p) -# elif !defined(AV_RN16) && defined(AV_RL16) -# define AV_RN16(p) AV_RL16(p) -# endif - -# if defined(AV_WN16) && !defined(AV_WL16) -# define AV_WL16(p, v) AV_WN16(p, v) -# elif !defined(AV_WN16) && defined(AV_WL16) -# define AV_WN16(p, v) AV_WL16(p, v) -# endif - -# if defined(AV_RN24) && !defined(AV_RL24) -# define AV_RL24(p) AV_RN24(p) -# elif !defined(AV_RN24) && defined(AV_RL24) -# define AV_RN24(p) AV_RL24(p) -# endif - -# if defined(AV_WN24) && !defined(AV_WL24) -# define AV_WL24(p, v) AV_WN24(p, v) -# elif !defined(AV_WN24) && defined(AV_WL24) -# define AV_WN24(p, v) AV_WL24(p, v) -# endif - -# if defined(AV_RN32) && !defined(AV_RL32) -# define AV_RL32(p) AV_RN32(p) -# elif !defined(AV_RN32) && defined(AV_RL32) -# define AV_RN32(p) AV_RL32(p) -# endif - -# if defined(AV_WN32) && !defined(AV_WL32) -# define AV_WL32(p, v) AV_WN32(p, v) -# elif !defined(AV_WN32) && defined(AV_WL32) -# define AV_WN32(p, v) AV_WL32(p, v) -# endif - -# if defined(AV_RN64) && !defined(AV_RL64) -# define AV_RL64(p) AV_RN64(p) -# elif !defined(AV_RN64) && defined(AV_RL64) -# define AV_RN64(p) AV_RL64(p) -# endif - -# if defined(AV_WN64) && !defined(AV_WL64) -# define AV_WL64(p, v) AV_WN64(p, v) -# elif !defined(AV_WN64) && defined(AV_WL64) -# define AV_WN64(p, v) AV_WL64(p, v) -# endif - -#endif /* !AV_HAVE_BIGENDIAN */ - -/* - * Define AV_[RW]N helper macros to simplify definitions not provided - * by per-arch headers. - */ - -#if defined(__GNUC__) && !defined(__TI_COMPILER_VERSION__) - -union unaligned_64 { uint64_t l; } __attribute__((packed)) av_alias; -union unaligned_32 { uint32_t l; } __attribute__((packed)) av_alias; -union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias; - -# define AV_RN(s, p) (((const union unaligned_##s *) (p))->l) -# define AV_WN(s, p, v) ((((union unaligned_##s *) (p))->l) = (v)) - -#elif defined(__DECC) - -# define AV_RN(s, p) (*((const __unaligned uint##s##_t*)(p))) -# define AV_WN(s, p, v) (*((__unaligned uint##s##_t*)(p)) = (v)) - -#elif AV_HAVE_FAST_UNALIGNED - -# define AV_RN(s, p) (((const av_alias##s*)(p))->u##s) -# define AV_WN(s, p, v) (((av_alias##s*)(p))->u##s = (v)) - -#else - -#ifndef AV_RB16 -# define AV_RB16(x) \ - ((((const uint8_t*)(x))[0] << 8) | \ - ((const uint8_t*)(x))[1]) -#endif -#ifndef AV_WB16 -# define AV_WB16(p, d) do { \ - ((uint8_t*)(p))[1] = (d); \ - ((uint8_t*)(p))[0] = (d)>>8; \ - } while(0) -#endif - -#ifndef AV_RL16 -# define AV_RL16(x) \ - ((((const uint8_t*)(x))[1] << 8) | \ - ((const uint8_t*)(x))[0]) -#endif -#ifndef AV_WL16 -# define AV_WL16(p, d) do { \ - ((uint8_t*)(p))[0] = (d); \ - ((uint8_t*)(p))[1] = (d)>>8; \ - } while(0) -#endif - -#ifndef AV_RB32 -# define AV_RB32(x) \ - (((uint32_t)((const uint8_t*)(x))[0] << 24) | \ - (((const uint8_t*)(x))[1] << 16) | \ - (((const uint8_t*)(x))[2] << 8) | \ - ((const uint8_t*)(x))[3]) -#endif -#ifndef AV_WB32 -# define AV_WB32(p, d) do { \ - ((uint8_t*)(p))[3] = (d); \ - ((uint8_t*)(p))[2] = (d)>>8; \ - ((uint8_t*)(p))[1] = (d)>>16; \ - ((uint8_t*)(p))[0] = (d)>>24; \ - } while(0) -#endif - -#ifndef AV_RL32 -# define AV_RL32(x) \ - (((uint32_t)((const uint8_t*)(x))[3] << 24) | \ - (((const uint8_t*)(x))[2] << 16) | \ - (((const uint8_t*)(x))[1] << 8) | \ - ((const uint8_t*)(x))[0]) -#endif -#ifndef AV_WL32 -# define AV_WL32(p, d) do { \ - ((uint8_t*)(p))[0] = (d); \ - ((uint8_t*)(p))[1] = (d)>>8; \ - ((uint8_t*)(p))[2] = (d)>>16; \ - ((uint8_t*)(p))[3] = (d)>>24; \ - } while(0) -#endif - -#ifndef AV_RB64 -# define AV_RB64(x) \ - (((uint64_t)((const uint8_t*)(x))[0] << 56) | \ - ((uint64_t)((const uint8_t*)(x))[1] << 48) | \ - ((uint64_t)((const uint8_t*)(x))[2] << 40) | \ - ((uint64_t)((const uint8_t*)(x))[3] << 32) | \ - ((uint64_t)((const uint8_t*)(x))[4] << 24) | \ - ((uint64_t)((const uint8_t*)(x))[5] << 16) | \ - ((uint64_t)((const uint8_t*)(x))[6] << 8) | \ - (uint64_t)((const uint8_t*)(x))[7]) -#endif -#ifndef AV_WB64 -# define AV_WB64(p, d) do { \ - ((uint8_t*)(p))[7] = (d); \ - ((uint8_t*)(p))[6] = (d)>>8; \ - ((uint8_t*)(p))[5] = (d)>>16; \ - ((uint8_t*)(p))[4] = (d)>>24; \ - ((uint8_t*)(p))[3] = (d)>>32; \ - ((uint8_t*)(p))[2] = (d)>>40; \ - ((uint8_t*)(p))[1] = (d)>>48; \ - ((uint8_t*)(p))[0] = (d)>>56; \ - } while(0) -#endif - -#ifndef AV_RL64 -# define AV_RL64(x) \ - (((uint64_t)((const uint8_t*)(x))[7] << 56) | \ - ((uint64_t)((const uint8_t*)(x))[6] << 48) | \ - ((uint64_t)((const uint8_t*)(x))[5] << 40) | \ - ((uint64_t)((const uint8_t*)(x))[4] << 32) | \ - ((uint64_t)((const uint8_t*)(x))[3] << 24) | \ - ((uint64_t)((const uint8_t*)(x))[2] << 16) | \ - ((uint64_t)((const uint8_t*)(x))[1] << 8) | \ - (uint64_t)((const uint8_t*)(x))[0]) -#endif -#ifndef AV_WL64 -# define AV_WL64(p, d) do { \ - ((uint8_t*)(p))[0] = (d); \ - ((uint8_t*)(p))[1] = (d)>>8; \ - ((uint8_t*)(p))[2] = (d)>>16; \ - ((uint8_t*)(p))[3] = (d)>>24; \ - ((uint8_t*)(p))[4] = (d)>>32; \ - ((uint8_t*)(p))[5] = (d)>>40; \ - ((uint8_t*)(p))[6] = (d)>>48; \ - ((uint8_t*)(p))[7] = (d)>>56; \ - } while(0) -#endif - -#if AV_HAVE_BIGENDIAN -# define AV_RN(s, p) AV_RB##s(p) -# define AV_WN(s, p, v) AV_WB##s(p, v) -#else -# define AV_RN(s, p) AV_RL##s(p) -# define AV_WN(s, p, v) AV_WL##s(p, v) -#endif - -#endif /* HAVE_FAST_UNALIGNED */ - -#ifndef AV_RN16 -# define AV_RN16(p) AV_RN(16, p) -#endif - -#ifndef AV_RN32 -# define AV_RN32(p) AV_RN(32, p) -#endif - -#ifndef AV_RN64 -# define AV_RN64(p) AV_RN(64, p) -#endif - -#ifndef AV_WN16 -# define AV_WN16(p, v) AV_WN(16, p, v) -#endif - -#ifndef AV_WN32 -# define AV_WN32(p, v) AV_WN(32, p, v) -#endif - -#ifndef AV_WN64 -# define AV_WN64(p, v) AV_WN(64, p, v) -#endif - -#if AV_HAVE_BIGENDIAN -# define AV_RB(s, p) AV_RN##s(p) -# define AV_WB(s, p, v) AV_WN##s(p, v) -# define AV_RL(s, p) av_bswap##s(AV_RN##s(p)) -# define AV_WL(s, p, v) AV_WN##s(p, av_bswap##s(v)) -#else -# define AV_RB(s, p) av_bswap##s(AV_RN##s(p)) -# define AV_WB(s, p, v) AV_WN##s(p, av_bswap##s(v)) -# define AV_RL(s, p) AV_RN##s(p) -# define AV_WL(s, p, v) AV_WN##s(p, v) -#endif - -#define AV_RB8(x) (((const uint8_t*)(x))[0]) -#define AV_WB8(p, d) do { ((uint8_t*)(p))[0] = (d); } while(0) - -#define AV_RL8(x) AV_RB8(x) -#define AV_WL8(p, d) AV_WB8(p, d) - -#ifndef AV_RB16 -# define AV_RB16(p) AV_RB(16, p) -#endif -#ifndef AV_WB16 -# define AV_WB16(p, v) AV_WB(16, p, v) -#endif - -#ifndef AV_RL16 -# define AV_RL16(p) AV_RL(16, p) -#endif -#ifndef AV_WL16 -# define AV_WL16(p, v) AV_WL(16, p, v) -#endif - -#ifndef AV_RB32 -# define AV_RB32(p) AV_RB(32, p) -#endif -#ifndef AV_WB32 -# define AV_WB32(p, v) AV_WB(32, p, v) -#endif - -#ifndef AV_RL32 -# define AV_RL32(p) AV_RL(32, p) -#endif -#ifndef AV_WL32 -# define AV_WL32(p, v) AV_WL(32, p, v) -#endif - -#ifndef AV_RB64 -# define AV_RB64(p) AV_RB(64, p) -#endif -#ifndef AV_WB64 -# define AV_WB64(p, v) AV_WB(64, p, v) -#endif - -#ifndef AV_RL64 -# define AV_RL64(p) AV_RL(64, p) -#endif -#ifndef AV_WL64 -# define AV_WL64(p, v) AV_WL(64, p, v) -#endif - -#ifndef AV_RB24 -# define AV_RB24(x) \ - ((((const uint8_t*)(x))[0] << 16) | \ - (((const uint8_t*)(x))[1] << 8) | \ - ((const uint8_t*)(x))[2]) -#endif -#ifndef AV_WB24 -# define AV_WB24(p, d) do { \ - ((uint8_t*)(p))[2] = (d); \ - ((uint8_t*)(p))[1] = (d)>>8; \ - ((uint8_t*)(p))[0] = (d)>>16; \ - } while(0) -#endif - -#ifndef AV_RL24 -# define AV_RL24(x) \ - ((((const uint8_t*)(x))[2] << 16) | \ - (((const uint8_t*)(x))[1] << 8) | \ - ((const uint8_t*)(x))[0]) -#endif -#ifndef AV_WL24 -# define AV_WL24(p, d) do { \ - ((uint8_t*)(p))[0] = (d); \ - ((uint8_t*)(p))[1] = (d)>>8; \ - ((uint8_t*)(p))[2] = (d)>>16; \ - } while(0) -#endif - -/* - * The AV_[RW]NA macros access naturally aligned data - * in a type-safe way. - */ - -#define AV_RNA(s, p) (((const av_alias##s*)(p))->u##s) -#define AV_WNA(s, p, v) (((av_alias##s*)(p))->u##s = (v)) - -#ifndef AV_RN16A -# define AV_RN16A(p) AV_RNA(16, p) -#endif - -#ifndef AV_RN32A -# define AV_RN32A(p) AV_RNA(32, p) -#endif - -#ifndef AV_RN64A -# define AV_RN64A(p) AV_RNA(64, p) -#endif - -#ifndef AV_WN16A -# define AV_WN16A(p, v) AV_WNA(16, p, v) -#endif - -#ifndef AV_WN32A -# define AV_WN32A(p, v) AV_WNA(32, p, v) -#endif - -#ifndef AV_WN64A -# define AV_WN64A(p, v) AV_WNA(64, p, v) -#endif - -/* Parameters for AV_COPY*, AV_SWAP*, AV_ZERO* must be - * naturally aligned. They may be implemented using MMX, - * so emms_c() must be called before using any float code - * afterwards. - */ - -#define AV_COPY(n, d, s) \ - (((av_alias##n*)(d))->u##n = ((const av_alias##n*)(s))->u##n) - -#ifndef AV_COPY16 -# define AV_COPY16(d, s) AV_COPY(16, d, s) -#endif - -#ifndef AV_COPY32 -# define AV_COPY32(d, s) AV_COPY(32, d, s) -#endif - -#ifndef AV_COPY64 -# define AV_COPY64(d, s) AV_COPY(64, d, s) -#endif - -#ifndef AV_COPY128 -# define AV_COPY128(d, s) \ - do { \ - AV_COPY64(d, s); \ - AV_COPY64((char*)(d)+8, (char*)(s)+8); \ - } while(0) -#endif - -#define AV_SWAP(n, a, b) FFSWAP(av_alias##n, *(av_alias##n*)(a), *(av_alias##n*)(b)) - -#ifndef AV_SWAP64 -# define AV_SWAP64(a, b) AV_SWAP(64, a, b) -#endif - -#define AV_ZERO(n, d) (((av_alias##n*)(d))->u##n = 0) - -#ifndef AV_ZERO16 -# define AV_ZERO16(d) AV_ZERO(16, d) -#endif - -#ifndef AV_ZERO32 -# define AV_ZERO32(d) AV_ZERO(32, d) -#endif - -#ifndef AV_ZERO64 -# define AV_ZERO64(d) AV_ZERO(64, d) -#endif - -#ifndef AV_ZERO128 -# define AV_ZERO128(d) \ - do { \ - AV_ZERO64(d); \ - AV_ZERO64((char*)(d)+8); \ - } while(0) -#endif - -#endif /* AVUTIL_INTREADWRITE_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/lfg.h b/tizen/distrib/libav/i386/include/libavutil/lfg.h deleted file mode 100644 index 904d00a669..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/lfg.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Lagged Fibonacci PRNG - * Copyright (c) 2008 Michael Niedermayer - * - * 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 - */ - -#ifndef AVUTIL_LFG_H -#define AVUTIL_LFG_H - -typedef struct { - unsigned int state[64]; - int index; -} AVLFG; - -void av_lfg_init(AVLFG *c, unsigned int seed); - -/** - * Get the next random unsigned 32-bit number using an ALFG. - * - * Please also consider a simple LCG like state= state*1664525+1013904223, - * it may be good enough and faster for your specific use case. - */ -static inline unsigned int av_lfg_get(AVLFG *c){ - c->state[c->index & 63] = c->state[(c->index-24) & 63] + c->state[(c->index-55) & 63]; - return c->state[c->index++ & 63]; -} - -/** - * Get the next random unsigned 32-bit number using a MLFG. - * - * Please also consider av_lfg_get() above, it is faster. - */ -static inline unsigned int av_mlfg_get(AVLFG *c){ - unsigned int a= c->state[(c->index-55) & 63]; - unsigned int b= c->state[(c->index-24) & 63]; - return c->state[c->index++ & 63] = 2*a*b+a+b; -} - -/** - * Get the next two numbers generated by a Box-Muller Gaussian - * generator using the random numbers issued by lfg. - * - * @param out array where the two generated numbers are placed - */ -void av_bmg_get(AVLFG *lfg, double out[2]); - -#endif /* AVUTIL_LFG_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/log.h b/tizen/distrib/libav/i386/include/libavutil/log.h deleted file mode 100644 index c823a763ee..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/log.h +++ /dev/null @@ -1,167 +0,0 @@ -/* - * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at> - * - * 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 - */ - -#ifndef AVUTIL_LOG_H -#define AVUTIL_LOG_H - -#include <stdarg.h> -#include "avutil.h" - -/** - * Describe the class of an AVClass context structure. That is an - * arbitrary struct of which the first field is a pointer to an - * AVClass struct (e.g. AVCodecContext, AVFormatContext etc.). - */ -typedef struct { - /** - * The name of the class; usually it is the same name as the - * context structure type to which the AVClass is associated. - */ - const char* class_name; - - /** - * A pointer to a function which returns the name of a context - * instance ctx associated with the class. - */ - const char* (*item_name)(void* ctx); - - /** - * a pointer to the first option specified in the class if any or NULL - * - * @see av_set_default_options() - */ - const struct AVOption *option; - - /** - * LIBAVUTIL_VERSION with which this structure was created. - * This is used to allow fields to be added without requiring major - * version bumps everywhere. - */ - - int version; - - /** - * Offset in the structure where log_level_offset is stored. - * 0 means there is no such variable - */ - int log_level_offset_offset; - - /** - * Offset in the structure where a pointer to the parent context for loging is stored. - * for example a decoder that uses eval.c could pass its AVCodecContext to eval as such - * parent context. And a av_log() implementation could then display the parent context - * can be NULL of course - */ - int parent_log_context_offset; - - /** - * A function for extended searching, e.g. in possible - * children objects. - */ - const struct AVOption* (*opt_find)(void *obj, const char *name, const char *unit, - int opt_flags, int search_flags); -} AVClass; - -/* av_log API */ - -#define AV_LOG_QUIET -8 - -/** - * Something went really wrong and we will crash now. - */ -#define AV_LOG_PANIC 0 - -/** - * Something went wrong and recovery is not possible. - * For example, no header was found for a format which depends - * on headers or an illegal combination of parameters is used. - */ -#define AV_LOG_FATAL 8 - -/** - * Something went wrong and cannot losslessly be recovered. - * However, not all future data is affected. - */ -#define AV_LOG_ERROR 16 - -/** - * Something somehow does not look correct. This may or may not - * lead to problems. An example would be the use of '-vstrict -2'. - */ -#define AV_LOG_WARNING 24 - -#define AV_LOG_INFO 32 -#define AV_LOG_VERBOSE 40 - -/** - * Stuff which is only useful for libav* developers. - */ -#define AV_LOG_DEBUG 48 - -/** - * Send the specified message to the log if the level is less than or equal - * to the current av_log_level. By default, all logging messages are sent to - * stderr. This behavior can be altered by setting a different av_vlog callback - * function. - * - * @param avcl A pointer to an arbitrary struct of which the first field is a - * pointer to an AVClass struct. - * @param level The importance level of the message, lower values signifying - * higher importance. - * @param fmt The format string (printf-compatible) that specifies how - * subsequent arguments are converted to output. - * @see av_vlog - */ -#ifdef __GNUC__ -void av_log(void *avcl, int level, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 3, 4))); -#else -void av_log(void *avcl, int level, const char *fmt, ...); -#endif - -void av_vlog(void *avcl, int level, const char *fmt, va_list); -int av_log_get_level(void); -void av_log_set_level(int); -void av_log_set_callback(void (*)(void*, int, const char*, va_list)); -void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl); -const char* av_default_item_name(void* ctx); - -/** - * av_dlog macros - * Useful to print debug messages that shouldn't get compiled in normally. - */ - -#ifdef DEBUG -# define av_dlog(pctx, ...) av_log(pctx, AV_LOG_DEBUG, __VA_ARGS__) -#else -# define av_dlog(pctx, ...) -#endif - -/** - * Skip repeated messages, this requires the user app to use av_log() instead of - * (f)printf as the 2 would otherwise interfere and lead to - * "Last message repeated x times" messages below (f)printf messages with some - * bad luck. - * Also to receive the last, "last repeated" line if any, the user app must - * call av_log(NULL, AV_LOG_QUIET, ""); at the end - */ -#define AV_LOG_SKIP_REPEATED 1 -void av_log_set_flags(int arg); - -#endif /* AVUTIL_LOG_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/lzo.h b/tizen/distrib/libav/i386/include/libavutil/lzo.h deleted file mode 100644 index a3924de908..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/lzo.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * LZO 1x decompression - * copyright (c) 2006 Reimar Doeffinger - * - * 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 - */ - -#ifndef AVUTIL_LZO_H -#define AVUTIL_LZO_H - -#include <stdint.h> - -/** @name Error flags returned by av_lzo1x_decode - * \{ */ -//! end of the input buffer reached before decoding finished -#define AV_LZO_INPUT_DEPLETED 1 -//! decoded data did not fit into output buffer -#define AV_LZO_OUTPUT_FULL 2 -//! a reference to previously decoded data was wrong -#define AV_LZO_INVALID_BACKPTR 4 -//! a non-specific error in the compressed bitstream -#define AV_LZO_ERROR 8 -/** \} */ - -#define AV_LZO_INPUT_PADDING 8 -#define AV_LZO_OUTPUT_PADDING 12 - -/** - * \brief Decodes LZO 1x compressed data. - * \param out output buffer - * \param outlen size of output buffer, number of bytes left are returned here - * \param in input buffer - * \param inlen size of input buffer, number of bytes left are returned here - * \return 0 on success, otherwise a combination of the error flags above - * - * Make sure all buffers are appropriately padded, in must provide - * AV_LZO_INPUT_PADDING, out must provide AV_LZO_OUTPUT_PADDING additional bytes. - */ -int av_lzo1x_decode(void *out, int *outlen, const void *in, int *inlen); - -/** - * \brief deliberately overlapping memcpy implementation - * \param dst destination buffer; must be padded with 12 additional bytes - * \param back how many bytes back we start (the initial size of the overlapping window) - * \param cnt number of bytes to copy, must be >= 0 - * - * cnt > back is valid, this will copy the bytes we just copied, - * thus creating a repeating pattern with a period length of back. - */ -void av_memcpy_backptr(uint8_t *dst, int back, int cnt); - -#endif /* AVUTIL_LZO_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/mathematics.h b/tizen/distrib/libav/i386/include/libavutil/mathematics.h deleted file mode 100644 index 35494bb391..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/mathematics.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * copyright (c) 2005 Michael Niedermayer <michaelni@gmx.at> - * - * 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 - */ - -#ifndef AVUTIL_MATHEMATICS_H -#define AVUTIL_MATHEMATICS_H - -#include <stdint.h> -#include <math.h> -#include "attributes.h" -#include "rational.h" - -#ifndef M_E -#define M_E 2.7182818284590452354 /* e */ -#endif -#ifndef M_LN2 -#define M_LN2 0.69314718055994530942 /* log_e 2 */ -#endif -#ifndef M_LN10 -#define M_LN10 2.30258509299404568402 /* log_e 10 */ -#endif -#ifndef M_LOG2_10 -#define M_LOG2_10 3.32192809488736234787 /* log_2 10 */ -#endif -#ifndef M_PHI -#define M_PHI 1.61803398874989484820 /* phi / golden ratio */ -#endif -#ifndef M_PI -#define M_PI 3.14159265358979323846 /* pi */ -#endif -#ifndef M_SQRT1_2 -#define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */ -#endif -#ifndef M_SQRT2 -#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ -#endif -#ifndef NAN -#define NAN (0.0/0.0) -#endif -#ifndef INFINITY -#define INFINITY (1.0/0.0) -#endif - -enum AVRounding { - AV_ROUND_ZERO = 0, ///< Round toward zero. - AV_ROUND_INF = 1, ///< Round away from zero. - AV_ROUND_DOWN = 2, ///< Round toward -infinity. - AV_ROUND_UP = 3, ///< Round toward +infinity. - AV_ROUND_NEAR_INF = 5, ///< Round to nearest and halfway cases away from zero. -}; - -/** - * Return the greatest common divisor of a and b. - * If both a and b are 0 or either or both are <0 then behavior is - * undefined. - */ -int64_t av_const av_gcd(int64_t a, int64_t b); - -/** - * Rescale a 64-bit integer with rounding to nearest. - * A simple a*b/c isn't possible as it can overflow. - */ -int64_t av_rescale(int64_t a, int64_t b, int64_t c) av_const; - -/** - * Rescale a 64-bit integer with specified rounding. - * A simple a*b/c isn't possible as it can overflow. - */ -int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding) av_const; - -/** - * Rescale a 64-bit integer by 2 rational numbers. - */ -int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq) av_const; - -/** - * Compare 2 timestamps each in its own timebases. - * The result of the function is undefined if one of the timestamps - * is outside the int64_t range when represented in the others timebase. - * @return -1 if ts_a is before ts_b, 1 if ts_a is after ts_b or 0 if they represent the same position - */ -int av_compare_ts(int64_t ts_a, AVRational tb_a, int64_t ts_b, AVRational tb_b); - -/** - * Compare 2 integers modulo mod. - * That is we compare integers a and b for which only the least - * significant log2(mod) bits are known. - * - * @param mod must be a power of 2 - * @return a negative value if a is smaller than b - * a positive value if a is greater than b - * 0 if a equals b - */ -int64_t av_compare_mod(uint64_t a, uint64_t b, uint64_t mod); - -#endif /* AVUTIL_MATHEMATICS_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/md5.h b/tizen/distrib/libav/i386/include/libavutil/md5.h deleted file mode 100644 index c178bbb4d5..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/md5.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at> - * - * 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 - */ - -#ifndef AVUTIL_MD5_H -#define AVUTIL_MD5_H - -#include <stdint.h> - -extern const int av_md5_size; - -struct AVMD5; - -void av_md5_init(struct AVMD5 *ctx); -void av_md5_update(struct AVMD5 *ctx, const uint8_t *src, const int len); -void av_md5_final(struct AVMD5 *ctx, uint8_t *dst); -void av_md5_sum(uint8_t *dst, const uint8_t *src, const int len); - -#endif /* AVUTIL_MD5_H */ - diff --git a/tizen/distrib/libav/i386/include/libavutil/mem.h b/tizen/distrib/libav/i386/include/libavutil/mem.h deleted file mode 100644 index 5dea492021..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/mem.h +++ /dev/null @@ -1,126 +0,0 @@ -/* - * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at> - * - * 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 - * memory handling functions - */ - -#ifndef AVUTIL_MEM_H -#define AVUTIL_MEM_H - -#include "attributes.h" -#include "avutil.h" - -#if defined(__ICC) && _ICC < 1200 || defined(__SUNPRO_C) - #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v - #define DECLARE_ASM_CONST(n,t,v) const t __attribute__ ((aligned (n))) v -#elif defined(__TI_COMPILER_VERSION__) - #define DECLARE_ALIGNED(n,t,v) \ - AV_PRAGMA(DATA_ALIGN(v,n)) \ - t __attribute__((aligned(n))) v - #define DECLARE_ASM_CONST(n,t,v) \ - AV_PRAGMA(DATA_ALIGN(v,n)) \ - static const t __attribute__((aligned(n))) v -#elif defined(__GNUC__) - #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v - #define DECLARE_ASM_CONST(n,t,v) static const t av_used __attribute__ ((aligned (n))) v -#elif defined(_MSC_VER) - #define DECLARE_ALIGNED(n,t,v) __declspec(align(n)) t v - #define DECLARE_ASM_CONST(n,t,v) __declspec(align(n)) static const t v -#else - #define DECLARE_ALIGNED(n,t,v) t v - #define DECLARE_ASM_CONST(n,t,v) static const t v -#endif - -#if AV_GCC_VERSION_AT_LEAST(3,1) - #define av_malloc_attrib __attribute__((__malloc__)) -#else - #define av_malloc_attrib -#endif - -#if AV_GCC_VERSION_AT_LEAST(4,3) - #define av_alloc_size(n) __attribute__((alloc_size(n))) -#else - #define av_alloc_size(n) -#endif - -/** - * Allocate a block of size bytes with alignment suitable for all - * memory accesses (including vectors if available on the CPU). - * @param size Size in bytes for the memory block to be allocated. - * @return Pointer to the allocated block, NULL if the block cannot - * be allocated. - * @see av_mallocz() - */ -void *av_malloc(size_t size) av_malloc_attrib av_alloc_size(1); - -/** - * Allocate or reallocate a block of memory. - * If ptr is NULL and size > 0, allocate a new block. If - * size is zero, free the memory block pointed to by ptr. - * @param size Size in bytes for the memory block to be allocated or - * reallocated. - * @param ptr Pointer to a memory block already allocated with - * av_malloc(z)() or av_realloc() or NULL. - * @return Pointer to a newly reallocated block or NULL if the block - * cannot be reallocated or the function is used to free the memory block. - * @see av_fast_realloc() - */ -void *av_realloc(void *ptr, size_t size) av_alloc_size(2); - -/** - * Free a memory block which has been allocated with av_malloc(z)() or - * av_realloc(). - * @param ptr Pointer to the memory block which should be freed. - * @note ptr = NULL is explicitly allowed. - * @note It is recommended that you use av_freep() instead. - * @see av_freep() - */ -void av_free(void *ptr); - -/** - * Allocate a block of size bytes with alignment suitable for all - * memory accesses (including vectors if available on the CPU) and - * zero all the bytes of the block. - * @param size Size in bytes for the memory block to be allocated. - * @return Pointer to the allocated block, NULL if it cannot be allocated. - * @see av_malloc() - */ -void *av_mallocz(size_t size) av_malloc_attrib av_alloc_size(1); - -/** - * Duplicate the string s. - * @param s string to be duplicated - * @return Pointer to a newly allocated string containing a - * copy of s or NULL if the string cannot be allocated. - */ -char *av_strdup(const char *s) av_malloc_attrib; - -/** - * Free a memory block which has been allocated with av_malloc(z)() or - * av_realloc() and set the pointer pointing to it to NULL. - * @param ptr Pointer to the pointer to the memory block which should - * be freed. - * @see av_free() - */ -void av_freep(void *ptr); - -#endif /* AVUTIL_MEM_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/opt.h b/tizen/distrib/libav/i386/include/libavutil/opt.h deleted file mode 100644 index ce65865069..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/opt.h +++ /dev/null @@ -1,242 +0,0 @@ -/* - * AVOptions - * copyright (c) 2005 Michael Niedermayer <michaelni@gmx.at> - * - * 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 - */ - -#ifndef AVUTIL_OPT_H -#define AVUTIL_OPT_H - -/** - * @file - * AVOptions - */ - -#include "rational.h" -#include "avutil.h" -#include "dict.h" - -enum AVOptionType{ - FF_OPT_TYPE_FLAGS, - FF_OPT_TYPE_INT, - FF_OPT_TYPE_INT64, - FF_OPT_TYPE_DOUBLE, - FF_OPT_TYPE_FLOAT, - FF_OPT_TYPE_STRING, - FF_OPT_TYPE_RATIONAL, - FF_OPT_TYPE_BINARY, ///< offset must point to a pointer immediately followed by an int for the length - FF_OPT_TYPE_CONST=128, -}; - -/** - * AVOption - */ -typedef struct AVOption { - const char *name; - - /** - * short English help text - * @todo What about other languages? - */ - const char *help; - - /** - * The offset relative to the context structure where the option - * value is stored. It should be 0 for named constants. - */ - int offset; - enum AVOptionType type; - - /** - * the default value for scalar options - */ - union { - double dbl; - const char *str; - /* TODO those are unused now */ - int64_t i64; - AVRational q; - } default_val; - double min; ///< minimum valid value for the option - double max; ///< maximum valid value for the option - - int flags; -#define AV_OPT_FLAG_ENCODING_PARAM 1 ///< a generic parameter which can be set by the user for muxing or encoding -#define AV_OPT_FLAG_DECODING_PARAM 2 ///< a generic parameter which can be set by the user for demuxing or decoding -#define AV_OPT_FLAG_METADATA 4 ///< some data extracted or inserted into the file like title, comment, ... -#define AV_OPT_FLAG_AUDIO_PARAM 8 -#define AV_OPT_FLAG_VIDEO_PARAM 16 -#define AV_OPT_FLAG_SUBTITLE_PARAM 32 -//FIXME think about enc-audio, ... style flags - - /** - * The logical unit to which the option belongs. Non-constant - * options and corresponding named constants share the same - * unit. May be NULL. - */ - const char *unit; -} AVOption; - -#if FF_API_FIND_OPT -/** - * Look for an option in obj. Look only for the options which - * have the flags set as specified in mask and flags (that is, - * for which it is the case that opt->flags & mask == flags). - * - * @param[in] obj a pointer to a struct whose first element is a - * pointer to an AVClass - * @param[in] name the name of the option to look for - * @param[in] unit the unit of the option to look for, or any if NULL - * @return a pointer to the option found, or NULL if no option - * has been found - * - * @deprecated use av_opt_find. - */ -attribute_deprecated -const AVOption *av_find_opt(void *obj, const char *name, const char *unit, int mask, int flags); -#endif - -/** - * Set the field of obj with the given name to value. - * - * @param[in] obj A struct whose first element is a pointer to an - * AVClass. - * @param[in] name the name of the field to set - * @param[in] val The value to set. If the field is not of a string - * type, then the given string is parsed. - * SI postfixes and some named scalars are supported. - * If the field is of a numeric type, it has to be a numeric or named - * scalar. Behavior with more than one scalar and +- infix operators - * is undefined. - * If the field is of a flags type, it has to be a sequence of numeric - * scalars or named flags separated by '+' or '-'. Prefixing a flag - * with '+' causes it to be set without affecting the other flags; - * similarly, '-' unsets a flag. - * @param[out] o_out if non-NULL put here a pointer to the AVOption - * found - * @param alloc when 1 then the old value will be av_freed() and the - * new av_strduped() - * 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_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 - */ -int av_set_string3(void *obj, const char *name, const char *val, int alloc, const AVOption **o_out); - -const AVOption *av_set_double(void *obj, const char *name, double n); -const AVOption *av_set_q(void *obj, const char *name, AVRational n); -const AVOption *av_set_int(void *obj, const char *name, int64_t n); -double av_get_double(void *obj, const char *name, const AVOption **o_out); -AVRational av_get_q(void *obj, const char *name, const AVOption **o_out); -int64_t av_get_int(void *obj, const char *name, const AVOption **o_out); -const char *av_get_string(void *obj, const char *name, const AVOption **o_out, char *buf, int buf_len); -const AVOption *av_next_option(void *obj, const AVOption *last); - -/** - * Show the obj options. - * - * @param req_flags requested flags for the options to show. Show only the - * options for which it is opt->flags & req_flags. - * @param rej_flags rejected flags for the options to show. Show only the - * options for which it is !(opt->flags & req_flags). - * @param av_log_obj log context to use for showing the options - */ -int av_opt_show2(void *obj, void *av_log_obj, int req_flags, int rej_flags); - -void av_opt_set_defaults(void *s); -void av_opt_set_defaults2(void *s, int mask, int flags); - -/** - * Parse the key/value pairs list in opts. For each key/value pair - * found, stores the value in the field in ctx that is named like the - * key. ctx must be an AVClass context, storing is done using - * AVOptions. - * - * @param key_val_sep a 0-terminated list of characters used to - * separate key from value - * @param pairs_sep a 0-terminated list of characters used to separate - * two pairs from each other - * @return the number of successfully set key/value pairs, or a negative - * value corresponding to an AVERROR code in case of error: - * AVERROR(EINVAL) if opts cannot be parsed, - * the error code issued by av_set_string3() if a key/value pair - * cannot be set - */ -int av_set_options_string(void *ctx, const char *opts, - const char *key_val_sep, const char *pairs_sep); - -/** - * Free all string and binary options in obj. - */ -void av_opt_free(void *obj); - -/** - * Check whether a particular flag is set in a flags field. - * - * @param field_name the name of the flag field option - * @param flag_name the name of the flag to check - * @return non-zero if the flag is set, zero if the flag isn't set, - * isn't of the right type, or the flags field doesn't exist. - */ -int av_opt_flag_is_set(void *obj, const char *field_name, const char *flag_name); - -/* - * Set all the options from a given dictionary on an object. - * - * @param obj a struct whose first element is a pointer to AVClass - * @param options options to process. This dictionary will be freed and replaced - * by a new one containing all options not found in obj. - * Of course this new dictionary needs to be freed by caller - * with av_dict_free(). - * - * @return 0 on success, a negative AVERROR if some option was found in obj, - * but could not be set. - * - * @see av_dict_copy() - */ -int av_opt_set_dict(void *obj, struct AVDictionary **options); - -#define AV_OPT_SEARCH_CHILDREN 0x0001 /**< Search in possible children of the - given object first. */ - -/** - * Look for an option in an object. Consider only options which - * have all the specified flags set. - * - * @param[in] obj A pointer to a struct whose first element is a - * pointer to an AVClass. - * @param[in] name The name of the option to look for. - * @param[in] unit When searching for named constants, name of the unit - * it belongs to. - * @param opt_flags Find only options with all the specified flags set (AV_OPT_FLAG). - * @param search_flags A combination of AV_OPT_SEARCH_*. - * - * @return A pointer to the option found, or NULL if no option - * was found. - * - * @note Options found with AV_OPT_SEARCH_CHILDREN flag may not be settable - * directly with av_set_string3(). Use special calls which take an options - * AVDictionary (e.g. avformat_open_input()) to set options found with this - * flag. - */ -const AVOption *av_opt_find(void *obj, const char *name, const char *unit, - int opt_flags, int search_flags); - -#endif /* AVUTIL_OPT_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/parseutils.h b/tizen/distrib/libav/i386/include/libavutil/parseutils.h deleted file mode 100644 index befbbb56a1..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/parseutils.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * 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 - */ - -#ifndef AVUTIL_PARSEUTILS_H -#define AVUTIL_PARSEUTILS_H - -#include "rational.h" - -/** - * @file - * misc parsing utilities - */ - -/** - * Parse str and put in width_ptr and height_ptr the detected values. - * - * @param[in,out] width_ptr pointer to the variable which will contain the detected - * width value - * @param[in,out] height_ptr pointer to the variable which will contain the detected - * height value - * @param[in] str the string to parse: it has to be a string in the format - * width x height or a valid video size abbreviation. - * @return >= 0 on success, a negative error code otherwise - */ -int av_parse_video_size(int *width_ptr, int *height_ptr, const char *str); - -/** - * Parse str and store the detected values in *rate. - * - * @param[in,out] rate pointer to the AVRational which will contain the detected - * frame rate - * @param[in] str the string to parse: it has to be a string in the format - * rate_num / rate_den, a float number or a valid video rate abbreviation - * @return >= 0 on success, a negative error code otherwise - */ -int av_parse_video_rate(AVRational *rate, const char *str); - -/** - * Put the RGBA values that correspond to color_string in rgba_color. - * - * @param color_string a string specifying a color. It can be the name of - * a color (case insensitive match) or a [0x|#]RRGGBB[AA] sequence, - * possibly followed by "@" and a string representing the alpha - * component. - * The alpha component may be a string composed by "0x" followed by an - * hexadecimal number or a decimal number between 0.0 and 1.0, which - * represents the opacity value (0x00/0.0 means completely transparent, - * 0xff/1.0 completely opaque). - * If the alpha component is not specified then 0xff is assumed. - * The string "random" will result in a random color. - * @param slen length of the initial part of color_string containing the - * color. It can be set to -1 if color_string is a null terminated string - * containing nothing else than the color. - * @return >= 0 in case of success, a negative value in case of - * failure (for example if color_string cannot be parsed). - */ -int av_parse_color(uint8_t *rgba_color, const char *color_string, int slen, - void *log_ctx); - -/** - * Parses timestr and returns in *time a corresponding number of - * microseconds. - * - * @param timeval puts here the number of microseconds corresponding - * to the string in timestr. If the string represents a duration, it - * is the number of microseconds contained in the time interval. If - * the string is a date, is the number of microseconds since 1st of - * January, 1970 up to the time of the parsed date. If timestr cannot - * be successfully parsed, set *time to INT64_MIN. - - * @param datestr a string representing a date or a duration. - * - If a date the syntax is: - * @code - * [{YYYY-MM-DD|YYYYMMDD}[T|t| ]]{{HH[:MM[:SS[.m...]]]}|{HH[MM[SS[.m...]]]}}[Z] - * now - * @endcode - * If the value is "now" it takes the current time. - * Time is local time unless Z is appended, in which case it is - * interpreted as UTC. - * If the year-month-day part is not specified it takes the current - * year-month-day. - * - If a duration the syntax is: - * @code - * [-]HH[:MM[:SS[.m...]]] - * [-]S+[.m...] - * @endcode - * @param duration flag which tells how to interpret timestr, if not - * zero timestr is interpreted as a duration, otherwise as a date - * @return 0 in case of success, a negative value corresponding to an - * AVERROR code otherwise - */ -int av_parse_time(int64_t *timeval, const char *timestr, int duration); - -/** - * Attempt to find a specific tag in a URL. - * - * syntax: '?tag1=val1&tag2=val2...'. Little URL decoding is done. - * Return 1 if found. - */ -int av_find_info_tag(char *arg, int arg_size, const char *tag1, const char *info); - -#endif /* AVUTIL_PARSEUTILS_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/pixdesc.h b/tizen/distrib/libav/i386/include/libavutil/pixdesc.h deleted file mode 100644 index 979a23539b..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/pixdesc.h +++ /dev/null @@ -1,175 +0,0 @@ -/* - * pixel format descriptor - * Copyright (c) 2009 Michael Niedermayer <michaelni@gmx.at> - * - * 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 - */ - -#ifndef AVUTIL_PIXDESC_H -#define AVUTIL_PIXDESC_H - -#include <inttypes.h> -#include "pixfmt.h" - -typedef struct AVComponentDescriptor{ - uint16_t plane :2; ///< which of the 4 planes contains the component - - /** - * Number of elements between 2 horizontally consecutive pixels minus 1. - * Elements are bits for bitstream formats, bytes otherwise. - */ - uint16_t step_minus1 :3; - - /** - * Number of elements before the component of the first pixel plus 1. - * Elements are bits for bitstream formats, bytes otherwise. - */ - uint16_t offset_plus1 :3; - uint16_t shift :3; ///< number of least significant bits that must be shifted away to get the value - uint16_t depth_minus1 :4; ///< number of bits in the component minus 1 -}AVComponentDescriptor; - -/** - * Descriptor that unambiguously describes how the bits of a pixel are - * stored in the up to 4 data planes of an image. It also stores the - * subsampling factors and number of components. - * - * @note This is separate of the colorspace (RGB, YCbCr, YPbPr, JPEG-style YUV - * and all the YUV variants) AVPixFmtDescriptor just stores how values - * are stored not what these values represent. - */ -typedef struct AVPixFmtDescriptor{ - const char *name; - uint8_t nb_components; ///< The number of components each pixel has, (1-4) - - /** - * Amount to shift the luma width right to find the chroma width. - * For YV12 this is 1 for example. - * chroma_width = -((-luma_width) >> log2_chroma_w) - * The note above is needed to ensure rounding up. - * This value only refers to the chroma components. - */ - uint8_t log2_chroma_w; ///< chroma_width = -((-luma_width )>>log2_chroma_w) - - /** - * Amount to shift the luma height right to find the chroma height. - * For YV12 this is 1 for example. - * chroma_height= -((-luma_height) >> log2_chroma_h) - * The note above is needed to ensure rounding up. - * This value only refers to the chroma components. - */ - uint8_t log2_chroma_h; - uint8_t flags; - - /** - * Parameters that describe how pixels are packed. If the format - * has chroma components, they must be stored in comp[1] and - * comp[2]. - */ - AVComponentDescriptor comp[4]; -}AVPixFmtDescriptor; - -#define PIX_FMT_BE 1 ///< Pixel format is big-endian. -#define PIX_FMT_PAL 2 ///< Pixel format has a palette in data[1], values are indexes in this palette. -#define PIX_FMT_BITSTREAM 4 ///< All values of a component are bit-wise packed end to end. -#define PIX_FMT_HWACCEL 8 ///< Pixel format is an HW accelerated format. - -/** - * The array of all the pixel format descriptors. - */ -extern const AVPixFmtDescriptor av_pix_fmt_descriptors[]; - -/** - * Read a line from an image, and write the values of the - * pixel format component c to dst. - * - * @param data the array containing the pointers to the planes of the image - * @param linesize the array containing the linesizes of the image - * @param desc the pixel format descriptor for the image - * @param x the horizontal coordinate of the first pixel to read - * @param y the vertical coordinate of the first pixel to read - * @param w the width of the line to read, that is the number of - * values to write to dst - * @param read_pal_component if not zero and the format is a paletted - * format writes the values corresponding to the palette - * component c in data[1] to dst, rather than the palette indexes in - * data[0]. The behavior is undefined if the format is not paletted. - */ -void av_read_image_line(uint16_t *dst, const uint8_t *data[4], const int linesize[4], - const AVPixFmtDescriptor *desc, int x, int y, int c, int w, int read_pal_component); - -/** - * Write the values from src to the pixel format component c of an - * image line. - * - * @param src array containing the values to write - * @param data the array containing the pointers to the planes of the - * image to write into. It is supposed to be zeroed. - * @param linesize the array containing the linesizes of the image - * @param desc the pixel format descriptor for the image - * @param x the horizontal coordinate of the first pixel to write - * @param y the vertical coordinate of the first pixel to write - * @param w the width of the line to write, that is the number of - * values to write to the image line - */ -void av_write_image_line(const uint16_t *src, uint8_t *data[4], const int linesize[4], - const AVPixFmtDescriptor *desc, int x, int y, int c, int w); - -/** - * Return the pixel format corresponding to name. - * - * If there is no pixel format with name name, then looks for a - * pixel format with the name corresponding to the native endian - * format of name. - * For example in a little-endian system, first looks for "gray16", - * then for "gray16le". - * - * Finally if no pixel format has been found, returns PIX_FMT_NONE. - */ -enum PixelFormat av_get_pix_fmt(const char *name); - -/** - * Return the short name for a pixel format, NULL in case pix_fmt is - * unknown. - * - * @see av_get_pix_fmt(), av_get_pix_fmt_string() - */ -const char *av_get_pix_fmt_name(enum PixelFormat pix_fmt); - -/** - * Print in buf the string corresponding to the pixel format with - * number pix_fmt, or an header if pix_fmt is negative. - * - * @param buf the buffer where to write the string - * @param buf_size the size of buf - * @param pix_fmt the number of the pixel format to print the - * corresponding info string, or a negative value to print the - * corresponding header. - */ -char *av_get_pix_fmt_string (char *buf, int buf_size, enum PixelFormat pix_fmt); - -/** - * Return the number of bits per pixel used by the pixel format - * described by pixdesc. - * - * The returned number of bits refers to the number of bits actually - * used for storing the pixel information, that is padding bits are - * not counted. - */ -int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc); - -#endif /* AVUTIL_PIXDESC_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/pixfmt.h b/tizen/distrib/libav/i386/include/libavutil/pixfmt.h deleted file mode 100644 index ea3619ef6f..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/pixfmt.h +++ /dev/null @@ -1,184 +0,0 @@ -/* - * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at> - * - * 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 - */ - -#ifndef AVUTIL_PIXFMT_H -#define AVUTIL_PIXFMT_H - -/** - * @file - * pixel format definitions - * - * @warning This file has to be considered an internal but installed - * header, so it should not be directly included in your projects. - */ - -#include "libavutil/avconfig.h" - -/** - * Pixel format. Notes: - * - * PIX_FMT_RGB32 is handled in an endian-specific manner. An RGBA - * color is put together as: - * (A << 24) | (R << 16) | (G << 8) | B - * This is stored as BGRA on little-endian CPU architectures and ARGB on - * big-endian CPUs. - * - * When the pixel format is palettized RGB (PIX_FMT_PAL8), the palettized - * image data is stored in AVFrame.data[0]. The palette is transported in - * AVFrame.data[1], is 1024 bytes long (256 4-byte entries) and is - * formatted the same as in PIX_FMT_RGB32 described above (i.e., it is - * also endian-specific). Note also that the individual RGB palette - * components stored in AVFrame.data[1] should be in the range 0..255. - * This is important as many custom PAL8 video codecs that were designed - * to run on the IBM VGA graphics adapter use 6-bit palette components. - * - * For all the 8bit per pixel formats, an RGB32 palette is in data[1] like - * for pal8. This palette is filled in automatically by the function - * allocating the picture. - * - * Note, make sure that all newly added big endian formats have pix_fmt&1==1 - * and that all newly added little endian formats have pix_fmt&1==0 - * this allows simpler detection of big vs little endian. - */ - -#define PixelFormat FFmpeg_PixelFormat - -enum PixelFormat { - PIX_FMT_NONE= -1, - PIX_FMT_YUV420P, ///< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples) - PIX_FMT_YUYV422, ///< packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr - PIX_FMT_RGB24, ///< packed RGB 8:8:8, 24bpp, RGBRGB... - PIX_FMT_BGR24, ///< packed RGB 8:8:8, 24bpp, BGRBGR... - PIX_FMT_YUV422P, ///< planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples) - PIX_FMT_YUV444P, ///< planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples) - PIX_FMT_YUV410P, ///< planar YUV 4:1:0, 9bpp, (1 Cr & Cb sample per 4x4 Y samples) - PIX_FMT_YUV411P, ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) - PIX_FMT_GRAY8, ///< Y , 8bpp - PIX_FMT_MONOWHITE, ///< Y , 1bpp, 0 is white, 1 is black, in each byte pixels are ordered from the msb to the lsb - PIX_FMT_MONOBLACK, ///< Y , 1bpp, 0 is black, 1 is white, in each byte pixels are ordered from the msb to the lsb - PIX_FMT_PAL8, ///< 8 bit with PIX_FMT_RGB32 palette - PIX_FMT_YUVJ420P, ///< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of PIX_FMT_YUV420P and setting color_range - PIX_FMT_YUVJ422P, ///< planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of PIX_FMT_YUV422P and setting color_range - PIX_FMT_YUVJ444P, ///< planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of PIX_FMT_YUV444P and setting color_range - PIX_FMT_XVMC_MPEG2_MC,///< XVideo Motion Acceleration via common packet passing - PIX_FMT_XVMC_MPEG2_IDCT, - PIX_FMT_UYVY422, ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1 - PIX_FMT_UYYVYY411, ///< packed YUV 4:1:1, 12bpp, Cb Y0 Y1 Cr Y2 Y3 - PIX_FMT_BGR8, ///< packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb) - PIX_FMT_BGR4, ///< packed RGB 1:2:1 bitstream, 4bpp, (msb)1B 2G 1R(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits - PIX_FMT_BGR4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1B 2G 1R(lsb) - PIX_FMT_RGB8, ///< packed RGB 3:3:2, 8bpp, (msb)2R 3G 3B(lsb) - PIX_FMT_RGB4, ///< packed RGB 1:2:1 bitstream, 4bpp, (msb)1R 2G 1B(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits - PIX_FMT_RGB4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1R 2G 1B(lsb) - PIX_FMT_NV12, ///< planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V) - PIX_FMT_NV21, ///< as above, but U and V bytes are swapped - - PIX_FMT_ARGB, ///< packed ARGB 8:8:8:8, 32bpp, ARGBARGB... - PIX_FMT_RGBA, ///< packed RGBA 8:8:8:8, 32bpp, RGBARGBA... - PIX_FMT_ABGR, ///< packed ABGR 8:8:8:8, 32bpp, ABGRABGR... - PIX_FMT_BGRA, ///< packed BGRA 8:8:8:8, 32bpp, BGRABGRA... - - PIX_FMT_GRAY16BE, ///< Y , 16bpp, big-endian - PIX_FMT_GRAY16LE, ///< Y , 16bpp, little-endian - PIX_FMT_YUV440P, ///< planar YUV 4:4:0 (1 Cr & Cb sample per 1x2 Y samples) - PIX_FMT_YUVJ440P, ///< planar YUV 4:4:0 full scale (JPEG), deprecated in favor of PIX_FMT_YUV440P and setting color_range - PIX_FMT_YUVA420P, ///< planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples) - PIX_FMT_VDPAU_H264,///< H.264 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers - PIX_FMT_VDPAU_MPEG1,///< MPEG-1 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers - PIX_FMT_VDPAU_MPEG2,///< MPEG-2 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers - PIX_FMT_VDPAU_WMV3,///< WMV3 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers - PIX_FMT_VDPAU_VC1, ///< VC-1 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers - PIX_FMT_RGB48BE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as big-endian - PIX_FMT_RGB48LE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as little-endian - - PIX_FMT_RGB565BE, ///< packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), big-endian - PIX_FMT_RGB565LE, ///< packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), little-endian - PIX_FMT_RGB555BE, ///< packed RGB 5:5:5, 16bpp, (msb)1A 5R 5G 5B(lsb), big-endian, most significant bit to 0 - PIX_FMT_RGB555LE, ///< packed RGB 5:5:5, 16bpp, (msb)1A 5R 5G 5B(lsb), little-endian, most significant bit to 0 - - PIX_FMT_BGR565BE, ///< packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), big-endian - PIX_FMT_BGR565LE, ///< packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), little-endian - PIX_FMT_BGR555BE, ///< packed BGR 5:5:5, 16bpp, (msb)1A 5B 5G 5R(lsb), big-endian, most significant bit to 1 - PIX_FMT_BGR555LE, ///< packed BGR 5:5:5, 16bpp, (msb)1A 5B 5G 5R(lsb), little-endian, most significant bit to 1 - - PIX_FMT_VAAPI_MOCO, ///< HW acceleration through VA API at motion compensation entry-point, Picture.data[3] contains a vaapi_render_state struct which contains macroblocks as well as various fields extracted from headers - PIX_FMT_VAAPI_IDCT, ///< HW acceleration through VA API at IDCT entry-point, Picture.data[3] contains a vaapi_render_state struct which contains fields extracted from headers - PIX_FMT_VAAPI_VLD, ///< HW decoding through VA API, Picture.data[3] contains a vaapi_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers - - PIX_FMT_YUV420P16LE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian - PIX_FMT_YUV420P16BE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian - PIX_FMT_YUV422P16LE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian - PIX_FMT_YUV422P16BE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian - PIX_FMT_YUV444P16LE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian - PIX_FMT_YUV444P16BE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian - PIX_FMT_VDPAU_MPEG4, ///< MPEG4 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers - PIX_FMT_DXVA2_VLD, ///< HW decoding through DXVA2, Picture.data[3] contains a LPDIRECT3DSURFACE9 pointer - - PIX_FMT_RGB444LE, ///< packed RGB 4:4:4, 16bpp, (msb)4A 4R 4G 4B(lsb), little-endian, most significant bits to 0 - PIX_FMT_RGB444BE, ///< packed RGB 4:4:4, 16bpp, (msb)4A 4R 4G 4B(lsb), big-endian, most significant bits to 0 - PIX_FMT_BGR444LE, ///< packed BGR 4:4:4, 16bpp, (msb)4A 4B 4G 4R(lsb), little-endian, most significant bits to 1 - PIX_FMT_BGR444BE, ///< packed BGR 4:4:4, 16bpp, (msb)4A 4B 4G 4R(lsb), big-endian, most significant bits to 1 - PIX_FMT_Y400A, ///< 8bit gray, 8bit alpha - PIX_FMT_BGR48BE, ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as big-endian - PIX_FMT_BGR48LE, ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as little-endian - PIX_FMT_YUV420P9BE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian - PIX_FMT_YUV420P9LE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian - PIX_FMT_YUV420P10BE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian - PIX_FMT_YUV420P10LE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian - PIX_FMT_YUV422P10BE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian - PIX_FMT_YUV422P10LE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian - PIX_FMT_YUV444P9BE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian - PIX_FMT_YUV444P9LE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian - PIX_FMT_YUV444P10BE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian - PIX_FMT_YUV444P10LE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian - PIX_FMT_NB, ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions -}; - -#if AV_HAVE_BIGENDIAN -# define PIX_FMT_NE(be, le) PIX_FMT_##be -#else -# define PIX_FMT_NE(be, le) PIX_FMT_##le -#endif - -#define PIX_FMT_RGB32 PIX_FMT_NE(ARGB, BGRA) -#define PIX_FMT_RGB32_1 PIX_FMT_NE(RGBA, ABGR) -#define PIX_FMT_BGR32 PIX_FMT_NE(ABGR, RGBA) -#define PIX_FMT_BGR32_1 PIX_FMT_NE(BGRA, ARGB) - -#define PIX_FMT_GRAY16 PIX_FMT_NE(GRAY16BE, GRAY16LE) -#define PIX_FMT_RGB48 PIX_FMT_NE(RGB48BE, RGB48LE) -#define PIX_FMT_RGB565 PIX_FMT_NE(RGB565BE, RGB565LE) -#define PIX_FMT_RGB555 PIX_FMT_NE(RGB555BE, RGB555LE) -#define PIX_FMT_RGB444 PIX_FMT_NE(RGB444BE, RGB444LE) -#define PIX_FMT_BGR48 PIX_FMT_NE(BGR48BE, BGR48LE) -#define PIX_FMT_BGR565 PIX_FMT_NE(BGR565BE, BGR565LE) -#define PIX_FMT_BGR555 PIX_FMT_NE(BGR555BE, BGR555LE) -#define PIX_FMT_BGR444 PIX_FMT_NE(BGR444BE, BGR444LE) - -#define PIX_FMT_YUV420P9 PIX_FMT_NE(YUV420P9BE , YUV420P9LE) -#define PIX_FMT_YUV444P9 PIX_FMT_NE(YUV444P9BE , YUV444P9LE) -#define PIX_FMT_YUV420P10 PIX_FMT_NE(YUV420P10BE, YUV420P10LE) -#define PIX_FMT_YUV422P10 PIX_FMT_NE(YUV422P10BE, YUV422P10LE) -#define PIX_FMT_YUV444P10 PIX_FMT_NE(YUV444P10BE, YUV444P10LE) -#define PIX_FMT_YUV420P16 PIX_FMT_NE(YUV420P16BE, YUV420P16LE) -#define PIX_FMT_YUV422P16 PIX_FMT_NE(YUV422P16BE, YUV422P16LE) -#define PIX_FMT_YUV444P16 PIX_FMT_NE(YUV444P16BE, YUV444P16LE) - -#endif /* AVUTIL_PIXFMT_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/random_seed.h b/tizen/distrib/libav/i386/include/libavutil/random_seed.h deleted file mode 100644 index 8157d42d73..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/random_seed.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2009 Baptiste Coudurier <baptiste.coudurier@gmail.com> - * - * 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 - */ - -#ifndef AVUTIL_RANDOM_SEED_H -#define AVUTIL_RANDOM_SEED_H - -#include <stdint.h> - -/** - * Get a seed to use in conjunction with random functions. - */ -uint32_t av_get_random_seed(void); - -#endif /* AVUTIL_RANDOM_SEED_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/rational.h b/tizen/distrib/libav/i386/include/libavutil/rational.h deleted file mode 100644 index a4871148bd..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/rational.h +++ /dev/null @@ -1,135 +0,0 @@ -/* - * rational numbers - * Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at> - * - * 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 - * rational numbers - * @author Michael Niedermayer <michaelni@gmx.at> - */ - -#ifndef AVUTIL_RATIONAL_H -#define AVUTIL_RATIONAL_H - -#include <stdint.h> -#include <limits.h> -#include "attributes.h" - -/** - * rational number numerator/denominator - */ -typedef struct AVRational{ - int num; ///< numerator - int den; ///< denominator -} AVRational; - -/** - * Compare two rationals. - * @param a first rational - * @param b second rational - * @return 0 if a==b, 1 if a>b, -1 if a<b, and INT_MIN if one of the - * values is of the form 0/0 - */ -static inline int av_cmp_q(AVRational a, AVRational b){ - const int64_t tmp= a.num * (int64_t)b.den - b.num * (int64_t)a.den; - - if(tmp) return ((tmp ^ a.den ^ b.den)>>63)|1; - else if(b.den && a.den) return 0; - else if(a.num && b.num) return (a.num>>31) - (b.num>>31); - else return INT_MIN; -} - -/** - * Convert rational to double. - * @param a rational to convert - * @return (double) a - */ -static inline double av_q2d(AVRational a){ - return a.num / (double) a.den; -} - -/** - * Reduce a fraction. - * This is useful for framerate calculations. - * @param dst_num destination numerator - * @param dst_den destination denominator - * @param num source numerator - * @param den source denominator - * @param max the maximum allowed for dst_num & dst_den - * @return 1 if exact, 0 otherwise - */ -int av_reduce(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max); - -/** - * Multiply two rationals. - * @param b first rational - * @param c second rational - * @return b*c - */ -AVRational av_mul_q(AVRational b, AVRational c) av_const; - -/** - * Divide one rational by another. - * @param b first rational - * @param c second rational - * @return b/c - */ -AVRational av_div_q(AVRational b, AVRational c) av_const; - -/** - * Add two rationals. - * @param b first rational - * @param c second rational - * @return b+c - */ -AVRational av_add_q(AVRational b, AVRational c) av_const; - -/** - * Subtract one rational from another. - * @param b first rational - * @param c second rational - * @return b-c - */ -AVRational av_sub_q(AVRational b, AVRational c) av_const; - -/** - * Convert a double precision floating point number to a rational. - * inf is expressed as {1,0} or {-1,0} depending on the sign. - * - * @param d double to convert - * @param max the maximum allowed numerator and denominator - * @return (AVRational) d - */ -AVRational av_d2q(double d, int max) av_const; - -/** - * @return 1 if q1 is nearer to q than q2, -1 if q2 is nearer - * than q1, 0 if they have the same distance. - */ -int av_nearer_q(AVRational q, AVRational q1, AVRational q2); - -/** - * Find the nearest value in q_list to q. - * @param q_list an array of rationals terminated by {0, 0} - * @return the index of the nearest value found in the array - */ -int av_find_nearest_q_idx(AVRational q, const AVRational* q_list); - -#endif /* AVUTIL_RATIONAL_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/samplefmt.h b/tizen/distrib/libav/i386/include/libavutil/samplefmt.h deleted file mode 100644 index e38214927f..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/samplefmt.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * 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 - */ - -#ifndef AVUTIL_SAMPLEFMT_H -#define AVUTIL_SAMPLEFMT_H - -#include "avutil.h" - -/** - * all in native-endian format - */ -enum AVSampleFormat { - AV_SAMPLE_FMT_NONE = -1, - AV_SAMPLE_FMT_U8, ///< unsigned 8 bits - AV_SAMPLE_FMT_S16, ///< signed 16 bits - AV_SAMPLE_FMT_S32, ///< signed 32 bits - AV_SAMPLE_FMT_FLT, ///< float - AV_SAMPLE_FMT_DBL, ///< double - AV_SAMPLE_FMT_NB ///< Number of sample formats. DO NOT USE if linking dynamically -}; - -/** - * Return the name of sample_fmt, or NULL if sample_fmt is not - * recognized. - */ -const char *av_get_sample_fmt_name(enum AVSampleFormat sample_fmt); - -/** - * Return a sample format corresponding to name, or AV_SAMPLE_FMT_NONE - * on error. - */ -enum AVSampleFormat av_get_sample_fmt(const char *name); - -/** - * Generate a string corresponding to the sample format with - * sample_fmt, or a header if sample_fmt is negative. - * - * @param buf the buffer where to write the string - * @param buf_size the size of buf - * @param sample_fmt the number of the sample format to print the - * corresponding info string, or a negative value to print the - * corresponding header. - * @return the pointer to the filled buffer or NULL if sample_fmt is - * unknown or in case of other errors - */ -char *av_get_sample_fmt_string(char *buf, int buf_size, enum AVSampleFormat sample_fmt); - -#if FF_API_GET_BITS_PER_SAMPLE_FMT -/** - * @deprecated Use av_get_bytes_per_sample() instead. - */ -attribute_deprecated -int av_get_bits_per_sample_fmt(enum AVSampleFormat sample_fmt); -#endif - -/** - * Return number of bytes per sample. - * - * @param sample_fmt the sample format - * @return number of bytes per sample or zero if unknown for the given - * sample format - */ -int av_get_bytes_per_sample(enum AVSampleFormat sample_fmt); - -#endif /* AVUTIL_SAMPLEFMT_H */ diff --git a/tizen/distrib/libav/i386/include/libavutil/sha.h b/tizen/distrib/libav/i386/include/libavutil/sha.h deleted file mode 100644 index df261fa4b5..0000000000 --- a/tizen/distrib/libav/i386/include/libavutil/sha.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (C) 2007 Michael Niedermayer <michaelni@gmx.at> - * - * 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 - */ - -#ifndef AVUTIL_SHA_H -#define AVUTIL_SHA_H - -#include <stdint.h> - -extern const int av_sha_size; - -struct AVSHA; - -/** - * Initialize SHA-1 or SHA-2 hashing. - * - * @param context pointer to the function context (of size av_sha_size) - * @param bits number of bits in digest (SHA-1 - 160 bits, SHA-2 224 or 256 bits) - * @return zero if initialization succeeded, -1 otherwise - */ -int av_sha_init(struct AVSHA* context, int bits); - -/** - * Update hash value. - * - * @param context hash function context - * @param data input data to update hash with - * @param len input data length - */ -void av_sha_update(struct AVSHA* context, const uint8_t* data, unsigned int len); - -/** - * Finish hashing and output digest value. - * - * @param context hash function context - * @param digest buffer where output digest value is stored - */ -void av_sha_final(struct AVSHA* context, uint8_t *digest); - -#endif /* AVUTIL_SHA_H */ diff --git a/tizen/distrib/libav/i386/lib/libavcodec.dll.a b/tizen/distrib/libav/i386/lib/libavcodec.dll.a Binary files differdeleted file mode 100644 index dde9e0b15e..0000000000 --- a/tizen/distrib/libav/i386/lib/libavcodec.dll.a +++ /dev/null diff --git a/tizen/distrib/libav/i386/lib/libavdevice.a b/tizen/distrib/libav/i386/lib/libavdevice.a Binary files differdeleted file mode 100644 index 55c8d8bf3c..0000000000 --- a/tizen/distrib/libav/i386/lib/libavdevice.a +++ /dev/null diff --git a/tizen/distrib/libav/i386/lib/libavdevice.dll.a b/tizen/distrib/libav/i386/lib/libavdevice.dll.a Binary files differdeleted file mode 100644 index 0672c1dfd5..0000000000 --- a/tizen/distrib/libav/i386/lib/libavdevice.dll.a +++ /dev/null diff --git a/tizen/distrib/libav/i386/lib/libavfilter.a b/tizen/distrib/libav/i386/lib/libavfilter.a Binary files differdeleted file mode 100644 index 0a30e33d21..0000000000 --- a/tizen/distrib/libav/i386/lib/libavfilter.a +++ /dev/null diff --git a/tizen/distrib/libav/i386/lib/libavfilter.dll.a b/tizen/distrib/libav/i386/lib/libavfilter.dll.a Binary files differdeleted file mode 100644 index 5d13b1f63f..0000000000 --- a/tizen/distrib/libav/i386/lib/libavfilter.dll.a +++ /dev/null diff --git a/tizen/distrib/libav/i386/lib/libavformat.a b/tizen/distrib/libav/i386/lib/libavformat.a Binary files differdeleted file mode 100644 index ec8c9a5b23..0000000000 --- a/tizen/distrib/libav/i386/lib/libavformat.a +++ /dev/null diff --git a/tizen/distrib/libav/i386/lib/libavformat.dll.a b/tizen/distrib/libav/i386/lib/libavformat.dll.a Binary files differdeleted file mode 100644 index c4ddeac4f7..0000000000 --- a/tizen/distrib/libav/i386/lib/libavformat.dll.a +++ /dev/null diff --git a/tizen/distrib/libav/i386/lib/libavutil.a b/tizen/distrib/libav/i386/lib/libavutil.a Binary files differdeleted file mode 100644 index 1301ab79a2..0000000000 --- a/tizen/distrib/libav/i386/lib/libavutil.a +++ /dev/null diff --git a/tizen/distrib/libav/i386/lib/libavutil.dll.a b/tizen/distrib/libav/i386/lib/libavutil.dll.a Binary files differdeleted file mode 100644 index c4f6c6dc9f..0000000000 --- a/tizen/distrib/libav/i386/lib/libavutil.dll.a +++ /dev/null diff --git a/tizen/distrib/libav/i386/lib/pkgconfig/libavcodec.pc b/tizen/distrib/libav/i386/lib/pkgconfig/libavcodec.pc deleted file mode 100644 index c0c2a1be3e..0000000000 --- a/tizen/distrib/libav/i386/lib/pkgconfig/libavcodec.pc +++ /dev/null @@ -1,14 +0,0 @@ -prefix=./i386 -exec_prefix=${prefix} -libdir=${prefix}/lib -includedir=${prefix}/include - -Name: libavcodec -Description: Libav codec library -Version: 53.5.0 -Requires: libavutil = 51.7.0 -Requires.private: -Conflicts: -Libs: -L${libdir} -lavcodec -lm -pthread -lbz2 -lz -Libs.private: -Cflags: -I${includedir} diff --git a/tizen/distrib/libav/i386/lib/pkgconfig/libavdevice.pc b/tizen/distrib/libav/i386/lib/pkgconfig/libavdevice.pc deleted file mode 100644 index 4703ebc49d..0000000000 --- a/tizen/distrib/libav/i386/lib/pkgconfig/libavdevice.pc +++ /dev/null @@ -1,14 +0,0 @@ -prefix=./i386 -exec_prefix=${prefix} -libdir=${prefix}/lib -includedir=${prefix}/include - -Name: libavdevice -Description: Libav device handling library -Version: 53.0.0 -Requires: libavformat = 53.2.0 -Requires.private: -Conflicts: -Libs: -L${libdir} -lavdevice -lm -pthread -lbz2 -lz -Libs.private: -Cflags: -I${includedir} diff --git a/tizen/distrib/libav/i386/lib/pkgconfig/libavfilter.pc b/tizen/distrib/libav/i386/lib/pkgconfig/libavfilter.pc deleted file mode 100644 index 6db0e38cfd..0000000000 --- a/tizen/distrib/libav/i386/lib/pkgconfig/libavfilter.pc +++ /dev/null @@ -1,14 +0,0 @@ -prefix=./i386 -exec_prefix=${prefix} -libdir=${prefix}/lib -includedir=${prefix}/include - -Name: libavfilter -Description: Libav video filtering library -Version: 2.4.0 -Requires: -Requires.private: -Conflicts: -Libs: -L${libdir} -lavfilter -lm -pthread -lbz2 -lz -Libs.private: -Cflags: -I${includedir} diff --git a/tizen/distrib/libav/i386/lib/pkgconfig/libavformat.pc b/tizen/distrib/libav/i386/lib/pkgconfig/libavformat.pc deleted file mode 100644 index 70fe056813..0000000000 --- a/tizen/distrib/libav/i386/lib/pkgconfig/libavformat.pc +++ /dev/null @@ -1,14 +0,0 @@ -prefix=./i386 -exec_prefix=${prefix} -libdir=${prefix}/lib -includedir=${prefix}/include - -Name: libavformat -Description: Libav container format library -Version: 53.2.0 -Requires: libavcodec = 53.5.0 -Requires.private: -Conflicts: -Libs: -L${libdir} -lavformat -lm -pthread -lbz2 -lz -Libs.private: -Cflags: -I${includedir} diff --git a/tizen/distrib/libav/i386/lib/pkgconfig/libavutil.pc b/tizen/distrib/libav/i386/lib/pkgconfig/libavutil.pc deleted file mode 100644 index 32271c2581..0000000000 --- a/tizen/distrib/libav/i386/lib/pkgconfig/libavutil.pc +++ /dev/null @@ -1,14 +0,0 @@ -prefix=./i386 -exec_prefix=${prefix} -libdir=${prefix}/lib -includedir=${prefix}/include - -Name: libavutil -Description: Libav utility library -Version: 51.7.0 -Requires: -Requires.private: -Conflicts: -Libs: -L${libdir} -lavutil -lm -Libs.private: -Cflags: -I${includedir} diff --git a/tizen/emulator_configure.sh b/tizen/emulator_configure.sh new file mode 100755 index 0000000000..da085fcb64 --- /dev/null +++ b/tizen/emulator_configure.sh @@ -0,0 +1,82 @@ +#!/bin/sh +# OS specific +#--target-list=i386-softmmu,arm-softmmu \ + +targetos=`uname -s` +targetarch=`echo | gcc -E -dM - | grep __x86_64` +bindir="i386" +ffmpegarc="x86" +if test "$targetarch" != "" +then + bindir="x86_64" + ffmpegarc="x86_64" +fi + +echo "##### checking for os... targetos $targetos" +case $targetos in +Linux*) +cd distrib/libav +echo "" +echo "##### FFMPEG configure for emulator" +./configure \ + --prefix=./$bindir --arch=${ffmpegarc} --enable-static --enable-pic --enable-optimizations --disable-doc --disable-gpl --disable-yasm --disable-postproc --disable-swscale --disable-ffmpeg --disable-ffprobe --disable-ffserver --disable-ffplay --disable-decoders --disable-encoders --disable-muxers --disable-demuxers --disable-parsers --disable-protocols --disable-network --disable-bsfs --disable-devices --disable-filters --enable-encoder=h263 --enable-encoder=h263p --enable-encoder=mpeg4 --enable-encoder=msmpeg4v2 --enable-encoder=msmpeg4v3 --enable-decoder=aac --enable-decoder=h263 --enable-decoder=h264 --enable-decoder=mp3 --enable-decoder=mp3adu --enable-decoder=mpeg4 --enable-decoder=mpegvideo --enable-decoder=msmpeg4v1 --enable-decoder=msmpeg4v2 --enable-decoder=msmpeg4v3 --enable-decoder=wmav1 --enable-decoder=wmav2 --enable-decoder=wmv3 --enable-decoder=vc1 +cd ../.. + +cd .. +echo "" +echo "##### QEMU configure for emulator" +./configure \ + --target-list=i386-softmmu \ + --disable-werror \ + --audio-drv-list=alsa \ + --enable-mixemu \ + --audio-card-list=ac97 \ + --enable-ldst-optimization \ + --enable-maru \ + --disable-vnc \ + --enable-gl +;; +MINGW*) +cd distrib/libav +echo "" +echo "##### FFMPEG configure for emulator" +./configure \ + --prefix=./$bindir --arch=x86 --enable-static --enable-w32threads --enable-optimizations --enable-memalign-hack --disable-doc --disable-gpl --disable-yasm --disable-postproc --disable-swscale --disable-ffmpeg --disable-ffprobe --disable-ffserver --disable-ffplay --disable-decoders --disable-encoders --disable-muxers --disable-demuxers --disable-parsers --disable-protocols --disable-network --disable-bsfs --disable-devices --disable-filters --enable-encoder=h263 --enable-encoder=h263p --enable-encoder=mpeg4 --enable-encoder=msmpeg4v2 --enable-encoder=msmpeg4v3 --enable-decoder=aac --enable-decoder=h263 --enable-decoder=h264 --enable-decoder=mp3 --enable-decoder=mp3adu --enable-decoder=mpeg4 --enable-decoder=mpegvideo --enable-decoder=msmpeg4v1 --enable-decoder=msmpeg4v2 --enable-decoder=msmpeg4v3 --enable-decoder=wmav1 --enable-decoder=wmav2 --enable-decoder=wmv3 --enable-decoder=vc1 +cd ../.. + +cd .. +echo "" +echo "##### QEMU configure for emulator" +./configure \ + --target-list=i386-softmmu \ + --audio-drv-list=winwave \ + --enable-mixemu \ + --audio-card-list=ac97 \ + --enable-ldst-optimization \ + --enable-hax \ + --enable-maru \ + --disable-vnc \ + --enable-gl $1 +;; +Darwin*) +cd distrib/libav +echo "" +echo "##### FFMPEG configure for emulator" +./configure \ +--prefix=./$bindir --arch=x86 --enable-static --enable-pic --enable-optimizations --disable-doc --disable-gpl --disable-yasm --disable-postproc --disable-swscale --disable-ffmpeg --disable-ffprobe --disable-ffserver --disable-ffplay --disable-decoders --disable-encoders --disable-muxers --disable-demuxers --disable-parsers --disable-protocols --disable-network --disable-bsfs --disable-devices --disable-filters --enable-encoder=h263 --enable-encoder=h263p --enable-encoder=mpeg4 --enable-encoder=msmpeg4v2 --enable-encoder=msmpeg4v3 --enable-decoder=aac --enable-decoder=h263 --enable-decoder=h264 --enable-decoder=mp3 --enable-decoder=mp3adu --enable-decoder=mpeg4 --enable-decoder=mpegvideo --enable-decoder=msmpeg4v1 --enable-decoder=msmpeg4v2 --enable-decoder=msmpeg4v3 --enable-decoder=wmav1 --enable-decoder=wmav2 --enable-decoder=wmv3 --enable-decoder=vc1 --cc=cc +cd ../.. + +cd .. +echo "" +echo "##### QEMU configure for emulator" +./configure \ + --target-list=i386-softmmu \ + --audio-drv-list=coreaudio \ + --enable-mixemu \ + --audio-card-list=ac97 \ + --enable-maru \ + --disable-vnc \ + --disable-sdl \ + --disable-gl +;; +esac diff --git a/tizen/qemu_configure.sh b/tizen/qemu_configure.sh deleted file mode 100755 index afc7451446..0000000000 --- a/tizen/qemu_configure.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh -# OS specific -#--target-list=i386-softmmu,arm-softmmu \ -targetos=`uname -s` - -cd .. -case $targetos in -Linux*) -echo "checking for os... targetos $targetos" -exec ./configure \ - --target-list=i386-softmmu \ - --disable-werror \ - --audio-drv-list=alsa \ - --enable-mixemu \ - --disable-vnc-tls \ - --audio-card-list=ac97 \ - --enable-ldst-optimization \ - --enable-maru \ - --disable-vnc-jpeg \ - --disable-vnc-png \ - --enable-gl -# --enable-ffmpeg -# --enable-v4l2 \ -# --enable-debug \ -# --enable-profiler \ -# --enable-gles2 --gles2dir=/usr -;; -MINGW*) -echo "checking for os... targetos $targetos" -exec ./configure \ - --target-list=i386-softmmu \ - --audio-drv-list=winwave \ - --enable-mixemu \ - --disable-vnc-tls \ - --audio-card-list=ac97 \ - --enable-ldst-optimization \ - --enable-hax \ - --enable-maru \ - --disable-vnc-jpeg \ - --disable-vnc-png \ - --enable-gl $1 -# --enable-ffmpeg -# --disable-vnc-jpeg \ -# --disable-jpeg -;; -esac diff --git a/tizen/src/Makefile b/tizen/src/Makefile index 45e7515e9f..0efc48e337 100755 --- a/tizen/src/Makefile +++ b/tizen/src/Makefile @@ -1,4 +1,4 @@ -EMUL_DIR=../Emulator +EMUL_DIR=../emulator ifneq ($(wildcard ../../config-host.mak),) include ../../config-host.mak @@ -8,49 +8,53 @@ config-host.mak: @exit 1 endif -all: build_info qemu skin_client check_hax -qemu: +all: qemu skin_client + +qemu: build_info ffmpeg_install check_hax cd ../../ && $(MAKE) +qemu_clean: + cd ../../ && $(MAKE) clean +qemu_distclean: + cd ../../ && $(MAKE) distclean + check_hax: ifdef CONFIG_WIN32 $(CC) -o check-hax.exe check_hax.c else endif + skin_client: -ifdef CONFIG_WIN32 - ant -buildfile skin/client/build.xml windows-jar -else -ifdef CONFIG_LINUX - ant -buildfile skin/client/build.xml linux-jar -else -ifdef CONFIG_DARWIN - ant -buildfile skin/client/build.xml mac-jar -endif -endif -endif + ant -buildfile skin/client/build.xml make-jar + build_info: @echo "/* Automatically generated by Makefile - do not modify! */" > build_info.h @echo "const char build_version[] = \"`cat VERSION`\";" >> build_info.h @echo "const char build_date[] = \"`date +"%F %T %Z"`\";" >> build_info.h @echo "const char pkginfo_version[] = \"`sed -n '2p' ./../../package/pkginfo.manifest`\";" >> build_info.h -clean: +ffmpeg: + cd ../distrib/libav/ && $(MAKE) +ffmpeg_install: ffmpeg + cd ../distrib/libav/ && $(MAKE) install +ffmpeg_clean: + cd ../distrib/libav/ && $(MAKE) clean +ffmpeg_distclean: + cd ../distrib/libav/ && $(MAKE) clean && rm -rf ${ARCH} + +clean: ffmpeg_clean qemu_clean ifdef CONFIG_WIN32 rm -f check-hax.exe else endif - cd ../../ && $(MAKE) clean -distclean: - cd ../../ && $(MAKE) distclean +distclean: ffmpeg_distclean qemu_distclean + install: all mkdir -p $(EMUL_DIR)/bin mkdir -p $(EMUL_DIR)/etc - mkdir -p $(EMUL_DIR)/x86 - mkdir -p $(EMUL_DIR)/x86/data - mkdir -p $(EMUL_DIR)/arm - mkdir -p $(EMUL_DIR)/x86/data/pc-bios + mkdir -p $(EMUL_DIR)/data + mkdir -p $(EMUL_DIR)/data/bios cp ../../i386-softmmu/qemu-system-i386 $(EMUL_DIR)/bin/emulator-x86 cp skin/client/emulator-skin.jar $(EMUL_DIR)/bin ifdef CONFIG_WIN32 @@ -58,11 +62,58 @@ ifdef CONFIG_WIN32 else endif + +ifndef CONFIG_DARWIN cp ../../qemu-img $(EMUL_DIR)/bin + cp -dpr ../license $(EMUL_DIR) + cp -dpr ../../pc-bios/bios.bin $(EMUL_DIR)/data/bios + cp -dpr ../../pc-bios/linuxboot.bin $(EMUL_DIR)/data/bios + cp -dpr ../../pc-bios/pxe-rtl8139.rom $(EMUL_DIR)/data/bios + cp -dpr ../../pc-bios/pxe-virtio.rom $(EMUL_DIR)/data/bios + cp skin/client/lib/swt.jar $(EMUL_DIR)/bin/swt.jar cp -dpr skin/client/skins $(EMUL_DIR) +else + cp ../../qemu-img $(EMUL_DIR)/bin + cp -pPR ../license $(EMUL_DIR) + cp -pPR ../../pc-bios/bios.bin $(EMUL_DIR)/data/bios + cp -pPR ../../pc-bios/linuxboot.bin $(EMUL_DIR)/data/bios + cp -pPR ../../pc-bios/pxe-rtl8139.rom $(EMUL_DIR)/data/bios + cp -pPR ../../pc-bios/pxe-virtio.rom $(EMUL_DIR)/data/bios + cp skin/client/lib/swt.jar $(EMUL_DIR)/bin/swt.jar + cp -pPR skin/client/skins $(EMUL_DIR) +endif + +# for dibs system... +all_dibs: qemu skin_client_dibs +skin_client_dibs: + ant -buildfile skin/client/build.xml -Dclasspath.dibs=$(ROOTDIR)/tools/emulator/bin make-jar-dibs +install_dibs: all_dibs + mkdir -p $(EMUL_DIR)/bin + mkdir -p $(EMUL_DIR)/etc + mkdir -p $(EMUL_DIR)/data + mkdir -p $(EMUL_DIR)/data/bios + cp ../../i386-softmmu/qemu-system-i386 $(EMUL_DIR)/bin/emulator-x86 + cp skin/client/emulator-skin.jar $(EMUL_DIR)/bin +ifdef CONFIG_WIN32 + cp check-hax.exe $(EMUL_DIR)/bin +else + +endif + +ifndef CONFIG_DARWIN + cp ../../qemu-img $(EMUL_DIR)/bin cp -dpr ../license $(EMUL_DIR) - cp -dpr ../../pc-bios/bios.bin $(EMUL_DIR)/x86/data/pc-bios - cp -dpr ../../pc-bios/linuxboot.bin $(EMUL_DIR)/x86/data/pc-bios - cp -dpr ../../pc-bios/pxe-rtl8139.rom $(EMUL_DIR)/x86/data/pc-bios - cp -dpr ../../pc-bios/pxe-virtio.rom $(EMUL_DIR)/x86/data/pc-bios - cp -dpr ../../pc-bios/vgabios-maruvga.bin $(EMUL_DIR)/x86/data/pc-bios + cp -dpr ../../pc-bios/bios.bin $(EMUL_DIR)/data/bios + cp -dpr ../../pc-bios/linuxboot.bin $(EMUL_DIR)/data/bios + cp -dpr ../../pc-bios/pxe-rtl8139.rom $(EMUL_DIR)/data/bios + cp -dpr ../../pc-bios/pxe-virtio.rom $(EMUL_DIR)/data/bios + cp -dpr skin/client/skins $(EMUL_DIR) +else + cp ../../qemu-img $(EMUL_DIR)/bin + cp -pPR ../license $(EMUL_DIR) + cp -pPR ../../pc-bios/bios.bin $(EMUL_DIR)/data/bios + cp -pPR ../../pc-bios/linuxboot.bin $(EMUL_DIR)/data/bios + cp -pPR ../../pc-bios/pxe-rtl8139.rom $(EMUL_DIR)/data/bios + cp -pPR ../../pc-bios/pxe-virtio.rom $(EMUL_DIR)/data/bios + cp -pPR skin/client/skins $(EMUL_DIR) +endif diff --git a/tizen/src/Makefile.tizen b/tizen/src/Makefile.tizen index 4626a19421..27a461760a 100755 --- a/tizen/src/Makefile.tizen +++ b/tizen/src/Makefile.tizen @@ -12,10 +12,15 @@ QEMU_CFLAGS += $(GLIB_CFLAGS) CFLAGS += -g -O2 ifdef CONFIG_WIN32 -LIBS += -lavformat -lavcodec -lavutil -lm -else +LIBS += -lavformat -lavcodec -lavutil -lm -lopengl32 -lglu32 -lgdi32 +endif +ifdef CONFIG_LINUX LIBS += -lavformat -lavcodec -lavutil -lm -lGL endif +ifdef CONFIG_DARWIN +# FIXME: disabled codec on Mac now +# LIBS += -lavformat -lavcodec -lavutil -lm +endif ifdef CONFIG_DEBUG_EXEC GL_CFLAGS := -Wall -g -O0 -fno-strict-aliasing @@ -23,7 +28,7 @@ else GL_CFLAGS := -Wall -g -O2 -fno-strict-aliasing endif -ifndef CONFIG_WIN32 +ifndef CONFIG_DARWIN ########################################################### ## Build openGL # i386 @@ -51,13 +56,16 @@ opengl_exec.o : opengl_exec.c server_stub.c opengl_func.h gl_beginend.h opengl_p endif #($(TARGET_ARCH), i386) ########################################################### -endif #CONFIG_WIN32 - +endif #!CONFIG_DARWIN + # maru loader obj-y += emulator.o emul_state.o option.o maru_err_table.o # maru display +obj-y += maru_display.o maru_shm.o +ifndef CONFIG_DARWIN obj-y += maru_sdl.o sdl_rotate.o maru_finger.o +endif # sdb obj-y += sdb.o @@ -71,14 +79,21 @@ obj-y += debug_ch.o # maru hardware obj-i386-y += maru_board.o obj-i386-y += maru_overlay.o +ifndef CONFIG_DARWIN obj-i386-y += maru_codec.o +endif obj-i386-y += maru_pm.o obj-i386-y += maru_vga.o obj-i386-y += maru_brightness.o obj-i386-y += maru_touchscreen.o + +# FIXME: camera disabled +ifndef CONFIG_DARWIN obj-i386-$(CONFIG_PCI) += maru_camera_common_pci.o obj-i386-$(CONFIG_LINUX) += maru_camera_linux_pci.o obj-i386-$(CONFIG_WIN32) += maru_camera_win32_pci.o +endif + ifdef CONFIG_LINUX # libs for maru camera on linux host LIBS += -lv4l2 -lv4lconvert endif @@ -94,7 +109,7 @@ obj-i386-y += maruskin_client.o maruskin_server.o maruskin_operation.o maruskin_ # guest server obj-i386-y += guest_server.o -ifndef CONFIG_WIN32 +ifndef CONFIG_DARWIN ########################################################### ## opengl library for i386 obj-i386-y += virtio-gl.o helper_opengl.o opengl_exec.o mesa_mipmap.o gloffscreen_common.o gloffscreen_xcomposite.o gloffscreen_wgl.o gloffscreen_test.o diff --git a/tizen/src/emul_state.c b/tizen/src/emul_state.c index a455bdb03a..4896085837 100644 --- a/tizen/src/emul_state.c +++ b/tizen/src/emul_state.c @@ -30,6 +30,7 @@ */ +#include "maru_common.h" #include "emul_state.h" #include "debug_ch.h" @@ -161,7 +162,9 @@ MultiTouchState *get_emul_multi_touch_state(void) /* retrieves the status of the host lock key */ int get_host_lock_key_state(int key) { -#if defined( __linux__) + /* support only capslock, numlock */ + +#if defined(CONFIG_LINUX) unsigned state = 0; Display *display = XOpenDisplay((char*)0); if (display) { @@ -169,7 +172,6 @@ int get_host_lock_key_state(int key) } XCloseDisplay(display); - if (key == HOST_CAPSLOCK_KEY) { return (state & 0x01) != 0; } else if (key == HOST_NUMLOCK_KEY) { @@ -177,16 +179,18 @@ int get_host_lock_key_state(int key) } return -1; -#elif defined(_WIN32) - int nVirtKey = 0; +#elif defined(CONFIG_WIN32) if (key == HOST_CAPSLOCK_KEY) { - nVirtKey = VK_CAPITAL; + return (GetKeyState(VK_CAPITAL) & 1) != 0; } else if (key == HOST_NUMLOCK_KEY) { - nVirtKey = VK_NUMLOCK; + return (GetKeyState(VK_NUMLOCK) & 1) != 0; } - return (GetKeyState(nVirtKey) & 1) != 0; + return -1; + +#elif defined(CONFIG_DARWIN) + //TODO: #endif return 0; diff --git a/tizen/src/emulator.c b/tizen/src/emulator.c index 79c5d90b17..e2578d06ad 100644 --- a/tizen/src/emulator.c +++ b/tizen/src/emulator.c @@ -30,6 +30,7 @@ */ +#include "maru_common.h" #include <stdlib.h> #include <SDL.h> #include "maru_common.h" @@ -80,6 +81,7 @@ static char** skin_argv = NULL; static int qemu_argc = 0; static char** qemu_argv = NULL; +extern void maruskin_sdl_quit(void); void exit_emulator(void) { cleanup_multi_touch_state(); @@ -88,7 +90,7 @@ void exit_emulator(void) shutdown_skin_server(); shutdown_guest_server(); - SDL_Quit(); + maruskin_sdl_quit(); } static int check_port_bind_listen(u_int port) @@ -129,7 +131,7 @@ static int check_port_bind_listen(u_int port) void check_shdmem(void) { -#ifndef _WIN32 +#if defined(CONFIG_LINUX) int shm_id; void *shm_addr; u_int port; @@ -167,7 +169,7 @@ void check_shdmem(void) } } -#else /* _WIN32*/ +#elif defined(CONFIG_WIN32) u_int port; char* base_port = NULL; char* pBuf; @@ -220,12 +222,14 @@ void check_shdmem(void) CloseHandle(hMapFile); free(base_port); } +#elif defined(CONFIG_DARWIN) + //TODO: #endif } void make_shdmem(void) { -#ifndef _WIN32 +#if defined(CONFIG_LINUX) int shmid; char *shared_memory; shmid = shmget((key_t)tizen_base_port, MAXLEN, 0666|IPC_CREAT); @@ -242,7 +246,7 @@ void make_shdmem(void) } sprintf(shared_memory, "%s", tizen_target_path); INFO( "shared memory key: %d value: %s\n", tizen_base_port, (char*)shared_memory); -#else +#elif defined(CONFIG_WIN32) HANDLE hMapFile; char* pBuf; char* port_in_use; @@ -277,6 +281,8 @@ void make_shdmem(void) CopyMemory((PVOID)pBuf, shared_memory, strlen(shared_memory)); free(port_in_use); free(shared_memory); +#elif defined(CONFIG_DARWIN) + //TODO: #endif return; } @@ -434,9 +440,6 @@ static void system_info(void) { #define DIV 1024 -#ifdef __linux__ - char lscmd[MAXLEN] = "lspci >> "; -#endif char timeinfo[64] = {0, }; struct tm *tm_time; struct timeval tval; @@ -444,9 +447,7 @@ static void system_info(void) INFO("* SDK Version : %s\n", build_version); INFO("* Package %s\n", pkginfo_version); INFO("* User name : %s\n", g_get_real_name()); -#ifdef _WIN32 INFO("* Host name : %s\n", g_get_host_name()); -#endif /* timestamp */ INFO("* Build date : %s\n", build_date); @@ -455,11 +456,13 @@ static void system_info(void) strftime(timeinfo, sizeof(timeinfo), "%Y/%m/%d %H:%M:%S", tm_time); INFO("* Current time : %s\n", timeinfo); +#ifdef CONFIG_SDL /* Gets the version of the dynamically linked SDL library */ INFO("* Host sdl version : (%d, %d, %d)\n", SDL_Linked_Version()->major, SDL_Linked_Version()->minor, SDL_Linked_Version()->patch); +#endif -#if defined( _WIN32) +#if defined(CONFIG_WIN32) /* Retrieves information about the current os */ OSVERSIONINFO osvi; ZeroMemory(&osvi, sizeof(OSVERSIONINFO)); @@ -475,7 +478,7 @@ static void system_info(void) ZeroMemory(&sysi, sizeof(SYSTEM_INFO)); GetSystemInfo(&sysi); - INFO("* Processor type : %d, Number of processors : %d\n", sysi.dwProcessorType, sysi.dwNumberOfProcessors); + INFO("* Processor type : %d, Number of processors : %d\n", sysi.dwProcessorType, sysi.dwNumberOfProcessors); MEMORYSTATUSEX memInfo; memInfo.dwLength = sizeof(MEMORYSTATUSEX); @@ -483,10 +486,10 @@ static void system_info(void) INFO("* Total Ram : %llu kB, Free: %lld kB\n", memInfo.ullTotalPhys / DIV, memInfo.ullAvailPhys / DIV); -#elif defined(__linux__) +#elif defined(CONFIG_LINUX) /* depends on building */ INFO("* Qemu build machine linux kernel version : (%d, %d, %d)\n", - LINUX_VERSION_CODE >> 16, (LINUX_VERSION_CODE >> 8) & 0xff , LINUX_VERSION_CODE & 0xff); + LINUX_VERSION_CODE >> 16, (LINUX_VERSION_CODE >> 8) & 0xff, LINUX_VERSION_CODE & 0xff); /* depends on launching */ struct utsname host_uname_buf; @@ -504,10 +507,16 @@ static void system_info(void) /* pci device description */ INFO("* Pci devices :\n"); + char lscmd[MAXLEN] = "lspci >> "; strcat(lscmd, logpath); int i = system(lscmd); INFO("system function command : %s, system function returned value : %d\n", lscmd, i); + +#elif defined(CONFIG_DARWIN) + //TODO: #endif + + INFO("\n"); } void prepare_maru(void) @@ -518,7 +527,7 @@ void prepare_maru(void) INFO("call construct_main_window\n"); - construct_main_window(skin_argc, skin_argv, qemu_argc, qemu_argv ); + construct_main_window(skin_argc, skin_argv, qemu_argc, qemu_argv); int guest_server_port = tizen_base_port + SDB_UDP_SENSOR_INDEX; start_guest_server( guest_server_port ); diff --git a/tizen/src/guest_server.c b/tizen/src/guest_server.c index 6340706537..23fe88b999 100644 --- a/tizen/src/guest_server.c +++ b/tizen/src/guest_server.c @@ -76,26 +76,39 @@ pthread_t start_guest_server( int server_port ) { } -/* get_tizen_vms_sdcard_path = "/home/{USER}/tizen_vms/sdcard" */ -char* get_tizen_vms_sdcard_path(void) +/* get_emulator_vms_sdcard_path = "/home/{USER}/tizen-sdk-data/emulator-vms/sdcard" */ +char* get_emulator_vms_sdcard_path(void) { - char tizen_vms[] = "/tizen_vms/sdcard/"; + char *emulator_vms_sdcard_path; #ifndef _WIN32 + char emulator_vms[] = "/tizen-sdk-data/emulator-vms/sdcard/"; char *homedir = (char*)g_getenv("HOME"); + + if(!homedir) + homedir = (char*)g_get_home_dir(); + + emulator_vms_sdcard_path = malloc(strlen(homedir) + sizeof emulator_vms + 1); + assert(emulator_vms_sdcard_path != NULL); + strcpy(emulator_vms_sdcard_path, homedir); + strcat(emulator_vms_sdcard_path, emulator_vms); #else - char *homedir = (char*)g_getenv("USERPROFILE"); + char emulator_vms[] = "\\tizen-sdk-data\\emulator-vms\\sdcard\\"; + HKEY hKey; + char strLocalAppDataPath[1024] = {0}; + DWORD dwBufLen = 1024; + RegOpenKeyEx(HKEY_CURRENT_USER, + "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", + 0, KEY_QUERY_VALUE, &hKey); + + RegQueryValueEx(hKey, "Local AppData", NULL, NULL, (LPBYTE)strLocalAppDataPath, &dwBufLen); + RegCloseKey(hKey); + + emulator_vms_sdcard_path = malloc(strlen(strLocalAppDataPath) + sizeof emulator_vms + 1); + strcpy(emulator_vms_sdcard_path, strLocalAppDataPath); + strcat(emulator_vms_sdcard_path, emulator_vms); #endif - char *tizen_vms_path; - - if(!homedir) - homedir = (char*)g_get_home_dir(); - - tizen_vms_path = malloc(strlen(homedir) + sizeof tizen_vms + 1); - assert(tizen_vms_path != NULL); - strcpy(tizen_vms_path, homedir); - strcat(tizen_vms_path, tizen_vms); - return tizen_vms_path; + return emulator_vms_sdcard_path; } static void* run_guest_server( void* args ) { @@ -184,12 +197,12 @@ static void* run_guest_server( void* args ) { } else if( atoi(ret) == 1 ) { /* mount sdcard */ char sdcard_path[256]; - char* vms_path = get_tizen_vms_sdcard_path(); + char* vms_path = get_emulator_vms_sdcard_path(); memset(sdcard_path, '\0', sizeof(sdcard_path)); strcpy(sdcard_path, vms_path); - /* tizen_vms_sdcard_path + sdcard img name */ + /* emulator_vms_sdcard_path + sdcard img name */ ret = strtok(NULL, token); strcat(sdcard_path, ret); INFO( "%s\n", sdcard_path); diff --git a/tizen/src/hw/GL/wglext.h b/tizen/src/hw/GL/wglext.h new file mode 100644 index 0000000000..b5dc7bf7f1 --- /dev/null +++ b/tizen/src/hw/GL/wglext.h @@ -0,0 +1,943 @@ +#ifndef __wglext_h_ +#define __wglext_h_ + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright (c) 2007-2012 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are 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 Materials. +** +** THE MATERIALS ARE 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 +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Function declaration macros - to move into glplatform.h */ + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#define WIN32_LEAN_AND_MEAN 1 +#include <windows.h> +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif +#ifndef GLAPI +#define GLAPI extern +#endif + +/*************************************************************/ + +/* Header file version number */ +/* wglext.h last updated 2012/01/04 */ +/* Current version at http://www.opengl.org/registry/ */ +#define WGL_WGLEXT_VERSION 24 + +#ifndef WGL_ARB_buffer_region +#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001 +#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002 +#define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004 +#define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008 +#endif + +#ifndef WGL_ARB_multisample +#define WGL_SAMPLE_BUFFERS_ARB 0x2041 +#define WGL_SAMPLES_ARB 0x2042 +#endif + +#ifndef WGL_ARB_extensions_string +#endif + +#ifndef WGL_ARB_pixel_format +#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 +#define WGL_DRAW_TO_WINDOW_ARB 0x2001 +#define WGL_DRAW_TO_BITMAP_ARB 0x2002 +#define WGL_ACCELERATION_ARB 0x2003 +#define WGL_NEED_PALETTE_ARB 0x2004 +#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 +#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 +#define WGL_SWAP_METHOD_ARB 0x2007 +#define WGL_NUMBER_OVERLAYS_ARB 0x2008 +#define WGL_NUMBER_UNDERLAYS_ARB 0x2009 +#define WGL_TRANSPARENT_ARB 0x200A +#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 +#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 +#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 +#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A +#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B +#define WGL_SHARE_DEPTH_ARB 0x200C +#define WGL_SHARE_STENCIL_ARB 0x200D +#define WGL_SHARE_ACCUM_ARB 0x200E +#define WGL_SUPPORT_GDI_ARB 0x200F +#define WGL_SUPPORT_OPENGL_ARB 0x2010 +#define WGL_DOUBLE_BUFFER_ARB 0x2011 +#define WGL_STEREO_ARB 0x2012 +#define WGL_PIXEL_TYPE_ARB 0x2013 +#define WGL_COLOR_BITS_ARB 0x2014 +#define WGL_RED_BITS_ARB 0x2015 +#define WGL_RED_SHIFT_ARB 0x2016 +#define WGL_GREEN_BITS_ARB 0x2017 +#define WGL_GREEN_SHIFT_ARB 0x2018 +#define WGL_BLUE_BITS_ARB 0x2019 +#define WGL_BLUE_SHIFT_ARB 0x201A +#define WGL_ALPHA_BITS_ARB 0x201B +#define WGL_ALPHA_SHIFT_ARB 0x201C +#define WGL_ACCUM_BITS_ARB 0x201D +#define WGL_ACCUM_RED_BITS_ARB 0x201E +#define WGL_ACCUM_GREEN_BITS_ARB 0x201F +#define WGL_ACCUM_BLUE_BITS_ARB 0x2020 +#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 +#define WGL_DEPTH_BITS_ARB 0x2022 +#define WGL_STENCIL_BITS_ARB 0x2023 +#define WGL_AUX_BUFFERS_ARB 0x2024 +#define WGL_NO_ACCELERATION_ARB 0x2025 +#define WGL_GENERIC_ACCELERATION_ARB 0x2026 +#define WGL_FULL_ACCELERATION_ARB 0x2027 +#define WGL_SWAP_EXCHANGE_ARB 0x2028 +#define WGL_SWAP_COPY_ARB 0x2029 +#define WGL_SWAP_UNDEFINED_ARB 0x202A +#define WGL_TYPE_RGBA_ARB 0x202B +#define WGL_TYPE_COLORINDEX_ARB 0x202C +#endif + +#ifndef WGL_ARB_make_current_read +#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043 +#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054 +#endif + +#ifndef WGL_ARB_pbuffer +#define WGL_DRAW_TO_PBUFFER_ARB 0x202D +#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E +#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F +#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 +#define WGL_PBUFFER_LARGEST_ARB 0x2033 +#define WGL_PBUFFER_WIDTH_ARB 0x2034 +#define WGL_PBUFFER_HEIGHT_ARB 0x2035 +#define WGL_PBUFFER_LOST_ARB 0x2036 +#endif + +#ifndef WGL_ARB_render_texture +#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070 +#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071 +#define WGL_TEXTURE_FORMAT_ARB 0x2072 +#define WGL_TEXTURE_TARGET_ARB 0x2073 +#define WGL_MIPMAP_TEXTURE_ARB 0x2074 +#define WGL_TEXTURE_RGB_ARB 0x2075 +#define WGL_TEXTURE_RGBA_ARB 0x2076 +#define WGL_NO_TEXTURE_ARB 0x2077 +#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078 +#define WGL_TEXTURE_1D_ARB 0x2079 +#define WGL_TEXTURE_2D_ARB 0x207A +#define WGL_MIPMAP_LEVEL_ARB 0x207B +#define WGL_CUBE_MAP_FACE_ARB 0x207C +#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D +#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E +#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F +#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080 +#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081 +#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082 +#define WGL_FRONT_LEFT_ARB 0x2083 +#define WGL_FRONT_RIGHT_ARB 0x2084 +#define WGL_BACK_LEFT_ARB 0x2085 +#define WGL_BACK_RIGHT_ARB 0x2086 +#define WGL_AUX0_ARB 0x2087 +#define WGL_AUX1_ARB 0x2088 +#define WGL_AUX2_ARB 0x2089 +#define WGL_AUX3_ARB 0x208A +#define WGL_AUX4_ARB 0x208B +#define WGL_AUX5_ARB 0x208C +#define WGL_AUX6_ARB 0x208D +#define WGL_AUX7_ARB 0x208E +#define WGL_AUX8_ARB 0x208F +#define WGL_AUX9_ARB 0x2090 +#endif + +#ifndef WGL_ARB_pixel_format_float +#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0 +#endif + +#ifndef WGL_ARB_framebuffer_sRGB +#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9 +#endif + +#ifndef WGL_ARB_create_context +#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001 +#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002 +#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 +#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 +#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093 +#define WGL_CONTEXT_FLAGS_ARB 0x2094 +#define ERROR_INVALID_VERSION_ARB 0x2095 +#endif + +#ifndef WGL_ARB_create_context_profile +#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 +#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 +#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 +#define ERROR_INVALID_PROFILE_ARB 0x2096 +#endif + +#ifndef WGL_ARB_create_context_robustness +#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 +#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 +#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 +#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261 +#endif + +#ifndef WGL_EXT_make_current_read +#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 +#endif + +#ifndef WGL_EXT_pixel_format +#define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000 +#define WGL_DRAW_TO_WINDOW_EXT 0x2001 +#define WGL_DRAW_TO_BITMAP_EXT 0x2002 +#define WGL_ACCELERATION_EXT 0x2003 +#define WGL_NEED_PALETTE_EXT 0x2004 +#define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005 +#define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006 +#define WGL_SWAP_METHOD_EXT 0x2007 +#define WGL_NUMBER_OVERLAYS_EXT 0x2008 +#define WGL_NUMBER_UNDERLAYS_EXT 0x2009 +#define WGL_TRANSPARENT_EXT 0x200A +#define WGL_TRANSPARENT_VALUE_EXT 0x200B +#define WGL_SHARE_DEPTH_EXT 0x200C +#define WGL_SHARE_STENCIL_EXT 0x200D +#define WGL_SHARE_ACCUM_EXT 0x200E +#define WGL_SUPPORT_GDI_EXT 0x200F +#define WGL_SUPPORT_OPENGL_EXT 0x2010 +#define WGL_DOUBLE_BUFFER_EXT 0x2011 +#define WGL_STEREO_EXT 0x2012 +#define WGL_PIXEL_TYPE_EXT 0x2013 +#define WGL_COLOR_BITS_EXT 0x2014 +#define WGL_RED_BITS_EXT 0x2015 +#define WGL_RED_SHIFT_EXT 0x2016 +#define WGL_GREEN_BITS_EXT 0x2017 +#define WGL_GREEN_SHIFT_EXT 0x2018 +#define WGL_BLUE_BITS_EXT 0x2019 +#define WGL_BLUE_SHIFT_EXT 0x201A +#define WGL_ALPHA_BITS_EXT 0x201B +#define WGL_ALPHA_SHIFT_EXT 0x201C +#define WGL_ACCUM_BITS_EXT 0x201D +#define WGL_ACCUM_RED_BITS_EXT 0x201E +#define WGL_ACCUM_GREEN_BITS_EXT 0x201F +#define WGL_ACCUM_BLUE_BITS_EXT 0x2020 +#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021 +#define WGL_DEPTH_BITS_EXT 0x2022 +#define WGL_STENCIL_BITS_EXT 0x2023 +#define WGL_AUX_BUFFERS_EXT 0x2024 +#define WGL_NO_ACCELERATION_EXT 0x2025 +#define WGL_GENERIC_ACCELERATION_EXT 0x2026 +#define WGL_FULL_ACCELERATION_EXT 0x2027 +#define WGL_SWAP_EXCHANGE_EXT 0x2028 +#define WGL_SWAP_COPY_EXT 0x2029 +#define WGL_SWAP_UNDEFINED_EXT 0x202A +#define WGL_TYPE_RGBA_EXT 0x202B +#define WGL_TYPE_COLORINDEX_EXT 0x202C +#endif + +#ifndef WGL_EXT_pbuffer +#define WGL_DRAW_TO_PBUFFER_EXT 0x202D +#define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E +#define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F +#define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030 +#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031 +#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032 +#define WGL_PBUFFER_LARGEST_EXT 0x2033 +#define WGL_PBUFFER_WIDTH_EXT 0x2034 +#define WGL_PBUFFER_HEIGHT_EXT 0x2035 +#endif + +#ifndef WGL_EXT_depth_float +#define WGL_DEPTH_FLOAT_EXT 0x2040 +#endif + +#ifndef WGL_3DFX_multisample +#define WGL_SAMPLE_BUFFERS_3DFX 0x2060 +#define WGL_SAMPLES_3DFX 0x2061 +#endif + +#ifndef WGL_EXT_multisample +#define WGL_SAMPLE_BUFFERS_EXT 0x2041 +#define WGL_SAMPLES_EXT 0x2042 +#endif + +#ifndef WGL_I3D_digital_video_control +#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050 +#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051 +#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052 +#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053 +#endif + +#ifndef WGL_I3D_gamma +#define WGL_GAMMA_TABLE_SIZE_I3D 0x204E +#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F +#endif + +#ifndef WGL_I3D_genlock +#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044 +#define WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D 0x2045 +#define WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D 0x2046 +#define WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D 0x2047 +#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048 +#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049 +#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A +#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B +#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C +#endif + +#ifndef WGL_I3D_image_buffer +#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001 +#define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002 +#endif + +#ifndef WGL_I3D_swap_frame_lock +#endif + +#ifndef WGL_NV_render_depth_texture +#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4 +#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5 +#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6 +#define WGL_DEPTH_COMPONENT_NV 0x20A7 +#endif + +#ifndef WGL_NV_render_texture_rectangle +#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1 +#define WGL_TEXTURE_RECTANGLE_NV 0x20A2 +#endif + +#ifndef WGL_ATI_pixel_format_float +#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0 +#endif + +#ifndef WGL_NV_float_buffer +#define WGL_FLOAT_COMPONENTS_NV 0x20B0 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4 +#define WGL_TEXTURE_FLOAT_R_NV 0x20B5 +#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6 +#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7 +#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8 +#endif + +#ifndef WGL_3DL_stereo_control +#define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055 +#define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056 +#define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057 +#define WGL_STEREO_POLARITY_INVERT_3DL 0x2058 +#endif + +#ifndef WGL_EXT_pixel_format_packed_float +#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8 +#endif + +#ifndef WGL_EXT_framebuffer_sRGB +#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9 +#endif + +#ifndef WGL_NV_present_video +#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0 +#endif + +#ifndef WGL_NV_video_out +#define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0 +#define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1 +#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2 +#define WGL_VIDEO_OUT_COLOR_NV 0x20C3 +#define WGL_VIDEO_OUT_ALPHA_NV 0x20C4 +#define WGL_VIDEO_OUT_DEPTH_NV 0x20C5 +#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 +#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 +#define WGL_VIDEO_OUT_FRAME 0x20C8 +#define WGL_VIDEO_OUT_FIELD_1 0x20C9 +#define WGL_VIDEO_OUT_FIELD_2 0x20CA +#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB +#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC +#endif + +#ifndef WGL_NV_swap_group +#endif + +#ifndef WGL_NV_gpu_affinity +#define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0 +#define WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1 +#endif + +#ifndef WGL_AMD_gpu_association +#define WGL_GPU_VENDOR_AMD 0x1F00 +#define WGL_GPU_RENDERER_STRING_AMD 0x1F01 +#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 +#define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 +#define WGL_GPU_RAM_AMD 0x21A3 +#define WGL_GPU_CLOCK_AMD 0x21A4 +#define WGL_GPU_NUM_PIPES_AMD 0x21A5 +#define WGL_GPU_NUM_SIMD_AMD 0x21A6 +#define WGL_GPU_NUM_RB_AMD 0x21A7 +#define WGL_GPU_NUM_SPI_AMD 0x21A8 +#endif + +#ifndef WGL_NV_video_capture +#define WGL_UNIQUE_ID_NV 0x20CE +#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF +#endif + +#ifndef WGL_NV_copy_image +#endif + +#ifndef WGL_NV_multisample_coverage +#define WGL_COVERAGE_SAMPLES_NV 0x2042 +#define WGL_COLOR_SAMPLES_NV 0x20B9 +#endif + +#ifndef WGL_EXT_create_context_es2_profile +#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 +#endif + +#ifndef WGL_NV_DX_interop +#define WGL_ACCESS_READ_ONLY_NV 0x00000000 +#define WGL_ACCESS_READ_WRITE_NV 0x00000001 +#define WGL_ACCESS_WRITE_DISCARD_NV 0x00000002 +#endif + +#ifndef WGL_NV_DX_interop2 +#endif + +#ifndef WGL_EXT_swap_control_tear +#endif + + +/*************************************************************/ + +#ifndef WGL_ARB_pbuffer +DECLARE_HANDLE(HPBUFFERARB); +#endif +#ifndef WGL_EXT_pbuffer +DECLARE_HANDLE(HPBUFFEREXT); +#endif +#ifndef WGL_NV_present_video +DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV); +#endif +#ifndef WGL_NV_video_output +DECLARE_HANDLE(HPVIDEODEV); +#endif +#ifndef WGL_NV_gpu_affinity +DECLARE_HANDLE(HPGPUNV); +DECLARE_HANDLE(HGPUNV); + +typedef struct _GPU_DEVICE { + DWORD cb; + CHAR DeviceName[32]; + CHAR DeviceString[128]; + DWORD Flags; + RECT rcVirtualScreen; +} GPU_DEVICE, *PGPU_DEVICE; +#endif +#ifndef WGL_NV_video_capture +DECLARE_HANDLE(HVIDEOINPUTDEVICENV); +#endif + +#ifndef WGL_ARB_buffer_region +#define WGL_ARB_buffer_region 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern HANDLE WINAPI wglCreateBufferRegionARB (HDC hDC, int iLayerPlane, UINT uType); +extern VOID WINAPI wglDeleteBufferRegionARB (HANDLE hRegion); +extern BOOL WINAPI wglSaveBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height); +extern BOOL WINAPI wglRestoreBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType); +typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion); +typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height); +typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); +#endif + +#ifndef WGL_ARB_multisample +#define WGL_ARB_multisample 1 +#endif + +#ifndef WGL_ARB_extensions_string +#define WGL_ARB_extensions_string 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern const char * WINAPI wglGetExtensionsStringARB (HDC hdc); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc); +#endif + +#ifndef WGL_ARB_pixel_format +#define WGL_ARB_pixel_format 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglGetPixelFormatAttribivARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues); +extern BOOL WINAPI wglGetPixelFormatAttribfvARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues); +extern BOOL WINAPI wglChoosePixelFormatARB (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues); +typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); +#endif + +#ifndef WGL_ARB_make_current_read +#define WGL_ARB_make_current_read 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglMakeContextCurrentARB (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); +extern HDC WINAPI wglGetCurrentReadDCARB (void); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); +typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void); +#endif + +#ifndef WGL_ARB_pbuffer +#define WGL_ARB_pbuffer 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern HPBUFFERARB WINAPI wglCreatePbufferARB (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); +extern HDC WINAPI wglGetPbufferDCARB (HPBUFFERARB hPbuffer); +extern int WINAPI wglReleasePbufferDCARB (HPBUFFERARB hPbuffer, HDC hDC); +extern BOOL WINAPI wglDestroyPbufferARB (HPBUFFERARB hPbuffer); +extern BOOL WINAPI wglQueryPbufferARB (HPBUFFERARB hPbuffer, int iAttribute, int *piValue); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); +typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer); +typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC); +typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer); +typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue); +#endif + +#ifndef WGL_ARB_render_texture +#define WGL_ARB_render_texture 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglBindTexImageARB (HPBUFFERARB hPbuffer, int iBuffer); +extern BOOL WINAPI wglReleaseTexImageARB (HPBUFFERARB hPbuffer, int iBuffer); +extern BOOL WINAPI wglSetPbufferAttribARB (HPBUFFERARB hPbuffer, const int *piAttribList); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); +typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); +typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int *piAttribList); +#endif + +#ifndef WGL_ARB_pixel_format_float +#define WGL_ARB_pixel_format_float 1 +#endif + +#ifndef WGL_ARB_framebuffer_sRGB +#define WGL_ARB_framebuffer_sRGB 1 +#endif + +#ifndef WGL_ARB_create_context +#define WGL_ARB_create_context 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern HGLRC WINAPI wglCreateContextAttribsARB (HDC hDC, HGLRC hShareContext, const int *attribList); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int *attribList); +#endif + +#ifndef WGL_ARB_create_context_profile +#define WGL_ARB_create_context_profile 1 +#endif + +#ifndef WGL_ARB_create_context_robustness +#define WGL_ARB_create_context_robustness 1 +#endif + +#ifndef WGL_EXT_display_color_table +#define WGL_EXT_display_color_table 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern GLboolean WINAPI wglCreateDisplayColorTableEXT (GLushort id); +extern GLboolean WINAPI wglLoadDisplayColorTableEXT (const GLushort *table, GLuint length); +extern GLboolean WINAPI wglBindDisplayColorTableEXT (GLushort id); +extern VOID WINAPI wglDestroyDisplayColorTableEXT (GLushort id); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id); +typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (const GLushort *table, GLuint length); +typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id); +typedef VOID (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id); +#endif + +#ifndef WGL_EXT_extensions_string +#define WGL_EXT_extensions_string 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern const char * WINAPI wglGetExtensionsStringEXT (void); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void); +#endif + +#ifndef WGL_EXT_make_current_read +#define WGL_EXT_make_current_read 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglMakeContextCurrentEXT (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); +extern HDC WINAPI wglGetCurrentReadDCEXT (void); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); +typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (void); +#endif + +#ifndef WGL_EXT_pbuffer +#define WGL_EXT_pbuffer 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern HPBUFFEREXT WINAPI wglCreatePbufferEXT (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); +extern HDC WINAPI wglGetPbufferDCEXT (HPBUFFEREXT hPbuffer); +extern int WINAPI wglReleasePbufferDCEXT (HPBUFFEREXT hPbuffer, HDC hDC); +extern BOOL WINAPI wglDestroyPbufferEXT (HPBUFFEREXT hPbuffer); +extern BOOL WINAPI wglQueryPbufferEXT (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); +typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer); +typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC); +typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer); +typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue); +#endif + +#ifndef WGL_EXT_pixel_format +#define WGL_EXT_pixel_format 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglGetPixelFormatAttribivEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues); +extern BOOL WINAPI wglGetPixelFormatAttribfvEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues); +extern BOOL WINAPI wglChoosePixelFormatEXT (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues); +typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); +#endif + +#ifndef WGL_EXT_swap_control +#define WGL_EXT_swap_control 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglSwapIntervalEXT (int interval); +extern int WINAPI wglGetSwapIntervalEXT (void); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval); +typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void); +#endif + +#ifndef WGL_EXT_depth_float +#define WGL_EXT_depth_float 1 +#endif + +#ifndef WGL_NV_vertex_array_range +#define WGL_NV_vertex_array_range 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern void* WINAPI wglAllocateMemoryNV (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); +extern void WINAPI wglFreeMemoryNV (void *pointer); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef void* (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); +typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer); +#endif + +#ifndef WGL_3DFX_multisample +#define WGL_3DFX_multisample 1 +#endif + +#ifndef WGL_EXT_multisample +#define WGL_EXT_multisample 1 +#endif + +#ifndef WGL_OML_sync_control +#define WGL_OML_sync_control 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglGetSyncValuesOML (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc); +extern BOOL WINAPI wglGetMscRateOML (HDC hdc, INT32 *numerator, INT32 *denominator); +extern INT64 WINAPI wglSwapBuffersMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); +extern INT64 WINAPI wglSwapLayerBuffersMscOML (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); +extern BOOL WINAPI wglWaitForMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc); +extern BOOL WINAPI wglWaitForSbcOML (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc); +typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32 *numerator, INT32 *denominator); +typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); +typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); +typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc); +typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc); +#endif + +#ifndef WGL_I3D_digital_video_control +#define WGL_I3D_digital_video_control 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglGetDigitalVideoParametersI3D (HDC hDC, int iAttribute, int *piValue); +extern BOOL WINAPI wglSetDigitalVideoParametersI3D (HDC hDC, int iAttribute, const int *piValue); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue); +typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue); +#endif + +#ifndef WGL_I3D_gamma +#define WGL_I3D_gamma 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglGetGammaTableParametersI3D (HDC hDC, int iAttribute, int *piValue); +extern BOOL WINAPI wglSetGammaTableParametersI3D (HDC hDC, int iAttribute, const int *piValue); +extern BOOL WINAPI wglGetGammaTableI3D (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue); +extern BOOL WINAPI wglSetGammaTableI3D (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue); +typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue); +typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue); +typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue); +#endif + +#ifndef WGL_I3D_genlock +#define WGL_I3D_genlock 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglEnableGenlockI3D (HDC hDC); +extern BOOL WINAPI wglDisableGenlockI3D (HDC hDC); +extern BOOL WINAPI wglIsEnabledGenlockI3D (HDC hDC, BOOL *pFlag); +extern BOOL WINAPI wglGenlockSourceI3D (HDC hDC, UINT uSource); +extern BOOL WINAPI wglGetGenlockSourceI3D (HDC hDC, UINT *uSource); +extern BOOL WINAPI wglGenlockSourceEdgeI3D (HDC hDC, UINT uEdge); +extern BOOL WINAPI wglGetGenlockSourceEdgeI3D (HDC hDC, UINT *uEdge); +extern BOOL WINAPI wglGenlockSampleRateI3D (HDC hDC, UINT uRate); +extern BOOL WINAPI wglGetGenlockSampleRateI3D (HDC hDC, UINT *uRate); +extern BOOL WINAPI wglGenlockSourceDelayI3D (HDC hDC, UINT uDelay); +extern BOOL WINAPI wglGetGenlockSourceDelayI3D (HDC hDC, UINT *uDelay); +extern BOOL WINAPI wglQueryGenlockMaxSourceDelayI3D (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC); +typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC); +typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL *pFlag); +typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource); +typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT *uSource); +typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge); +typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT *uEdge); +typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate); +typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT *uRate); +typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay); +typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT *uDelay); +typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay); +#endif + +#ifndef WGL_I3D_image_buffer +#define WGL_I3D_image_buffer 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern LPVOID WINAPI wglCreateImageBufferI3D (HDC hDC, DWORD dwSize, UINT uFlags); +extern BOOL WINAPI wglDestroyImageBufferI3D (HDC hDC, LPVOID pAddress); +extern BOOL WINAPI wglAssociateImageBufferEventsI3D (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count); +extern BOOL WINAPI wglReleaseImageBufferEventsI3D (HDC hDC, const LPVOID *pAddress, UINT count); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags); +typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress); +typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count); +typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const LPVOID *pAddress, UINT count); +#endif + +#ifndef WGL_I3D_swap_frame_lock +#define WGL_I3D_swap_frame_lock 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglEnableFrameLockI3D (void); +extern BOOL WINAPI wglDisableFrameLockI3D (void); +extern BOOL WINAPI wglIsEnabledFrameLockI3D (BOOL *pFlag); +extern BOOL WINAPI wglQueryFrameLockMasterI3D (BOOL *pFlag); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (void); +typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (void); +typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL *pFlag); +typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL *pFlag); +#endif + +#ifndef WGL_I3D_swap_frame_usage +#define WGL_I3D_swap_frame_usage 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglGetFrameUsageI3D (float *pUsage); +extern BOOL WINAPI wglBeginFrameTrackingI3D (void); +extern BOOL WINAPI wglEndFrameTrackingI3D (void); +extern BOOL WINAPI wglQueryFrameTrackingI3D (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float *pUsage); +typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void); +typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void); +typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); +#endif + +#ifndef WGL_ATI_pixel_format_float +#define WGL_ATI_pixel_format_float 1 +#endif + +#ifndef WGL_NV_float_buffer +#define WGL_NV_float_buffer 1 +#endif + +#ifndef WGL_3DL_stereo_control +#define WGL_3DL_stereo_control 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglSetStereoEmitterState3DL (HDC hDC, UINT uState); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState); +#endif + +#ifndef WGL_EXT_pixel_format_packed_float +#define WGL_EXT_pixel_format_packed_float 1 +#endif + +#ifndef WGL_EXT_framebuffer_sRGB +#define WGL_EXT_framebuffer_sRGB 1 +#endif + +#ifndef WGL_NV_present_video +#define WGL_NV_present_video 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern int WINAPI wglEnumerateVideoDevicesNV (HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList); +extern BOOL WINAPI wglBindVideoDeviceNV (HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList); +extern BOOL WINAPI wglQueryCurrentContextNV (int iAttribute, int *piValue); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList); +typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList); +typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int *piValue); +#endif + +#ifndef WGL_NV_video_output +#define WGL_NV_video_output 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglGetVideoDeviceNV (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice); +extern BOOL WINAPI wglReleaseVideoDeviceNV (HPVIDEODEV hVideoDevice); +extern BOOL WINAPI wglBindVideoImageNV (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); +extern BOOL WINAPI wglReleaseVideoImageNV (HPBUFFERARB hPbuffer, int iVideoBuffer); +extern BOOL WINAPI wglSendPbufferToVideoNV (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock); +extern BOOL WINAPI wglGetVideoInfoNV (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice); +typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice); +typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); +typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer); +typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock); +typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); +#endif + +#ifndef WGL_NV_swap_group +#define WGL_NV_swap_group 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglJoinSwapGroupNV (HDC hDC, GLuint group); +extern BOOL WINAPI wglBindSwapBarrierNV (GLuint group, GLuint barrier); +extern BOOL WINAPI wglQuerySwapGroupNV (HDC hDC, GLuint *group, GLuint *barrier); +extern BOOL WINAPI wglQueryMaxSwapGroupsNV (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers); +extern BOOL WINAPI wglQueryFrameCountNV (HDC hDC, GLuint *count); +extern BOOL WINAPI wglResetFrameCountNV (HDC hDC); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group); +typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier); +typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint *group, GLuint *barrier); +typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers); +typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint *count); +typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC); +#endif + +#ifndef WGL_NV_gpu_affinity +#define WGL_NV_gpu_affinity 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglEnumGpusNV (UINT iGpuIndex, HGPUNV *phGpu); +extern BOOL WINAPI wglEnumGpuDevicesNV (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice); +extern HDC WINAPI wglCreateAffinityDCNV (const HGPUNV *phGpuList); +extern BOOL WINAPI wglEnumGpusFromAffinityDCNV (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu); +extern BOOL WINAPI wglDeleteDCNV (HDC hdc); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu); +typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice); +typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList); +typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu); +typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc); +#endif + +#ifndef WGL_AMD_gpu_association +#define WGL_AMD_gpu_association 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern UINT WINAPI wglGetGPUIDsAMD (UINT maxCount, UINT *ids); +extern INT WINAPI wglGetGPUInfoAMD (UINT id, int property, GLenum dataType, UINT size, void *data); +extern UINT WINAPI wglGetContextGPUIDAMD (HGLRC hglrc); +extern HGLRC WINAPI wglCreateAssociatedContextAMD (UINT id); +extern HGLRC WINAPI wglCreateAssociatedContextAttribsAMD (UINT id, HGLRC hShareContext, const int *attribList); +extern BOOL WINAPI wglDeleteAssociatedContextAMD (HGLRC hglrc); +extern BOOL WINAPI wglMakeAssociatedContextCurrentAMD (HGLRC hglrc); +extern HGLRC WINAPI wglGetCurrentAssociatedContextAMD (void); +extern VOID WINAPI wglBlitContextFramebufferAMD (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT *ids); +typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, int property, GLenum dataType, UINT size, void *data); +typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc); +typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id); +typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int *attribList); +typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc); +typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc); +typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void); +typedef VOID (WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif + +#ifndef WGL_NV_video_capture +#define WGL_NV_video_capture 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglBindVideoCaptureDeviceNV (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice); +extern UINT WINAPI wglEnumerateVideoCaptureDevicesNV (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList); +extern BOOL WINAPI wglLockVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice); +extern BOOL WINAPI wglQueryVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue); +extern BOOL WINAPI wglReleaseVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice); +typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList); +typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); +typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue); +typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); +#endif + +#ifndef WGL_NV_copy_image +#define WGL_NV_copy_image 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglCopyImageSubDataNV (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); +#endif + +#ifndef WGL_NV_multisample_coverage +#define WGL_NV_multisample_coverage 1 +#endif + +#ifndef WGL_NV_DX_interop +#define WGL_NV_DX_interop 1 +#ifdef WGL_WGLEXT_PROTOTYPES +extern BOOL WINAPI wglDXSetResourceShareHandleNV (void *dxObject, HANDLE shareHandle); +extern HANDLE WINAPI wglDXOpenDeviceNV (void *dxDevice); +extern BOOL WINAPI wglDXCloseDeviceNV (HANDLE hDevice); +extern HANDLE WINAPI wglDXRegisterObjectNV (HANDLE hDevice, void *dxObject, GLuint name, GLenum type, GLenum access); +extern BOOL WINAPI wglDXUnregisterObjectNV (HANDLE hDevice, HANDLE hObject); +extern BOOL WINAPI wglDXObjectAccessNV (HANDLE hObject, GLenum access); +extern BOOL WINAPI wglDXLockObjectsNV (HANDLE hDevice, GLint count, HANDLE *hObjects); +extern BOOL WINAPI wglDXUnlockObjectsNV (HANDLE hDevice, GLint count, HANDLE *hObjects); +#endif /* WGL_WGLEXT_PROTOTYPES */ +typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void *dxObject, HANDLE shareHandle); +typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void *dxDevice); +typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice); +typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void *dxObject, GLuint name, GLenum type, GLenum access); +typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject); +typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access); +typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE *hObjects); +typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE *hObjects); +#endif + +#ifndef WGL_NV_DX_interop2 +#define WGL_NV_DX_interop2 1 +#endif + +#ifndef WGL_EXT_swap_control_tear +#define WGL_EXT_swap_control_tear 1 +#endif + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/tizen/src/hw/gl_func_perso.h b/tizen/src/hw/gl_func_perso.h index 7ee6278bf0..7ee6278bf0 100755..100644 --- a/tizen/src/hw/gl_func_perso.h +++ b/tizen/src/hw/gl_func_perso.h diff --git a/tizen/src/hw/gloffscreen.h b/tizen/src/hw/gloffscreen.h index e860c07a5c..e860c07a5c 100755..100644 --- a/tizen/src/hw/gloffscreen.h +++ b/tizen/src/hw/gloffscreen.h diff --git a/tizen/src/hw/gloffscreen_common.c b/tizen/src/hw/gloffscreen_common.c index c97b9c195c..c97b9c195c 100755..100644 --- a/tizen/src/hw/gloffscreen_common.c +++ b/tizen/src/hw/gloffscreen_common.c diff --git a/tizen/src/hw/gloffscreen_glx.c b/tizen/src/hw/gloffscreen_glx.c index e807c6ba9a..e807c6ba9a 100755..100644 --- a/tizen/src/hw/gloffscreen_glx.c +++ b/tizen/src/hw/gloffscreen_glx.c diff --git a/tizen/src/hw/gloffscreen_test.c b/tizen/src/hw/gloffscreen_test.c index a685125d25..1e9e9bc9a0 100755..100644 --- a/tizen/src/hw/gloffscreen_test.c +++ b/tizen/src/hw/gloffscreen_test.c @@ -87,12 +87,12 @@ int gl_acceleration_capability_check (void) { int bufferFlags = glo_flags_get_from_glx(bufferAttributes, 0); int bpp = glo_flags_get_bytes_per_pixel(bufferFlags); int glFormat, glType; - +/* if (glo_sanity_test () != 0) { // test failed. return 1; } - +*/ memset(datain_flip, 0, TX*TY*4); memset(datain, 0, TX*TY*4); p = datain; diff --git a/tizen/src/hw/gloffscreen_wgl.c b/tizen/src/hw/gloffscreen_wgl.c index ec86cebec7..68487b3302 100755..100644 --- a/tizen/src/hw/gloffscreen_wgl.c +++ b/tizen/src/hw/gloffscreen_wgl.c @@ -35,7 +35,7 @@ #include <wingdi.h> #include <GL/gl.h> #include <GL/glext.h> -#include <GL/wglext.h> +#include "GL/wglext.h" /* In Windows, you must create a window *before* you can create a pbuffer or * get a context. So we create a hidden Window on startup (see glo_init/GloMain). @@ -213,7 +213,7 @@ int glo_init(void) { glo_inited = 1; - return 0 + return 0; } /* Uninitialise gloffscreen */ @@ -639,7 +639,13 @@ void *glo_getprocaddress(const char *procName) { opengl_exec), so all we need to do is return a nunzero value... But we also have to check for 'standard' GL function names - too as wgl doesn't return those either! */ + too as wgl doesn't return those either! */ + /* Caller in opengl_exec.c may query some base GL API, then call them + * directly. On windows, wglGetProcAddress usually return NULL in such + * case, then we return 1, which casue segfault when accessing (void*)1. We + * should call base GL API directly instead of GET_EXT_PTR + ptr_func_*. + * TODO: add LoadLibrary + GetProcAddress as call back. + */ if (procAddr==0) { const char *p = STANDARD_GL_FUNCTIONS; while (*p) { diff --git a/tizen/src/hw/gloffscreen_xcomposite.c b/tizen/src/hw/gloffscreen_xcomposite.c index f111e9873c..f111e9873c 100755..100644 --- a/tizen/src/hw/gloffscreen_xcomposite.c +++ b/tizen/src/hw/gloffscreen_xcomposite.c diff --git a/tizen/src/hw/helper_opengl.c b/tizen/src/hw/helper_opengl.c index c5cd4fa313..fa0d810858 100755..100644 --- a/tizen/src/hw/helper_opengl.c +++ b/tizen/src/hw/helper_opengl.c @@ -108,8 +108,7 @@ static inline int do_decode_call_int(ProcessStruct *process, void *args_in, int if ((args[i] == 0 && args_size == 0 && !IS_NULL_POINTER_OK_FOR_FUNC(func_number)) || - (args[i] == 0 && args_size != 0) || - (args[i] != 0 && args_size == 0)) + (args[i] == 0 && args_size != 0)) return 0; argptr += 4; @@ -190,9 +189,24 @@ static inline int do_decode_call_int(ProcessStruct *process, void *args_in, int r_buffer[0] = 0; // In case high bits are set. ret = do_function_call(process, func_number, args, r_buffer); - + switch(signature->ret_type) { + case TYPE_INT: + case TYPE_UNSIGNED_INT: + memcpy(r_buffer, &ret, sizeof(int)); + break; + case TYPE_CHAR: + case TYPE_UNSIGNED_CHAR: + *r_buffer = ret & 0xff; + break; + case TYPE_CONST_CHAR: + case TYPE_NONE: + break; + default: + DEBUGF("Unsupported GL API return type %i!\n", signature->ret_type); + exit (-1); + } } // endwhile - +/* switch(signature->ret_type) { case TYPE_INT: case TYPE_UNSIGNED_INT: @@ -209,7 +223,7 @@ static inline int do_decode_call_int(ProcessStruct *process, void *args_in, int DEBUGF("Unsupported GL API return type %i!\n", signature->ret_type); exit (-1); } - +*/ return 1; } #define GL_PASSINGTHROUGH_ABI 1 diff --git a/tizen/src/hw/maru_board.c b/tizen/src/hw/maru_board.c index fc6e31b5fe..5e68fad00e 100644 --- a/tizen/src/hw/maru_board.c +++ b/tizen/src/hw/maru_board.c @@ -251,12 +251,14 @@ static void maru_x86_machine_init(MemoryRegion *system_memory, pc_pci_device_init(pci_bus); } -// maru specialized device init... +#ifndef CONFIG_DARWIN + // maru specialized device init... if (pci_enabled) { maru_camera_pci_init(pci_bus); //tizen_ac97_init(pci_bus); codec_init(pci_bus); } +#endif } static void maru_arm_machine_init(ram_addr_t ram_size, diff --git a/tizen/src/hw/maru_camera_win32_pci.c b/tizen/src/hw/maru_camera_win32_pci.c index acd1ee73b3..d32d3f8116 100644 --- a/tizen/src/hw/maru_camera_win32_pci.c +++ b/tizen/src/hw/maru_camera_win32_pci.c @@ -1343,6 +1343,10 @@ static STDMETHODIMP SetDefaultValues(void) DeleteMediaType(pmtConfig);
}
}
+ if (iFormat >= iCount) {
+ ERR("Maybe connected webcam does not support %ld x %ld resolution.\n", g_dwWidth, g_dwHeight);
+ hr = E_FAIL;
+ }
}
pSConfig->lpVtbl->Release(pSConfig);
return hr;
@@ -1375,6 +1379,9 @@ static STDMETHODIMP SetResolution(LONG width, LONG height) pvi->AvgTimePerFrame = g_dwAvgInterval;
pvi->bmiHeader.biSizeImage = ((width * pvi->bmiHeader.biBitCount) >> 3 ) * height;
hr = vsc->lpVtbl->SetFormat(vsc, pmt);
+ if (hr != S_OK) {
+ ERR("failed to set the resolution.(w:%ld, h:%ld), Maybe connected webcam does not support the resolution.\n", width, height);
+ }
}
DeleteMediaType(pmt);
}
@@ -1448,6 +1455,14 @@ void marucam_device_open(MaruCamState* state) MaruCamParam *param = state->param;
param->top = 0;
+ hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
+ if (FAILED(hr)) {
+ ERR("CoInitailizeEx\n");
+ ERR("camera device open failed!!!, [HRESULT : 0x%x]\n", hr);
+ param->errCode = EINVAL;
+ return;
+ }
+
hr = GraphBuilder_Init();
if (FAILED(hr)) {
ERR("GraphBuilder_Init\n");
@@ -1481,12 +1496,15 @@ void marucam_device_open(MaruCamState* state) ERR("SetDefaultValues\n");
goto error_failed;
}
+ cur_frame_idx = 0;
+ cur_fmt_idx = 0;
INFO("Open successfully!!!\n");
return;
error_failed:
CloseInterfaces();
+ CoUninitialize();
param->errCode = EINVAL;
ERR("camera device open failed!!!, [HRESULT : 0x%x]\n", hr);
}
@@ -1498,6 +1516,7 @@ void marucam_device_close(MaruCamState* state) param->top = 0;
CloseInterfaces();
+ CoUninitialize();
INFO("Close successfully!!!\n");
}
diff --git a/tizen/src/hw/maru_codec.c b/tizen/src/hw/maru_codec.c index a6bcaa680d..42e6e46b6d 100644 --- a/tizen/src/hw/maru_codec.c +++ b/tizen/src/hw/maru_codec.c @@ -29,6 +29,7 @@ */ #include "maru_codec.h" +#include "qemu-common.h" #define MARU_CODEC_DEV_NAME "codec" #define MARU_CODEC_VERSION "1.1" @@ -48,7 +49,114 @@ MULTI_DEBUG_CHANNEL(qemu, marucodec); static int paramCount = 0; static int ctxArrIndex = 0; -// static uint8_t *gTempBuffer = NULL; + +#define CODEC_COPY_DATA + +static int qemu_serialize_rational(const AVRational* elem, uint8_t* buff) +{ + int size = 0; + + memcpy(buff + size, &elem->num, sizeof(elem->num)); + size += sizeof(elem->num); + memcpy(buff + size, &elem->den, sizeof(elem->den)); + size += sizeof(elem->den); + + return size; +} + +static int qemu_deserialize_rational(const uint8_t* buff, AVRational* elem) +{ + int size = 0; + +// memset(elem, 0, sizeof(*elem)); + + memcpy(&elem->num, buff + size, sizeof(elem->num)); + size += sizeof(elem->num); + memcpy(&elem->den, buff + size, sizeof(elem->den)); + size += sizeof(elem->den); + + return size; +} + +static int qemu_serialize_frame (const AVFrame* elem, uint8_t* buff) +{ + int size = 0; + + memcpy(buff + size, &elem->key_frame, sizeof(elem->key_frame)); + size += sizeof(elem->key_frame); + memcpy(buff + size, &elem->pict_type, sizeof(elem->pict_type)); + size += sizeof(elem->pict_type); + memcpy(buff + size, &elem->pts, sizeof(elem->pts)); + size += sizeof(elem->pts); + memcpy(buff + size, &elem->coded_picture_number, sizeof(elem->coded_picture_number)); + size += sizeof(elem->coded_picture_number); + memcpy(buff + size, &elem->display_picture_number, sizeof(elem->display_picture_number)); + size += sizeof(elem->display_picture_number); + memcpy(buff + size, &elem->quality, sizeof(elem->quality)); + size += sizeof(elem->quality); + memcpy(buff + size, &elem->age, sizeof(elem->age)); + size += sizeof(elem->age); + memcpy(buff + size, &elem->reference, sizeof(elem->reference)); + size += sizeof(elem->reference); + memcpy(buff + size, &elem->reordered_opaque, sizeof(elem->reordered_opaque)); + size += sizeof(elem->reordered_opaque); + memcpy(buff + size, &elem->repeat_pict, sizeof(elem->repeat_pict)); + size += sizeof(elem->repeat_pict); + memcpy(buff + size, &elem->interlaced_frame, sizeof(elem->interlaced_frame)); + size += sizeof(elem->interlaced_frame); + + return size; +} + +static int qemu_deserialize_frame (const uint8_t* buff, AVFrame* elem) +{ + int size = 0; + +// memset(elem, 0, sizeof(*elem)); + + memcpy(&elem->linesize, buff + size, sizeof(elem->linesize)); + size += sizeof(elem->linesize); + memcpy(&elem->key_frame, buff + size, sizeof(elem->key_frame)); + size += sizeof(elem->key_frame); + memcpy(&elem->pict_type, buff + size, sizeof(elem->pict_type)); + size += sizeof(elem->pict_type); + memcpy(&elem->pts, buff + size, sizeof(elem->pts)); + size += sizeof(elem->pts); + memcpy(&elem->coded_picture_number, buff + size, sizeof(elem->coded_picture_number)); + size += sizeof(elem->coded_picture_number); + memcpy(&elem->display_picture_number, buff + size, sizeof(elem->display_picture_number)); + size += sizeof(elem->display_picture_number); + memcpy(&elem->quality, buff + size, sizeof(elem->quality)); + size += sizeof(elem->quality); + memcpy(&elem->age, buff + size, sizeof(elem->age)); + size += sizeof(elem->age); + memcpy(&elem->reference, buff + size, sizeof(elem->reference)); + size += sizeof(elem->reference); + memcpy(&elem->qstride, buff + size, sizeof(elem->qstride)); + size += sizeof(elem->qstride); + memcpy(&elem->motion_subsample_log2, buff + size, sizeof(elem->motion_subsample_log2)); + size += sizeof(elem->motion_subsample_log2); + memcpy(&elem->error, buff + size, sizeof(elem->error)); + size += sizeof(elem->error); + memcpy(&elem->type, buff + size, sizeof(elem->type)); + size += sizeof(elem->type); + memcpy(&elem->repeat_pict, buff + size, sizeof(elem->repeat_pict)); + size += sizeof(elem->repeat_pict); + memcpy(&elem->qscale_type, buff + size, sizeof(elem->qscale_type)); + size += sizeof(elem->qscale_type); + memcpy(&elem->interlaced_frame, buff + size, sizeof(elem->interlaced_frame)); + size += sizeof(elem->interlaced_frame); + memcpy(&elem->top_field_first, buff + size, sizeof(elem->top_field_first)); + size += sizeof(elem->top_field_first); + memcpy(&elem->palette_has_changed, buff + size, sizeof(elem->palette_has_changed)); + size += sizeof(elem->palette_has_changed); + memcpy(&elem->buffer_hints, buff + size, sizeof(elem->buffer_hints)); + size += sizeof(elem->buffer_hints); + memcpy(&elem->reordered_opaque, buff + size, sizeof(elem->reordered_opaque)); + size += sizeof(elem->reordered_opaque); + + return size; +} void qemu_parser_init (SVCodecState *s, int ctxIndex) { @@ -125,9 +233,9 @@ void qemu_get_codec_ver (SVCodecState *s, int ctxIndex) offset = s->codecParam.mmapOffset; - memset(codec_ver, 0x00, 32); - strncpy(codec_ver, MARU_CODEC_VERSION, strlen(MARU_CODEC_VERSION)); - printf("codec_version:%s\n", codec_ver); + memset(codec_ver, 0, 32); + pstrcpy(codec_ver, sizeof(codec_ver), MARU_CODEC_VERSION); + TRACE("%d of codec_version:%s\n", ctxIndex, codec_ver); memcpy((uint8_t*)s->vaddr + offset, codec_ver, 32); } @@ -160,67 +268,6 @@ void qemu_avcodec_release_buffer (AVCodecContext *context, AVFrame *picture) } /* int avcodec_open (AVCodecContext *avctx, AVCodec *codec) */ -#ifdef CODEC_HOST -int qemu_avcodec_open (SVCodecState *s, int ctxIndex) -{ - AVCodecContext *avctx; - AVCodecContext tmpCtx; - AVCodec *codec; - AVCodec tmpCodec; - enum CodecID codec_id; - int ret; - - avctx = s->ctxArr[ctxIndex].pAVCtx; - if (!avctx) { - ERR("[%s][%d] AVCodecContext is NULL!!\n", __func__, __LINE__); - return -1; - } - avctx = gAVCtx; - - size = sizeof(AVCodecContext); - memcpy(&tmpCtx, avctx, size); - - cpu_synchronize_state(cpu_single_env); - - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[0], - (uint8_t*)avctx, sizeof(AVCodecContext), 0); - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[1], - (uint8_t*)&tmpCodec, sizeof(AVCodec), 0); - - /* restore AVCodecContext's pointer variables */ - qemu_restore_context(avctx, &tmpCtx); - codec_id = tmpCodec.id; - - if (avctx->extradata_size > 0) { - avctx->extradata = (uint8_t*)av_malloc(avctx->extradata_size); - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[2], - (uint8_t*)avctx->extradata, avctx->extradata_size, 0); - } else { - avctx->extradata = NULL; - } - - TRACE("[%s][%d] CODEC ID : %x\n", __func__, __LINE__, codec_id); - if (tmpCodec.encode) { - codec = avcodec_find_encoder(codec_id); - } else { - codec = avcodec_find_decoder(codec_id); - } - - avctx->get_buffer = qemu_avcodec_get_buffer; - avctx->release_buffer = qemu_avcodec_release_buffer; - - ret = avcodec_open(avctx, codec); - if (ret != 0) { - perror("Failed to open codec\n"); - return ret; - } - - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[0], - (uint8_t*)avctx, sizeof(AVCodecContext), 1); - - return ret; -} -#else int qemu_avcodec_open (SVCodecState *s, int ctxIndex) { AVCodecContext *avctx; @@ -230,7 +277,7 @@ int qemu_avcodec_open (SVCodecState *s, int ctxIndex) AVCodec *codec; enum CodecID codec_id; off_t offset; - int ret; + int ret = -1; int bEncode = 0; int size = 0; @@ -238,8 +285,9 @@ int qemu_avcodec_open (SVCodecState *s, int ctxIndex) avctx = s->ctxArr[ctxIndex].pAVCtx; if (!avctx) { - ERR("[%s][%d] AVCodecContext is NULL!!\n", __func__, __LINE__); - return -1; + ERR("[%s] %d of AVCodecContext is NULL!\n", __func__, ctxIndex); + pthread_mutex_unlock(&s->codec_mutex); + return ret; } offset = s->codecParam.mmapOffset; @@ -262,8 +310,7 @@ int qemu_avcodec_open (SVCodecState *s, int ctxIndex) size += sizeof(int); memcpy(&avctx->flags, (uint8_t*)s->vaddr + offset + size, sizeof(int)); size += sizeof(int); - memcpy(&avctx->time_base, (uint8_t*)s->vaddr + offset + size, sizeof(AVRational)); - size += sizeof(AVRational); + size += qemu_deserialize_rational((uint8_t*)s->vaddr + offset + size, &avctx->time_base); memcpy(&avctx->width, (uint8_t*)s->vaddr + offset + size, sizeof(int)); size += sizeof(int); memcpy(&avctx->height, (uint8_t*)s->vaddr + offset + size, sizeof(int)); @@ -286,8 +333,7 @@ int qemu_avcodec_open (SVCodecState *s, int ctxIndex) size += sizeof(int); memcpy(&avctx->rc_qsquish, (uint8_t*)s->vaddr + offset + size, sizeof(float)); size += sizeof(float); - memcpy(&avctx->sample_aspect_ratio, (uint8_t*)s->vaddr + offset + size, sizeof(AVRational)); - size += sizeof(AVRational); + size += qemu_deserialize_rational((uint8_t*)s->vaddr + offset + size, &avctx->sample_aspect_ratio); memcpy(&avctx->qmin, (uint8_t*)s->vaddr + offset + size, sizeof(int)); size += sizeof(int); memcpy(&avctx->qmax, (uint8_t*)s->vaddr + offset + size, sizeof(int)); @@ -322,7 +368,7 @@ int qemu_avcodec_open (SVCodecState *s, int ctxIndex) } if (!codec) { - ERR("failed to find codec of %d\n", codec_id); + ERR("[%s] failed to find codec of %d\n", __func__, codec_id); } avctx->get_buffer = qemu_avcodec_get_buffer; @@ -330,7 +376,7 @@ int qemu_avcodec_open (SVCodecState *s, int ctxIndex) ret = avcodec_open(avctx, codec); if (ret != 0) { - ERR("[%s] Failure avcodec_open, %d\n", __func__, ret); + ERR("[%s] avcodec_open failure, %d\n", __func__, ret); } if (avctx->codec_type == AVMEDIA_TYPE_AUDIO) { @@ -344,8 +390,7 @@ int qemu_avcodec_open (SVCodecState *s, int ctxIndex) #else memcpy((uint8_t*)s->vaddr + offset, &avctx->pix_fmt, sizeof(int)); size = sizeof(int); - memcpy((uint8_t*)s->vaddr + offset + size, &avctx->time_base, sizeof(AVRational)); - size += sizeof(AVRational); + size += qemu_serialize_rational(&avctx->time_base, (uint8_t*)s->vaddr + offset + size); memcpy((uint8_t*)s->vaddr + offset + size, &avctx->channels, sizeof(int)); size += sizeof(int); memcpy((uint8_t*)s->vaddr + offset + size, &avctx->sample_fmt, sizeof(int)); @@ -372,7 +417,6 @@ int qemu_avcodec_open (SVCodecState *s, int ctxIndex) pthread_mutex_unlock(&s->codec_mutex); return ret; } -#endif /* int avcodec_close (AVCodecContext *avctx) */ int qemu_avcodec_close (SVCodecState* s, int ctxIndex) @@ -388,8 +432,9 @@ int qemu_avcodec_close (SVCodecState* s, int ctxIndex) avctx = s->ctxArr[ctxIndex].pAVCtx; if (!avctx) { - ERR("[%s][%d] AVCodecContext is NULL\n", __func__, __LINE__); + ERR("[%s] %d of AVCodecContext is NULL\n", __func__, ctxIndex); memcpy((uint8_t*)s->vaddr + offset, &ret, sizeof(int)); + pthread_mutex_unlock(&s->codec_mutex); return ret; } @@ -403,9 +448,7 @@ int qemu_avcodec_close (SVCodecState* s, int ctxIndex) ret = avcodec_close(avctx); TRACE("after avcodec_close. ret:%d\n", ret); -#ifndef CODEC_HOST memcpy((uint8_t*)s->vaddr + offset, &ret, sizeof(int)); -#endif pthread_mutex_unlock(&s->codec_mutex); TRACE("[%s] Leave\n", __func__); @@ -538,7 +581,7 @@ void qemu_avcodec_flush_buffers (SVCodecState* s, int ctxIndex) if (avctx) { avcodec_flush_buffers(avctx); } else { - ERR("[%s][%d] AVCodecContext is NULL\n", __func__, __LINE__); + ERR("[%s] %d of AVCodecContext is NULL\n", __func__, ctxIndex); } pthread_mutex_unlock(&s->codec_mutex); @@ -549,71 +592,6 @@ void qemu_avcodec_flush_buffers (SVCodecState* s, int ctxIndex) * int *got_picture_ptr, const uint8_t *buf, * int buf_size) */ -#ifdef CODEC_HOST -int qemu_avcodec_decode_video (SVCodecState* s, int ctxIndex) -{ - AVCodecContext *avctx; - AVFrame *picture; - int got_picture_ptr; - const uint8_t *buf; - uint8_t *pParserBuffer; - bool bParser; - int buf_size; - int ret; - - avctx = s->ctxArr[ctxIndex].pAVCtx; - picture = s->ctxArr[ctxIndex].pFrame; - if (!avctx || !picture) { - ERR("AVCodecContext or AVFrame is NULL!\n") - ERR("avctx:%p, picture:%p\n", avctx, picture); - return -1; - } - - pParserBuffer = s->ctxArr[ctxIndex].pParserBuffer; - bParser = s->ctxArr[ctxIndex].bParser; - TRACE("Parser Buffer : %p, Parser:%d\n", pParserBuffer, bParser); - - cpu_synchronize_state(cpu_single_env); - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[4], - (uint8_t*)&buf_size, sizeof(int), 0); - - if (pParserBuffer && bParser) { - buf = pParserBuffer; - } else if (buf_size > 0) { - TRACE("not use parser, codec_id:%d\n", avctx->codec_id); - buf = (uint8_t*)av_malloc(buf_size * sizeof(uint8_t)); - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[3], - (uint8_t*)buf, buf_size, 0); - } else { - TRACE("There is no input buffer\n"); - } - - avpkt.data = buf; - avpkt.size = buf_size; - - TRACE("before avcodec_decode_video\n"); - ret = avcodec_decode_video2(avctx, picture, &got_picture_ptr, &avpkt); - - TRACE("after avcodec_decode_video, ret:%d\n", ret); - if (got_picture_ptr == 0) { - TRACE("There is no frame\n"); - } - - if (!pParserBuffer && !bParser) { - TRACE("Free input buffer after decoding video\n"); - av_free(buf); - } - - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[0], - (uint8_t*)avctx, sizeof(AVCodecContext), 1); - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[1], - (uint8_t*)picture, sizeof(AVFrame), 1); - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[2], - (uint8_t*)&got_picture_ptr, sizeof(int), 1); - - return ret; -} -#else int qemu_avcodec_decode_video (SVCodecState* s, int ctxIndex) { AVCodecContext *avctx; @@ -628,7 +606,7 @@ int qemu_avcodec_decode_video (SVCodecState* s, int ctxIndex) bool bParser; int buf_size; int size = 0; - int ret; + int ret = -1; off_t offset; pthread_mutex_lock(&s->codec_mutex); @@ -638,8 +616,9 @@ int qemu_avcodec_decode_video (SVCodecState* s, int ctxIndex) avctx = s->ctxArr[ctxIndex].pAVCtx; picture = s->ctxArr[ctxIndex].pFrame; if (!avctx || !picture) { - ERR("[%s] AVCodecContext or AVFrame is NULL!\n", __func__); - return -1; + ERR("[%s] %d of AVCodecContext or AVFrame is NULL!\n", __func__, ctxIndex); + pthread_mutex_unlock(&s->codec_mutex); + return ret; } offset = s->codecParam.mmapOffset; @@ -677,10 +656,10 @@ int qemu_avcodec_decode_video (SVCodecState* s, int ctxIndex) buf = NULL; } - memset(&avpkt, 0x00, sizeof(AVPacket)); + memset(&avpkt, 0, sizeof(AVPacket)); avpkt.data = buf; avpkt.size = buf_size; - + TRACE("[%s] before avcodec_decode_video\n", __func__); ret = avcodec_decode_video2(avctx, picture, &got_picture_ptr, &avpkt); TRACE("[%s] after avcodec_decode_video, ret:%d\n", __func__, ret); @@ -717,30 +696,8 @@ int qemu_avcodec_decode_video (SVCodecState* s, int ctxIndex) memcpy((uint8_t*)s->vaddr + offset + size, &avctx->level, sizeof(int)); size += sizeof(int); #endif -// memcpy((uint8_t*)s->vaddr + offset + size, picture, sizeof(AVFrame)); -// size += sizeof(AVFrame); - memcpy((uint8_t*)s->vaddr + offset + size, &picture->key_frame, sizeof(int)); - size += sizeof(int); - memcpy((uint8_t*)s->vaddr + offset + size, &picture->pict_type, sizeof(int)); - size += sizeof(int); - memcpy((uint8_t*)s->vaddr + offset + size, &picture->pts, sizeof(int64_t)); - size += sizeof(int64_t); - memcpy((uint8_t*)s->vaddr + offset + size, &picture->coded_picture_number, sizeof(int)); - size += sizeof(int); - memcpy((uint8_t*)s->vaddr + offset + size, &picture->display_picture_number, sizeof(int)); - size += sizeof(int); - memcpy((uint8_t*)s->vaddr + offset + size, &picture->quality, sizeof(int)); - size += sizeof(int); - memcpy((uint8_t*)s->vaddr + offset + size, &picture->age, sizeof(int)); - size += sizeof(int); - memcpy((uint8_t*)s->vaddr + offset + size, &picture->reference, sizeof(int)); - size += sizeof(int); - memcpy((uint8_t*)s->vaddr + offset + size, &picture->reordered_opaque, sizeof(int64_t)); - size += sizeof(int64_t); - memcpy((uint8_t*)s->vaddr + offset + size, &picture->repeat_pict, sizeof(int)); - size += sizeof(int); - memcpy((uint8_t*)s->vaddr + offset + size, &picture->interlaced_frame, sizeof(int)); - size += sizeof(int); + size += qemu_serialize_frame(picture, (uint8_t*)s->vaddr + offset + size); + memcpy((uint8_t*)s->vaddr + offset + size, &got_picture_ptr, sizeof(int)); size += sizeof(int); memcpy((uint8_t*)s->vaddr + offset + size, &ret, sizeof(int)); @@ -759,67 +716,10 @@ int qemu_avcodec_decode_video (SVCodecState* s, int ctxIndex) pthread_mutex_unlock(&s->codec_mutex); return ret; } -#endif /* int avcodec_encode_video (AVCodecContext *avctx, uint8_t *buf, * int buf_size, const AVFrame *pict) */ -#ifdef CODEC_HOST -int qemu_avcodec_encode_video (SVCodecState* s, int ctxIndex) -{ - AVCodecContext *avctx; - uint8_t *outBuf, *inBuf; - int outBufSize, inBufSize; - AVFrame *pict; - int ret; - - avctx = s->ctxArr[ctxIndex].pAVCtx; - pict = s->ctxArr[ctxIndex].pFrame; - if (!avctx || !pict) { - ERR("AVCodecContext or AVFrame is NULL\n"); - return -1; - } - - cpu_synchronize_state(cpu_single_env); - - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[2], - (uint8_t*)&outBufSize, sizeof(int), 0); - - if (outBufSize > 0) { - outBuf = (uint8_t*)av_malloc(outBufSize * sizeof(uint8_t)); - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[1], - (uint8_t*)outBuf, outBufSize, 0); - } else { - ERR("input buffer size is 0\n"); - return -1; - } - - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[3], - (uint8_t*)pict, sizeof(AVFrame), 0); - inBufSize = avpicture_get_size(avctx->pix_fmt, avctx->width, avctx->height); - inBuf = (uint8_t*)av_malloc(inBufSize * sizeof(uint8_t)); - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[4], - (uint8_t*)inBuf, inBufSize, 0); - - ret = avpicture_fill((AVPicture*)pict, inBuf, avctx->pix_fmt, - avctx->width, avctx->height); - if (ret < 0) { - ERR("after avpicture_fill, ret:%d\n", ret); - } - - ret = avcodec_encode_video (avctx, outBuf, outBufSize, pict); - TRACE("after avcodec_encode_video, ret:%d\n", ret); - - if (ret > 0) { - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[5], - (uint8_t*)avctx->coded_frame, sizeof(AVFrame), 1); - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[6], - (uint8_t*)outBuf, outBufSize, 1); - } - av_free(inBuf); - return ret; -} -#else int qemu_avcodec_encode_video (SVCodecState* s, int ctxIndex) { AVCodecContext *avctx = NULL; @@ -837,44 +737,42 @@ int qemu_avcodec_encode_video (SVCodecState* s, int ctxIndex) avctx = s->ctxArr[ctxIndex].pAVCtx; pict = s->ctxArr[ctxIndex].pFrame; if (!avctx || !pict) { - ERR("AVCodecContext or AVFrame is NULL\n"); - return -1; + ERR("[%s] %d of AVCodecContext or AVFrame is NULL\n", __func__, ctxIndex); + pthread_mutex_unlock(&s->codec_mutex); + return ret; } offset = s->codecParam.mmapOffset; size = sizeof(int); memcpy(&bPict, (uint8_t*)s->vaddr + offset, size); - TRACE("avframe is :%d\n", bPict); + TRACE("[%s] avframe is :%d\n", __func__, bPict); if (bPict == 0) { memcpy(&outputBufSize, (uint8_t*)s->vaddr + offset + size, size); size += sizeof(int); - memcpy(pict, (uint8_t*)s->vaddr + offset + size, sizeof(AVFrame)); - size += sizeof(AVFrame); + size += qemu_deserialize_frame((uint8_t*)s->vaddr + offset + size, pict); + numBytes = avpicture_get_size(avctx->pix_fmt, avctx->width, avctx->height); - TRACE("input buffer size :%d\n", numBytes); + TRACE("[%s] input buffer size :%d\n", __func__, numBytes); inputBuf = (uint8_t*)s->vaddr + offset + size; if (!inputBuf) { - ERR("failed to get input buffer\n"); - return -1; + ERR("[%s] failed to get input buffer\n", __func__); + return ret; } - #if 0 outBuf = av_malloc(outputBufSize); if (!outBuf) { ERR("failed to allocate output buffer as many as :%d\n", outputBufSize); } #endif - ret = avpicture_fill((AVPicture*)pict, inputBuf, avctx->pix_fmt, avctx->width, avctx->height); if (ret < 0) { ERR("after avpicture_fill, ret:%d\n", ret); } - - TRACE("before encode video, ticks_per_frame:%d, pts:%d\n", + TRACE("before encode video, ticks_per_frame:%d, pts:%lld\n", avctx->ticks_per_frame, pict->pts); } else { TRACE("flush encoded buffers\n"); @@ -884,10 +782,10 @@ int qemu_avcodec_encode_video (SVCodecState* s, int ctxIndex) TRACE("before encoding video\n"); ret = avcodec_encode_video (avctx, (uint8_t*)s->vaddr + offset, outputBufSize, pict); // ret = avcodec_encode_video (avctx, outBuf, outputBufSize, pict); - TRACE("after encoding video, ret:%d\n"); + TRACE("after encoding video, ret:%d, pts:%lld\n", ret, pict->pts); if (ret < 0) { - ERR("[%s] failed to encode video, ret:%d\n", __func__, ret); + ERR("[%d] failed to encode video, ret:%d\n", __LINE__, ret); } // memcpy((uint8_t*)s->vaddr + offset, outBuf, sizeof(int)); @@ -897,7 +795,6 @@ int qemu_avcodec_encode_video (SVCodecState* s, int ctxIndex) pthread_mutex_unlock(&s->codec_mutex); return ret; } -#endif /* * int avcodec_decode_audio3 (AVCodecContext *avctx, int16_t *samples, @@ -914,7 +811,7 @@ int qemu_avcodec_decode_audio (SVCodecState *s, int ctxIndex) bool bParser; int buf_size, outbuf_size; int size; - int ret; + int ret = -1; off_t offset; TRACE("Audio Context Index : %d\n", ctxIndex); @@ -922,10 +819,17 @@ int qemu_avcodec_decode_audio (SVCodecState *s, int ctxIndex) avctx = s->ctxArr[ctxIndex].pAVCtx; if (!avctx) { - ERR("[%s][%d] AVCodecContext is NULL!\n", __func__, __LINE__); - return -1; + ERR("[%s] %d of AVCodecContext is NULL!\n", __func__, ctxIndex); + pthread_mutex_unlock(&s->codec_mutex); + return ret; } + if (!avctx->codec) { + ERR("[%s] %d of AVCodec is NULL\n", __func__, ctxIndex); + pthread_mutex_unlock(&s->codec_mutex); + return ret; + } + offset = s->codecParam.mmapOffset; pParserBuffer = s->ctxArr[ctxIndex].pParserBuffer; @@ -978,7 +882,10 @@ int qemu_avcodec_decode_audio (SVCodecState *s, int ctxIndex) memcpy((uint8_t*)s->vaddr + offset + size, &ret, sizeof(int)); TRACE("before free input buffer and output buffer!\n"); - av_free(samples); + if (samples) { + av_free(samples); + samples = NULL; + } if (pParserBuffer && bParser) { TRACE("[%s] free parser buf\n", __func__); @@ -1002,40 +909,6 @@ int qemu_avcodec_encode_audio (SVCodecState *s, int ctxIndex) /* void av_picture_copy (AVPicture *dst, const AVPicture *src, * enum PixelFormat pix_fmt, int width, int height) */ -#ifdef CODEC_HOST -void qemu_av_picture_copy (SVCodecState* s, int ctxIndex) -{ - AVCodecContext* avctx; - AVPicture dst; - AVPicture *src; - int numBytes; - uint8_t *buffer = NULL; - int ret; - - avctx = s->ctxArr[ctxIndex].pAVCtx; - src = (AVPicture*)s->ctxArr[ctxIndex].pFrame; - if (!avctx && !src) { - ERR("AVCodecContext or AVFrame is NULL\n"); - return; - } - - numBytes = avpicture_get_size(avctx->pix_fmt, avctx->width, avctx->height); - buffer = (uint8_t*)av_malloc(numBytes * sizeof(uint8_t)); - avpicture_fill(&dst, buffer, avctx->pix_fmt, avctx->width, avctx->height); - av_picture_copy(&dst, src, avctx->pix_fmt, avctx->width, avctx->height); - - cpu_synchronize_state(cpu_single_env); - ret = cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[5], - (uint8_t*)dst.data[0], numBytes, 1); - if (ret < 0) { - TRACE("failed to copy decoded frame into guest!! ret:%d\n", ret); - } - - av_free(buffer); - - TRACE("Leave :%s\n", __func__); -} -#else void qemu_av_picture_copy (SVCodecState* s, int ctxIndex) { AVCodecContext* avctx; @@ -1051,8 +924,9 @@ void qemu_av_picture_copy (SVCodecState* s, int ctxIndex) avctx = s->ctxArr[ctxIndex].pAVCtx; src = (AVPicture*)s->ctxArr[ctxIndex].pFrame; - if (!avctx && !src) { - ERR("AVCodecContext or AVFrame is NULL\n"); + if (!avctx && !src) { + ERR("[%s] %d of AVCodecContext or AVFrame is NULL\n", __func__, ctxIndex); + pthread_mutex_unlock(&s->codec_mutex); return; } @@ -1084,7 +958,6 @@ void qemu_av_picture_copy (SVCodecState* s, int ctxIndex) pthread_mutex_unlock(&s->codec_mutex); TRACE("Leave :%s\n", __func__); } -#endif /* AVCodecParserContext *av_parser_init (int codec_id) */ void qemu_av_parser_init (SVCodecState* s, int ctxIndex) @@ -1097,7 +970,8 @@ void qemu_av_parser_init (SVCodecState* s, int ctxIndex) avctx = s->ctxArr[ctxIndex].pAVCtx; if (!avctx) { - ERR("[%s][%d] AVCodecContext is NULL!!\n", __func__, __LINE__); + ERR("[%s] %d of AVCodecContext is NULL!!\n", __func__, ctxIndex); + pthread_mutex_unlock(&s->codec_mutex); return; } @@ -1107,7 +981,7 @@ void qemu_av_parser_init (SVCodecState* s, int ctxIndex) TRACE("[%s] Using parser %p\n", __func__, parserctx); s->ctxArr[ctxIndex].bParser = true; } else { - INFO("[%s] No parser for codec\n", __func__); + TRACE("[%s] No parser for codec\n", __func__); s->ctxArr[ctxIndex].bParser = false; } s->ctxArr[ctxIndex].pParserCtx = parserctx; @@ -1121,68 +995,6 @@ void qemu_av_parser_init (SVCodecState* s, int ctxIndex) * const uint8_t *buf, int buf_size, * int64_t pts, int64_t dts) */ -#ifdef CODEC_HOST -int qemu_av_parser_parse (SVCodecState* s, int ctxIndex) -{ - AVCodecParserContext *parserctx = NULL; - AVCodecContext *avctx = NULL; - AVCodecContext tmp_ctx; - uint8_t *poutbuf = NULL; - int poutbuf_size; - uint8_t *inbuf = NULL; - int inbuf_size; - int64_t pts; - int64_t dts; - int ret; - - parserctx = s->ctxArr[ctxIndex].pParserCtx; - avctx = s->ctxArr[ctxIndex].pAVCtx; - if (!parserctx && !avctx) { - ERR("[%s][%d] AVCodecParserContext or AVCodecContext is NULL\n", __func__, __LINE__); - } - - memcpy(&tmp_ctx, avctx, sizeof(AVCodecContext)); - - cpu_synchronize_state(cpu_single_env); - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[1], - (uint8_t*)avctx, sizeof(AVCodecContext), 0); - qemu_restore_context(avctx, &tmp_ctx); - - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[5], - (uint8_t*)&inbuf_size, sizeof(int), 0); - if (inbuf_size > 0) { - inbuf = av_malloc(sizeof(uint8_t) * inbuf_size); - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[4], - (uint8_t*)inbuf, inbuf_size, 0); - } - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[6], - (uint8_t*)&pts, sizeof(int64_t), 0); - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[7], - (uint8_t*)&dts, sizeof(int64_t), 0); - - ret = av_parser_parse2(parserctx, avctx, &poutbuf, &poutbuf_size, - inbuf, inbuf_size, pts, dts, AV_NOPTS_VALUE); - s->ctxArr[ctxIndex].pParserBuffer = poutbuf; - if (inbuf_size > 0 && inbuf) { - av_free(inbuf); - inbuf = NULL; - } - - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[0], - (uint8_t*)parserctx, sizeof(AVCodecParserContext), 1); - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[1], - (uint8_t*)avctx, sizeof(AVCodecContext), 1); - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[3], - (uint8_t*)&poutbuf_size, sizeof(int), 1); - if (poutbuf_size != 0) { - cpu_memory_rw_debug(cpu_single_env, s->codecParam.in_args[2], - (uint8_t*)poutbuf, poutbuf_size, 1); - } - - TRACE("Leave %s\n", __func__); - return ret; -} -#else int qemu_av_parser_parse (SVCodecState *s, int ctxIndex) { AVCodecParserContext *parserctx = NULL; @@ -1197,7 +1009,7 @@ int qemu_av_parser_parse (SVCodecState *s, int ctxIndex) int64_t pts; int64_t dts; int64_t pos; - int size, ret; + int size, ret = -1; off_t offset; TRACE("Enter %s\n", __func__); @@ -1205,10 +1017,19 @@ int qemu_av_parser_parse (SVCodecState *s, int ctxIndex) parserctx = s->ctxArr[ctxIndex].pParserCtx; avctx = s->ctxArr[ctxIndex].pAVCtx; - if (!parserctx && !avctx) { - ERR("[%s][%d] AVCodecParserContext or AVCodecContext is NULL\n", __func__, __LINE__); + if (!avctx) { + ERR("[%s] %d of AVCodecContext is NULL\n", __func__, ctxIndex); + pthread_mutex_unlock(&s->codec_mutex); + return ret; + } + + if (!parserctx) { + ERR("[%s] %d of AVCodecParserContext is NULL\n", __func__, ctxIndex); + pthread_mutex_unlock(&s->codec_mutex); + return ret; } + offset = s->codecParam.mmapOffset; #ifndef CODEC_COPY_DATA @@ -1282,7 +1103,6 @@ int qemu_av_parser_parse (SVCodecState *s, int ctxIndex) TRACE("[%s]Leave\n", __func__); return ret; } -#endif /* void av_parser_close (AVCodecParserContext *s) */ void qemu_av_parser_close (SVCodecState *s, int ctxIndex) @@ -1295,7 +1115,8 @@ void qemu_av_parser_close (SVCodecState *s, int ctxIndex) parserctx = s->ctxArr[ctxIndex].pParserCtx; if (!parserctx) { ERR("AVCodecParserContext is NULL\n"); - return ; + pthread_mutex_unlock(&s->codec_mutex); + return; } av_parser_close(parserctx); pthread_mutex_unlock(&s->codec_mutex); @@ -1392,13 +1213,6 @@ void codec_write (void *opaque, target_phys_addr_t addr, uint64_t value, unsigne switch (addr) { case CODEC_API_INDEX: ret = codec_operate(value, state->codecParam.ctxIndex, state); -#ifdef CODEC_HOST - if (ret >= 0) { - cpu_synchronize_state(cpu_single_env); - cpu_memory_rw_debug(cpu_single_env, state->codecParam.ret_args, - (uint8_t*)&ret, sizeof(int), 1); - } -#endif paramCount = 0; break; case CODEC_IN_PARAM: @@ -1439,9 +1253,9 @@ static int codec_initfn (PCIDevice *dev) INFO("[%s] device init\n", __func__); - memset(&s->codecParam, 0x00, sizeof(SVCodecParam)); + memset(&s->codecParam, 0, sizeof(SVCodecParam)); pthread_mutex_init(&s->codec_mutex, NULL); - + pci_config_set_interrupt_pin(pci_conf, 2); memory_region_init_ram(&s->vram, NULL, "codec.ram", MARU_CODEC_MEM_SIZE); diff --git a/tizen/src/hw/maru_touchscreen.c b/tizen/src/hw/maru_touchscreen.c index d94fe50ee9..49411510d3 100644 --- a/tizen/src/hw/maru_touchscreen.c +++ b/tizen/src/hw/maru_touchscreen.c @@ -35,8 +35,9 @@ MULTI_DEBUG_CHANNEL(qemu, touchscreen); -#define MAX_TOUCH_EVENT_CNT 128 +#define MAX_TOUCH_EVENT_CNT 128 +//lock for between communication thread and main thread static pthread_mutex_t event_mutex = PTHREAD_MUTEX_INITIALIZER; static QTAILQ_HEAD(, TouchEventEntry) events_queue = @@ -46,6 +47,13 @@ static unsigned int event_cnt = 0; static unsigned int _processed_buf_cnt = 0; static TouchEventEntry _event_buf[MAX_TOUCH_EVENT_CNT]; +/** + * @brief : qemu touch(host mouse) event handler + * @param opaque : state of device + * @param x : X-axis value + * @param y : Y-axis value + * @param z : event id for multiple touch + */ static void usb_touchscreen_event(void *opaque, int x, int y, int z, int buttons_state) { TouchEventEntry *te; @@ -62,10 +70,10 @@ static void usb_touchscreen_event(void *opaque, int x, int y, int z, int buttons te = &(_event_buf[_processed_buf_cnt % MAX_TOUCH_EVENT_CNT]); _processed_buf_cnt++; - /* mouse event is copied into the packet */ + /* mouse event is copied into the queue */ te->index = ++event_cnt; - te->queue_packet.x = x; //(x * TOUCHSCREEN_RESOLUTION_X / 0x7FFF); - te->queue_packet.y = y; //(y * TOUCHSCREEN_RESOLUTION_Y / 0x7FFF); + te->queue_packet.x = x; + te->queue_packet.y = y; te->queue_packet.z = z; te->queue_packet.state = buttons_state; @@ -76,6 +84,12 @@ static void usb_touchscreen_event(void *opaque, int x, int y, int z, int buttons TRACE("touch event (%d) : x=%d, y=%d, z=%d, state=%d\n", te->index, x, y, z, buttons_state); } +/** + * @brief : fill the usb packet + * @param s : state of device + * @param buf : usb packet + * @param len : size of packet + */ static int usb_touchscreen_poll(USBTouchscreenState *s, uint8_t *buf, int len) { USBEmulTouchscreenPacket *packet = (USBEmulTouchscreenPacket *)buf; @@ -97,15 +111,7 @@ static int usb_touchscreen_poll(USBTouchscreenState *s, uint8_t *buf, int len) if (s->buttons_state == 0) { packet->state = 0; } else { - if (s->buttons_state & MOUSE_EVENT_LBUTTON) { - packet->state |= 1; - } - if (s->buttons_state & MOUSE_EVENT_RBUTTON) { - packet->state |= 2; - } - if (s->buttons_state & MOUSE_EVENT_MBUTTON) { - packet->state |= 4; - } + packet->state = 1; } return EMUL_TOUCHSCREEN_PACKET_LEN; @@ -134,6 +140,11 @@ static int usb_touchscreen_handle_control(USBDevice *dev, USBPacket *p, return usb_desc_handle_control(dev, p, request, value, index, length, data); } +/** + * @brief : call by uhci frame timer + * @param dev : state of device + * @param p : usb packet + */ static int usb_touchscreen_handle_data(USBDevice *dev, USBPacket *p) { USBTouchscreenState *s = (USBTouchscreenState *) dev; @@ -175,7 +186,8 @@ static int usb_touchscreen_handle_data(USBDevice *dev, USBPacket *p) pthread_mutex_unlock(&event_mutex); - ret = usb_touchscreen_poll(s, buf, p->iov.size); + memset(buf, 0, sizeof(buf) * (p->iov.size - 1)); + ret = usb_touchscreen_poll(s, buf, p->iov.size); //write event to packet usb_packet_copy(p, buf, ret); break; } @@ -198,6 +210,10 @@ static void usb_touchscreen_handle_destroy(USBDevice *dev) } } +/** + * @brief : initialize a touchscreen device + * @param opaque : state of device + */ static int usb_touchscreen_initfn(USBDevice *dev) { USBTouchscreenState *s = DO_UPCAST(USBTouchscreenState, dev, dev); @@ -210,7 +226,10 @@ static int usb_touchscreen_initfn(USBDevice *dev) return 0; } -/* Remove mouse handlers before loading. */ +/** + * @brief : remove mouse handlers before loading + * @param opaque : state of device + */ static int touchscreen_pre_load(void *opaque) { USBTouchscreenState *s = (USBTouchscreenState *)opaque; @@ -285,6 +304,9 @@ static struct USBDeviceInfo touchscreen_info = { .handle_destroy = usb_touchscreen_handle_destroy, }; +/** + * @brief : register a touchscreen device + */ static void usb_touchscreen_register_devices(void) { usb_qdev_register(&touchscreen_info); diff --git a/tizen/src/hw/maru_vga.c b/tizen/src/hw/maru_vga.c index d8451c524e..555be0ee22 100644 --- a/tizen/src/hw/maru_vga.c +++ b/tizen/src/hw/maru_vga.c @@ -28,6 +28,14 @@ * */ + +#include "maru_common.h" + +#ifdef CONFIG_DARWIN +//shared memory +#define USE_SHM +#endif + #include "hw.h" #include "console.h" #include "pc.h" @@ -41,8 +49,13 @@ #include "emul_state.h" #include "debug_ch.h" +#ifdef USE_SHM +#include <sys/shm.h> +#endif + MULTI_DEBUG_CHANNEL(qemu, maru_vga); + //#define DEBUG_VGA //#define DEBUG_VGA_MEM //#define DEBUG_VGA_REG @@ -76,6 +89,13 @@ MULTI_DEBUG_CHANNEL(qemu, maru_vga); #define MARU_VGA +#ifdef USE_SHM +/* shared memory */ +void *shared_memory = (void*)0; +int shmid; +#endif + + static const uint32_t mask16[16] = { PAT(0x00000000), PAT(0x000000ff), @@ -946,12 +966,19 @@ static void vga_draw_graphic(VGACommonState *s, int full_update) qemu_free_displaysurface(s->ds); #ifdef MARU_VGA // create new sufrace by malloc in MARU VGA - s->ds->surface = qemu_create_displaysurface( s->ds, disp_width, height ); + +#ifdef USE_SHM + s->ds->surface = qemu_create_displaysurface_from(disp_width, height, depth, + disp_width * 4, (uint8_t*)shared_memory); #else + s->ds->surface = qemu_create_displaysurface(s->ds, disp_width, height); +#endif //USE_SHM + +#else //MARU_VGA s->ds->surface = qemu_create_displaysurface_from(disp_width, height, depth, s->line_offset, s->vram_ptr + (s->start_addr * 4)); -#endif +#endif //MARU_VGA #if defined(HOST_WORDS_BIGENDIAN) != defined(TARGET_WORDS_BIGENDIAN) s->ds->surface->pf = qemu_different_endianness_pixelformat(depth); @@ -967,12 +994,15 @@ static void vga_draw_graphic(VGACommonState *s, int full_update) s->last_line_offset = s->line_offset; s->last_depth = depth; full_update = 1; +#ifndef USE_SHM } else if (is_buffer_shared(s->ds->surface) && (full_update || s->ds->surface->data != s->vram_ptr + (s->start_addr * 4))) { s->ds->surface->data = s->vram_ptr + (s->start_addr * 4); dpy_setdata(s->ds); } - +#else + } +#endif s->rgb_to_pixel = rgb_to_pixel_dup_table[get_depth_index(s->ds)]; @@ -1025,7 +1055,11 @@ static void vga_draw_graphic(VGACommonState *s, int full_update) } maru_vga_draw_line = maru_vga_draw_line_table[v * NB_DEPTHS + get_depth_index(s->ds)]; +#ifndef USE_SHM if (!is_buffer_shared(s->ds->surface) && s->cursor_invalidate) +#else + if (s->cursor_invalidate) +#endif s->cursor_invalidate(s); line_offset = s->line_offset; @@ -1077,11 +1111,15 @@ static void vga_draw_graphic(VGACommonState *s, int full_update) page_min = page0; if (page1 > page_max) page_max = page1; +#ifndef USE_SHM if (!(is_buffer_shared(s->ds->surface))) { +#endif maru_vga_draw_line(s, d, s->vram_ptr + addr, width); if (s->cursor_draw_line) s->cursor_draw_line(s, d, y); +#ifndef USE_SHM } +#endif #ifdef MARU_VGA @@ -1505,6 +1543,24 @@ void maru_vga_common_init(VGACommonState *s, int vga_ram_size) break; } vga_dirty_log_start(s); + +#ifdef USE_SHM + int mykey = getuid(); + shmid = shmget((key_t)mykey, (size_t)vga_ram_size, 0666 | IPC_CREAT); + if (shmid == -1) { + fprintf(stderr, "shmget failed\n"); + exit(1); + } + + shared_memory = shmat(shmid, (void*)0, 0); + if (shared_memory == (void *)-1) { + fprintf(stderr, "shmat failed\n"); + exit(1); + } + + printf("Memory attached at %X\n", (int)shared_memory); +#endif + } /********************************************************/ diff --git a/tizen/src/hw/mesa_gl.h b/tizen/src/hw/mesa_gl.h index b62c9a8113..b62c9a8113 100755..100644 --- a/tizen/src/hw/mesa_gl.h +++ b/tizen/src/hw/mesa_gl.h diff --git a/tizen/src/hw/mesa_glext.h b/tizen/src/hw/mesa_glext.h index 1b3a1709f6..1b3a1709f6 100755..100644 --- a/tizen/src/hw/mesa_glext.h +++ b/tizen/src/hw/mesa_glext.h diff --git a/tizen/src/hw/mesa_glu.h b/tizen/src/hw/mesa_glu.h index eae5fa672a..eae5fa672a 100755..100644 --- a/tizen/src/hw/mesa_glu.h +++ b/tizen/src/hw/mesa_glu.h diff --git a/tizen/src/hw/mesa_mipmap.c b/tizen/src/hw/mesa_mipmap.c index 1263cd5fe0..1263cd5fe0 100755..100644 --- a/tizen/src/hw/mesa_mipmap.c +++ b/tizen/src/hw/mesa_mipmap.c diff --git a/tizen/src/hw/mesa_mipmap.h b/tizen/src/hw/mesa_mipmap.h index 047596f259..047596f259 100755..100644 --- a/tizen/src/hw/mesa_mipmap.h +++ b/tizen/src/hw/mesa_mipmap.h diff --git a/tizen/src/hw/op_helper.c b/tizen/src/hw/op_helper.c index c89e4a49db..2aea71bf85 100755..100644 --- a/tizen/src/hw/op_helper.c +++ b/tizen/src/hw/op_helper.c @@ -52,11 +52,11 @@ static inline target_long lshift(target_long x, int n) } } -#define RC_MASK 0xc00 -#define RC_NEAR 0x000 -#define RC_DOWN 0x400 -#define RC_UP 0x800 -#define RC_CHOP 0xc00 +#define FPU_RC_MASK 0xc00 +#define FPU_RC_NEAR 0x000 +#define FPU_RC_DOWN 0x400 +#define FPU_RC_UP 0x800 +#define FPU_RC_CHOP 0xc00 #define MAXTAN 9223372036854775808.0 @@ -4024,18 +4024,18 @@ static void update_fp_status(void) int rnd_type; /* set rounding mode */ - switch(env->fpuc & RC_MASK) { + switch(env->fpuc & FPU_RC_MASK) { default: - case RC_NEAR: + case FPU_RC_NEAR: rnd_type = float_round_nearest_even; break; - case RC_DOWN: + case FPU_RC_DOWN: rnd_type = float_round_down; break; - case RC_UP: + case FPU_RC_UP: rnd_type = float_round_up; break; - case RC_CHOP: + case FPU_RC_CHOP: rnd_type = float_round_to_zero; break; } @@ -5629,6 +5629,50 @@ void helper_vmexit(uint32_t exit_code, uint64_t exit_info_1) /* MMX/SSE */ /* XXX: optimize by storing fptt and fptags in the static cpu state */ + +#define SSE_DAZ 0x0040 +#define SSE_RC_MASK 0x6000 +#define SSE_RC_NEAR 0x0000 +#define SSE_RC_DOWN 0x2000 +#define SSE_RC_UP 0x4000 +#define SSE_RC_CHOP 0x6000 +#define SSE_FZ 0x8000 + +static void update_sse_status(void) +{ + int rnd_type; + + /* set rounding mode */ + switch(env->mxcsr & SSE_RC_MASK) { + default: + case SSE_RC_NEAR: + rnd_type = float_round_nearest_even; + break; + case SSE_RC_DOWN: + rnd_type = float_round_down; + break; + case SSE_RC_UP: + rnd_type = float_round_up; + break; + case SSE_RC_CHOP: + rnd_type = float_round_to_zero; + break; + } + set_float_rounding_mode(rnd_type, &env->sse_status); + + /* set denormals are zero */ + set_flush_inputs_to_zero((env->mxcsr & SSE_DAZ) ? 1 : 0, &env->sse_status); + + /* set flush to zero */ + set_flush_to_zero((env->mxcsr & SSE_FZ) ? 1 : 0, &env->fp_status); +} + +void helper_ldmxcsr(uint32_t val) +{ + env->mxcsr = val; + update_sse_status(); +} + void helper_enter_mmx(void) { env->fpstt = 0; diff --git a/tizen/src/hw/opengl_exec.c b/tizen/src/hw/opengl_exec.c index 118380d972..001a202908 100755..100644 --- a/tizen/src/hw/opengl_exec.c +++ b/tizen/src/hw/opengl_exec.c @@ -1741,7 +1741,7 @@ int do_function_call(ProcessState *process, int func_number, unsigned long *args case glGenTextures_fake_func: { - GET_EXT_PTR(void, glGenTextures, (GLsizei n, GLuint *textures)); + //GET_EXT_PTR(void, glGenTextures, (GLsizei n, GLuint *textures)); int i; int n = args[0]; unsigned int *clientTabTextures = g_malloc(n * sizeof(int)); @@ -1750,7 +1750,8 @@ int do_function_call(ProcessState *process, int func_number, unsigned long *args alloc_range(process->current_state->textureAllocator, n, clientTabTextures); - ptr_func_glGenTextures(n, serverTabTextures); + //ptr_func_glGenTextures(n, serverTabTextures); + glGenTextures(n, serverTabTextures); for (i = 0; i < n; i++) { process->current_state->tabTextures[clientTabTextures[i]] = serverTabTextures[i]; @@ -1764,8 +1765,8 @@ int do_function_call(ProcessState *process, int func_number, unsigned long *args case glDeleteTextures_func: { - GET_EXT_PTR(void, glDeleteTextures, - (GLsizei n, const GLuint *textures)); + //GET_EXT_PTR(void, glDeleteTextures, + // (GLsizei n, const GLuint *textures)); int i; int n = args[0]; unsigned int *clientTabTextures = (unsigned int *) args[1]; @@ -1779,7 +1780,8 @@ int do_function_call(ProcessState *process, int func_number, unsigned long *args serverTabTextures[i] = get_server_texture(process, clientTabTextures[i]); } - ptr_func_glDeleteTextures(n, serverTabTextures); + //ptr_func_glDeleteTextures(n, serverTabTextures); + glDeleteTextures(n, serverTabTextures); for (i = 0; i < n; i++) { process->current_state->tabTextures[clientTabTextures[i]] = 0; } @@ -1825,12 +1827,13 @@ int do_function_call(ProcessState *process, int func_number, unsigned long *args case glIsTexture_func: case glIsTextureEXT_func: { - GET_EXT_PTR(GLboolean, glIsTexture, (GLuint texture)); + //GET_EXT_PTR(GLboolean, glIsTexture, (GLuint texture)); unsigned int client_texture = args[0]; unsigned int server_texture = get_server_texture(process, client_texture); if (server_texture) - ret.c = ptr_func_glIsTexture(server_texture); + // ret.c = ptr_func_glIsTexture(server_texture); + ret.c = glIsTexture(server_texture); else ret.c = 0; break; diff --git a/tizen/src/hw/opengl_exec.h b/tizen/src/hw/opengl_exec.h index 9bd828b084..9bd828b084 100755..100644 --- a/tizen/src/hw/opengl_exec.h +++ b/tizen/src/hw/opengl_exec.h diff --git a/tizen/src/hw/opengl_func.h b/tizen/src/hw/opengl_func.h index b2c8a1c343..b2c8a1c343 100755..100644 --- a/tizen/src/hw/opengl_func.h +++ b/tizen/src/hw/opengl_func.h diff --git a/tizen/src/hw/opengl_process.h b/tizen/src/hw/opengl_process.h index 5a923878fe..5a923878fe 100755..100644 --- a/tizen/src/hw/opengl_process.h +++ b/tizen/src/hw/opengl_process.h diff --git a/tizen/src/hw/parse_gl_h.c b/tizen/src/hw/parse_gl_h.c index e37cf71b9c..e37cf71b9c 100755..100644 --- a/tizen/src/hw/parse_gl_h.c +++ b/tizen/src/hw/parse_gl_h.c diff --git a/tizen/src/hw/range_alloc.h b/tizen/src/hw/range_alloc.h index c1a8d779bc..c1a8d779bc 100755..100644 --- a/tizen/src/hw/range_alloc.h +++ b/tizen/src/hw/range_alloc.h diff --git a/tizen/src/hw/virtio-gl.c b/tizen/src/hw/virtio-gl.c index 4ca1ed757f..4ca1ed757f 100755..100644 --- a/tizen/src/hw/virtio-gl.c +++ b/tizen/src/hw/virtio-gl.c diff --git a/tizen/src/maru_common.h b/tizen/src/maru_common.h index 89d19058e2..17ceb29f85 100644 --- a/tizen/src/maru_common.h +++ b/tizen/src/maru_common.h @@ -37,6 +37,7 @@ #ifndef __MARU_COMMON_H__ #define __MARU_COMMON_H__ +#include "config-host.h" #include <stddef.h> #include <stdint.h> #include <stdbool.h> diff --git a/tizen/src/maru_display.c b/tizen/src/maru_display.c new file mode 100644 index 0000000000..99358cd9c9 --- /dev/null +++ b/tizen/src/maru_display.c @@ -0,0 +1,103 @@ +/* + * MARU display driver + * + * Copyright (C) 2011 - 2012 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim <giwoong.kim@samsung.com> + * SeokYeon Hwang <syeon.hwang@samsung.com> + * YeongKyoon Lee <yeongkyoon.lee@samsung.com> + * + * This program 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. + * + * This program 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + + +#include "maru_common.h" + +#ifdef CONFIG_DARWIN +//shared memory +#define USE_SHM +#endif + +#include "maru_display.h" +#include "debug_ch.h" + +#ifndef USE_SHM +#include "maru_sdl.h" +#else +#include "maru_shm.h" +#endif + +MULTI_DEBUG_CHANNEL(tizen, display); + + +//TODO: interface +void maru_display_init(DisplayState *ds) +{ + INFO("init qemu display\n"); + + /* graphics context information */ + DisplayChangeListener *dcl; + + dcl = g_malloc0(sizeof(DisplayChangeListener)); +#ifndef USE_SHM + /* sdl library */ + dcl->dpy_update = qemu_ds_sdl_update; + dcl->dpy_resize = qemu_ds_sdl_resize; + dcl->dpy_refresh = qemu_ds_sdl_refresh; +#else + /* shared memroy */ + dcl->dpy_update = qemu_ds_shm_update; + dcl->dpy_resize = qemu_ds_shm_resize; + dcl->dpy_refresh = qemu_ds_shm_refresh; +#endif + + register_displaychangelistener(ds, dcl); +} + +void maru_display_fini(void) +{ + INFO("fini qemu display\n"); + +#ifndef USE_SHM + maruskin_sdl_quit(); +#else + //TODO: +#endif +} + +void maruskin_init(uint64 swt_handle, int lcd_size_width, int lcd_size_height, bool is_resize) +{ +#ifndef USE_SHM + maruskin_sdl_init(swt_handle, lcd_size_width, lcd_size_height, is_resize); +#else + maruskin_shm_init(swt_handle, lcd_size_width, lcd_size_height, is_resize); +#endif +} + +DisplaySurface* get_qemu_display_surface(void) { +#ifndef USE_SHM + return maruskin_sdl_get_display(); +#else + //TODO: +#endif + + return NULL; +} + diff --git a/tizen/src/maru_display.h b/tizen/src/maru_display.h new file mode 100644 index 0000000000..d0d3c31819 --- /dev/null +++ b/tizen/src/maru_display.h @@ -0,0 +1,42 @@ +/* + * MARU display driver + * + * Copyright (C) 2011 - 2012 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim <giwoong.kim@samsung.com> + * SeokYeon Hwang <syeon.hwang@samsung.com> + * YeongKyoon Lee <yeongkyoon.lee@samsung.com> + * + * This program 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. + * + * This program 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + + +#ifndef MARU_DISPLAY_H_ +#define MARU_DISPLAY_H_ + +#include "console.h" + + +void maru_display_init(DisplayState *ds); +void maru_display_fini(void); +void maruskin_init(uint64 swt_handle, int lcd_size_width, int lcd_size_height, bool is_resize); +DisplaySurface* get_qemu_display_surface(void); + +#endif /* MARU_DISPLAY_H_ */ diff --git a/tizen/src/maru_err_table.c b/tizen/src/maru_err_table.c index b2d9d7ec84..c862b2331c 100644 --- a/tizen/src/maru_err_table.c +++ b/tizen/src/maru_err_table.c @@ -28,6 +28,7 @@ */ +#include "qemu-common.h" #include "maru_err_table.h" #include <stdio.h> #include <stdlib.h> @@ -86,7 +87,7 @@ void maru_register_exit_msg(int maru_exit_index, char* additional_msg) len = JAVA_MAX_COMMAND_LENGTH - 1; } - strcpy(maru_exit_msg, additional_msg); + pstrcpy(maru_exit_msg, sizeof(maru_exit_msg), additional_msg); } } @@ -125,6 +126,7 @@ char* maru_convert_path(char *msg, const char *path) total_len += (path_len + msg_len); err_msg = g_malloc0(total_len * sizeof(char)); +#if 0 if (!err_msg) { fprintf(stderr, "failed to allocate memory\n"); if (current_path) { @@ -132,6 +134,7 @@ char* maru_convert_path(char *msg, const char *path) } return NULL; } +#endif if (msg) { snprintf(err_msg, msg_len, "%s", msg); @@ -150,7 +153,7 @@ char* maru_convert_path(char *msg, const char *path) { int i; - dos_err_msg = strdup(err_msg); + dos_err_msg = g_strdup(err_msg); if (!dos_err_msg) { printf(stderr, "failed to duplicate an error message from %p\n", err_msg); if (current_path) { @@ -165,8 +168,8 @@ char* maru_convert_path(char *msg, const char *path) dos_err_msg[i] = '\\'; } } - strncpy(err_msg, dos_err_msg, strlen(dos_err_msg)); - free(dos_err_msg); + pstrcpy(err_msg, sizeof(err_msg), dos_err_msg); + g_free(dos_err_msg); } #endif if (current_path) { diff --git a/tizen/src/maru_finger.c b/tizen/src/maru_finger.c index cc37f59706..bc0a6ac4ce 100644 --- a/tizen/src/maru_finger.c +++ b/tizen/src/maru_finger.c @@ -258,16 +258,16 @@ FingerPoint *get_finger_point_search(int x, int y) int i; MultiTouchState *mts = get_emul_multi_touch_state(); FingerPoint *finger = NULL; - int finger_point_size_half = (mts->finger_point_size / 2) + 2; + int finger_region = (mts->finger_point_size / 2) + 2 + (int)((1 - get_emul_win_scale()) * 4); for (i = mts->finger_cnt - 1; i >= 0; i--) { finger = get_finger_point_from_slot(i); if (finger != NULL) { - if (x >= (finger->x - finger_point_size_half) && - x < (finger->x + finger_point_size_half) && - y >= (finger->y - finger_point_size_half) && - y < (finger->y + finger_point_size_half)) { + if (x >= (finger->x - finger_region) && + x < (finger->x + finger_region) && + y >= (finger->y - finger_region) && + y < (finger->y + finger_region)) { return finger; } } @@ -355,8 +355,27 @@ void maru_finger_processing_B(int touch_type, int origin_x, int origin_y, int x, int distance_x = x - finger->x; int distance_y = y - finger->y; - int i = 0; - for( ; i < get_emul_multi_touch_state()->finger_cnt; i++) { + int current_screen_w = get_emul_lcd_width(); + int current_screen_h = get_emul_lcd_height(); + int temp_finger_x, temp_finger_y; + + int i; + /* bounds checking */ + for(i = 0; i < get_emul_multi_touch_state()->finger_cnt; i++) { + finger = get_finger_point_from_slot(i); + + if (finger != NULL) { + temp_finger_x = finger->x + distance_x; + temp_finger_y = finger->y + distance_y; + if (temp_finger_x > current_screen_w || temp_finger_x < 0 + || temp_finger_y > current_screen_h || temp_finger_y < 0) { + TRACE("id %d finger is out of bounds (%d, %d)\n", i + 1, temp_finger_x, temp_finger_y); + return; + } + } + } + + for(i = 0; i < get_emul_multi_touch_state()->finger_cnt; i++) { finger = get_finger_point_from_slot(i); if (finger != NULL) { diff --git a/tizen/src/maru_sdl.c b/tizen/src/maru_sdl.c index 731e31890e..54d2289858 100644 --- a/tizen/src/maru_sdl.c +++ b/tizen/src/maru_sdl.c @@ -1,11 +1,11 @@ /* - * MARU SDL display driver + * SDL_WINDOWID hack * * Copyright (C) 2011 - 2012 Samsung Electronics Co., Ltd. All rights reserved. * * Contact: - * HyunJun Son <hj79.son@samsung.com> * GiWoong Kim <giwoong.kim@samsung.com> + * SeokYeon Hwang <syeon.hwang@samsung.com> * YeongKyoon Lee <yeongkyoon.lee@samsung.com> * * This program is free software; you can redistribute it and/or @@ -36,17 +36,26 @@ #include "maru_finger.h" #include "hw/maru_pm.h" #include "debug_ch.h" +#include "SDL_opengl.h" MULTI_DEBUG_CHANNEL(tizen, maru_sdl); -// TODO : organize +DisplaySurface* qemu_display_surface = NULL; + SDL_Surface *surface_screen; SDL_Surface *surface_qemu; +GLuint texture; + +static double current_scale_factor = 1.0; +static double current_screen_degree = 0.0; +static int current_screen_width; +static int current_screen_height; -static double scale_factor = 1.0; -static double screen_degree = 0.0; static int sdl_initialized = 0; +static int sdl_alteration = 0; +static int sdl_opengl = 0; //0 : just SDL surface, 1 : using SDL with OpenGL + #define SDL_THREAD @@ -59,71 +68,8 @@ static int sdl_thread_initialized = 0; #define SDL_FLAGS (SDL_HWSURFACE | SDL_ASYNCBLIT | SDL_HWACCEL | SDL_NOFRAME) #define SDL_BPP 32 -DisplaySurface* qemu_display_surface = NULL; - -static void qemu_update(void) -{ - int i; - SDL_Surface *processing_screen = NULL; - - if (surface_qemu != NULL) { - if (scale_factor != 1.0 || screen_degree != 0.0) { - - // workaround - // set color key 'magenta' - surface_qemu->format->colorkey = 0xFF00FF; - - //image processing - processing_screen = rotozoomSurface(surface_qemu, screen_degree, scale_factor, 1); - SDL_BlitSurface(processing_screen, NULL, surface_screen, NULL); - } else { - SDL_BlitSurface(surface_qemu, NULL, surface_screen, NULL); - } - } - - /* draw multi-touch finger points */ - MultiTouchState *mts = get_emul_multi_touch_state(); - if (mts->multitouch_enable != 0 && mts->finger_point_surface != NULL) { - FingerPoint *finger = NULL; - int finger_point_size_half = mts->finger_point_size / 2; - SDL_Rect rect; - - for (i = 0; i < mts->finger_cnt; i++) { - finger = get_finger_point_from_slot(i); - if (finger != NULL && finger->id != 0) { - rect.x = finger->origin_x - finger_point_size_half; - rect.y = finger->origin_y - finger_point_size_half; - rect.w = rect.h = mts->finger_point_size; - - SDL_BlitSurface((SDL_Surface *)mts->finger_point_surface, NULL, surface_screen, &rect); - } - } - } - - SDL_UpdateRect(surface_screen, 0, 0, 0, 0); - - SDL_FreeSurface(processing_screen); -} - - -#ifdef SDL_THREAD -static void* run_qemu_update(void* arg) -{ - while(1) { - pthread_mutex_lock(&sdl_mutex); - - pthread_cond_wait(&sdl_cond, &sdl_mutex); - - qemu_update(); - - pthread_mutex_unlock(&sdl_mutex); - } - - return NULL; -} -#endif -static void qemu_ds_update(DisplayState *ds, int x, int y, int w, int h) +void qemu_ds_sdl_update(DisplayState *ds, int x, int y, int w, int h) { /* call sdl update */ #ifdef SDL_THREAD @@ -137,7 +83,7 @@ static void qemu_ds_update(DisplayState *ds, int x, int y, int w, int h) #endif } -static void qemu_ds_resize(DisplayState *ds) +void qemu_ds_sdl_resize(DisplayState *ds) { TRACE("%d, %d\n", ds_get_width(ds), ds_get_height(ds)); @@ -161,7 +107,7 @@ static void qemu_ds_resize(DisplayState *ds) #endif if (surface_qemu == NULL) { - ERR( "Unable to set the RGBSurface: %s", SDL_GetError() ); + ERR("Unable to set the RGBSurface: %s\n", SDL_GetError()); return; } @@ -179,175 +125,346 @@ static int maru_sdl_poll_event(SDL_Event *ev) return ret; } +void qemu_ds_sdl_refresh(DisplayState *ds) +{ + SDL_Event ev1, *ev = &ev1; -static void put_hardkey_code( SDL_UserEvent event ) { + vga_hw_update(); - // use pointer as integer - int event_type = (int) event.data1; - int keycode = (int) event.data2; + // surface may be NULL in init func. + qemu_display_surface = ds->surface; - if ( KEY_PRESSED == event_type ) { + while (maru_sdl_poll_event(ev)) { + switch (ev->type) { + case SDL_VIDEORESIZE: + { + pthread_mutex_lock(&sdl_mutex); - if ( kbd_mouse_is_absolute() ) { - ps2kbd_put_keycode( keycode & 0x7f ); - } + SDL_Quit(); //The returned surface is freed by SDL_Quit and must not be freed by the caller + maruskin_sdl_init(0, get_emul_lcd_width(), get_emul_lcd_height(), true); - } else if ( KEY_RELEASED == event_type ) { + pthread_mutex_unlock(&sdl_mutex); + break; + } - if ( kbd_mouse_is_absolute() ) { - ps2kbd_put_keycode( keycode | 0x80 ); + default: + break; } - - } else { - ERR( "Unknown hardkey event type.[event_type:%d]", event_type ); } - } -static void handle_sdl_user_event ( SDL_UserEvent event ) { +extern int capability_check_gl; +static void _sdl_init(void) +{ + int w, h, temp; - int code = event.code; + INFO("Set up a video mode with the specified width, height and bits-per-pixel\n"); - switch ( code ) { - case SDL_USER_EVENT_CODE_HARDKEY: { - put_hardkey_code( event ); - break; + //get current setting information and calculate screen size + current_scale_factor = get_emul_win_scale(); + w = current_screen_width = get_emul_lcd_width() * current_scale_factor; + h = current_screen_height = get_emul_lcd_height() * current_scale_factor; + + short rotaton_type = get_emul_rotation(); + if (rotaton_type == ROTATION_PORTRAIT) { + current_screen_degree = 0.0; + } else if (rotaton_type == ROTATION_LANDSCAPE) { + current_screen_degree = 90.0; + temp = w; + w = h; + h = temp; + } else if (rotaton_type == ROTATION_REVERSE_PORTRAIT) { + current_screen_degree = 180.0; + } else if (rotaton_type == ROTATION_REVERSE_LANDSCAPE) { + current_screen_degree = 270.0; + temp = w; + w = h; + h = temp; } - default: { - ERR( "Unknown sdl user event.[event code:%d]\n", code ); - break; + + /*if (capability_check_gl != 0) { + ERR("GL check returned non-zero\n"); + surface_screen = NULL; + } else { + surface_screen = SDL_SetVideoMode(w, h, get_emul_sdl_bpp(), SDL_OPENGL); } + + if (surface_screen == NULL) { + sdl_opengl = 0; + INFO("No OpenGL support on this system!??\n"); + ERR("%s\n", SDL_GetError());*/ + + surface_screen = SDL_SetVideoMode(w, h, get_emul_sdl_bpp(), SDL_FLAGS); + if (surface_screen == NULL) { + ERR("Could not open SDL display (%dx%dx%d): %s\n", w, h, get_emul_sdl_bpp(), SDL_GetError()); + return; + } + /*} else { + sdl_opengl = 1; + INFO("OpenGL is supported on this system.\n"); + }*/ + + if (sdl_opengl == 1) { + /* Set the OpenGL state */ + glClear(GL_COLOR_BUFFER_BIT); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glOrtho(0, w, h, 0, -1, 1); + glMatrixMode(GL_MODELVIEW); + glViewport(0, 0, w, h); + glLoadIdentity(); + + glGenTextures(1, &texture); + glBindTexture(GL_TEXTURE_2D, texture); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + //glGenerateMipmapEXT(GL_TEXTURE_2D); // GL_MIPMAP_LINEAR } + /* remove multi-touch finger points */ + get_emul_multi_touch_state()->multitouch_enable = 0; + clear_finger_slot(); } -static void qemu_ds_refresh(DisplayState *ds) +static int point_degree = 0; +static void draw_outline_circle(int cx, int cy, int r, int num_segments) { - SDL_Event ev1, *ev = &ev1; + int ii; + float theta = 2 * 3.1415926 / (num_segments); + float c = cosf(theta);//precalculate the sine and cosine + float s = sinf(theta); + float t; + + float x = r;//we start at angle = 0 + float y = 0; + + glEnable(GL_LINE_STIPPLE); + glLoadIdentity(); + glColor3f(0.9, 0.9, 0.9); + glLineStipple(1, 0xcccc); + glLineWidth(3.f); + + glTranslatef(cx, cy, 0); + glRotated(point_degree++ % 360, 0, 0, 1); + + glBegin(GL_LINE_LOOP); + for(ii = 0; ii < num_segments; ii++) { + glVertex2f(x, y); //output vertex + + //apply the rotation matrix + t = x; + x = c * x - s * y; + y = s * t + c * y; + } + glEnd(); - vga_hw_update(); + glDisable(GL_LINE_STIPPLE); +} - // surface may be NULL in init func. - qemu_display_surface = ds->surface; +static void draw_fill_circle(int cx, int cy, int r) +{ + glEnable(GL_POINT_SMOOTH); + glLoadIdentity(); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glColor4f(0.1, 0.1, 0.1, 0.6); + glPointSize(r - 2); + + glBegin(GL_POINTS); + glVertex2f(cx, cy); + glEnd(); + + glDisable(GL_POINT_SMOOTH); + glDisable(GL_BLEND); +} - while (maru_sdl_poll_event(ev)) { - switch (ev->type) { - case SDL_VIDEORESIZE: - { - int w, h, temp; - - //get current setting information and calculate screen size - scale_factor = get_emul_win_scale(); - w = get_emul_lcd_width() * scale_factor; - h = get_emul_lcd_height() * scale_factor; - - short rotaton_type = get_emul_rotation(); - if (rotaton_type == ROTATION_PORTRAIT) { - screen_degree = 0.0; - } else if (rotaton_type == ROTATION_LANDSCAPE) { - screen_degree = 90.0; - temp = w; - w = h; - h = temp; - } else if (rotaton_type == ROTATION_REVERSE_PORTRAIT) { - screen_degree = 180.0; - } else if (rotaton_type == ROTATION_REVERSE_LANDSCAPE) { - screen_degree = 270.0; - temp = w; - w = h; - h = temp; - } +static void qemu_update(void) +{ + if (sdl_alteration == 1) { + sdl_alteration = 0; + _sdl_init(); + return; + } - pthread_mutex_lock(&sdl_mutex); + if (surface_qemu != NULL) { + int i; + + if (sdl_opengl == 1) + { //gl surface + glEnable(GL_TEXTURE_2D); + glLoadIdentity(); + glColor3f(1.0, 1.0, 1.0); + glTexImage2D(GL_TEXTURE_2D, + 0, 3, surface_qemu->w, surface_qemu->h, 0, GL_BGRA, GL_UNSIGNED_BYTE, surface_qemu->pixels); + + glClear(GL_COLOR_BUFFER_BIT); + + /* rotation */ + if (current_screen_degree == 270.0) { //reverse landscape + glRotated(90, 0, 0, 1); + glTranslatef(0, -current_screen_height, 0); + } else if (current_screen_degree == 180.0) { //reverse portrait + glRotated(180, 0, 0, 1); + glTranslatef(-current_screen_width, -current_screen_height, 0); + } else if (current_screen_degree == 90.0) { //landscape + glRotated(270, 0, 0, 1); + glTranslatef(-current_screen_width, 0, 0); + } - SDL_Quit(); //The returned surface is freed by SDL_Quit and must not be freed by the caller - surface_screen = SDL_SetVideoMode(w, h, SDL_BPP, SDL_FLAGS); - if (surface_screen == NULL) { - ERR("Could not open SDL display (%dx%dx%d): %s\n", w, h, SDL_BPP, SDL_GetError()); + glBegin(GL_QUADS); + glTexCoord2i(0, 0); + glVertex3f(0, 0, 0); + glTexCoord2i(1, 0); + glVertex3f(current_screen_width, 0, 0); + glTexCoord2i(1, 1); + glVertex3f(current_screen_width, current_screen_height, 0); + glTexCoord2i(0, 1); + glVertex3f(0, current_screen_height, 0); + glEnd(); + + glDisable(GL_TEXTURE_2D); + + /* draw multi-touch finger points */ + MultiTouchState *mts = get_emul_multi_touch_state(); + if (mts->multitouch_enable != 0) { + FingerPoint *finger = NULL; + int finger_point_size_half = mts->finger_point_size / 2; + + for (i = 0; i < mts->finger_cnt; i++) { + finger = get_finger_point_from_slot(i); + if (finger != NULL && finger->id != 0) { + draw_outline_circle(finger->origin_x, finger->origin_y, finger_point_size_half, 10); //TODO: optimize + draw_fill_circle(finger->origin_x, finger->origin_y, mts->finger_point_size); + } } + } //end of draw multi-touch - pthread_mutex_unlock(&sdl_mutex); + glFlush(); - break; - } - case SDL_USEREVENT: { - handle_sdl_user_event( ev->user ); - break; + SDL_GL_SwapBuffers(); + } + else + { //sdl surface + SDL_Surface *processing_screen = NULL; + + if (current_scale_factor != 1.0 || current_screen_degree != 0.0) { + // workaround + // set color key 'magenta' + surface_qemu->format->colorkey = 0xFF00FF; + + //image processing + processing_screen = rotozoomSurface(surface_qemu, current_screen_degree, current_scale_factor, 1); + SDL_BlitSurface(processing_screen, NULL, surface_screen, NULL); + } else { + SDL_BlitSurface(surface_qemu, NULL, surface_screen, NULL); } - default: - break; + SDL_FreeSurface(processing_screen); + + /* draw multi-touch finger points */ + MultiTouchState *mts = get_emul_multi_touch_state(); + if (mts->multitouch_enable != 0 && mts->finger_point_surface != NULL) { + FingerPoint *finger = NULL; + int finger_point_size_half = mts->finger_point_size / 2; + SDL_Rect rect; + + for (i = 0; i < mts->finger_cnt; i++) { + finger = get_finger_point_from_slot(i); + if (finger != NULL && finger->id != 0) { + rect.x = finger->origin_x - finger_point_size_half; + rect.y = finger->origin_y - finger_point_size_half; + rect.w = rect.h = mts->finger_point_size; + + SDL_BlitSurface((SDL_Surface *)mts->finger_point_surface, NULL, surface_screen, &rect); + } + } + } //end of draw multi-touch } } + + SDL_UpdateRect(surface_screen, 0, 0, 0, 0); } -void maruskin_display_init(DisplayState *ds) + +#ifdef SDL_THREAD +static void* run_qemu_update(void* arg) { - INFO( "qemu display initialization\n"); + while(1) { + pthread_mutex_lock(&sdl_mutex); - /* graphics context information */ - DisplayChangeListener *dcl; + pthread_cond_wait(&sdl_cond, &sdl_mutex); - dcl = g_malloc0(sizeof(DisplayChangeListener)); - dcl->dpy_update = qemu_ds_update; - dcl->dpy_resize = qemu_ds_resize; - dcl->dpy_refresh = qemu_ds_refresh; + qemu_update(); - register_displaychangelistener(ds, dcl); + pthread_mutex_unlock(&sdl_mutex); + } -#ifdef SDL_THREAD - if (sdl_thread_initialized == 0) { - sdl_thread_initialized = 1; - pthread_t thread_id; - INFO( "sdl update thread create\n"); - if (pthread_create(&thread_id, NULL, run_qemu_update, NULL) != 0) { - ERR( "pthread_create fail\n"); - return; - } - } -#endif + return NULL; } +#endif -void maruskin_sdl_init(uint64 swt_handle, int lcd_size_width, int lcd_size_height) +void maruskin_sdl_init(uint64 swt_handle, int lcd_size_width, int lcd_size_height, bool is_resize) { - int w, h; gchar SDL_windowhack[32]; SDL_SysWMinfo info; long window_id = swt_handle; - sprintf(SDL_windowhack, "%ld", window_id); - g_setenv("SDL_WINDOWID", SDL_windowhack, 1); - INFO("register SDL environment variable. (SDL_WINDOWID = %s)\n", SDL_windowhack); + INFO("maru sdl initialization = %d\n", is_resize); - if (SDL_Init(SDL_INIT_VIDEO) < 0 ) { - ERR( "unable to init SDL: %s", SDL_GetError() ); - exit(1); - } + if (is_resize == FALSE) { //once + sprintf(SDL_windowhack, "%ld", window_id); + g_setenv("SDL_WINDOWID", SDL_windowhack, 1); + INFO("register SDL environment variable. (SDL_WINDOWID = %s)\n", SDL_windowhack); - set_emul_lcd_size(lcd_size_width, lcd_size_height); + if (SDL_Init(SDL_INIT_VIDEO) < 0 ) { + ERR("unable to init SDL: %s\n", SDL_GetError()); + } - //get current setting information and calculate screen size - scale_factor = get_emul_win_scale(); - w = lcd_size_width * scale_factor; - h = lcd_size_height * scale_factor; + set_emul_lcd_size(lcd_size_width, lcd_size_height); + set_emul_sdl_bpp(SDL_BPP); + } - set_emul_sdl_bpp(SDL_BPP); + if (sdl_initialized == 0) { + sdl_initialized = 1; - INFO( "maru sdl initialization\n"); - surface_screen = SDL_SetVideoMode(w, h, get_emul_sdl_bpp(), SDL_FLAGS); - if (surface_screen == NULL) { - ERR("Could not open SDL display (%dx%dx%d): %s\n", w, h, get_emul_sdl_bpp(), SDL_GetError()); - } + SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); + init_multi_touch_state(); #ifndef _WIN32 - SDL_VERSION(&info.version); - SDL_GetWMInfo(&info); + SDL_VERSION(&info.version); + SDL_GetWMInfo(&info); #endif + } - sdl_initialized = 1; - init_multi_touch_state(); + sdl_alteration = 1; + +#ifdef SDL_THREAD + if (sdl_thread_initialized == 0) { + sdl_thread_initialized = 1; + pthread_t thread_id; + INFO("sdl update thread create\n"); + if (pthread_create(&thread_id, NULL, run_qemu_update, NULL) != 0) { + ERR("pthread_create fail\n"); + return; + } + } +#endif } +void maruskin_sdl_quit(void) +{ + /* remove multi-touch finger points */ + get_emul_multi_touch_state()->multitouch_enable = 0; + clear_finger_slot(); + + if (sdl_opengl == 1) { + glDeleteTextures(1, &texture); + } + + SDL_Quit(); +} + + void maruskin_sdl_resize(void) { SDL_Event ev; @@ -360,6 +477,7 @@ void maruskin_sdl_resize(void) SDL_PushEvent(&ev); } -DisplaySurface* get_qemu_display_surface( void ) { +DisplaySurface* maruskin_sdl_get_display(void) { return qemu_display_surface; } + diff --git a/tizen/src/maru_sdl.h b/tizen/src/maru_sdl.h index 9b6ef15807..5ead7a3150 100644 --- a/tizen/src/maru_sdl.h +++ b/tizen/src/maru_sdl.h @@ -1,11 +1,11 @@ /* - * MARU SDL display driver + * SDL_WINDOWID hack * * Copyright (C) 2011 - 2012 Samsung Electronics Co., Ltd. All rights reserved. * * Contact: - * HyunJun Son <hj79.son@samsung.com> * GiWoong Kim <giwoong.kim@samsung.com> + * SeokYeon Hwang <syeon.hwang@samsung.com> * YeongKyoon Lee <yeongkyoon.lee@samsung.com> * * This program is free software; you can redistribute it and/or @@ -32,24 +32,19 @@ #define MARU_SDL_H_ #include "console.h" - -#if 0 -#ifdef _WIN32 -#include <windows.h> -#include <winbase.h> -#endif -#endif - #include <SDL.h> #include <SDL_syswm.h> #include "qemu-common.h" -#define SDL_USER_EVENT_CODE_HARDKEY 1 -void maruskin_display_init(DisplayState *ds); -void maruskin_sdl_init(uint64 swt_handle, int lcd_size_width, int lcd_size_height); +void qemu_ds_sdl_update(DisplayState *ds, int x, int y, int w, int h); +void qemu_ds_sdl_resize(DisplayState *ds); +void qemu_ds_sdl_refresh(DisplayState *ds); + +void maruskin_sdl_init(uint64 swt_handle, int lcd_size_width, int lcd_size_height, bool is_resize); void maruskin_sdl_resize(void); +void maruskin_sdl_quit(void); -DisplaySurface* get_qemu_display_surface( void ); +DisplaySurface* maruskin_sdl_get_display(void); #endif /* MARU_SDL_H_ */ diff --git a/tizen/src/maru_shm.c b/tizen/src/maru_shm.c new file mode 100644 index 0000000000..248445ce55 --- /dev/null +++ b/tizen/src/maru_shm.c @@ -0,0 +1,62 @@ +/* + * Shared memory + * + * Copyright (C) 2011 - 2012 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim <giwoong.kim@samsung.com> + * SeokYeon Hwang <syeon.hwang@samsung.com> + * YeongKyoon Lee <yeongkyoon.lee@samsung.com> + * + * This program 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. + * + * This program 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + + +#include "maru_shm.h" +#include "emul_state.h" +#include "debug_ch.h" + +MULTI_DEBUG_CHANNEL(tizen, maru_shm); + + +void qemu_ds_shm_update(DisplayState *ds, int x, int y, int w, int h) +{ + //TODO: +} + +void qemu_ds_shm_resize(DisplayState *ds) +{ + //TODO: +} + +void qemu_ds_shm_refresh(DisplayState *ds) +{ + //TODO: +} + +void maruskin_shm_init(uint64 swt_handle, int lcd_size_width, int lcd_size_height, bool is_resize) +{ + INFO("maru shm initialization = %d\n", is_resize); + + if (is_resize == FALSE) { //once + set_emul_lcd_size(lcd_size_width, lcd_size_height); + set_emul_sdl_bpp(32); + } +} + diff --git a/tizen/src/maru_shm.h b/tizen/src/maru_shm.h new file mode 100644 index 0000000000..12035b4aff --- /dev/null +++ b/tizen/src/maru_shm.h @@ -0,0 +1,42 @@ +/* + * Shared memory + * + * Copyright (C) 2011 - 2012 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim <giwoong.kim@samsung.com> + * SeokYeon Hwang <syeon.hwang@samsung.com> + * YeongKyoon Lee <yeongkyoon.lee@samsung.com> + * + * This program 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. + * + * This program 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + + +#ifndef MARU_SHM_H_ +#define MARU_SHM_H_ + +#include "console.h" + + +void qemu_ds_shm_update(DisplayState *ds, int x, int y, int w, int h); +void qemu_ds_shm_resize(DisplayState *ds); +void qemu_ds_shm_refresh(DisplayState *ds); +void maruskin_shm_init(uint64 swt_handle, int lcd_size_width, int lcd_size_height, bool is_resize); + +#endif /* MARU_SHM_H_ */ diff --git a/tizen/src/mloop_event.c b/tizen/src/mloop_event.c index e5a17dd67e..3d4570e2b9 100644 --- a/tizen/src/mloop_event.c +++ b/tizen/src/mloop_event.c @@ -39,6 +39,8 @@ #include "hw/usb.h" #include "hw/irq.h" #include "mloop_event.h" +#include "console.h" +#include "emul_state.h" #define error_report(x, ...) @@ -65,6 +67,7 @@ struct mloop_evpack { #define MLOOP_EVTYPE_USB_DEL 2 #define MLOOP_EVTYPE_INTR_UP 3 #define MLOOP_EVTYPE_INTR_DOWN 4 +#define MLLOP_EVTYPE_HWKEY 5 static struct mloop_evsock mloop = {-1,0,0}; @@ -236,6 +239,27 @@ static void mloop_evhandle_intr_down(long data) qemu_irq_lower((qemu_irq)data); } +static void mloop_evhandle_hwkey(struct mloop_evpack* pack) +{ + int event_type; + int keycode; + + memcpy(&event_type, pack->data, sizeof(int)); + memcpy(&keycode, pack->data + sizeof(int), sizeof(int)); + + if (KEY_PRESSED == event_type) { + if (kbd_mouse_is_absolute()) { + ps2kbd_put_keycode(keycode & 0x7f); + } + } else if ( KEY_RELEASED == event_type ) { + if (kbd_mouse_is_absolute()) { + ps2kbd_put_keycode(keycode | 0x80); + } + } else { + fprintf(stderr, "Unknown hardkey event type.[event_type:%d, keycode:%d]", event_type, keycode); + } +} + static void mloop_evcb_recv(struct mloop_evsock *ev) { struct mloop_evpack pack; @@ -273,6 +297,9 @@ static void mloop_evcb_recv(struct mloop_evsock *ev) case MLOOP_EVTYPE_INTR_DOWN: mloop_evhandle_intr_down(ntohl(*(long*)&pack.data[0])); break; + case MLLOP_EVTYPE_HWKEY: + mloop_evhandle_hwkey(&pack); + break; default: break; } @@ -355,3 +382,18 @@ void mloop_evcmd_lower_intr(void *irq) *(long*)&pack.data[0] = htonl((long)irq); mloop_evsock_send(&mloop, &pack); } + +void mloop_evcmd_hwkey(int event_type, int keycode) +{ + struct mloop_evpack pack; + + pack.type = htons(MLLOP_EVTYPE_HWKEY); + pack.size = htons(5 + 8); //TODO: ? + + memcpy(pack.data, &event_type, sizeof(int)); + memcpy(pack.data + sizeof(int), &keycode, sizeof(int)); + //pack.data = htons(pack.data); + + mloop_evsock_send(&mloop, &pack); +} + diff --git a/tizen/src/mloop_event.h b/tizen/src/mloop_event.h index 48c07826fb..ce0ff3ec39 100644 --- a/tizen/src/mloop_event.h +++ b/tizen/src/mloop_event.h @@ -46,6 +46,8 @@ void mloop_evcmd_set_usbdisk(void *dev); void mloop_evcmd_raise_intr(void *irq); void mloop_evcmd_lower_intr(void *irq); +void mloop_evcmd_hwkey(int event_type, int keycode); + #ifdef __cplusplus } #endif diff --git a/tizen/src/option.c b/tizen/src/option.c index 44f659197c..6ee0f43c78 100644 --- a/tizen/src/option.c +++ b/tizen/src/option.c @@ -35,7 +35,7 @@ */ #include "option.h" - +#include "emulator.h" #ifndef _WIN32 #include <sys/ioctl.h> #include <sys/types.h> @@ -57,6 +57,11 @@ #include "debug_ch.h" +#define HTTP_PROTOCOL "http=" +#define HTTPS_PROTOCOL "https=" +#define FTP_PROTOCOL "ftp=" +#define SOCKS_PROTOCOL "socks=" + //DEFAULT_DEBUG_CHANNEL(tizen); MULTI_DEBUG_CHANNEL(tizen, option); @@ -129,15 +134,92 @@ int gethostDNS(char *dns1, char *dns2) } free(pAdapterAddr); #endif + + // by caramis... change DNS address if localhost has DNS server or DNS cache. + if(!strncmp(dns1, "127.0.0.1", 9) || !strncmp(dns1, "localhost", 9)) { + strncpy(dns1, "10.0.2.2", 9); + } + if(!strncmp(dns2, "127.0.0.1", 9) || !strncmp(dns2, "localhost", 9)) { + strncpy(dns2, "10.0.2.2", 9); + } + return 0; } +void remove_protocol(char *src, char *dst, const char *protocol) +{ + int len = strlen(protocol); + int i, j; + int max_len = strlen(src); + + for(i = len, j = 0; i < max_len; i++) + { + dst[j++] = src[i]; + } + + dst[j] = '\0'; +} + +void getlinuxproxy(char *http_proxy, char *https_proxy, char *ftp_proxy, char *socks_proxy) +{ + char buf[MAXLEN]; + FILE *output; + memset(buf, 0, MAXLEN); + + output = popen("gconftool-2 --get /system/http_proxy/host", "r"); + fscanf(output , "%s", buf); + sprintf(http_proxy, "%s", buf); + pclose(output); + + output = popen("gconftool-2 --get /system/http_proxy/port", "r"); + fscanf(output , "%s", buf); + sprintf(http_proxy, "%s:%s", http_proxy, buf); + pclose(output); + memset(buf, 0, MAXLEN); + INFO("http_proxy : %s\n", http_proxy); + + output = popen("gconftool-2 --get /system/proxy/secure_host", "r"); + fscanf(output , "%s", buf); + sprintf(https_proxy, "%s", buf); + pclose(output); + + output = popen("gconftool-2 --get /system/proxy/secure_port", "r"); + fscanf(output , "%s", buf); + sprintf(https_proxy, "%s:%s", https_proxy, buf); + pclose(output); + memset(buf, 0, MAXLEN); + INFO("https_proxy : %s\n", https_proxy); + + output = popen("gconftool-2 --get /system/proxy/ftp_host", "r"); + fscanf(output , "%s", buf); + sprintf(ftp_proxy, "%s", buf); + pclose(output); + + output = popen("gconftool-2 --get /system/proxy/ftp_port", "r"); + fscanf(output , "%s", buf); + sprintf(ftp_proxy, "%s:%s", ftp_proxy, buf); + pclose(output); + memset(buf, 0, MAXLEN); + INFO("ftp_proxy : %s\n", ftp_proxy); + + output = popen("gconftool-2 --get /system/proxy/socks_host", "r"); + fscanf(output , "%s", buf); + sprintf(socks_proxy, "%s", buf); + pclose(output); + + output = popen("gconftool-2 --get /system/proxy/socks_port", "r"); + fscanf(output , "%s", buf); + sprintf(socks_proxy, "%s:%s", socks_proxy, buf); + pclose(output); + INFO("socks_proxy : %s\n", socks_proxy); +} + /** @brief get host proxy server address @param proxy: return value (proxy server address) @return always 0 */ -int gethostproxy(char *proxy) +int gethostproxy(char *http_proxy, char *https_proxy, char *ftp_proxy, char *socks_proxy) { #ifndef _WIN32 char buf[255]; @@ -148,17 +230,8 @@ int gethostproxy(char *proxy) pclose(output); if (strcmp(buf, "manual") == 0){ - output = popen("gconftool-2 --get /system/http_proxy/host", "r"); - fscanf(output , "%s", buf); - sprintf(proxy, "%s", buf); - pclose(output); - - output = popen("gconftool-2 --get /system/http_proxy/port", "r"); - fscanf(output , "%s", buf); - sprintf(proxy, "%s:%s", proxy, buf); - pclose(output); - - }else if (strcmp(buf, "auto") == 0){ + getlinuxproxy(http_proxy, https_proxy, ftp_proxy, socks_proxy); + }else if (strcmp(buf, "auto") == 0){ INFO( "Emulator can't support automatic proxy currently. starts up with normal proxy.\n"); //can't support proxy auto setting // output = popen("gconftool-2 --get /system/proxy/autoconfig_url", "r"); @@ -172,6 +245,9 @@ int gethostproxy(char *proxy) int nRet; LONG lRet; BYTE *proxyenable, *proxyserver; + char *p; + char *real_proxy; + DWORD dwLength = 0; nRet = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", @@ -234,8 +310,39 @@ int gethostproxy(char *proxy) RegCloseKey(hKey); return 0; } - if (proxyserver != NULL) strcpy(proxy, (char*)proxyserver); - free(proxyserver); + if((char*)proxyserver != NULL) { + INFO("proxy value: is %s\n", (char*)proxyserver); + for(p = strtok((char*)proxyserver, ";"); p; p = strtok(NULL, ";")){ + real_proxy = malloc(MAXLEN); + if(strstr(p, HTTP_PROTOCOL)) { + remove_protocol(p, real_proxy, HTTP_PROTOCOL); + strcpy(http_proxy, real_proxy); + } + else if(strstr(p, HTTPS_PROTOCOL)) { + remove_protocol(p, real_proxy, HTTPS_PROTOCOL); + strcpy(https_proxy, real_proxy); + } + else if(strstr(p, FTP_PROTOCOL)) { + remove_protocol(p, real_proxy, FTP_PROTOCOL); + strcpy(ftp_proxy, real_proxy); + } + else if(strstr(p, SOCKS_PROTOCOL)) { + remove_protocol(p, real_proxy, SOCKS_PROTOCOL); + strcpy(socks_proxy, real_proxy); + } + else { + INFO("all protocol uses the same proxy server: %s\n", p); + strcpy(http_proxy, p); + strcpy(https_proxy, p); + strcpy(ftp_proxy, p); + strcpy(socks_proxy, p); + } + } + } + else { + fprintf(stderr, "proxy is null\n"); + return 0; + } RegCloseKey(hKey); #endif return 0; diff --git a/tizen/src/option.h b/tizen/src/option.h index f7b1ddfd83..397f306ea8 100644 --- a/tizen/src/option.h +++ b/tizen/src/option.h @@ -44,6 +44,8 @@ #include <string.h> int gethostDNS(char *dns1, char *dns2); -int gethostproxy(char *proxy); +int gethostproxy(char *http_proxy, char *https_proxy, char *ftp_proxy, char *socks_proxy); +void getlinuxproxy(char *http_proxy, char *https_proxy, char *ftp_proxy, char *socks_proxy); +void remove_protocol(char *src, char *dst, const char *protocol); #endif diff --git a/tizen/src/skin/client/.classpath b/tizen/src/skin/client/.classpath index 957bee2936..fb93363cc1 100644 --- a/tizen/src/skin/client/.classpath +++ b/tizen/src/skin/client/.classpath @@ -4,6 +4,6 @@ <classpathentry kind="src" path="jaxb_src"/> <classpathentry kind="src" path="resource"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> - <classpathentry kind="lib" path="lib/swt/gtk-linux/swt.jar" sourcepath="lib/swt/gtk-linux/src.zip"/> + <classpathentry kind="lib" path="lib/swt.jar" sourcepath="lib/src.zip"/> <classpathentry kind="output" path="bin"/> </classpath> diff --git a/tizen/src/skin/client/build.xml b/tizen/src/skin/client/build.xml index 71b52a0294..b4eb298c65 100644 --- a/tizen/src/skin/client/build.xml +++ b/tizen/src/skin/client/build.xml @@ -1,24 +1,29 @@ <?xml version="1.0" standalone="yes"?> -<project name="emulator-skin" basedir="." default="linux-jar"> +<project name="emulator-skin" basedir="." default="make-jar"> + <condition property="isWindows"> + <os family="windows" /> + </condition> + <condition property="isLinux"> + <os family="unix" /> + </condition> + <condition property="isMac"> + <os family="mac" /> + </condition> + + <property environment="env" /> <property name="jar.file" value="emulator-skin.jar" /> <property name="mainclass" value="org.tizen.emulator.skin.EmulatorSkinMain" /> <property name="swt.file" value="swt.jar" /> - <path id="linux-classpath"> - <fileset dir="lib/swt/gtk-linux" includes="swt.jar" /> - </path> - <path id="windows-classpath"> - <fileset dir="lib/swt/win32-win32" includes="swt.jar" /> - </path> - <path id="mac-classpath"> - <fileset dir="lib/swt/cocoa-macosx" includes="swt.jar" /> + <path id="classpath"> + <fileset dir="lib" includes="${swt.file}" /> </path> <target name="clean"> <echo message="cleaning..." /> - <delete dir="dist" /> + <delete dir="build" /> <delete file="${jar.file}" /> </target> @@ -42,34 +47,20 @@ </propertyfile> </target> - <target name="linux-compile" depends="make-properties"> - <echo message="compiling..." /> - <delete dir="build" /> + <target name="prepare-compile" depends="make-properties"> + <echo message="prepare for compile..." /> + <delete dir="build" /> <mkdir dir="build" /> - <javac encoding="UTF-8" fork="true" srcdir="src:jaxb_src" destdir="build" debug="on" memorymaximumsize="128m"> - <classpath refid="linux-classpath" /> - </javac> - </target> - - <target name="windows-compile" depends="make-properties"> - <echo message="compiling..." /> - <delete dir="build" /> - <mkdir dir="build" /> - <javac encoding="UTF-8" fork="true" srcdir="src:jaxb_src" destdir="build" debug="on" memorymaximumsize="128m"> - <classpath refid="windows-classpath" /> - </javac> </target> - <target name="mac-compile" depends="make-properties"> + <target name="compile" depends="prepare-compile"> <echo message="compiling..." /> - <delete dir="build" /> - <mkdir dir="build" /> <javac encoding="UTF-8" fork="true" srcdir="src:jaxb_src" destdir="build" debug="on" memorymaximumsize="128m"> - <classpath refid="mac-classpath" /> + <classpath refid="classpath" /> </javac> </target> - <target name="linux-jar" depends="linux-compile"> + <target name="create-jar"> <echo message="creating jar..." /> <mkdir dir="build/icons" /> <copy todir="build/icons"> @@ -79,42 +70,63 @@ <fileset file="src/about.properties" /> <manifest> <attribute name="Main-Class" value="${mainclass}" /> - <attribute name="Class-path" value="lib/swt/gtk-linux/${swt.file}" /> + <attribute name="Class-path" value="${swt.file}" /> </manifest> </jar> <delete dir="build" /> </target> - <target name="windows-jar" depends="windows-compile"> - <echo message="creating jar..." /> - <mkdir dir="build/icons" /> - <copy todir="build/icons"> - <fileset dir="resource/icons" /> - </copy> - <jar jarfile="${jar.file}" basedir="build" duplicate="add"> - <fileset file="src/about.properties" /> - <manifest> - <attribute name="Main-Class" value="${mainclass}" /> - <attribute name="Class-path" value="lib/swt/win32-win32/${swt.file}" /> - </manifest> - </jar> - <delete dir="build" /> + <target name="create-native-linux" if="isLinux"> + <echo message="create native shared library on linux..." /> + <javah classpath="build;lib/swt.jar" destdir="native_src"> + <class name="org.tizen.emulator.skin.EmulatorSkin" /> + </javah> + <exec dir="native_src" executable="gcc" failifexecutionfails="false"> + <arg line="-shared" /> + <arg line="-c" /> + <arg line="Share.c" /> + <arg line="-o" /> + <arg line="libshare.so" /> + <arg line="-I${env.JAVA_HOME}/include" /> + <arg line="-fPIC" /> + </exec> + <delete> + <fileset dir="native_src" includes="**/*.h" /> + </delete> </target> - <target name="mac-jar" depends="mac-compile"> - <echo message="creating jar..." /> - <mkdir dir="build/icons" /> - <copy todir="build/icons"> - <fileset dir="resource/icons" /> - </copy> - <jar jarfile="${jar.file}" basedir="build" duplicate="add"> - <fileset file="src/about.properties" /> - <manifest> - <attribute name="Main-Class" value="${mainclass}" /> - <attribute name="Class-path" value="lib/swt/cocoa-macosx/${swt.file}" /> - </manifest> - </jar> - <delete dir="build" /> + <target name="create-native-mac" if="isMac"> + <echo message="create native shared library on mac..." /> + <javah classpath="build;lib/swt.jar" destdir="native_src"> + <class name="org.tizen.emulator.skin.EmulatorSkin" /> + </javah> + <exec dir="native_src" executable="gcc" failifexecutionfails="false"> + <arg line="-dynamiclib" /> + <arg line="-c" /> + <arg line="Share.c" /> + <arg line="-o" /> + <arg line="libshare.dylib" /> + <arg line="-I${env.JAVA_HOME}/Headers" /> + <arg line="-fPIC" /> + </exec> + <delete> + <fileset dir="native_src" includes="**/*.h" /> + </delete> + </target> + + <target name="make-jar" depends="compile, create-native-linux, create-native-mac, create-jar" /> + + <!-- for dibs system... --> + <path id="classpath-dibs"> + <fileset dir="${classpath.dibs}" includes="${swt.file}" /> + </path> + + <target name="compile-dibs" depends="prepare-compile"> + <echo message="compiling..." /> + <javac encoding="UTF-8" fork="true" srcdir="src:jaxb_src" destdir="build" debug="on" memorymaximumsize="128m"> + <classpath refid="classpath-dibs" /> + </javac> </target> -</project>
\ No newline at end of file + <target name="make-jar-dibs" depends="compile-dibs, create-native-linux, create-native-mac, create-jar" /> +</project> diff --git a/tizen/src/skin/client/native_src/Share.c b/tizen/src/skin/client/native_src/Share.c new file mode 100644 index 0000000000..20a03e9596 --- /dev/null +++ b/tizen/src/skin/client/native_src/Share.c @@ -0,0 +1,66 @@ +#include <jni.h> +#include <stdio.h> +#include <unistd.h> +#include <stdlib.h> +#include <sys/types.h> +#include <sys/ipc.h> +#include <sys/shm.h> +#include "org_tizen_emulator_skin_EmulatorSkin.h" + + +void *shared_memory = (void *)0; +int shmid; + + +JNIEXPORT jint JNICALL Java_org_tizen_emulator_skin_EmulatorSkin_shmget + (JNIEnv *env, jobject obj, jint vga_ram_size) +{ + int mykey = getuid(); + + shmid = shmget((key_t)mykey, (size_t)vga_ram_size, 0666 | IPC_CREAT); + if (shmid == -1) { + return 1; + } + + /* We now make the shared memory accessible to the program. */ + shared_memory = shmat(shmid, (void *)0, 0); + if (shared_memory == (void *)-1) { + return 2; + } + + //printf("Memory attached at %X\n", (int)shared_memory); + + return 0; +} + +JNIEXPORT jint JNICALL Java_org_tizen_emulator_skin_EmulatorSkin_shmdt + (JNIEnv *env, jobject obj) +{ + /* Lastly, the shared memory is detached */ + if (shmdt(shared_memory) == -1) { + return 1; + } + + return 0; +} + +JNIEXPORT jint JNICALL Java_org_tizen_emulator_skin_EmulatorSkin_getPixels + (JNIEnv *env, jobject obj, jintArray array) +{ + int i = 0; + int len = (*env)->GetArrayLength(env, array); + if (len <= 0) { + return -1; + } + + int *framebuffer = (int *)shared_memory; + + jint value = 0xFFFFFFFF; + for(i = 0; i < len; i++) { + value = framebuffer[i]; + (*env)->SetIntArrayRegion(env, array, i, 1, &value); + } + + return len; +} + diff --git a/tizen/src/skin/client/skins/emul_320x480/default.dbi b/tizen/src/skin/client/skins/emul-320x480/default.dbi index b57c94a10f..517493cf64 100644 --- a/tizen/src/skin/client/skins/emul_320x480/default.dbi +++ b/tizen/src/skin/client/skins/emul-320x480/default.dbi @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <EmulatorUI xmlns="http://www.tizen.org/emulator/dbi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <dbi version="2.0"/> <rotations> <rotation name="Portrait"> <lcd id="0"> diff --git a/tizen/src/skin/client/skins/emul_320x480/default_0.png b/tizen/src/skin/client/skins/emul-320x480/default_0.png Binary files differindex 3409f5f16d..3409f5f16d 100644 --- a/tizen/src/skin/client/skins/emul_320x480/default_0.png +++ b/tizen/src/skin/client/skins/emul-320x480/default_0.png diff --git a/tizen/src/skin/client/skins/emul_320x480/default_0_p.png b/tizen/src/skin/client/skins/emul-320x480/default_0_p.png Binary files differindex 66932f6430..66932f6430 100644 --- a/tizen/src/skin/client/skins/emul_320x480/default_0_p.png +++ b/tizen/src/skin/client/skins/emul-320x480/default_0_p.png diff --git a/tizen/src/skin/client/skins/emul_320x480/default_180.png b/tizen/src/skin/client/skins/emul-320x480/default_180.png Binary files differindex 692ca84956..692ca84956 100644 --- a/tizen/src/skin/client/skins/emul_320x480/default_180.png +++ b/tizen/src/skin/client/skins/emul-320x480/default_180.png diff --git a/tizen/src/skin/client/skins/emul_320x480/default_180_p.png b/tizen/src/skin/client/skins/emul-320x480/default_180_p.png Binary files differindex c7641f36e7..c7641f36e7 100644 --- a/tizen/src/skin/client/skins/emul_320x480/default_180_p.png +++ b/tizen/src/skin/client/skins/emul-320x480/default_180_p.png diff --git a/tizen/src/skin/client/skins/emul_320x480/default_L90.png b/tizen/src/skin/client/skins/emul-320x480/default_L90.png Binary files differindex 3150710ce2..3150710ce2 100644 --- a/tizen/src/skin/client/skins/emul_320x480/default_L90.png +++ b/tizen/src/skin/client/skins/emul-320x480/default_L90.png diff --git a/tizen/src/skin/client/skins/emul_320x480/default_L90_p.png b/tizen/src/skin/client/skins/emul-320x480/default_L90_p.png Binary files differindex b1b4d65f05..b1b4d65f05 100644 --- a/tizen/src/skin/client/skins/emul_320x480/default_L90_p.png +++ b/tizen/src/skin/client/skins/emul-320x480/default_L90_p.png diff --git a/tizen/src/skin/client/skins/emul_320x480/default_R90.png b/tizen/src/skin/client/skins/emul-320x480/default_R90.png Binary files differindex 691bcef729..691bcef729 100644 --- a/tizen/src/skin/client/skins/emul_320x480/default_R90.png +++ b/tizen/src/skin/client/skins/emul-320x480/default_R90.png diff --git a/tizen/src/skin/client/skins/emul_320x480/default_R90_p.png b/tizen/src/skin/client/skins/emul-320x480/default_R90_p.png Binary files differindex 021e7bd09b..021e7bd09b 100644 --- a/tizen/src/skin/client/skins/emul_320x480/default_R90_p.png +++ b/tizen/src/skin/client/skins/emul-320x480/default_R90_p.png diff --git a/tizen/src/skin/client/skins/emul_480x800/default.dbi b/tizen/src/skin/client/skins/emul-480x800/default.dbi index 5519f5618e..1403fe8628 100644 --- a/tizen/src/skin/client/skins/emul_480x800/default.dbi +++ b/tizen/src/skin/client/skins/emul-480x800/default.dbi @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <EmulatorUI xmlns="http://www.tizen.org/emulator/dbi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <dbi version="2.0"/> <rotations> <rotation name="Portrait"> <lcd id="0"> diff --git a/tizen/src/skin/client/skins/emul_480x800/default_0.png b/tizen/src/skin/client/skins/emul-480x800/default_0.png Binary files differindex 6d33f38e8f..6d33f38e8f 100644 --- a/tizen/src/skin/client/skins/emul_480x800/default_0.png +++ b/tizen/src/skin/client/skins/emul-480x800/default_0.png diff --git a/tizen/src/skin/client/skins/emul_480x800/default_0_p.png b/tizen/src/skin/client/skins/emul-480x800/default_0_p.png Binary files differindex 2f1da59f87..2f1da59f87 100644 --- a/tizen/src/skin/client/skins/emul_480x800/default_0_p.png +++ b/tizen/src/skin/client/skins/emul-480x800/default_0_p.png diff --git a/tizen/src/skin/client/skins/emul_480x800/default_180.png b/tizen/src/skin/client/skins/emul-480x800/default_180.png Binary files differindex 5e8d2766ed..5e8d2766ed 100644 --- a/tizen/src/skin/client/skins/emul_480x800/default_180.png +++ b/tizen/src/skin/client/skins/emul-480x800/default_180.png diff --git a/tizen/src/skin/client/skins/emul_480x800/default_180_p.png b/tizen/src/skin/client/skins/emul-480x800/default_180_p.png Binary files differindex 8b50699cdc..8b50699cdc 100644 --- a/tizen/src/skin/client/skins/emul_480x800/default_180_p.png +++ b/tizen/src/skin/client/skins/emul-480x800/default_180_p.png diff --git a/tizen/src/skin/client/skins/emul_480x800/default_L90.png b/tizen/src/skin/client/skins/emul-480x800/default_L90.png Binary files differindex 76d008f51e..76d008f51e 100644 --- a/tizen/src/skin/client/skins/emul_480x800/default_L90.png +++ b/tizen/src/skin/client/skins/emul-480x800/default_L90.png diff --git a/tizen/src/skin/client/skins/emul_480x800/default_L90_p.png b/tizen/src/skin/client/skins/emul-480x800/default_L90_p.png Binary files differindex ca23955550..ca23955550 100644 --- a/tizen/src/skin/client/skins/emul_480x800/default_L90_p.png +++ b/tizen/src/skin/client/skins/emul-480x800/default_L90_p.png diff --git a/tizen/src/skin/client/skins/emul_480x800/default_R90.png b/tizen/src/skin/client/skins/emul-480x800/default_R90.png Binary files differindex 7be72f73f8..7be72f73f8 100644 --- a/tizen/src/skin/client/skins/emul_480x800/default_R90.png +++ b/tizen/src/skin/client/skins/emul-480x800/default_R90.png diff --git a/tizen/src/skin/client/skins/emul_480x800/default_R90_p.png b/tizen/src/skin/client/skins/emul-480x800/default_R90_p.png Binary files differindex 98de699ac3..98de699ac3 100644 --- a/tizen/src/skin/client/skins/emul_480x800/default_R90_p.png +++ b/tizen/src/skin/client/skins/emul-480x800/default_R90_p.png diff --git a/tizen/src/skin/client/skins/emul_600x1024/default.dbi b/tizen/src/skin/client/skins/emul-600x1024/default.dbi index 42b5d6fbf9..ab5ac5efac 100644 --- a/tizen/src/skin/client/skins/emul_600x1024/default.dbi +++ b/tizen/src/skin/client/skins/emul-600x1024/default.dbi @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <EmulatorUI xmlns="http://www.tizen.org/emulator/dbi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <dbi version="2.0"/> <rotations> <rotation name="Portrait"> <lcd id="0"> diff --git a/tizen/src/skin/client/skins/emul_600x1024/default_0.png b/tizen/src/skin/client/skins/emul-600x1024/default_0.png Binary files differindex bf63d2fc0e..bf63d2fc0e 100644 --- a/tizen/src/skin/client/skins/emul_600x1024/default_0.png +++ b/tizen/src/skin/client/skins/emul-600x1024/default_0.png diff --git a/tizen/src/skin/client/skins/emul_600x1024/default_0_p.png b/tizen/src/skin/client/skins/emul-600x1024/default_0_p.png Binary files differindex 7e165904df..7e165904df 100644 --- a/tizen/src/skin/client/skins/emul_600x1024/default_0_p.png +++ b/tizen/src/skin/client/skins/emul-600x1024/default_0_p.png diff --git a/tizen/src/skin/client/skins/emul_600x1024/default_180.png b/tizen/src/skin/client/skins/emul-600x1024/default_180.png Binary files differindex 198d4e966c..198d4e966c 100644 --- a/tizen/src/skin/client/skins/emul_600x1024/default_180.png +++ b/tizen/src/skin/client/skins/emul-600x1024/default_180.png diff --git a/tizen/src/skin/client/skins/emul_600x1024/default_180_p.png b/tizen/src/skin/client/skins/emul-600x1024/default_180_p.png Binary files differindex c77beafa37..c77beafa37 100644 --- a/tizen/src/skin/client/skins/emul_600x1024/default_180_p.png +++ b/tizen/src/skin/client/skins/emul-600x1024/default_180_p.png diff --git a/tizen/src/skin/client/skins/emul_600x1024/default_L90.png b/tizen/src/skin/client/skins/emul-600x1024/default_L90.png Binary files differindex a3a3d40a84..a3a3d40a84 100644 --- a/tizen/src/skin/client/skins/emul_600x1024/default_L90.png +++ b/tizen/src/skin/client/skins/emul-600x1024/default_L90.png diff --git a/tizen/src/skin/client/skins/emul_600x1024/default_L90_p.png b/tizen/src/skin/client/skins/emul-600x1024/default_L90_p.png Binary files differindex 3a110eb666..3a110eb666 100644 --- a/tizen/src/skin/client/skins/emul_600x1024/default_L90_p.png +++ b/tizen/src/skin/client/skins/emul-600x1024/default_L90_p.png diff --git a/tizen/src/skin/client/skins/emul_600x1024/default_R90.png b/tizen/src/skin/client/skins/emul-600x1024/default_R90.png Binary files differindex 2b94d2183d..2b94d2183d 100644 --- a/tizen/src/skin/client/skins/emul_600x1024/default_R90.png +++ b/tizen/src/skin/client/skins/emul-600x1024/default_R90.png diff --git a/tizen/src/skin/client/skins/emul_600x1024/default_R90_p.png b/tizen/src/skin/client/skins/emul-600x1024/default_R90_p.png Binary files differindex ae3b0693d5..ae3b0693d5 100644 --- a/tizen/src/skin/client/skins/emul_600x1024/default_R90_p.png +++ b/tizen/src/skin/client/skins/emul-600x1024/default_R90_p.png diff --git a/tizen/src/skin/client/skins/emul_720x1280/default.dbi b/tizen/src/skin/client/skins/emul-720x1280/default.dbi index 3f4fbb6417..e1392aed2b 100644 --- a/tizen/src/skin/client/skins/emul_720x1280/default.dbi +++ b/tizen/src/skin/client/skins/emul-720x1280/default.dbi @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <EmulatorUI xmlns="http://www.tizen.org/emulator/dbi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <dbi version="2.0"/> <rotations> <rotation name="Portrait"> <lcd id="0"> diff --git a/tizen/src/skin/client/skins/emul_720x1280/default_0.png b/tizen/src/skin/client/skins/emul-720x1280/default_0.png Binary files differindex b1fd216277..b1fd216277 100644 --- a/tizen/src/skin/client/skins/emul_720x1280/default_0.png +++ b/tizen/src/skin/client/skins/emul-720x1280/default_0.png diff --git a/tizen/src/skin/client/skins/emul_720x1280/default_0_p.png b/tizen/src/skin/client/skins/emul-720x1280/default_0_p.png Binary files differindex b3ce60b856..b3ce60b856 100644 --- a/tizen/src/skin/client/skins/emul_720x1280/default_0_p.png +++ b/tizen/src/skin/client/skins/emul-720x1280/default_0_p.png diff --git a/tizen/src/skin/client/skins/emul_720x1280/default_180.png b/tizen/src/skin/client/skins/emul-720x1280/default_180.png Binary files differindex def702877d..def702877d 100644 --- a/tizen/src/skin/client/skins/emul_720x1280/default_180.png +++ b/tizen/src/skin/client/skins/emul-720x1280/default_180.png diff --git a/tizen/src/skin/client/skins/emul_720x1280/default_180_p.png b/tizen/src/skin/client/skins/emul-720x1280/default_180_p.png Binary files differindex 4b6c5a1e67..4b6c5a1e67 100644 --- a/tizen/src/skin/client/skins/emul_720x1280/default_180_p.png +++ b/tizen/src/skin/client/skins/emul-720x1280/default_180_p.png diff --git a/tizen/src/skin/client/skins/emul_720x1280/default_L90.png b/tizen/src/skin/client/skins/emul-720x1280/default_L90.png Binary files differindex 63c2394d92..63c2394d92 100644 --- a/tizen/src/skin/client/skins/emul_720x1280/default_L90.png +++ b/tizen/src/skin/client/skins/emul-720x1280/default_L90.png diff --git a/tizen/src/skin/client/skins/emul_720x1280/default_L90_p.png b/tizen/src/skin/client/skins/emul-720x1280/default_L90_p.png Binary files differindex 5ec17eddce..5ec17eddce 100644 --- a/tizen/src/skin/client/skins/emul_720x1280/default_L90_p.png +++ b/tizen/src/skin/client/skins/emul-720x1280/default_L90_p.png diff --git a/tizen/src/skin/client/skins/emul_720x1280/default_R90.png b/tizen/src/skin/client/skins/emul-720x1280/default_R90.png Binary files differindex 45e869e302..45e869e302 100644 --- a/tizen/src/skin/client/skins/emul_720x1280/default_R90.png +++ b/tizen/src/skin/client/skins/emul-720x1280/default_R90.png diff --git a/tizen/src/skin/client/skins/emul_720x1280/default_R90_p.png b/tizen/src/skin/client/skins/emul-720x1280/default_R90_p.png Binary files differindex 5d2e47dd44..5d2e47dd44 100644 --- a/tizen/src/skin/client/skins/emul_720x1280/default_R90_p.png +++ b/tizen/src/skin/client/skins/emul-720x1280/default_R90_p.png diff --git a/tizen/src/skin/client/skins/emul_3keys_320x480/default.dbi b/tizen/src/skin/client/skins/emul_3keys_320x480/default.dbi deleted file mode 100644 index 4b77adb04a..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_320x480/default.dbi +++ /dev/null @@ -1,244 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<EmulatorUI xmlns="http://www.tizen.org/emulator/dbi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <rotations> - <rotation name="Portrait"> - <lcd id="0"> - <region left="26" top="70" width="320" height="480"/> - </lcd> - <imageList> - <mainImage>default_0.png</mainImage> - <keyPressedImage>default_0_p.png</keyPressedImage> - </imageList> - <keyMapList> - <keyMap> - <region left="71" top="552" width="54" height="54"/> - <eventInfo> - <keyCode>100</keyCode> - <keyName>SEND</keyName> - </eventInfo> - <tooltip>Send</tooltip> - </keyMap> - <keyMap> - <region left="159" top="552" width="54" height="54"/> - <eventInfo> - <keyCode>101</keyCode> - <keyName>HOME</keyName> - </eventInfo> - <tooltip>Home</tooltip> - </keyMap> - <keyMap> - <region left="247" top="552" width="54" height="54"/> - <eventInfo> - <keyCode>102</keyCode> - <keyName>END</keyName> - </eventInfo> - <tooltip>End</tooltip> - </keyMap> - <keyMap> - <region left="362" top="487" width="15" height="70"/> - <eventInfo> - <keyCode>103</keyCode> - <keyName>POWER</keyName> - </eventInfo> - <tooltip>Power</tooltip> - </keyMap> - <keyMap> - <region left="362" top="63" width="15" height="70"/> - <eventInfo> - <keyCode>115</keyCode> - <keyName>VOLUME_UP</keyName> - </eventInfo> - <tooltip>Volume-up</tooltip> - </keyMap> - <keyMap> - <region left="362" top="140" width="15" height="70"/> - <eventInfo> - <keyCode>114</keyCode> - <keyName>VOLUME_DOWN</keyName> - </eventInfo> - <tooltip>Volume-down</tooltip> - </keyMap> - </keyMapList> - </rotation> - <rotation name="Landscape"> - <lcd id="0"> - <region left="70" top="34" width="480" height="320"/> - </lcd> - <imageList> - <mainImage>default_L90.png</mainImage> - <keyPressedImage>default_L90_p.png</keyPressedImage> - </imageList> - <keyMapList> - <keyMap> - <region left="552" top="255" width="54" height="54"/> - <eventInfo> - <keyCode>100</keyCode> - <keyName>SEND</keyName> - </eventInfo> - <tooltip>Send</tooltip> - </keyMap> - <keyMap> - <region left="552" top="167" width="54" height="54"/> - <eventInfo> - <keyCode>101</keyCode> - <keyName>HOME</keyName> - </eventInfo> - <tooltip>Home</tooltip> - </keyMap> - <keyMap> - <region left="552" top="79" width="54" height="54"/> - <eventInfo> - <keyCode>102</keyCode> - <keyName>END</keyName> - </eventInfo> - <tooltip>End</tooltip> - </keyMap> - <keyMap> - <region left="486" top="3" width="70" height="15"/> - <eventInfo> - <keyCode>103</keyCode> - <keyName>POWER</keyName> - </eventInfo> - <tooltip>Power</tooltip> - </keyMap> - <keyMap> - <region left="63" top="3" width="70" height="15"/> - <eventInfo> - <keyCode>115</keyCode> - <keyName>VOLUME_UP</keyName> - </eventInfo> - <tooltip>Volume-up</tooltip> - </keyMap> - <keyMap> - <region left="139" top="3" width="70" height="15"/> - <eventInfo> - <keyCode>114</keyCode> - <keyName>VOLUME_DOWN</keyName> - </eventInfo> - <tooltip>Volume-down</tooltip> - </keyMap> - </keyMapList> - </rotation> - <rotation name="Reverse Portrait"> - <lcd id="0"> - <region left="34" top="70" width="320" height="480"/> - </lcd> - <imageList> - <mainImage>default_180.png</mainImage> - <keyPressedImage>default_180_p.png</keyPressedImage> - </imageList> - <keyMapList> - <keyMap> - <region left="255" top="14" width="54" height="54"/> - <eventInfo> - <keyCode>100</keyCode> - <keyName>SEND</keyName> - </eventInfo> - <tooltip>Send</tooltip> - </keyMap> - <keyMap> - <region left="167" top="14" width="54" height="54"/> - <eventInfo> - <keyCode>101</keyCode> - <keyName>HOME</keyName> - </eventInfo> - <tooltip>Home</tooltip> - </keyMap> - <keyMap> - <region left="79" top="14" width="54" height="54"/> - <eventInfo> - <keyCode>102</keyCode> - <keyName>END</keyName> - </eventInfo> - <tooltip>End</tooltip> - </keyMap> - <keyMap> - <region left="3" top="64" width="15" height="70"/> - <eventInfo> - <keyCode>103</keyCode> - <keyName>POWER</keyName> - </eventInfo> - <tooltip>Power</tooltip> - </keyMap> - <keyMap> - <region left="3" top="488" width="15" height="70"/> - <eventInfo> - <keyCode>115</keyCode> - <keyName>VOLUME_UP</keyName> - </eventInfo> - <tooltip>Volume-up</tooltip> - </keyMap> - <keyMap> - <region left="3" top="412" width="15" height="70"/> - <eventInfo> - <keyCode>114</keyCode> - <keyName>VOLUME_DOWN</keyName> - </eventInfo> - <tooltip>Volume-down</tooltip> - </keyMap> - </keyMapList> - </rotation> - <rotation name="Reverse Landscape"> - <lcd id="0"> - <region left="70" top="26" width="480" height="320"/> - </lcd> - <imageList> - <mainImage>default_R90.png</mainImage> - <keyPressedImage>default_R90_p.png</keyPressedImage> - </imageList> - <keyMapList> - <keyMap> - <region left="14" top="71" width="54" height="54"/> - <eventInfo> - <keyCode>100</keyCode> - <keyName>SEND</keyName> - </eventInfo> - <tooltip>Send</tooltip> - </keyMap> - <keyMap> - <region left="14" top="159" width="54" height="54"/> - <eventInfo> - <keyCode>101</keyCode> - <keyName>HOME</keyName> - </eventInfo> - <tooltip>Home</tooltip> - </keyMap> - <keyMap> - <region left="14" top="247" width="54" height="54"/> - <eventInfo> - <keyCode>102</keyCode> - <keyName>END</keyName> - </eventInfo> - <tooltip>End</tooltip> - </keyMap> - <keyMap> - <region left="64" top="362" width="70" height="15"/> - <eventInfo> - <keyCode>103</keyCode> - <keyName>POWER</keyName> - </eventInfo> - <tooltip>Power</tooltip> - </keyMap> - <keyMap> - <region left="488" top="362" width="70" height="15"/> - <eventInfo> - <keyCode>115</keyCode> - <keyName>VOLUME_UP</keyName> - </eventInfo> - <tooltip>Volume-up</tooltip> - </keyMap> - <keyMap> - <region left="412" top="362" width="70" height="15"/> - <eventInfo> - <keyCode>114</keyCode> - <keyName>VOLUME_DOWN</keyName> - </eventInfo> - <tooltip>Volume-down</tooltip> - </keyMap> - </keyMapList> - </rotation> - </rotations> - <colors> - <hoverColor B="255" G="255" R="255" /> - </colors> -</EmulatorUI> diff --git a/tizen/src/skin/client/skins/emul_3keys_320x480/default_0.png b/tizen/src/skin/client/skins/emul_3keys_320x480/default_0.png Binary files differdeleted file mode 100644 index d97869a9c5..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_320x480/default_0.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_320x480/default_0_p.png b/tizen/src/skin/client/skins/emul_3keys_320x480/default_0_p.png Binary files differdeleted file mode 100644 index 2ee77feb3b..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_320x480/default_0_p.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_320x480/default_180.png b/tizen/src/skin/client/skins/emul_3keys_320x480/default_180.png Binary files differdeleted file mode 100644 index dcd58a5a33..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_320x480/default_180.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_320x480/default_180_p.png b/tizen/src/skin/client/skins/emul_3keys_320x480/default_180_p.png Binary files differdeleted file mode 100644 index fd36e04010..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_320x480/default_180_p.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_320x480/default_L90.png b/tizen/src/skin/client/skins/emul_3keys_320x480/default_L90.png Binary files differdeleted file mode 100644 index 803dae2e69..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_320x480/default_L90.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_320x480/default_L90_p.png b/tizen/src/skin/client/skins/emul_3keys_320x480/default_L90_p.png Binary files differdeleted file mode 100644 index 3020249c02..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_320x480/default_L90_p.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_320x480/default_R90.png b/tizen/src/skin/client/skins/emul_3keys_320x480/default_R90.png Binary files differdeleted file mode 100644 index c548e13a9e..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_320x480/default_R90.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_320x480/default_R90_p.png b/tizen/src/skin/client/skins/emul_3keys_320x480/default_R90_p.png Binary files differdeleted file mode 100644 index 4e13502d36..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_320x480/default_R90_p.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_480x800/default.dbi b/tizen/src/skin/client/skins/emul_3keys_480x800/default.dbi deleted file mode 100644 index 317d24ac40..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_480x800/default.dbi +++ /dev/null @@ -1,244 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<EmulatorUI xmlns="http://www.tizen.org/emulator/dbi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <rotations> - <rotation name="Portrait"> - <lcd id="0"> - <region height="800" left="35" top="86" width="480"/> - </lcd> - <imageList> - <mainImage>default_0.png</mainImage> - <keyPressedImage>default_0_p.png</keyPressedImage> - </imageList> - <keyMapList> - <keyMap> - <region left="118" top="887" width="74" height="74"/> - <eventInfo> - <keyCode>100</keyCode> - <keyName>SEND</keyName> - </eventInfo> - <tooltip>Send</tooltip> - </keyMap> - <keyMap> - <region height="74" left="238" top="887" width="74"/> - <eventInfo> - <keyCode>101</keyCode> - <keyName>HOME</keyName> - </eventInfo> - <tooltip>Home</tooltip> - </keyMap> - <keyMap> - <region left="360" top="887" width="74" height="74"/> - <eventInfo> - <keyCode>102</keyCode> - <keyName>END</keyName> - </eventInfo> - <tooltip>End</tooltip> - </keyMap> - <keyMap> - <region height="74" left="541" top="819" width="20"/> - <eventInfo> - <keyCode>103</keyCode> - <keyName>POWER</keyName> - </eventInfo> - <tooltip>Power</tooltip> - </keyMap> - <keyMap> - <region height="74" left="541" top="81" width="20"/> - <eventInfo> - <keyCode>115</keyCode> - <keyName>VOLUME_UP</keyName> - </eventInfo> - <tooltip>Volume-up</tooltip> - </keyMap> - <keyMap> - <region height="74" left="541" top="167" width="20"/> - <eventInfo> - <keyCode>114</keyCode> - <keyName>VOLUME_DOWN</keyName> - </eventInfo> - <tooltip>Volume-down</tooltip> - </keyMap> - </keyMapList> - </rotation> - <rotation name="Landscape"> - <lcd id="0"> - <region height="480" left="86" top="46" width="800"/> - </lcd> - <imageList> - <mainImage>default_L90.png</mainImage> - <keyPressedImage>default_L90_p.png</keyPressedImage> - </imageList> - <keyMapList> - <keyMap> - <region left="887" top="369" width="74" height="74"/> - <eventInfo> - <keyCode>100</keyCode> - <keyName>SEND</keyName> - </eventInfo> - <tooltip>Send</tooltip> - </keyMap> - <keyMap> - <region height="74" left="887" top="249" width="74"/> - <eventInfo> - <keyCode>101</keyCode> - <keyName>HOME</keyName> - </eventInfo> - <tooltip>Home</tooltip> - </keyMap> - <keyMap> - <region left="887" top="127" width="74" height="74"/> - <eventInfo> - <keyCode>102</keyCode> - <keyName>END</keyName> - </eventInfo> - <tooltip>End</tooltip> - </keyMap> - <keyMap> - <region height="20" left="818" top="2" width="74"/> - <eventInfo> - <keyCode>103</keyCode> - <keyName>POWER</keyName> - </eventInfo> - <tooltip>Power</tooltip> - </keyMap> - <keyMap> - <region height="20" left="80" top="2" width="74"/> - <eventInfo> - <keyCode>115</keyCode> - <keyName>VOLUME_UP</keyName> - </eventInfo> - <tooltip>Volume-up</tooltip> - </keyMap> - <keyMap> - <region height="20" left="165" top="2" width="74"/> - <eventInfo> - <keyCode>114</keyCode> - <keyName>VOLUME_DOWN</keyName> - </eventInfo> - <tooltip>Volume-down</tooltip> - </keyMap> - </keyMapList> - </rotation> - <rotation name="Reverse Portrait"> - <lcd id="0"> - <region left="46" top="89" width="480" height="800"/> - </lcd> - <imageList> - <mainImage>default_180.png</mainImage> - <keyPressedImage>default_180_p.png</keyPressedImage> - </imageList> - <keyMapList> - <keyMap> - <region left="368" top="14" width="74" height="74"/> - <eventInfo> - <keyCode>100</keyCode> - <keyName>SEND</keyName> - </eventInfo> - <tooltip>Send</tooltip> - </keyMap> - <keyMap> - <region left="249" top="14" width="74" height="74"/> - <eventInfo> - <keyCode>101</keyCode> - <keyName>HOME</keyName> - </eventInfo> - <tooltip>Home</tooltip> - </keyMap> - <keyMap> - <region left="126" top="14" width="74" height="74"/> - <eventInfo> - <keyCode>102</keyCode> - <keyName>END</keyName> - </eventInfo> - <tooltip>End</tooltip> - </keyMap> - <keyMap> - <region left="2" top="84" width="20" height="74"/> - <eventInfo> - <keyCode>103</keyCode> - <keyName>POWER</keyName> - </eventInfo> - <tooltip>Power</tooltip> - </keyMap> - <keyMap> - <region left="2" top="821" width="20" height="74"/> - <eventInfo> - <keyCode>115</keyCode> - <keyName>VOLUME_UP</keyName> - </eventInfo> - <tooltip>Volume-up</tooltip> - </keyMap> - <keyMap> - <region left="2" top="735" width="20" height="74"/> - <eventInfo> - <keyCode>114</keyCode> - <keyName>VOLUME_DOWN</keyName> - </eventInfo> - <tooltip>Volume-down</tooltip> - </keyMap> - </keyMapList> - </rotation> - <rotation name="Reverse Landscape"> - <lcd id="0"> - <region left="90" top="35" width="800" height="480"/> - </lcd> - <imageList> - <mainImage>default_R90.png</mainImage> - <keyPressedImage>default_R90_p.png</keyPressedImage> - </imageList> - <keyMapList> - <keyMap> - <region left="15" top="118" width="74" height="74"/> - <eventInfo> - <keyCode>100</keyCode> - <keyName>SEND</keyName> - </eventInfo> - <tooltip>Send</tooltip> - </keyMap> - <keyMap> - <region left="15" top="239" width="74" height="74"/> - <eventInfo> - <keyCode>101</keyCode> - <keyName>HOME</keyName> - </eventInfo> - <tooltip>Home</tooltip> - </keyMap> - <keyMap> - <region left="15" top="360" width="74" height="74"/> - <eventInfo> - <keyCode>102</keyCode> - <keyName>END</keyName> - </eventInfo> - <tooltip>End</tooltip> - </keyMap> - <keyMap> - <region left="84" top="539" width="74" height="20"/> - <eventInfo> - <keyCode>103</keyCode> - <keyName>POWER</keyName> - </eventInfo> - <tooltip>Power</tooltip> - </keyMap> - <keyMap> - <region left="822" top="539" width="74" height="20"/> - <eventInfo> - <keyCode>115</keyCode> - <keyName>VOLUME_UP</keyName> - </eventInfo> - <tooltip>Volume-up</tooltip> - </keyMap> - <keyMap> - <region left="735" top="539" width="74" height="20"/> - <eventInfo> - <keyCode>114</keyCode> - <keyName>VOLUME_DOWN</keyName> - </eventInfo> - <tooltip>Volume-down</tooltip> - </keyMap> - </keyMapList> - </rotation> - </rotations> - <colors> - <hoverColor B="255" G="255" R="255" /> - </colors> -</EmulatorUI> diff --git a/tizen/src/skin/client/skins/emul_3keys_480x800/default_0.png b/tizen/src/skin/client/skins/emul_3keys_480x800/default_0.png Binary files differdeleted file mode 100644 index 034fb0d36f..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_480x800/default_0.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_480x800/default_0_p.png b/tizen/src/skin/client/skins/emul_3keys_480x800/default_0_p.png Binary files differdeleted file mode 100644 index 195fa2441a..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_480x800/default_0_p.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_480x800/default_180.png b/tizen/src/skin/client/skins/emul_3keys_480x800/default_180.png Binary files differdeleted file mode 100644 index b70abd9353..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_480x800/default_180.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_480x800/default_180_p.png b/tizen/src/skin/client/skins/emul_3keys_480x800/default_180_p.png Binary files differdeleted file mode 100644 index a92a0c7f69..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_480x800/default_180_p.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_480x800/default_L90.png b/tizen/src/skin/client/skins/emul_3keys_480x800/default_L90.png Binary files differdeleted file mode 100644 index 178e55b487..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_480x800/default_L90.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_480x800/default_L90_p.png b/tizen/src/skin/client/skins/emul_3keys_480x800/default_L90_p.png Binary files differdeleted file mode 100644 index 8f4d2f8501..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_480x800/default_L90_p.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_480x800/default_R90.png b/tizen/src/skin/client/skins/emul_3keys_480x800/default_R90.png Binary files differdeleted file mode 100644 index b9261b565f..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_480x800/default_R90.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_480x800/default_R90_p.png b/tizen/src/skin/client/skins/emul_3keys_480x800/default_R90_p.png Binary files differdeleted file mode 100644 index 5c060a48af..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_480x800/default_R90_p.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_600x1024/default.dbi b/tizen/src/skin/client/skins/emul_3keys_600x1024/default.dbi deleted file mode 100644 index 889518888d..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_600x1024/default.dbi +++ /dev/null @@ -1,244 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<EmulatorUI xmlns="http://www.tizen.org/emulator/dbi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <rotations> - <rotation name="Portrait"> - <lcd id="0"> - <region left="52" top="109" width="600" height="1024" scale="1"/> - </lcd> - <imageList> - <mainImage>default_0.png</mainImage> - <keyPressedImage>default_0_p.png</keyPressedImage> - </imageList> - <keyMapList> - <keyMap> - <region left="151" top="1139" width="84" height="84"/> - <eventInfo> - <keyCode>100</keyCode> - <keyName>SEND</keyName> - </eventInfo> - <tooltip>Send</tooltip> - </keyMap> - <keyMap> - <region left="310" top="1139" width="84" height="84"/> - <eventInfo> - <keyCode>101</keyCode> - <keyName>HOME</keyName> - </eventInfo> - <tooltip>Home</tooltip> - </keyMap> - <keyMap> - <region left="471" top="1139" width="84" height="84"/> - <eventInfo> - <keyCode>102</keyCode> - <keyName>END</keyName> - </eventInfo> - <tooltip>End</tooltip> - </keyMap> - <keyMap> - <region left="690" top="1055" width="24" height="88"/> - <eventInfo> - <keyCode>103</keyCode> - <keyName>POWER</keyName> - </eventInfo> - <tooltip>Power</tooltip> - </keyMap> - <keyMap> - <region left="690" top="101" width="24" height="88"/> - <eventInfo> - <keyCode>115</keyCode> - <keyName>VOLUME_UP</keyName> - </eventInfo> - <tooltip>Volume-up</tooltip> - </keyMap> - <keyMap> - <region left="690" top="194" width="24" height="88"/> - <eventInfo> - <keyCode>114</keyCode> - <keyName>VOLUME_DOWN</keyName> - </eventInfo> - <tooltip>Volume-down</tooltip> - </keyMap> - </keyMapList> - </rotation> - <rotation name="Landscape"> - <lcd id="0"> - <region left="109" top="62" width="1024" height="600" scale="1"/> - </lcd> - <imageList> - <mainImage>default_L90.png</mainImage> - <keyPressedImage>default_L90_p.png</keyPressedImage> - </imageList> - <keyMapList> - <keyMap> - <region left="1138" top="480" width="84" height="84"/> - <eventInfo> - <keyCode>100</keyCode> - <keyName>SEND</keyName> - </eventInfo> - <tooltip>Send</tooltip> - </keyMap> - <keyMap> - <region left="1138" top="321" width="84" height="84"/> - <eventInfo> - <keyCode>101</keyCode> - <keyName>HOME</keyName> - </eventInfo> - <tooltip>Home</tooltip> - </keyMap> - <keyMap> - <region left="1138" top="161" width="84" height="84"/> - <eventInfo> - <keyCode>102</keyCode> - <keyName>END</keyName> - </eventInfo> - <tooltip>End</tooltip> - </keyMap> - <keyMap> - <region left="1054" top="1" width="88" height="24"/> - <eventInfo> - <keyCode>103</keyCode> - <keyName>POWER</keyName> - </eventInfo> - <tooltip>Power</tooltip> - </keyMap> - <keyMap> - <region left="99" top="1" width="88" height="24"/> - <eventInfo> - <keyCode>115</keyCode> - <keyName>VOLUME_UP</keyName> - </eventInfo> - <tooltip>Volume-up</tooltip> - </keyMap> - <keyMap> - <region left="194" top="1" width="88" height="24"/> - <eventInfo> - <keyCode>114</keyCode> - <keyName>VOLUME_DOWN</keyName> - </eventInfo> - <tooltip>Volume-down</tooltip> - </keyMap> - </keyMapList> - </rotation> - <rotation name="Reverse Portrait"> - <lcd id="0"> - <region left="62" top="113" width="600" height="1024" scale="1"/> - </lcd> - <imageList> - <mainImage>default_180.png</mainImage> - <keyPressedImage>default_180_p.png</keyPressedImage> - </imageList> - <keyMapList> - <keyMap> - <region left="479" top="24" width="84" height="84"/> - <eventInfo> - <keyCode>100</keyCode> - <keyName>SEND</keyName> - </eventInfo> - <tooltip>Send</tooltip> - </keyMap> - <keyMap> - <region left="320" top="24" width="84" height="84"/> - <eventInfo> - <keyCode>101</keyCode> - <keyName>HOME</keyName> - </eventInfo> - <tooltip>Home</tooltip> - </keyMap> - <keyMap> - <region left="159" top="24" width="84" height="84"/> - <eventInfo> - <keyCode>102</keyCode> - <keyName>END</keyName> - </eventInfo> - <tooltip>End</tooltip> - </keyMap> - <keyMap> - <region left="1" top="106" width="24" height="88"/> - <eventInfo> - <keyCode>103</keyCode> - <keyName>POWER</keyName> - </eventInfo> - <tooltip>Power</tooltip> - </keyMap> - <keyMap> - <region left="1" top="1059" width="24" height="88"/> - <eventInfo> - <keyCode>115</keyCode> - <keyName>VOLUME_UP</keyName> - </eventInfo> - <tooltip>Volume-up</tooltip> - </keyMap> - <keyMap> - <region left="1" top="964" width="24" height="88"/> - <eventInfo> - <keyCode>114</keyCode> - <keyName>VOLUME_DOWN</keyName> - </eventInfo> - <tooltip>Volume-down</tooltip> - </keyMap> - </keyMapList> - </rotation> - <rotation name="Reverse Landscape"> - <lcd id="0"> - <region left="113" top="52" width="1024" height="600" scale="1"/> - </lcd> - <imageList> - <mainImage>default_R90.png</mainImage> - <keyPressedImage>default_R90_p.png</keyPressedImage> - </imageList> - <keyMapList> - <keyMap> - <region left="23" top="148" width="84" height="84"/> - <eventInfo> - <keyCode>100</keyCode> - <keyName>SEND</keyName> - </eventInfo> - <tooltip>Send</tooltip> - </keyMap> - <keyMap> - <region left="23" top="310" width="84" height="84"/> - <eventInfo> - <keyCode>101</keyCode> - <keyName>HOME</keyName> - </eventInfo> - <tooltip>Home</tooltip> - </keyMap> - <keyMap> - <region left="23" top="470" width="84" height="84"/> - <eventInfo> - <keyCode>102</keyCode> - <keyName>END</keyName> - </eventInfo> - <tooltip>End</tooltip> - </keyMap> - <keyMap> - <region left="105" top="690" width="88" height="24"/> - <eventInfo> - <keyCode>103</keyCode> - <keyName>POWER</keyName> - </eventInfo> - <tooltip>Power</tooltip> - </keyMap> - <keyMap> - <region left="1058" top="690" width="88" height="24"/> - <eventInfo> - <keyCode>115</keyCode> - <keyName>VOLUME_UP</keyName> - </eventInfo> - <tooltip>Volume-up</tooltip> - </keyMap> - <keyMap> - <region left="965" top="690" width="88" height="24"/> - <eventInfo> - <keyCode>114</keyCode> - <keyName>VOLUME_DOWN</keyName> - </eventInfo> - <tooltip>Volume-down</tooltip> - </keyMap> - </keyMapList> - </rotation> - </rotations> - <colors> - <hoverColor B="255" G="255" R="255" /> - </colors> -</EmulatorUI> diff --git a/tizen/src/skin/client/skins/emul_3keys_600x1024/default_0.png b/tizen/src/skin/client/skins/emul_3keys_600x1024/default_0.png Binary files differdeleted file mode 100644 index 31a6fee2aa..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_600x1024/default_0.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_600x1024/default_0_p.png b/tizen/src/skin/client/skins/emul_3keys_600x1024/default_0_p.png Binary files differdeleted file mode 100644 index 4e32200389..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_600x1024/default_0_p.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_600x1024/default_180.png b/tizen/src/skin/client/skins/emul_3keys_600x1024/default_180.png Binary files differdeleted file mode 100644 index cd9913973d..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_600x1024/default_180.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_600x1024/default_180_p.png b/tizen/src/skin/client/skins/emul_3keys_600x1024/default_180_p.png Binary files differdeleted file mode 100644 index 30f22d4620..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_600x1024/default_180_p.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_600x1024/default_L90.png b/tizen/src/skin/client/skins/emul_3keys_600x1024/default_L90.png Binary files differdeleted file mode 100644 index c438dd337c..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_600x1024/default_L90.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_600x1024/default_L90_p.png b/tizen/src/skin/client/skins/emul_3keys_600x1024/default_L90_p.png Binary files differdeleted file mode 100644 index 665d85877a..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_600x1024/default_L90_p.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_600x1024/default_R90.png b/tizen/src/skin/client/skins/emul_3keys_600x1024/default_R90.png Binary files differdeleted file mode 100644 index 9c786d929e..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_600x1024/default_R90.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_600x1024/default_R90_p.png b/tizen/src/skin/client/skins/emul_3keys_600x1024/default_R90_p.png Binary files differdeleted file mode 100644 index 3f7d9f749b..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_600x1024/default_R90_p.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_720x1280/default.dbi b/tizen/src/skin/client/skins/emul_3keys_720x1280/default.dbi deleted file mode 100644 index b2ee97fc51..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_720x1280/default.dbi +++ /dev/null @@ -1,244 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<EmulatorUI xmlns="http://www.tizen.org/emulator/dbi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <rotations> - <rotation name="Portrait"> - <lcd id="0"> - <region left="67" top="116" width="720" height="1280"/> - </lcd> - <imageList> - <mainImage>default_0.png</mainImage> - <keyPressedImage>default_0_p.png</keyPressedImage> - </imageList> - <keyMapList> - <keyMap> - <region left="210" top="1401" width="84" height="84"/> - <eventInfo> - <keyCode>100</keyCode> - <keyName>SEND</keyName> - </eventInfo> - <tooltip>Send</tooltip> - </keyMap> - <keyMap> - <region left="390" top="1401" width="84" height="84"/> - <eventInfo> - <keyCode>101</keyCode> - <keyName>HOME</keyName> - </eventInfo> - <tooltip>Home</tooltip> - </keyMap> - <keyMap> - <region left="570" top="1401" width="84" height="84"/> - <eventInfo> - <keyCode>102</keyCode> - <keyName>END</keyName> - </eventInfo> - <tooltip>End</tooltip> - </keyMap> - <keyMap> - <region left="841" top="1309" width="24" height="96"/> - <eventInfo> - <keyCode>103</keyCode> - <keyName>POWER</keyName> - </eventInfo> - <tooltip>Power</tooltip> - </keyMap> - <keyMap> - <region left="841" top="108" width="24" height="96"/> - <eventInfo> - <keyCode>115</keyCode> - <keyName>VOLUME_UP</keyName> - </eventInfo> - <tooltip>Volume-up</tooltip> - </keyMap> - <keyMap> - <region left="841" top="219" width="24" height="96"/> - <eventInfo> - <keyCode>114</keyCode> - <keyName>VOLUME_DOWN</keyName> - </eventInfo> - <tooltip>Volume-down</tooltip> - </keyMap> - </keyMapList> - </rotation> - <rotation name="Landscape"> - <lcd id="0"> - <region left="116" top="78" width="1280" height="720"/> - </lcd> - <imageList> - <mainImage>default_L90.png</mainImage> - <keyPressedImage>default_L90_p.png</keyPressedImage> - </imageList> - <keyMapList> - <keyMap> - <region left="1400" top="570" width="84" height="84"/> - <eventInfo> - <keyCode>100</keyCode> - <keyName>SEND</keyName> - </eventInfo> - <tooltip>Send</tooltip> - </keyMap> - <keyMap> - <region left="1400" top="392" width="84" height="84"/> - <eventInfo> - <keyCode>101</keyCode> - <keyName>HOME</keyName> - </eventInfo> - <tooltip>Home</tooltip> - </keyMap> - <keyMap> - <region left="1400" top="210" width="84" height="84"/> - <eventInfo> - <keyCode>102</keyCode> - <keyName>END</keyName> - </eventInfo> - <tooltip>End</tooltip> - </keyMap> - <keyMap> - <region left="1308" top="2" width="96" height="24"/> - <eventInfo> - <keyCode>103</keyCode> - <keyName>POWER</keyName> - </eventInfo> - <tooltip>Power</tooltip> - </keyMap> - <keyMap> - <region left="108" top="2" width="96" height="24"/> - <eventInfo> - <keyCode>115</keyCode> - <keyName>VOLUME_UP</keyName> - </eventInfo> - <tooltip>Volume-up</tooltip> - </keyMap> - <keyMap> - <region left="217" top="2" width="96" height="24"/> - <eventInfo> - <keyCode>114</keyCode> - <keyName>VOLUME_DOWN</keyName> - </eventInfo> - <tooltip>Volume-down</tooltip> - </keyMap> - </keyMapList> - </rotation> - <rotation name="Reverse Portrait"> - <lcd id="0"> - <region left="78" top="117" width="720" height="1280"/> - </lcd> - <imageList> - <mainImage>default_180.png</mainImage> - <keyPressedImage>default_180_p.png</keyPressedImage> - </imageList> - <keyMapList> - <keyMap> - <region left="570" top="30" width="84" height="84"/> - <eventInfo> - <keyCode>100</keyCode> - <keyName>SEND</keyName> - </eventInfo> - <tooltip>Send</tooltip> - </keyMap> - <keyMap> - <region left="390" top="30" width="84" height="84"/> - <eventInfo> - <keyCode>101</keyCode> - <keyName>HOME</keyName> - </eventInfo> - <tooltip>Home</tooltip> - </keyMap> - <keyMap> - <region left="210" top="30" width="84" height="84"/> - <eventInfo> - <keyCode>102</keyCode> - <keyName>END</keyName> - </eventInfo> - <tooltip>End</tooltip> - </keyMap> - <keyMap> - <region left="2" top="110" width="24" height="96"/> - <eventInfo> - <keyCode>103</keyCode> - <keyName>POWER</keyName> - </eventInfo> - <tooltip>Power</tooltip> - </keyMap> - <keyMap> - <region left="2" top="1310" width="24" height="96"/> - <eventInfo> - <keyCode>115</keyCode> - <keyName>VOLUME_UP</keyName> - </eventInfo> - <tooltip>Volume-up</tooltip> - </keyMap> - <keyMap> - <region left="2" top="1200" width="24" height="96"/> - <eventInfo> - <keyCode>114</keyCode> - <keyName>VOLUME_DOWN</keyName> - </eventInfo> - <tooltip>Volume-down</tooltip> - </keyMap> - </keyMapList> - </rotation> - <rotation name="Reverse Landscape"> - <lcd id="0"> - <region left="117" top="67" width="1280" height="720"/> - </lcd> - <imageList> - <mainImage>default_R90.png</mainImage> - <keyPressedImage>default_R90_p.png</keyPressedImage> - </imageList> - <keyMapList> - <keyMap> - <region left="28" top="209" width="84" height="84"/> - <eventInfo> - <keyCode>100</keyCode> - <keyName>SEND</keyName> - </eventInfo> - <tooltip>Send</tooltip> - </keyMap> - <keyMap> - <region left="28" top="391" width="84" height="84"/> - <eventInfo> - <keyCode>101</keyCode> - <keyName>HOME</keyName> - </eventInfo> - <tooltip>Home</tooltip> - </keyMap> - <keyMap> - <region left="28" top="568" width="84" height="84"/> - <eventInfo> - <keyCode>102</keyCode> - <keyName>END</keyName> - </eventInfo> - <tooltip>End</tooltip> - </keyMap> - <keyMap> - <region left="109" top="841" width="96" height="24"/> - <eventInfo> - <keyCode>103</keyCode> - <keyName>POWER</keyName> - </eventInfo> - <tooltip>Power</tooltip> - </keyMap> - <keyMap> - <region left="1309" top="841" width="96" height="24"/> - <eventInfo> - <keyCode>115</keyCode> - <keyName>VOLUME_UP</keyName> - </eventInfo> - <tooltip>Volume-up</tooltip> - </keyMap> - <keyMap> - <region left="1199" top="841" width="96" height="24"/> - <eventInfo> - <keyCode>114</keyCode> - <keyName>VOLUME_DOWN</keyName> - </eventInfo> - <tooltip>Volume-down</tooltip> - </keyMap> - </keyMapList> - </rotation> - </rotations> - <colors> - <hoverColor B="255" G="255" R="255" /> - </colors> -</EmulatorUI> diff --git a/tizen/src/skin/client/skins/emul_3keys_720x1280/default_0.png b/tizen/src/skin/client/skins/emul_3keys_720x1280/default_0.png Binary files differdeleted file mode 100644 index b0d49cfe3d..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_720x1280/default_0.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_720x1280/default_0_p.png b/tizen/src/skin/client/skins/emul_3keys_720x1280/default_0_p.png Binary files differdeleted file mode 100644 index 1d3058a787..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_720x1280/default_0_p.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_720x1280/default_180.png b/tizen/src/skin/client/skins/emul_3keys_720x1280/default_180.png Binary files differdeleted file mode 100644 index 8b59e00806..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_720x1280/default_180.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_720x1280/default_180_p.png b/tizen/src/skin/client/skins/emul_3keys_720x1280/default_180_p.png Binary files differdeleted file mode 100644 index 2850db241b..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_720x1280/default_180_p.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_720x1280/default_L90.png b/tizen/src/skin/client/skins/emul_3keys_720x1280/default_L90.png Binary files differdeleted file mode 100644 index 15df50d010..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_720x1280/default_L90.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_720x1280/default_L90_p.png b/tizen/src/skin/client/skins/emul_3keys_720x1280/default_L90_p.png Binary files differdeleted file mode 100644 index 35d3c974b6..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_720x1280/default_L90_p.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_720x1280/default_R90.png b/tizen/src/skin/client/skins/emul_3keys_720x1280/default_R90.png Binary files differdeleted file mode 100644 index f886480412..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_720x1280/default_R90.png +++ /dev/null diff --git a/tizen/src/skin/client/skins/emul_3keys_720x1280/default_R90_p.png b/tizen/src/skin/client/skins/emul_3keys_720x1280/default_R90_p.png Binary files differdeleted file mode 100644 index d582bfa9d0..0000000000 --- a/tizen/src/skin/client/skins/emul_3keys_720x1280/default_R90_p.png +++ /dev/null diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSdlSkin.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSdlSkin.java new file mode 100644 index 0000000000..0cfb5b997d --- /dev/null +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSdlSkin.java @@ -0,0 +1,13 @@ +package org.tizen.emulator.skin; + +import org.tizen.emulator.skin.config.EmulatorConfig; + +public class EmulatorSdlSkin extends EmulatorSkin { + /** + * Constructor + */ + public EmulatorSdlSkin(EmulatorConfig config, boolean isOnTop) { + super(config, isOnTop); + } + +} diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorShmSkin.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorShmSkin.java new file mode 100644 index 0000000000..d7602b4fc0 --- /dev/null +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorShmSkin.java @@ -0,0 +1,150 @@ +package org.tizen.emulator.skin; + +import org.eclipse.swt.events.PaintEvent; +import org.eclipse.swt.events.PaintListener; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.ImageData; +import org.eclipse.swt.graphics.PaletteData; +import org.eclipse.swt.graphics.Transform; +import org.eclipse.swt.widgets.Display; +import org.tizen.emulator.skin.config.EmulatorConfig; + +public class EmulatorShmSkin extends EmulatorSkin { + public static final int RED_MASK = 0x00FF0000; + public static final int GREEN_MASK = 0x0000FF00; + public static final int BLUE_MASK = 0x000000FF; + public static final int COLOR_DEPTH = 32; + + /* define JNI functions */ + public native int shmget(int size); + public native int shmdt(); + public native int getPixels(int[] array); + + PaletteData paletteData; + public PollFBThread pollThread; + + class PollFBThread extends Thread { + private Display display; + private int lcdWidth; + private int lcdHeight; + private int[] array; + private ImageData imageData; + private Image framebuffer; + + private volatile boolean stopRequest; + private Runnable runnable; + + public PollFBThread(int lcdWidth, int lcdHeight) { + this.display = Display.getDefault(); + this.lcdWidth = lcdWidth; + this.lcdHeight = lcdHeight; + this.array = new int[lcdWidth * lcdHeight]; + this.imageData = new ImageData(lcdWidth, lcdHeight, COLOR_DEPTH, paletteData); + this.framebuffer = new Image(Display.getDefault(), imageData); + + this.runnable = new Runnable() { + public void run() { + // logger.info("update lcd framebuffer"); + lcdCanvas.redraw(); + } + }; + } + + public void run() { + stopRequest = false; + + while (!stopRequest) { + synchronized (this) { + try { + this.wait(30); //30ms + } catch (InterruptedException ex) { + break; + } + } + + int result = getPixels(array); //from shared memory + //logger.info("getPixels navtive function returned " + result); + + for (int i = 0; i < lcdHeight; i++) { + imageData.setPixels(0, i, lcdWidth, array, i * lcdWidth); + } + + Image temp = framebuffer; + framebuffer = new Image(display, imageData); + temp.dispose(); + + display.asyncExec(runnable); //redraw canvas + } + } + + public void stopRequest() { + stopRequest = true; + } + } + + /** + * Constructor + */ + public EmulatorShmSkin(EmulatorConfig config, boolean isOnTop) { + super(config, isOnTop); + + this.paletteData = new PaletteData(RED_MASK, GREEN_MASK, BLUE_MASK); + } + + public long compose() { + long ret = super.compose(); + + int result = shmget(currentLcdWidth * currentLcdHeight); //initialize shared memory + //logger.info("shmget navtive function returned " + result); + + pollThread = new PollFBThread(currentLcdWidth, currentLcdHeight); //update lcd thread + + lcdCanvas.addPaintListener(new PaintListener() { + public void paintControl(PaintEvent e) { + /* e.gc.setAdvanced(true); + if (!e.gc.getAdvanced()) { + logger.info("Advanced graphics not supported"); + } */ + + int x = lcdCanvas.getSize().x; + int y = lcdCanvas.getSize().y; + if (currentAngle == 0) { //portrait + e.gc.drawImage(pollThread.framebuffer, + 0, 0, pollThread.lcdWidth, pollThread.lcdHeight, + 0, 0, x, y); + return; + } + + Transform transform = new Transform(lcdCanvas.getDisplay()); + transform.rotate(currentAngle); + + if (currentAngle == 90) { //reverse landscape + int temp; + temp = x; + x = y; + y = temp; + transform.translate(0, y * -1); + } else if (currentAngle == 180) { //reverse portrait + transform.translate(x * -1, y * -1); + } else if (currentAngle == -90) { //landscape + int temp; + temp = x; + x = y; + y = temp; + transform.translate(x * -1, 0); + } + + e.gc.setTransform(transform); + e.gc.drawImage(pollThread.framebuffer, + 0, 0, pollThread.lcdWidth, pollThread.lcdHeight, + 0, 0, x, y); + + transform.dispose(); + } + }); + + pollThread.start(); + + return ret; + } +} diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java index 205d558986..b34e5c20ce 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java @@ -95,6 +95,7 @@ import org.tizen.emulator.skin.screenshot.ScreenShotDialog; import org.tizen.emulator.skin.util.SkinRegion; import org.tizen.emulator.skin.util.SkinRotation; import org.tizen.emulator.skin.util.SkinUtil; +import org.tizen.emulator.skin.util.SwtUtil; /** * @@ -124,25 +125,26 @@ public class EmulatorSkin { public static final String GTK_OS_CLASS = "org.eclipse.swt.internal.gtk.OS"; public static final String WIN32_OS_CLASS = "org.eclipse.swt.internal.win32.OS"; + public static final String COCOA_OS_CLASS = "org.eclipse.swt.internal.cocoa.OS"; private Logger logger = SkinLogger.getSkinLogger( EmulatorSkin.class ).getLogger(); - private EmulatorConfig config; + protected EmulatorConfig config; private Shell shell; private ImageRegistry imageRegistry; - private Canvas lcdCanvas; + protected Canvas lcdCanvas; private Image currentImage; private Image currentKeyPressedImage; private Color hoverColor; private boolean isDefaultHoverColor; - private int currentScale; - private short currentRotationId; - private int currentAngle; - private int currentLcdWidth; - private int currentLcdHeight; - private SkinRegion currentHoverRegion; - private SkinRegion currentPressedRegion; + protected int currentScale; + protected short currentRotationId; + protected int currentAngle; + protected int currentLcdWidth; + protected int currentLcdHeight; + protected SkinRegion currentHoverRegion; + protected SkinRegion currentPressedRegion; private int pressedMouseX; private int pressedMouseY; @@ -208,6 +210,7 @@ public class EmulatorSkin { short rotationId = EmulatorConfig.DEFAULT_WINDOW_ROTATION; composeInternal( lcdCanvas, x, y, lcdWidth, lcdHeight, scale, rotationId, false ); + logger.info("lcdWidth : " + lcdWidth + ", lcdHeight : " + lcdHeight + ", scale : " + scale); // sdl uses this handle id. windowHandleId = getWindowHandleId(); @@ -230,7 +233,7 @@ public class EmulatorSkin { String emulatorName = SkinUtil.makeEmulatorName( config ); shell.setText( emulatorName ); - if ( SkinUtil.isWindowsPlatform() ) { + if ( SwtUtil.isWindowsPlatform() ) { shell.setImage( imageRegistry.getIcon( IconName.EMULATOR_TITLE_ICO ) ); } else { shell.setImage( imageRegistry.getIcon( IconName.EMULATOR_TITLE ) ); @@ -303,7 +306,7 @@ public class EmulatorSkin { long windowHandleId = 0; - if ( SkinUtil.isLinuxPlatform() ) { + if ( SwtUtil.isLinuxPlatform() ) { try { Field field = lcdCanvas.getClass().getField( "embeddedHandle" ); @@ -323,14 +326,15 @@ public class EmulatorSkin { shutdown(); } - } else if ( SkinUtil.isWindowsPlatform() ) { + } else if ( SwtUtil.isWindowsPlatform() ) { logger.info( "lcdCanvas.handle:" + lcdCanvas.handle ); windowHandleId = lcdCanvas.handle; - } else if ( SkinUtil.isMacPlatform() ) { + } else if ( SwtUtil.isMacPlatform() ) { - // TODO + // not supported + windowHandleId = 0; } else { logger.severe( "Not Supported OS platform:" + SWT.getPlatform() ); @@ -833,7 +837,7 @@ public class EmulatorSkin { previous = null; - if( SkinUtil.isWindowsPlatform() && disappearEvent) { + if( SwtUtil.isWindowsPlatform() && disappearEvent) { disappearEvent = false; if (isMetaKey(e) && e.character != '\0') { logger.info( "send previous release : keycode=" + disappearKeycode + @@ -855,7 +859,7 @@ public class EmulatorSkin { public void keyPressed( KeyEvent e ) { int keyCode = e.keyCode | e.stateMask; - if( SkinUtil.isWindowsPlatform() ) { + if( SwtUtil.isWindowsPlatform() ) { if ( null != previous ) { if ( previous.keyCode != e.keyCode ) { @@ -928,10 +932,12 @@ public class EmulatorSkin { private Field getOSField( String field ) { String className = ""; - if ( SkinUtil.isLinuxPlatform() ) { + if (SwtUtil.isLinuxPlatform()) { className = GTK_OS_CLASS; - } else if ( SkinUtil.isWindowsPlatform() ) { + } else if (SwtUtil.isWindowsPlatform()) { className = WIN32_OS_CLASS; + } else if (SwtUtil.isMacPlatform()) { + className = COCOA_OS_CLASS; } Field f = null; @@ -951,10 +957,12 @@ public class EmulatorSkin { private Method getOSMethod( String method, Class<?>... parameterTypes ) { String className = ""; - if ( SkinUtil.isLinuxPlatform() ) { + if (SwtUtil.isLinuxPlatform()) { className = GTK_OS_CLASS; - } else if ( SkinUtil.isWindowsPlatform() ) { + } else if (SwtUtil.isWindowsPlatform()) { className = WIN32_OS_CLASS; + } else if (SwtUtil.isMacPlatform()) { + className = COCOA_OS_CLASS; } Method m = null; @@ -1000,7 +1008,7 @@ public class EmulatorSkin { } private boolean setTopMost32(boolean isOnTop) { - if ( SkinUtil.isLinuxPlatform() ) { + if ( SwtUtil.isLinuxPlatform() ) { // reference : http://wmctrl.sourcearchive.com/documentation/1.07/main_8c-source.html /* if ( !OS.GDK_WINDOWING_X11() ) { @@ -1224,7 +1232,7 @@ public class EmulatorSkin { invokeOSMethod( xSendEvent, xDisplay, rootWin, false, (int) ( 1L << 20 | 1L << 19 ), malloc ); invokeOSMethod( getOSMethod( "g_free", int.class ), malloc ) ; - } else if( SkinUtil.isWindowsPlatform() ) { + } else if( SwtUtil.isWindowsPlatform() ) { Point location = shell.getLocation(); /* int hWndInsertAfter = 0; @@ -1271,7 +1279,7 @@ public class EmulatorSkin { int.class, int.class ); invokeOSMethod( m, shell.handle, hWndInsertAfter, location.x, location.y, 0, 0, noSize ); - } else if( SkinUtil.isMacPlatform() ) { + } else if( SwtUtil.isMacPlatform() ) { //TODO: } @@ -1280,7 +1288,7 @@ public class EmulatorSkin { private boolean setTopMost64(boolean isOnTop) { - if ( SkinUtil.isLinuxPlatform() ) { + if ( SwtUtil.isLinuxPlatform() ) { Boolean gdkWindowingX11 = (Boolean) invokeOSMethod( getOSMethod( "GDK_WINDOWING_X11" ) ); if (null == gdkWindowingX11) { return false; @@ -1450,9 +1458,9 @@ public class EmulatorSkin { // SubstructureRedirectMask:1L<<20 | SubstructureNotifyMask:1L<<19 invokeOSMethod( xSendEvent, xDisplay, rootWin, false, (long) ( 1L << 20 | 1L << 19 ), malloc ); invokeOSMethod( getOSMethod( "g_free", long.class ), malloc ); - } else if (SkinUtil.isWindowsPlatform()) { + } else if (SwtUtil.isWindowsPlatform()) { //TODO: - } else if( SkinUtil.isMacPlatform() ) { + } else if( SwtUtil.isMacPlatform() ) { //TODO: } @@ -1560,11 +1568,11 @@ public class EmulatorSkin { ProcessBuilder procSdb = new ProcessBuilder(); - if ( SkinUtil.isLinuxPlatform() ) { + if ( SwtUtil.isLinuxPlatform() ) { procSdb.command( "/usr/bin/gnome-terminal", "--disable-factory", "--title=" + SkinUtil.makeEmulatorName( config ), "-x", sdbPath, "-s", "emulator-" + portSdb, "shell" ); - } else if ( SkinUtil.isWindowsPlatform() ) { + } else if ( SwtUtil.isWindowsPlatform() ) { procSdb.command( "cmd.exe", "/c", "start", sdbPath, "-s", "emulator-" + portSdb, "shell" ); } logger.log( Level.INFO, procSdb.command().toString() ); @@ -1655,10 +1663,6 @@ public class EmulatorSkin { short rotationId = ( (Short) item.getData() ); - /* remove multi-touch finger points */ - KeyEventData clearMultiTouch = new KeyEventData(KeyEventType.RELEASED.value(), SWT.CTRL, SWT.LEFT); - communicator.sendToQEMU(SendCommand.SEND_KEY_EVENT, clearMultiTouch); - arrangeSkin( currentLcdWidth, currentLcdHeight, currentScale, rotationId ); LcdStateData lcdStateData = new LcdStateData( currentScale, rotationId ); communicator.sendToQEMU( SendCommand.CHANGE_LCD_STATE, lcdStateData ); diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkinMain.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkinMain.java index 8510ca3711..15d5273fa1 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkinMain.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkinMain.java @@ -56,6 +56,7 @@ import org.tizen.emulator.skin.log.SkinLogger.SkinLogLevel; import org.tizen.emulator.skin.util.IOUtil; import org.tizen.emulator.skin.util.JaxbUtil; import org.tizen.emulator.skin.util.StringUtil; +import org.tizen.emulator.skin.util.SwtUtil; /** * @@ -148,7 +149,14 @@ public class EmulatorSkinMain { String onTopVal = config.getSkinProperty( SkinPropertiesConstants.WINDOW_ONTOP, Boolean.FALSE.toString() ); boolean isOnTop = Boolean.parseBoolean( onTopVal ); - EmulatorSkin skin = new EmulatorSkin( config, isOnTop ); + /* create skin */ + EmulatorSkin skin; + if (SwtUtil.isMacPlatform()) { + skin = new EmulatorShmSkin(config, isOnTop); + } else { // linux & windows + skin = new EmulatorSdlSkin(config, isOnTop); + } + long windowHandleId = skin.compose(); int uid = config.getArgInt( ArgsConstants.UID ); diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/dialog/AboutDialog.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/dialog/AboutDialog.java index edc0d2c6e1..ddaeadf844 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/dialog/AboutDialog.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/dialog/AboutDialog.java @@ -49,8 +49,8 @@ import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.tizen.emulator.skin.log.SkinLogger; import org.tizen.emulator.skin.util.IOUtil; -import org.tizen.emulator.skin.util.SkinUtil; import org.tizen.emulator.skin.util.StringUtil; +import org.tizen.emulator.skin.util.SwtUtil; public class AboutDialog extends SkinDialog { @@ -97,7 +97,7 @@ public class AboutDialog extends SkinDialog { Text versionText = new Text( composite, SWT.NONE ); String version = getValue( properties, PROP_KEY_VERSION ); - if (SkinUtil.isWindowsPlatform()) { + if (SwtUtil.isWindowsPlatform()) { versionText.setText("Version" + " : " + version); } else { versionText.setText("Version" + " : " + version); diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/dialog/DetailInfoDialog.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/dialog/DetailInfoDialog.java index b01d402384..811f60e945 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/dialog/DetailInfoDialog.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/dialog/DetailInfoDialog.java @@ -57,6 +57,7 @@ import org.tizen.emulator.skin.config.EmulatorConfig.ArgsConstants; import org.tizen.emulator.skin.log.SkinLogger; import org.tizen.emulator.skin.util.SkinUtil; import org.tizen.emulator.skin.util.StringUtil; +import org.tizen.emulator.skin.util.SwtUtil; /** * @@ -142,11 +143,11 @@ public class DetailInfoDialog extends SkinDialog { String logPath = refinedData.get(logKey); ProcessBuilder procBrowser = new ProcessBuilder(); - if (SkinUtil.isLinuxPlatform()) { + if (SwtUtil.isLinuxPlatform()) { procBrowser.command("nautilus", "--browser", logPath); - } else if (SkinUtil.isWindowsPlatform()) { + } else if (SwtUtil.isWindowsPlatform()) { procBrowser.command("explorer", "\"" + logPath + "\""); - } else if (SkinUtil.isMacPlatform()) { + } else if (SwtUtil.isMacPlatform()) { //TODO: } @@ -168,7 +169,7 @@ public class DetailInfoDialog extends SkinDialog { @Override protected void setShellSize() { - if( SkinUtil.isLinuxPlatform() ) { + if( SwtUtil.isLinuxPlatform() ) { shell.setSize( (int) ( 402 * 1.618 ), 402 ); } else { shell.setSize( (int) ( 372 * 1.618 ), 372 ); @@ -209,9 +210,9 @@ public class DetailInfoDialog extends SkinDialog { String logPath = ""; boolean isHaxError = false; - if ( SkinUtil.isLinuxPlatform() ) { + if ( SwtUtil.isLinuxPlatform() ) { hwVirtualCompare = "-enable-kvm"; - } else if ( SkinUtil.isWindowsPlatform() ) { + } else if ( SwtUtil.isWindowsPlatform() ) { hwVirtualCompare = "-enable-hax"; } @@ -222,7 +223,7 @@ public class DetailInfoDialog extends SkinDialog { if ( 0 == i ) { String exec = split[i].trim().toLowerCase(); - if( SkinUtil.isWindowsPlatform() ) { + if( SwtUtil.isWindowsPlatform() ) { if( 4 <= exec.length() ) { // remove '.exe' in Windows exec = exec.substring( 0, exec.length() - 4 ); @@ -339,7 +340,7 @@ public class DetailInfoDialog extends SkinDialog { result.put( "RAM Size", ram ); - if ( SkinUtil.isLinuxPlatform() ) { + if ( SwtUtil.isLinuxPlatform() ) { if ( StringUtil.isEmpty( sharedPath ) ) { result.put( "File Sharing", "Not Supported" ); result.put( "File Shared Path", "None" ); diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/image/ImageRegistry.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/image/ImageRegistry.java index f15699d6f6..a05f4bb432 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/image/ImageRegistry.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/image/ImageRegistry.java @@ -61,7 +61,7 @@ public class ImageRegistry { private Logger logger = SkinLogger.getSkinLogger( ImageRegistry.class ).getLogger(); public static final String SKIN_FOLDER = "skins"; - public static final String IMAGE_FOLDER_PREFIX = "emul_"; + public static final String IMAGE_FOLDER_PREFIX = "emul-"; public static final String ICON_FOLDER = "icons"; public enum ImageType { @@ -149,8 +149,8 @@ public class ImageRegistry { } public static String getSkinPath( String argSkinPath, int lcdWidth, int lcdHeight ) { - String skinPath = ".." + File.separator + SKIN_FOLDER + File.separator + IMAGE_FOLDER_PREFIX + lcdWidth + "x" - + lcdHeight; + String skinPath = ".." + File.separator + SKIN_FOLDER + File.separator + + IMAGE_FOLDER_PREFIX + lcdWidth + "x" + lcdHeight; if ( argSkinPath == null ) { return skinPath; diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/screenshot/ScreenShotDialog.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/screenshot/ScreenShotDialog.java index 82acd19946..e2e3f4843a 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/screenshot/ScreenShotDialog.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/screenshot/ScreenShotDialog.java @@ -79,18 +79,19 @@ import org.tizen.emulator.skin.log.SkinLogger; import org.tizen.emulator.skin.util.IOUtil; import org.tizen.emulator.skin.util.SkinUtil; import org.tizen.emulator.skin.util.StringUtil; +import org.tizen.emulator.skin.util.SwtUtil; public class ScreenShotDialog { public final static String DEFAULT_FILE_EXTENSION = "png"; - public final static int RED_MASK = 0x0000FF00; - public final static int GREEN_MASK = 0x00FF0000; - public final static int BLUE_MASK = 0xFF000000; - public final static int COLOR_DEPTH = 32; + public static final int RED_MASK = 0x0000FF00; + public static final int GREEN_MASK = 0x00FF0000; + public static final int BLUE_MASK = 0xFF000000; + public static final int COLOR_DEPTH = 32; - public final static int CANVAS_MARGIN = 30; - public final static int TOOLITEM_COOLTIME = 200; + public static final int CANVAS_MARGIN = 30; + public static final int TOOLITEM_COOLTIME = 200; private Logger logger = SkinLogger.getSkinLogger( ScreenShotDialog.class ).getLogger(); @@ -498,7 +499,7 @@ public class ScreenShotDialog { ImageData data = null; - if ( SkinUtil.isWindowsPlatform() ) { + if ( SwtUtil.isWindowsPlatform() ) { // change RGB mask ImageData imageData = image.getImageData(); PaletteData paletteData = new PaletteData( BLUE_MASK, GREEN_MASK, RED_MASK ); diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/util/SkinUtil.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/util/SkinUtil.java index c538e54b64..1685c33112 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/util/SkinUtil.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/util/SkinUtil.java @@ -67,24 +67,12 @@ public class SkinUtil { private SkinUtil() { } - public static boolean isLinuxPlatform() { - return "gtk".equalsIgnoreCase( SWT.getPlatform() ); - } - - public static boolean isWindowsPlatform() { - return "win32".equalsIgnoreCase( SWT.getPlatform() ); - } - - public static boolean isMacPlatform() { - return "cocoa".equalsIgnoreCase( SWT.getPlatform() ); - } - public static String getVmName( EmulatorConfig config ) { String vmPath = config.getArg( ArgsConstants.VM_PATH ); String regex = ""; - if ( isWindowsPlatform() ) { + if ( SwtUtil.isWindowsPlatform() ) { regex = "\\" + File.separator; } else { regex = File.separator; @@ -112,10 +100,10 @@ public class SkinUtil { public static String getSdbPath() { String sdbPath = null; - if (SkinUtil.isLinuxPlatform()) { - sdbPath = "./../../SDK/sdb/sdb"; - } else if (SkinUtil.isWindowsPlatform()) { - sdbPath = ".\\..\\..\\SDK\\sdb\\sdb.exe"; + if (SwtUtil.isWindowsPlatform()) { + sdbPath = ".\\..\\..\\sdb.exe"; + } else { + sdbPath = "./../../sdb"; } return sdbPath; diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/util/SwtUtil.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/util/SwtUtil.java new file mode 100644 index 0000000000..0435f30f57 --- /dev/null +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/util/SwtUtil.java @@ -0,0 +1,53 @@ +/** + * + * + * Copyright (C) 2011 - 2012 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim <giwoong.kim@samsung.com> + * YeongKyoon Lee <yeongkyoon.lee@samsung.com> + * + * This program 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. + * + * This program 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +package org.tizen.emulator.skin.util; + +import org.eclipse.swt.SWT; + + +/** + * + * + */ +public class SwtUtil { + private SwtUtil() { + } + + public static boolean isLinuxPlatform() { + return "gtk".equalsIgnoreCase( SWT.getPlatform() ); + } + + public static boolean isWindowsPlatform() { + return "win32".equalsIgnoreCase( SWT.getPlatform() ); //win32-win32-x86_64 + } + + public static boolean isMacPlatform() { + return "cocoa".equalsIgnoreCase( SWT.getPlatform() ); + } +} diff --git a/tizen/src/skin/maruskin_client.h b/tizen/src/skin/maruskin_client.h index 4ebb900317..bbde54266e 100644 --- a/tizen/src/skin/maruskin_client.h +++ b/tizen/src/skin/maruskin_client.h @@ -34,7 +34,11 @@ #define JAR_SKINFILE_PATH "emulator-skin.jar" #define JAVA_EXEFILE_PATH "java" +#ifndef CONFIG_DARWIN #define JAVA_EXEOPTION "-jar" +#else +#define JAVA_EXEOPTION "-XstartOnFirstThread -jar" // Must start the Java window on the first thread on Mac +#endif #define JAVA_SIMPLEMODE_OPTION "simple.msg" diff --git a/tizen/src/skin/maruskin_operation.c b/tizen/src/skin/maruskin_operation.c index e7c7566963..786db82772 100644 --- a/tizen/src/skin/maruskin_operation.c +++ b/tizen/src/skin/maruskin_operation.c @@ -28,12 +28,19 @@ */ +#include "maru_common.h" + +#ifdef CONFIG_DARWIN +//shared memory +#define USE_SHM +#endif + #include <unistd.h> #include <stdio.h> #include <pthread.h> #include "maruskin_operation.h" #include "hw/maru_brightness.h" -#include "maru_sdl.h" +#include "maru_display.h" #include "debug_ch.h" #include "sdb.h" #include "nbd.h" @@ -44,7 +51,7 @@ #include "hw/maru_pm.h" #include "sysemu.h" -#ifdef _WIN32 +#ifdef CONFIG_WIN32 #include "target-i386/hax-i386.h" #endif @@ -58,16 +65,16 @@ MULTI_DEBUG_CHANNEL(qemu, skin_operation); static int requested_shutdown_qemu_gracefully = 0; -static void* run_timed_shutdown_thread( void* args ); -static void send_to_emuld( const char* request_type, int request_size, const char* send_buf, int buf_size ); +static void* run_timed_shutdown_thread(void* args); +static void send_to_emuld(const char* request_type, int request_size, const char* send_buf, int buf_size); void start_display(uint64 handle_id, int lcd_size_width, int lcd_size_height, double scale_factor, short rotation_type) { - INFO( "start_display handle_id:%ld, lcd size:%dx%d, scale_factor:%lf, rotation_type:%d\n", - handle_id, lcd_size_width, lcd_size_height, scale_factor, rotation_type ); + INFO("start_display handle_id:%ld, lcd size:%dx%d, scale_factor:%lf, rotation_type:%d\n", + (long)handle_id, lcd_size_width, lcd_size_height, scale_factor, rotation_type); set_emul_win_scale(scale_factor); - maruskin_sdl_init(handle_id, lcd_size_width, lcd_size_height); + maruskin_init(handle_id, lcd_size_width, lcd_size_height, false); } void do_mouse_event( int event_type, int origin_x, int origin_y, int x, int y, int z ) @@ -77,23 +84,31 @@ void do_mouse_event( int event_type, int origin_x, int origin_y, int x, int y, i return; } - TRACE( "mouse_event event_type:%d, origin:(%d, %d), x:%d, y:%d, z:%d\n", event_type, origin_x, origin_y, x, y, z ); + TRACE("mouse_event event_type:%d, origin:(%d, %d), x:%d, y:%d, z:%d\n", + event_type, origin_x, origin_y, x, y, z); +#ifndef USE_SHM + /* multi-touch */ if (get_emul_multi_touch_state()->multitouch_enable == 1) { maru_finger_processing_A(event_type, origin_x, origin_y, x, y); + return; } else if (get_emul_multi_touch_state()->multitouch_enable == 2) { maru_finger_processing_B(event_type, origin_x, origin_y, x, y); + return; } - else if ( MOUSE_DOWN == event_type || MOUSE_DRAG == event_type) { //single touch +#endif + + /* single touch */ + if (MOUSE_DOWN == event_type || MOUSE_DRAG == event_type) { kbd_mouse_event(x, y, z, 1); } else if (MOUSE_UP == event_type) { kbd_mouse_event(x, y, z, 0); } else { - ERR( "undefined mouse event type:%d\n", event_type ); + ERR("undefined mouse event type:%d\n", event_type); } #if 0 -#ifdef _WIN32 +#ifdef CONFIG_WIN32 Sleep(1); #else usleep(1000); @@ -105,6 +120,7 @@ void do_key_event( int event_type, int keycode, int key_location ) { TRACE( "key_event event_type:%d, keycode:%d, key_location:%d\n", event_type, keycode, key_location ); +#ifndef USE_SHM //is multi-touch mode ? if (get_emul_max_touch_point() > 1) { if (keycode == JAVA_KEYCODE_BIT_CTRL) { @@ -133,6 +149,7 @@ void do_key_event( int event_type, int keycode, int key_location ) } } } +#endif if (!mloop_evcmd_get_usbkbd_status()) { return; @@ -155,7 +172,7 @@ void do_key_event( int event_type, int keycode, int key_location ) void do_hardkey_event( int event_type, int keycode ) { - TRACE( "do_hardkey_event event_type:%d, keycode:%d\n", event_type, keycode ); + INFO( "do_hardkey_event event_type:%d, keycode:%d\n", event_type, keycode ); if ( is_suspended_state() ) { if ( KEY_PRESSED == event_type ) { @@ -164,7 +181,7 @@ void do_hardkey_event( int event_type, int keycode ) if ( ( HARD_KEY_HOME == keycode ) || ( HARD_KEY_POWER == keycode ) ) { INFO( "user requests system resume.\n" ); resume(); -#ifdef _WIN32 +#ifdef CONFIG_WIN32 Sleep( RESUME_KEY_SEND_INTERVAL ); #else usleep( RESUME_KEY_SEND_INTERVAL * 1000 ); @@ -174,24 +191,12 @@ void do_hardkey_event( int event_type, int keycode ) } } - SDL_Event event; - memset( &event, 0, sizeof(SDL_Event) ); - - event.type = SDL_USEREVENT; - event.user.code = SDL_USER_EVENT_CODE_HARDKEY; - - // use pointer as integer - event.user.data1 = (void*) event_type; - event.user.data2 = (void*) keycode; - - // see qemu_ds_refresh in maru_sdl.c - SDL_PushEvent( &event ); - + mloop_evcmd_hwkey(event_type, keycode); } void do_scale_event( double scale_factor ) { - INFO( "do_scale_event scale_factor:%lf", scale_factor); + INFO("do_scale_event scale_factor:%lf\n", scale_factor); set_emul_win_scale(scale_factor); @@ -297,7 +302,7 @@ DetailInfo* get_detail_info( int qemu_argc, char** qemu_argv ) { total_len += delimiter_len; } -#ifdef _WIN32 +#ifdef CONFIG_WIN32 /* collect HAXM information */ const int HAX_LEN = 32; char hax_error[HAX_LEN]; @@ -341,7 +346,7 @@ DetailInfo* get_detail_info( int qemu_argc, char** qemu_argv ) { total_len += len + delimiter_len; } -#ifdef _WIN32 +#ifdef CONFIG_WIN32 snprintf( info_data + total_len, hax_err_len + 1, "%s#", hax_error ); total_len += hax_err_len; #endif @@ -385,7 +390,7 @@ void request_close( void ) do_hardkey_event( KEY_PRESSED, HARD_KEY_POWER ); -#ifdef _WIN32 +#ifdef CONFIG_WIN32 Sleep( CLOSE_POWER_KEY_INTERVAL ); #else usleep( CLOSE_POWER_KEY_INTERVAL * 1000 ); @@ -419,7 +424,7 @@ static void* run_timed_shutdown_thread( void* args ) { int i; for ( i = 0; i < TIMEOUT_FOR_SHUTDOWN; i++ ) { -#ifdef _WIN32 +#ifdef CONFIG_WIN32 Sleep( sleep_interval_time ); #else usleep( sleep_interval_time * 1000 ); @@ -452,7 +457,7 @@ static void send_to_emuld( const char* request_type, int request_size, const cha INFO( "send to emuld [req_type:%s, send_data:%s, send_size:%d] 127.0.0.1:%d/tcp \n", request_type, send_buf, buf_size, tizen_base_port + SDB_TCP_EMULD_INDEX ); -#ifdef _WIN32 +#ifdef CONFIG_WIN32 closesocket( s ); #else close( s ); @@ -179,7 +179,7 @@ int qemu_main(int argc, char **argv, char **envp); #include "ui/qemu-spice.h" #ifdef CONFIG_MARU -#include "tizen/src/maru_sdl.h" +#include "tizen/src/maru_display.h" #include "tizen/src/option.h" #include "tizen/src/emul_state.h" #include "tizen/src/skin/maruskin_operation.h" @@ -263,9 +263,10 @@ int boot_splash_filedata_size; uint8_t qemu_extra_params_fw[2]; //virtio-gl -#ifndef _WIN32 +#ifndef CONFIG_DARWIN extern int gl_acceleration_capability_check (void); int enable_gl = 0; +int capability_check_gl = 0; #endif typedef struct FWBootEntry FWBootEntry; @@ -1791,7 +1792,7 @@ static int device_init_func(QemuOpts *opts, void *opaque) { DeviceState *dev; -#ifndef _WIN32 +#ifndef CONFIG_DARWIN // virtio-gl pci device if (!enable_gl) { // ignore virtio-gl-pci device, even if users set it in option. @@ -2303,7 +2304,9 @@ int main(int argc, char **argv, char **envp) #ifdef CONFIG_MARU #define MIDBUF 128 - char proxy[MIDBUF] ={0}, dns1[MIDBUF] = {0}, dns2[MIDBUF] = {0}; + char http_proxy[MIDBUF] ={0},https_proxy[MIDBUF] = {0,}, + ftp_proxy[MIDBUF] = {0,}, socks_proxy[MIDBUF] = {0,}, + dns1[MIDBUF] = {0}, dns2[MIDBUF] = {0}; #endif atexit(qemu_run_exit_notifiers); @@ -2544,10 +2547,14 @@ int main(int argc, char **argv, char **envp) break; case QEMU_OPTION_append: #ifdef CONFIG_MARU - gethostproxy(proxy); + gethostproxy(http_proxy, https_proxy, ftp_proxy, socks_proxy); gethostDNS(dns1, dns2); - kernel_cmdline = g_strdup_printf("%s sdb_port=%d, proxy=%s dns1=%s dns2=%s", optarg, tizen_base_port, proxy, dns1, dns2); - fprintf(stdout, "kernel command : %s\n", kernel_cmdline); + kernel_cmdline = g_strdup_printf("%s sdb_port=%d," + " http_proxy=%s https_proxy=%s ftp_proxy=%s socks_proxy=%s" + " dns1=%s dns2=%s", optarg, tizen_base_port, + http_proxy, https_proxy, ftp_proxy, socks_proxy, + dns1, dns2); +fprintf(stdout, "kernel command : %s\n", kernel_cmdline); #else kernel_cmdline = optarg; #endif @@ -2960,7 +2967,7 @@ int main(int argc, char **argv, char **envp) qemu_opts_parse(olist, "accel=kvm", 0); break; case QEMU_OPTION_enable_gl: -#ifndef _WIN32 +#ifndef CONFIG_DARWIN enable_gl = 1; #endif break; @@ -3216,12 +3223,13 @@ int main(int argc, char **argv, char **envp) } loc_set_none(); -#ifndef _WIN32 - if (enable_gl && (gl_acceleration_capability_check () != 0)) { - enable_gl = 0; - fprintf (stderr, "Warn: GL acceleration was disabled due to the fail of GL check!\n"); - } - +#ifndef CONFIG_DARWIN + capability_check_gl = gl_acceleration_capability_check(); + if (enable_gl && (capability_check_gl != 0)) { + enable_gl = 0; + fprintf (stderr, "Warn: GL acceleration was disabled due to the fail of GL check!\n"); + } + // To check host gl driver capability and notify to guest. gchar *tmp = kernel_cmdline; kernel_cmdline = g_strdup_printf("%s gles=%d", tmp, enable_gl); @@ -3561,7 +3569,10 @@ int main(int argc, char **argv, char **envp) if (using_spice) display_remote++; if (display_type == DT_DEFAULT && !display_remote) { -#if defined(CONFIG_SDL) || defined(CONFIG_COCOA) +#if defined(CONFIG_MARU) + /* maru display */ + display_type = DT_MARU; +#elif defined(CONFIG_SDL) || defined(CONFIG_COCOA) display_type = DT_SDL; #elif defined(CONFIG_VNC) vnc_display = "localhost:0,to=99"; @@ -3583,25 +3594,23 @@ int main(int argc, char **argv, char **envp) #endif #if defined(CONFIG_SDL) case DT_SDL: -#if defined(CONFIG_MARU) - /* use tizen qemu sdl */ - maruskin_display_init(ds); - - if (skin_disabled == 1) { - //do not start skin client process - set_emul_skin_enable(0); - } else { - set_emul_skin_enable(1); - } -#else - sdl_display_init(ds, full_screen, no_frame); -#endif + sdl_display_init(ds, full_screen, no_frame); break; #elif defined(CONFIG_COCOA) case DT_SDL: cocoa_display_init(ds, full_screen); break; #endif +#if defined(CONFIG_MARU) + case DT_MARU: + maru_display_init(ds); + if (skin_disabled == 1) { + set_emul_skin_enable(0); + } else { + set_emul_skin_enable(1); + } + break; +#endif default: break; } |