
Recherche avancée
Médias (1)
-
The pirate bay depuis la Belgique
1er avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
Autres articles (81)
-
Le profil des utilisateurs
12 avril 2011, parChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...) -
Other interesting software
13 avril 2011, parWe don’t claim to be the only ones doing what we do ... and especially not to assert claims to be the best either ... What we do, we just try to do it well and getting better ...
The following list represents softwares that tend to be more or less as MediaSPIP or that MediaSPIP tries more or less to do the same, whatever ...
We don’t know them, we didn’t try them, but you can take a peek.
Videopress
Website : http://videopress.com/
License : GNU/GPL v2
Source code : (...) -
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)
Sur d’autres sites (6103)
-
ISO-9660 Compromise, Part 2 : Finding Root
25 octobre 2021, par Multimedia Mike — GeneralA long time ago, I dashed off a quick blog post with a curious finding after studying the ISO-9660 spec : The format stores multi-byte numbers in a format I termed “omni-endian”– the committee developing the format apparently couldn’t come to an agreement on this basic point regarding big- vs. little-endian encoding (I’m envisioning something along the lines of “tastes great ! … less filling !” in the committee meetings).
I recently discovered another bit of compromise in the ISO-9660 spec : It seems that there are 2 different methods for processing the directory structure. That means it’s incumbent upon ISO-9660 creation software to fill in the data structures to support both methods, because some ISO-reading programs out there rely on one set of data structures while the rest prefer to read the other set.
Background
As a refresher, the “ISO” extension of an ISO file refers to the ISO-9660 specification. This is a type of read-only filesystem (i.e, the filesystem is created once and never updated after initial creation) for the purpose of storing on a read-only medium, often an optical disc (CD-ROM, DVD-ROM). The level of nostalgic interest I display for the ISO-9660 filesystem reminds me of my computer science curriculum professors from the mid-90s reminiscing about ye olden days of punchcard programming, but such is my lot. I’m probably also alone in my frustration of seeing rips of, e.g., GameCube or Xbox or 3DO games being tagged with the extension .ISO since those systems use different read-only filesystems.
I recently fell in with an odd bunch called the eXoDOS project and was trying to help fill in a few gaps. One request was a 1994 game called Power Drive for DOS.
My usual CD-ROM ripping method (for the data track) is a simple ‘dd’ command from a Linux command line to copy the string of raw sectors. However, it turned out to be unusually difficult to open the resulting ISO. A few of the the options I know of worked but most didn’t. What’s the difference ?
Methods that work :
- Mounting the file with the Linux iso9660 kernel module, i.e.,
mount -t iso9660 /dev/optical-drive /mnt
or
mount -t iso9660 -o loop /path/to/Power-Drive.iso /mnt
- Directory Opus
- Windows 10 can read the filesystem when reading the physical disc
- Windows 10 can burn the ISO image to a new CD (“right click” -> “Burn disc image”) ; this method does not modify any of the existing sectors but did append 149 additional empty sectors
Methods that don’t work :
- fuseiso
- Dosbox
- Winrar
- 7zip
- Daemon Tools
- Imgburn
- Internet Archive’s ISO lister (“View contents” on the ISO file)
Understanding The Difference
I think I might have a handle on why some tools are able to process this disc while most can’t. There appears to be 2 sets of data structures to describe the base of the filesystem : A root directory, and a path table. These both occur in the first substantive sector of the ISO-9660 filesystem, usually sector 16.
A compact disc can be abstractly visualized as a long string of sectors, each one 2,352 bytes long. (See my Grand Unified Theory of Compact Disc post for deeper discussion.) A CD-ROM data track will contain 2048 bytes of data. Thus, sector 16 appears at 0x8000 of an ISO filesystem. I like the clarity of this description of the ISO-9660 spec. It shows that the path table is defined at byte 140 (little-endian ; big comes later) and location of the root directory is at byte 158. Thus, these locations generally occur at 0x808c and 0x809e.
Primary Volume Descriptor
The path table is highlighted in green and the root directory record is highlighted in red. These absolute locations are specified in sectors. So the path table is located at sector 0x12 = offset 0x9000 in the image, while the root directory record is supposed to be at sector 0x62 = 0x31000. Checking into those sectors, it turns out that the path table is valid while the root directory record is invalid. Thus, any tool that relies on the path table will be successful in interpreting the disc, while tools that attempt to recursively traverse starting from root directory record are gonna have a bad time.
Since I was able to view the filesystem with a few different tools, I know what the root directory contains. Searching for those filenames reveals that the root directory was supposed to point to the next sector, number 0x63. So this was a bizarre off-by-1 error on the part of the ISO creation tool. Maybe. I manually corrected 0x62 -> 0x63 and that fixed the interaction with fuseiso, but not with other tools. So there may have been some other errors. Note that a quick spot-check of another, functional ISO revealed that this root directory sector is supposed to be exact, not 1-indexed.
Upon further inspection, I noticed that, while fuseiso appeared to work with that one patch, none of the files returned correct data, and none of the directories contained anything. That’s when I noticed that ALL of the sector locations described in the various directory and file records are off by 1 !
Further Investigation
I have occasionally run across ISO images on the Internet Archive that return the error about not being able to read the contents when trying to “View contents” (error text : “failed to obtain file list from xyz.iso”, as seen with this ISO). Too bad I didn’t make a record of them because I would be interested to see if they have the same corruption.
Eventually, I’ll probably be able to compile an archive of deviant ISO-9660 images. A few months ago, I was processing a large collection from IA and found a corrupted ISO which had a cycle, i.e., the subdirectory pointed to a parent directory, which caused various ISO tools to loop forever. Just one of those things that is “never supposed to happen”, so why write code to deal with it gracefully ?
See Also
The post ISO-9660 Compromise, Part 2 : Finding Root first appeared on Breaking Eggs And Making Omelettes.
- Mounting the file with the Linux iso9660 kernel module, i.e.,
-
avcodec/codec_internal : Add FFCodec, hide internal part of AVCodec
16 mars 2022, par Andreas Rheinhardtavcodec/codec_internal : Add FFCodec, hide internal part of AVCodec
Up until now, codec.h contains both public and private parts
of AVCodec. This exposes the internals of AVCodec to users
and leads them into the temptation of actually using them
and forces us to forward-declare structures and types that
users can't use at all.This commit changes this by adding a new structure FFCodec to
codec_internal.h that extends AVCodec, i.e. contains the public
AVCodec as first member ; the private fields of AVCodec are moved
to this structure, leaving codec.h clean.Reviewed-by : Anton Khirnov <anton@khirnov.net>
Signed-off-by : Andreas Rheinhardt <andreas.rheinhardt@outlook.com>- [DH] configure
- [DH] libavcodec/012v.c
- [DH] libavcodec/4xm.c
- [DH] libavcodec/8bps.c
- [DH] libavcodec/8svx.c
- [DH] libavcodec/a64multienc.c
- [DH] libavcodec/aacdec.c
- [DH] libavcodec/aacdec_fixed.c
- [DH] libavcodec/aacenc.c
- [DH] libavcodec/aasc.c
- [DH] libavcodec/ac3dec_fixed.c
- [DH] libavcodec/ac3dec_float.c
- [DH] libavcodec/ac3enc_fixed.c
- [DH] libavcodec/ac3enc_float.c
- [DH] libavcodec/adpcm.c
- [DH] libavcodec/adpcmenc.c
- [DH] libavcodec/adxdec.c
- [DH] libavcodec/adxenc.c
- [DH] libavcodec/agm.c
- [DH] libavcodec/aic.c
- [DH] libavcodec/alac.c
- [DH] libavcodec/alacenc.c
- [DH] libavcodec/aliaspixdec.c
- [DH] libavcodec/aliaspixenc.c
- [DH] libavcodec/allcodecs.c
- [DH] libavcodec/alsdec.c
- [DH] libavcodec/amfenc_h264.c
- [DH] libavcodec/amfenc_hevc.c
- [DH] libavcodec/amrnbdec.c
- [DH] libavcodec/amrwbdec.c
- [DH] libavcodec/anm.c
- [DH] libavcodec/ansi.c
- [DH] libavcodec/apedec.c
- [DH] libavcodec/aptxdec.c
- [DH] libavcodec/aptxenc.c
- [DH] libavcodec/arbc.c
- [DH] libavcodec/argo.c
- [DH] libavcodec/assdec.c
- [DH] libavcodec/assenc.c
- [DH] libavcodec/asvdec.c
- [DH] libavcodec/asvenc.c
- [DH] libavcodec/atrac1.c
- [DH] libavcodec/atrac3.c
- [DH] libavcodec/atrac3plusdec.c
- [DH] libavcodec/atrac9dec.c
- [DH] libavcodec/audiotoolboxdec.c
- [DH] libavcodec/audiotoolboxenc.c
- [DH] libavcodec/aura.c
- [DH] libavcodec/av1dec.c
- [DH] libavcodec/avcodec.c
- [DH] libavcodec/avrndec.c
- [DH] libavcodec/avs.c
- [DH] libavcodec/avuidec.c
- [DH] libavcodec/avuienc.c
- [DH] libavcodec/bethsoftvideo.c
- [DH] libavcodec/bfi.c
- [DH] libavcodec/bink.c
- [DH] libavcodec/binkaudio.c
- [DH] libavcodec/bintext.c
- [DH] libavcodec/bitpacked_dec.c
- [DH] libavcodec/bitpacked_enc.c
- [DH] libavcodec/bmp.c
- [DH] libavcodec/bmpenc.c
- [DH] libavcodec/bmvaudio.c
- [DH] libavcodec/bmvvideo.c
- [DH] libavcodec/brenderpix.c
- [DH] libavcodec/c93.c
- [DH] libavcodec/cavsdec.c
- [DH] libavcodec/ccaption_dec.c
- [DH] libavcodec/cdgraphics.c
- [DH] libavcodec/cdtoons.c
- [DH] libavcodec/cdxl.c
- [DH] libavcodec/cfhd.c
- [DH] libavcodec/cfhdenc.c
- [DH] libavcodec/cinepak.c
- [DH] libavcodec/cinepakenc.c
- [DH] libavcodec/clearvideo.c
- [DH] libavcodec/cljrdec.c
- [DH] libavcodec/cljrenc.c
- [DH] libavcodec/cllc.c
- [DH] libavcodec/cngdec.c
- [DH] libavcodec/cngenc.c
- [DH] libavcodec/codec.h
- [DH] libavcodec/codec_internal.h
- [DH] libavcodec/cook.c
- [DH] libavcodec/cpia.c
- [DH] libavcodec/cri.c
- [DH] libavcodec/crystalhd.c
- [DH] libavcodec/cscd.c
- [DH] libavcodec/cuviddec.c
- [DH] libavcodec/cyuv.c
- [DH] libavcodec/dcadec.c
- [DH] libavcodec/dcaenc.c
- [DH] libavcodec/dds.c
- [DH] libavcodec/decode.c
- [DH] libavcodec/decode.h
- [DH] libavcodec/dfa.c
- [DH] libavcodec/dfpwmdec.c
- [DH] libavcodec/dfpwmenc.c
- [DH] libavcodec/diracdec.c
- [DH] libavcodec/dnxhddec.c
- [DH] libavcodec/dnxhdenc.c
- [DH] libavcodec/dolby_e.c
- [DH] libavcodec/dpcm.c
- [DH] libavcodec/dpx.c
- [DH] libavcodec/dpxenc.c
- [DH] libavcodec/dsddec.c
- [DH] libavcodec/dsicinaudio.c
- [DH] libavcodec/dsicinvideo.c
- [DH] libavcodec/dss_sp.c
- [DH] libavcodec/dstdec.c
- [DH] libavcodec/dvaudiodec.c
- [DH] libavcodec/dvbsubdec.c
- [DH] libavcodec/dvbsubenc.c
- [DH] libavcodec/dvdec.c
- [DH] libavcodec/dvdsubdec.c
- [DH] libavcodec/dvdsubenc.c
- [DH] libavcodec/dvenc.c
- [DH] libavcodec/dxa.c
- [DH] libavcodec/dxtory.c
- [DH] libavcodec/dxv.c
- [DH] libavcodec/eac3enc.c
- [DH] libavcodec/eacmv.c
- [DH] libavcodec/eamad.c
- [DH] libavcodec/eatgq.c
- [DH] libavcodec/eatgv.c
- [DH] libavcodec/eatqi.c
- [DH] libavcodec/encode.c
- [DH] libavcodec/encode.h
- [DH] libavcodec/escape124.c
- [DH] libavcodec/escape130.c
- [DH] libavcodec/evrcdec.c
- [DH] libavcodec/exr.c
- [DH] libavcodec/exrenc.c
- [DH] libavcodec/fastaudio.c
- [D
-
For modifying MPEG-2 Part 4 video, which is the easiest library/approach can I use ?
17 décembre 2015, par liamzebedeeI’m trying to implement a video watermarking system which modifies a subset of individual pixels (i.e. the RGB values at sets of
x,y
). The base use case would be modifying an MP4, which consists of modifying the contained MPEG-2 Part 4 Video stream.I’ve done some research, and have found that it isn’t as simple as just modifying the raw frames, as the ubiquitous P-frames and B-frames rely on compressing the output by only storing the differences between frames.
I’m relatively technology-agnostic, I just want to find a solution. Which library/framework should I use (seems like ffmpeg for now) and which approach do I take ?