Search Results

Search found 14403 results on 577 pages for 'video editor'.

Page 173/577 | < Previous Page | 169 170 171 172 173 174 175 176 177 178 179 180  | Next Page >

  • How can I re-encode H.264 video with minimal quality loss?

    - by SofaKng
    I have a lot of MPEG-TS files (.TS container but H.264 video) and playback is fine except that when you skip forward/backward or fast forward it's very sluggish and gets pixelated, etc. I've been trying to do research and I'm guessing that they were encoding with very few reference blocks (ie. it's a capture from a DVB-S satellite stream). When I re-encode them with Handbrake (.MP4 container) they play very, very good and seeking in the video is instant, etc, etc. Is it possible to transcode/re-encode my MPEG-TS files with minimal quality loss? If so, what is my best bet? They are each about 2 Mbps (ie. 2 GB per hour) but I don't want to re-encode them if "minimal quality loss" requires 10+ GB per file. I'm hoping to keep the video are the same size. Can anybody give me any advice?

    Read the article

  • Which Opensource License i release my new Youtube video download Project so no one can ask me that this project is against youtube?

    - by John Smiith
    i have designed new opensource youtube video downloader but download videos from youtube is against youtube How can i make this type of message : This is opensource project that is used to download videos from youtube but downloading videos from youtube is against youtube and use of this project under study purpose only. Or Which Opensource License i release so that no one can ask me that this is against youtube?

    Read the article

  • I have 6 updates that won't install on Ubuntu 12.04?

    - by Taylor
    I'm an Ubuntu novice, so any help here is greatly appreciated! I'm running Ubuntu 12.04, and I have six updates that just won't install. I've tried Update Manger, sudo apt-get upgrade, and sudo apt-get update. Nothing has worked so far. Here are the details I get from Update Manager: installArchives() failed: Setting up linux-image-3.2.0-24-generic-pae (3.2.0-24.37) ... Running depmod. sh: 1: /usr/sbin/update-initramfs: not found Failed to create initrd image. dpkg: error processing linux-image-3.2.0-24-generic-pae (--configure): subprocess installed post-installation script returned error exit status 2 Setting up linux-image-3.2.0-27-generic-pae (3.2.0-27.43) ... No apport report written because MaxReports is reached already Running depmod. sh: 1: /usr/sbin/update-initramfs: not found Failed to create initrd image. dpkg: error processing linux-image-3.2.0-27-generic-pae (--configure): subprocess installed post-installation script returned error exit status 2 No apport report written because MaxReports is reached already Setting up linux-image-3.2.0-29-generic-pae (3.2.0-29.46) ... Running depmod. sh: 1: /usr/sbin/update-initramfs: not found Failed to create initrd image. dpkg: error processing linux-image-3.2.0-29-generic-pae (--configure): subprocess installed post-installation script returned error exit status 2 No apport report written because MaxReports is reached already Setting up udev (175-0ubuntu9.1) ... udev stop/waiting udev start/running, process 3685 /var/lib/dpkg/info/udev.postinst: 87: /var/lib/dpkg/info/udev.postinst: update-initramfs: not found dpkg: error processing udev (--configure): subprocess installed post-installation script returned error exit status 127 No apport report written because MaxReports is reached already dpkg: dependency problems prevent configuration of xserver-xorg-core: xserver-xorg-core depends on udev (= 149); however: Package udev is not configured yet. dpkg: error processing xserver-xorg-core (--configure): dependency problems - leaving unconfigured No apport report written because MaxReports is reached already dpkg: dependency problems prevent configuration of fglrx: fglrx depends on xserver-xorg-core; however: Package xserver-xorg-core is not configured yet. dpkg: error processing fglrx (--configure): dependency problems - leaving unconfigured No apport report written because MaxReports is reached already dpkg: dependency problems prevent configuration of fglrx-amdcccle: fglrx-amdcccle depends on fglrx; however: Package fglrx is not configured yet. dpkg: error processing fglrx-amdcccle (--configure): dependency problems - leaving unconfigured No apport report written because MaxReports is reached already dpkg: dependency problems prevent configuration of linux-image-generic-pae: linux-image-generic-pae depends on linux-image-3.2.0-24-generic-pae; however: Package linux-image-3.2.0-24-generic-pae is not configured yet. dpkg: error processing linux-image-generic-pae (--configure): dependency problems - leaving unconfigured No apport report written because MaxReports is reached already dpkg: dependency problems prevent configuration of linux-generic-pae: linux-generic-pae depends on linux-image-generic-pae (= 3.2.0.24.26); however: Package linux-image-generic-pae is not configured yet. dpkg: error processing linux-generic-pae (--configure): dependency problems - leaving unconfigured No apport report written because MaxReports is reached already dpkg: dependency problems prevent configuration of xserver-xorg-video-intel: xserver-xorg-video-intel depends on xorg-video-abi-11; however: Package xorg-video-abi-11 is not installed. Package xserver-xorg-core which provides xorg-video-abi-11 is not configured yet. xserver-xorg-video-intel depends on xserver-xorg-core (= 2:1.10.99.901); however: Package xserver-xorg-core is not configured yet. dpkg: error processing xserver-xorg-video-intel (--configure): dependency problems - leaving unconfigured dpkg: dependency problems prevent configuration of fglrx-dev:No apport report written because MaxReports is reached already fglrx-dev depends on fglrx; however: Package fglrx is not configured yet. dpkg: error processing fglrx-dev (--configure): dependency problems - leaving unconfigured No apport report written because MaxReports is reached already Errors were encountered while processing: linux-image-3.2.0-24-generic-pae linux-image-3.2.0-27-generic-pae linux-image-3.2.0-29-generic-pae udev xserver-xorg-core fglrx fglrx-amdcccle linux-image-generic-pae linux-generic-pae xserver-xorg-video-intel fglrx-dev Error in function: Setting up linux-image-3.2.0-24-generic-pae (3.2.0-24.37) ... Running depmod. sh: 1: /usr/sbin/update-initramfs: not found Failed to create initrd image. dpkg: error processing linux-image-3.2.0-24-generic-pae (--configure): subprocess installed post-installation script returned error exit status 2 Setting up linux-image-3.2.0-29-generic-pae (3.2.0-29.46) ... Running depmod. sh: 1: /usr/sbin/update-initramfs: not found Failed to create initrd image. dpkg: error processing linux-image-3.2.0-29-generic-pae (--configure): subprocess installed post-installation script returned error exit status 2 Setting up linux-image-3.2.0-27-generic-pae (3.2.0-27.43) ... Running depmod. sh: 1: /usr/sbin/update-initramfs: not found Failed to create initrd image. dpkg: error processing linux-image-3.2.0-27-generic-pae (--configure): subprocess installed post-installation script returned error exit status 2 Setting up udev (175-0ubuntu9.1) ... udev stop/waiting udev start/running, process 3782 /var/lib/dpkg/info/udev.postinst: 87: /var/lib/dpkg/info/udev.postinst: update-initramfs: not found dpkg: error processing udev (--configure): subprocess installed post-installation script returned error exit status 127 dpkg: dependency problems prevent configuration of linux-image-generic-pae: linux-image-generic-pae depends on linux-image-3.2.0-24-generic-pae; however: Package linux-image-3.2.0-24-generic-pae is not configured yet. dpkg: error processing linux-image-generic-pae (--configure): dependency problems - leaving unconfigured dpkg: dependency problems prevent configuration of xserver-xorg-core: xserver-xorg-core depends on udev (= 149); however: Package udev is not configured yet. dpkg: error processing xserver-xorg-core (--configure): dependency problems - leaving unconfigured dpkg: dependency problems prevent configuration of fglrx: fglrx depends on xserver-xorg-core; however: Package xserver-xorg-core is not configured yet. dpkg: error processing fglrx (--configure): dependency problems - leaving unconfigured dpkg: dependency problems prevent configuration of linux-generic-pae: linux-generic-pae depends on linux-image-generic-pae (= 3.2.0.24.26); however: Package linux-image-generic-pae is not configured yet. dpkg: error processing linux-generic-pae (--configure): dependency problems - leaving unconfigured dpkg: dependency problems prevent configuration of xserver-xorg-video-intel: xserver-xorg-video-intel depends on xorg-video-abi-11; however: Package xorg-video-abi-11 is not installed. Package xserver-xorg-core which provides xorg-video-abi-11 is not configured yet. xserver-xorg-video-intel depends on xserver-xorg-core (= 2:1.10.99.901); however: Package xserver-xorg-core is not configured yet. dpkg: error processing xserver-xorg-video-intel (--configure): dependency problems - leaving unconfigured dpkg: dependency problems prevent configuration of fglrx-amdcccle: fglrx-amdcccle depends on fglrx; however: Package fglrx is not configured yet. dpkg: error processing fglrx-amdcccle (--configure): dependency problems - leaving unconfigured dpkg: dependency problems prevent configuration of fglrx-dev: fglrx-dev depends on fglrx; however: Package fglrx is not configured yet. dpkg: error processing fglrx-dev (--configure): dependency problems - leaving unconfigured

    Read the article

  • Which FLOSS text editor is most like kwrite without being KDE-based?

    - by darenw
    Among text editors on Linux, I usually prefer KWrite. I like that I can quickly turn on/off line numbers and line wrap in the View menu. Other settings are easy to change. Other text editors I've used in the past, such as Gnome's gedit, bury line numbering and wrapping checkboxes deeper into the menu system, making it more distracting to change while concentrating on real work. However, KWrite is a KDE app. On Ubuntu it drags in over a dozen other packages, which I suspect I don't really need. Why would a text editor need all that? It's slower to start up than some other editors I've tried. I'm also trying to run an all-gnome system w/o any KDE, just to see how far I get with it. So, what GUI text editor isn't KDE-based, has few dependencies and quick start-up, easy to change line wrap and numbering, and general similarity to KWrite? What comes closest?

    Read the article

  • Un hacker de 12 ans pirate des sites officiels pour Anonymous en échange de jeux vidéo, « et il a dit aux autres comment faire » ajoute la police

    Un hacker de 12 ans pirate des sites officiels pour Anonymous en échange de jeux vidéo, « et il a dit aux autres comment faire » ajoute la police 12 ans et il plaide déjà coupable à trois chefs d'accusation de piratage par un tribunal canadien. L'élève de cinquième qui avait alors 11 ans au moment des faits a aidé le collectif Anonymous à lancer des attaques DDoS contre des sites gouvernementaux pendant la crise estudiantine québécoise de l'année passée. Avec la promesse d'obtenir des jeux...

    Read the article

  • Ask HTG: LAN-to-LAN Messaging in Windows 7, Multi-Monitor Full Screen Video, and Alternative File Copiers

    - by Jason Fitzpatrick
    Once a week we roundup some of the answers we’ve sent out to reader questions and share them with everyone. This week we’re looking at inter-LAN messaging with Windows 7, multi-monitor full screen video, and alternative Windows file copiers. How to See What Web Sites Your Computer is Secretly Connecting To HTG Explains: When Do You Need to Update Your Drivers? How to Make the Kindle Fire Silk Browser *Actually* Fast!

    Read the article

  • What platform were old TV video games developed on?

    - by Mihir
    I am very eager to know how TV video games (which we all used to play in our childhood) were developed and on which platform. I know how games are developed for mobile devices, Windows PC's and Mac but I'm not getting how (in those days) Contra, Duck Hunt and all those games were developed. As they have high graphics and a large number of stages. So how did they manage to develop games in such a small size environment and with lower configuration platform?

    Read the article

  • Torque 3D passe sous licence MIT, le moteur de jeu vidéo à bas prix entre dans le monde de l'Open Source

    Torque 3D passe sous licence MIT Le moteur de jeu vidéo à bas prix entre dans le monde de l'Open Source Eric Preisz, l'auteur et développeur du moteur de jeu, vient d'annoncer sur le blog du logiciel que Torque 3D sera bientôt disponible en Open Source sous licence MIT. Le code source pourra être retrouvé sur les serveurs de GitHub. [IMG]http://jeux.developpez.com/news/images/Torque_Logo.png[/IMG] Le moteur s'était démarqué de ses concurrents par son bas prix. En effet, il ne fallait débourser que 100$ pour la licence spécif...

    Read the article

  • How to record streaming camera video and auto-erase old data before drive fills up?

    - by nLinked
    I'm interested in making my own home CCTV system using Ubuntu. I want to get network cameras similar to this: http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItem&item=260745150596 I want a way to dump or record the live stream to a large hard drive, but have Ubuntu automatically delete the oldest parts of the video while the drive fills, so it can continue recording new data continuously. How can this auto-delete while recording be accomplished? I've searched and searched.

    Read the article

  • "Tout ce que vous avez toujours voulu savoir sur les applications Web hors ligne HTML5", vidéo de la conférence de P. Lubbers

    Le lundi 08 novembre 2010, Peter Lubbers, l'auteur de Pro HTML 5 Programming et expert international HTML, a animé une conférence intitulée "Tout ce que vous avez toujours voulu savoir sur les applications Web Hors Ligne HTML" organisé par Zenika. Nous vous proposons, en exclusivité, la vidéo complète (avec les dialogues dans la langues de l'animateur : anglais) de cette conférence. Bon visionnage !!!

    Read the article

  • Can I fully disable my PCIe Video/Graphics Card per BIOS/Software?

    - by Jook
    Because of a quite noisy fan of my HD6700 I was wondering, if I could fully disable my video card through BIOS or even some Software/Windows. Switching to Intel I7 2600 internal video helped already with the noise, but it would be great to have the HD6700 only build in, but not activated/powered. So that the fan could stay compleatly off. Of course, I could just remove the video card, but I would like to avoid that. Is there any way? My Mainboard is an ASUS P8H67-M Pro, with Intel I7 2600 and ATI HD6500

    Read the article

  • La version 2.2 de NeoAxis 3D est disponible le moteur de jeux vidéo en C# se voit doter d'un outil d'analyse de performance

    La version 2.2 de NeoAxis 3D est disponible Le moteur de jeux vidéo, multi-plateforme, en C# atteint la version 2.2. Même si c'est une mise à jour mineure, celle-ci apporte : Physique des personnages : refonte complète du code de la physique des personnages ;Physique des personnages : ajout du support de la position accroupie ;Ajout d'un outil d'analyse de performance dans l'éditeur de carte. L'outil fournit des informations détaillées sur les composants du moteur, l'utilisation des ressources...

    Read the article

  • Is NVIDIA GeForce GTX 480 Video Card Compatbile with a Mac Pro Running Windows 7 Pro 64?

    - by aquat33nfan
    I have a Mac Pro (early 2008) and I'm running Windows 7 Pro (64 bit) natively (i.e., with just Windows installed and no OSX or boot camp) on it. If I buy an NVIDIA GeForce GTX 480 video card, will it work or do I have to buy a card that is Mac-specific (e.g., GeForce GTX 285 'for Mac')? Also, more generally, will Windows video cards work on Intel Macs running Windows (in case I pick a cheaper card)? I can't tell if it matters that a Mac does not have a bios. I searched other boards and I gathered that video cards would work fine because Windows has the proper drivers for them and OSX doesn't and not having the BIOS doesn't make a difference. I found one thread on here that seemed to indicate that as well, but I wanted to make sure. Thanks.

    Read the article

  • How to specify console (or primary display) for video adapter?

    - by Igor Zinov'yev
    I have an ASUS ENGT440/DI1GD5 video adapter which has three output ports: D-Sub (HD-15), DVI and HDMI. I am using both the D-Sub and DVI ports, but my main monitor is connected to the DVI output. Everything works fine except for which monitor is designated the console during boot. The video adapter seems to prefer the D-Sub output for the console. When both the VGA and DVI monitors are connected, then the VGA monitor always becomes the console which displays the motherboard logo, POST information and booting progress. When only the DVI monitor is connected, then it becomes the console as desired. How do I make the video adapter always use the DVI output (instead of the VGA port) for the console while booting?

    Read the article

  • Flash Player 11.2 Beta 2 disponible : mise à jour automatique, encodage vidéo multithread et gestion avancée des évènements de la souris

    Flash Player 11.2 Beta 2 disponible : mise à jour automatique sous Windows Encodage vidéo multithread et gestion avancée des évènements de la souris Après la tempête, la vie reprend pour Adobe qui met à jour les versions de test de Flash Player 11.2 et AIR 3.2, suite à de premières bêtas sans la moindre nouveauté visible pour les développeurs. Les deuxièmes Beta sont disponibles aujourd'hui sur Adobe Labs et introduisent plusieurs améliorations profitant notamment aux développeurs de jeux. Flash Player 11.2 p...

    Read the article

  • By what methods can I check information about a DVD video disc?

    - by chobok
    I have some DVD video discs that I am intending to sell. I would like to get information such as region, language, subtitles. Some of the discs are in another language which I cannot read, and some are from small publishers and do not have such information on the disc or the boxes. What methods can I use to access this information? Please list command line options, as well as common GUI based tools (eg VLC player).

    Read the article

  • How to make the Eclipse text editor background transparent?

    - by briankb
    Is there a way to make the background of Eclipse IDE text editor transparent? I would like to adjust the alpha transparency of the background, but have the text still be opaque. Perhaps there is a plugin that accomplishes this? I haven't seen any options under preferences. And my search on Google has ended in vain thus far, although I did find some nice color themes. Example (Textmate): Note that the text is still solid. This is important, since making the whole window transparent could cause text to bleed into the desktop wallpaper (or whatever is under Eclipse). On another side note, I'm using the latest version of Eclipse (Helios), on both Windows 7 and Fedora 14. Related questions: Transparent background in editor but solid text Eclipse fonts and background color

    Read the article

  • Chrome 32 bêta sort avec un indicateur d'onglets qui jouent un son, une vidéo, utilisent la webcam ou diffusent sur la TV

    Chrome 32 bêta sort avec un indicateur d'onglets qui jouent un son une vidéo, utilisent la webcam ou diffusent sur la TVFidèle à son rythme de sortie des nouvelles versions de Chrome, Google vient de dévoiler la bêta de la version 32 du navigateur pour Windows, Mac et Linux, avec comme nouveauté phare une fonctionnalité permettant d'identifier rapidement les onglets bruyants, ceux qui utilisent la webcam, ainsi que ceux en diffusion sur votre télévision.En gestation depuis fin février sur le canal...

    Read the article

  • Nvidia GTX250( Ubuntu 12.10 64) after install drivers video change to 1600x1200(without left panel, without borders(file,help,go))

    - by NvidiaTroble
    Nvidia GTX250( Ubuntu 12.10 64) after install drivers - 304.51.really.304.43-0ubuntu1(there was x3 point of 96, 173, current- video change to 1600x1200(without left panel, without borders(file,help,go)). I opened (by right mouse lick) and changed to 1024x768 = lines and nothing else(but ubuntu works! So how repair it back to normal? Thank's for all how will tell me how to! (Sorry about my English).

    Read the article

  • GameMaker 1.3 apporte un nouveau débogueur et le support des consoles de Sony, l'environnement pour créer des jeux vidéo en 2D sort

    GameMaker est disponible en version 1.3 Ajout d'un nouveau débogueur et du support des consoles de SonyYoyo Games a annoncé la disponibilité de la version 1.3 de GameMaker: Studio, un environnement pour créer des jeux vidéo en 2D. Celle-ci apporte de très nombreuses fonctionnalités dont l'intégration d'un nouveau débogueur simplifiant le processus de correction des bogues. De plus, le nouvel outil permet le débogage directement sur les périphériques mobiles. Dans cette version, le système d'extensions...

    Read the article

  • Why does calling the YUI Datatable showCellEditor not display the editor?

    - by t-boy
    Clicking on the second cell (any row) in the datatable causes the cell editor to display. But, I am trying to display the cell editor from code. The code looks like the following: var firstEl = oDataTable.getFirstTdEl(rowIndex); var secondCell = oDataTable.getNextTdEl(firstEl); oDataTable.showCellEditor(secondCell); When I debug into the datatable.js code (either with a click or from the code above) it follows the same path through the showCellEditor function but the above code will not display the editor. I am using YUI version 2.8.0r4.

    Read the article

  • What encoding I should use in editor (NetBeans), if I were intend to print non-english character

    - by Yan Cheng CHEOK
    I try to set the encoding of my editor to UTF-16. (Java String store the data in UTF-16 internally, right?) And I type the following code package helloworld; /** * * @author yan-cheng.cheok */ public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here System.out.println("???"); System.out.println("\u6587\u4EF6\u79CD\u7C7B"); } } However, the output is not what I expected : ???? ????? I try to change the editor encoding format to UTF-8, it works this time! ??? ???? May I know why I need to change the editor encoding format to UTF-8 but not UTF-16? Isn't Java String store the data in UTF-16 internally?

    Read the article

  • Using Stub Objects

    - by user9154181
    Having told the long and winding tale of where stub objects came from and how we use them to build Solaris, I'd like to focus now on the the nuts and bolts of building and using them. The following new features were added to the Solaris link-editor (ld) to support the production and use of stub objects: -z stub This new command line option informs ld that it is to build a stub object rather than a normal object. In this mode, it accepts the same command line arguments as usual, but will quietly ignore any objects and sharable object dependencies. STUB_OBJECT Mapfile Directive In order to build a stub version of an object, its mapfile must specify the STUB_OBJECT directive. When producing a non-stub object, the presence of STUB_OBJECT causes the link-editor to perform extra validation to ensure that the stub and non-stub objects will be compatible. ASSERT Mapfile Directive All data symbols exported from the object must have an ASSERT symbol directive in the mapfile that declares them as data and supplies the size, binding, bss attributes, and symbol aliasing details. When building the stub objects, the information in these ASSERT directives is used to create the data symbols. When building the real object, these ASSERT directives will ensure that the real object matches the linking interface presented by the stub. Although ASSERT was added to the link-editor in order to support stub objects, they are a general purpose feature that can be used independently of stub objects. For instance you might choose to use an ASSERT directive if you have a symbol that must have a specific address in order for the object to operate properly and you want to automatically ensure that this will always be the case. The material presented here is derived from a document I originally wrote during the development effort, which had the dual goals of providing supplemental materials for the stub object PSARC case, and as a set of edits that were eventually applied to the Oracle Solaris Linker and Libraries Manual (LLM). The Solaris 11 LLM contains this information in a more polished form. Stub Objects A stub object is a shared object, built entirely from mapfiles, that supplies the same linking interface as the real object, while containing no code or data. Stub objects cannot be used at runtime. However, an application can be built against a stub object, where the stub object provides the real object name to be used at runtime, and then use the real object at runtime. When building a stub object, the link-editor ignores any object or library files specified on the command line, and these files need not exist in order to build a stub. Since the compilation step can be omitted, and because the link-editor has relatively little work to do, stub objects can be built very quickly. Stub objects can be used to solve a variety of build problems: Speed Modern machines, using a version of make with the ability to parallelize operations, are capable of compiling and linking many objects simultaneously, and doing so offers significant speedups. However, it is typical that a given object will depend on other objects, and that there will be a core set of objects that nearly everything else depends on. It is necessary to impose an ordering that builds each object before any other object that requires it. This ordering creates bottlenecks that reduce the amount of parallelization that is possible and limits the overall speed at which the code can be built. Complexity/Correctness In a large body of code, there can be a large number of dependencies between the various objects. The makefiles or other build descriptions for these objects can become very complex and difficult to understand or maintain. The dependencies can change as the system evolves. This can cause a given set of makefiles to become slightly incorrect over time, leading to race conditions and mysterious rare build failures. Dependency Cycles It might be desirable to organize code as cooperating shared objects, each of which draw on the resources provided by the other. Such cycles cannot be supported in an environment where objects must be built before the objects that use them, even though the runtime linker is fully capable of loading and using such objects if they could be built. Stub shared objects offer an alternative method for building code that sidesteps the above issues. Stub objects can be quickly built for all the shared objects produced by the build. Then, all the real shared objects and executables can be built in parallel, in any order, using the stub objects to stand in for the real objects at link-time. Afterwards, the executables and real shared objects are kept, and the stub shared objects are discarded. Stub objects are built from a mapfile, which must satisfy the following requirements. The mapfile must specify the STUB_OBJECT directive. This directive informs the link-editor that the object can be built as a stub object, and as such causes the link-editor to perform validation and sanity checking intended to guarantee that an object and its stub will always provide identical linking interfaces. All function and data symbols that make up the external interface to the object must be explicitly listed in the mapfile. The mapfile must use symbol scope reduction ('*'), to remove any symbols not explicitly listed from the external interface. All global data exported from the object must have an ASSERT symbol attribute in the mapfile to specify the symbol type, size, and bss attributes. In the case where there are multiple symbols that reference the same data, the ASSERT for one of these symbols must specify the TYPE and SIZE attributes, while the others must use the ALIAS attribute to reference this primary symbol. Given such a mapfile, the stub and real versions of the shared object can be built using the same command line for each, adding the '-z stub' option to the link for the stub object, and omiting the option from the link for the real object. To demonstrate these ideas, the following code implements a shared object named idx5, which exports data from a 5 element array of integers, with each element initialized to contain its zero-based array index. This data is available as a global array, via an alternative alias data symbol with weak binding, and via a functional interface. % cat idx5.c int _idx5[5] = { 0, 1, 2, 3, 4 }; #pragma weak idx5 = _idx5 int idx5_func(int index) { if ((index 4)) return (-1); return (_idx5[index]); } A mapfile is required to describe the interface provided by this shared object. % cat mapfile $mapfile_version 2 STUB_OBJECT; SYMBOL_SCOPE { _idx5 { ASSERT { TYPE=data; SIZE=4[5] }; }; idx5 { ASSERT { BINDING=weak; ALIAS=_idx5 }; }; idx5_func; local: *; }; The following main program is used to print all the index values available from the idx5 shared object. % cat main.c #include <stdio.h> extern int _idx5[5], idx5[5], idx5_func(int); int main(int argc, char **argv) { int i; for (i = 0; i The following commands create a stub version of this shared object in a subdirectory named stublib. elfdump is used to verify that the resulting object is a stub. The command used to build the stub differs from that of the real object only in the addition of the -z stub option, and the use of a different output file name. This demonstrates the ease with which stub generation can be added to an existing makefile. % cc -Kpic -G -M mapfile -h libidx5.so.1 idx5.c -o stublib/libidx5.so.1 -zstub % ln -s libidx5.so.1 stublib/libidx5.so % elfdump -d stublib/libidx5.so | grep STUB [11] FLAGS_1 0x4000000 [ STUB ] The main program can now be built, using the stub object to stand in for the real shared object, and setting a runpath that will find the real object at runtime. However, as we have not yet built the real object, this program cannot yet be run. Attempts to cause the system to load the stub object are rejected, as the runtime linker knows that stub objects lack the actual code and data found in the real object, and cannot execute. % cc main.c -L stublib -R '$ORIGIN/lib' -lidx5 -lc % ./a.out ld.so.1: a.out: fatal: libidx5.so.1: open failed: No such file or directory Killed % LD_PRELOAD=stublib/libidx5.so.1 ./a.out ld.so.1: a.out: fatal: stublib/libidx5.so.1: stub shared object cannot be used at runtime Killed We build the real object using the same command as we used to build the stub, omitting the -z stub option, and writing the results to a different file. % cc -Kpic -G -M mapfile -h libidx5.so.1 idx5.c -o lib/libidx5.so.1 Once the real object has been built in the lib subdirectory, the program can be run. % ./a.out [0] 0 0 0 [1] 1 1 1 [2] 2 2 2 [3] 3 3 3 [4] 4 4 4 Mapfile Changes The version 2 mapfile syntax was extended in a number of places to accommodate stub objects. Conditional Input The version 2 mapfile syntax has the ability conditionalize mapfile input using the $if control directive. As you might imagine, these directives are used frequently with ASSERT directives for data, because a given data symbol will frequently have a different size in 32 or 64-bit code, or on differing hardware such as x86 versus sparc. The link-editor maintains an internal table of names that can be used in the logical expressions evaluated by $if and $elif. At startup, this table is initialized with items that describe the class of object (_ELF32 or _ELF64) and the type of the target machine (_sparc or _x86). We found that there were a small number of cases in the Solaris code base in which we needed to know what kind of object we were producing, so we added the following new predefined items in order to address that need: NameMeaning ...... _ET_DYNshared object _ET_EXECexecutable object _ET_RELrelocatable object ...... STUB_OBJECT Directive The new STUB_OBJECT directive informs the link-editor that the object described by the mapfile can be built as a stub object. STUB_OBJECT; A stub shared object is built entirely from the information in the mapfiles supplied on the command line. When the -z stub option is specified to build a stub object, the presence of the STUB_OBJECT directive in a mapfile is required, and the link-editor uses the information in symbol ASSERT attributes to create global symbols that match those of the real object. When the real object is built, the presence of STUB_OBJECT causes the link-editor to verify that the mapfiles accurately describe the real object interface, and that a stub object built from them will provide the same linking interface as the real object it represents. All function and data symbols that make up the external interface to the object must be explicitly listed in the mapfile. The mapfile must use symbol scope reduction ('*'), to remove any symbols not explicitly listed from the external interface. All global data in the object is required to have an ASSERT attribute that specifies the symbol type and size. If the ASSERT BIND attribute is not present, the link-editor provides a default assertion that the symbol must be GLOBAL. If the ASSERT SH_ATTR attribute is not present, or does not specify that the section is one of BITS or NOBITS, the link-editor provides a default assertion that the associated section is BITS. All data symbols that describe the same address and size are required to have ASSERT ALIAS attributes specified in the mapfile. If aliased symbols are discovered that do not have an ASSERT ALIAS specified, the link fails and no object is produced. These rules ensure that the mapfiles contain a description of the real shared object's linking interface that is sufficient to produce a stub object with a completely compatible linking interface. SYMBOL_SCOPE/SYMBOL_VERSION ASSERT Attribute The SYMBOL_SCOPE and SYMBOL_VERSION mapfile directives were extended with a symbol attribute named ASSERT. The syntax for the ASSERT attribute is as follows: ASSERT { ALIAS = symbol_name; BINDING = symbol_binding; TYPE = symbol_type; SH_ATTR = section_attributes; SIZE = size_value; SIZE = size_value[count]; }; The ASSERT attribute is used to specify the expected characteristics of the symbol. The link-editor compares the symbol characteristics that result from the link to those given by ASSERT attributes. If the real and asserted attributes do not agree, a fatal error is issued and the output object is not created. In normal use, the link editor evaluates the ASSERT attribute when present, but does not require them, or provide default values for them. The presence of the STUB_OBJECT directive in a mapfile alters the interpretation of ASSERT to require them under some circumstances, and to supply default assertions if explicit ones are not present. See the definition of the STUB_OBJECT Directive for the details. When the -z stub command line option is specified to build a stub object, the information provided by ASSERT attributes is used to define the attributes of the global symbols provided by the object. ASSERT accepts the following: ALIAS Name of a previously defined symbol that this symbol is an alias for. An alias symbol has the same type, value, and size as the main symbol. The ALIAS attribute is mutually exclusive to the TYPE, SIZE, and SH_ATTR attributes, and cannot be used with them. When ALIAS is specified, the type, size, and section attributes are obtained from the alias symbol. BIND Specifies an ELF symbol binding, which can be any of the STB_ constants defined in <sys/elf.h>, with the STB_ prefix removed (e.g. GLOBAL, WEAK). TYPE Specifies an ELF symbol type, which can be any of the STT_ constants defined in <sys/elf.h>, with the STT_ prefix removed (e.g. OBJECT, COMMON, FUNC). In addition, for compatibility with other mapfile usage, FUNCTION and DATA can be specified, for STT_FUNC and STT_OBJECT, respectively. TYPE is mutually exclusive to ALIAS, and cannot be used in conjunction with it. SH_ATTR Specifies attributes of the section associated with the symbol. The section_attributes that can be specified are given in the following table: Section AttributeMeaning BITSSection is not of type SHT_NOBITS NOBITSSection is of type SHT_NOBITS SH_ATTR is mutually exclusive to ALIAS, and cannot be used in conjunction with it. SIZE Specifies the expected symbol size. SIZE is mutually exclusive to ALIAS, and cannot be used in conjunction with it. The syntax for the size_value argument is as described in the discussion of the SIZE attribute below. SIZE The SIZE symbol attribute existed before support for stub objects was introduced. It is used to set the size attribute of a given symbol. This attribute results in the creation of a symbol definition. Prior to the introduction of the ASSERT SIZE attribute, the value of a SIZE attribute was always numeric. While attempting to apply ASSERT SIZE to the objects in the Solaris ON consolidation, I found that many data symbols have a size based on the natural machine wordsize for the class of object being produced. Variables declared as long, or as a pointer, will be 4 bytes in size in a 32-bit object, and 8 bytes in a 64-bit object. Initially, I employed the conditional $if directive to handle these cases as follows: $if _ELF32 foo { ASSERT { TYPE=data; SIZE=4 } }; bar { ASSERT { TYPE=data; SIZE=20 } }; $elif _ELF64 foo { ASSERT { TYPE=data; SIZE=8 } }; bar { ASSERT { TYPE=data; SIZE=40 } }; $else $error UNKNOWN ELFCLASS $endif I found that the situation occurs frequently enough that this is cumbersome. To simplify this case, I introduced the idea of the addrsize symbolic name, and of a repeat count, which together make it simple to specify machine word scalar or array symbols. Both the SIZE, and ASSERT SIZE attributes support this syntax: The size_value argument can be a numeric value, or it can be the symbolic name addrsize. addrsize represents the size of a machine word capable of holding a memory address. The link-editor substitutes the value 4 for addrsize when building 32-bit objects, and the value 8 when building 64-bit objects. addrsize is useful for representing the size of pointer variables and C variables of type long, as it automatically adjusts for 32 and 64-bit objects without requiring the use of conditional input. The size_value argument can be optionally suffixed with a count value, enclosed in square brackets. If count is present, size_value and count are multiplied together to obtain the final size value. Using this feature, the example above can be written more naturally as: foo { ASSERT { TYPE=data; SIZE=addrsize } }; bar { ASSERT { TYPE=data; SIZE=addrsize[5] } }; Exported Global Data Is Still A Bad Idea As you can see, the additional plumbing added to the Solaris link-editor to support stub objects is minimal. Furthermore, about 90% of that plumbing is dedicated to handling global data. We have long advised against global data exported from shared objects. There are many ways in which global data does not fit well with dynamic linking. Stub objects simply provide one more reason to avoid this practice. It is always better to export all data via a functional interface. You should always hide your data, and make it available to your users via a function that they can call to acquire the address of the data item. However, If you do have to support global data for a stub, perhaps because you are working with an already existing object, it is still easilily done, as shown above. Oracle does not like us to discuss hypothetical new features that don't exist in shipping product, so I'll end this section with a speculation. It might be possible to do more in this area to ease the difficulty of dealing with objects that have global data that the users of the library don't need. Perhaps someday... Conclusions It is easy to create stub objects for most objects. If your library only exports function symbols, all you have to do to build a faithful stub object is to add STUB_OBJECT; and then to use the same link command you're currently using, with the addition of the -z stub option. Happy Stubbing!

    Read the article

  • fast forward/streaming in html5 video? RTSP?

    - by karpodiem
    right now I've got a few .mp4's hosted on Amazon S3. I know that S3 has support for RTMP, which is useful for streaming Flash. I'd like to accomplish something similar with html5 video; my biggest issue is that I need the ability to seek (fast forward) to a particular part of the video. Right now when I query the video, it loads the entire video before playing, which is a waste of bandwidth/dealbreaker. In what manner could this be implemented? Is this even possible? Looks like RTSP would be a good bet, but I haven't found whether anyone has rolled this out successfully.

    Read the article

< Previous Page | 169 170 171 172 173 174 175 176 177 178 179 180  | Next Page >