Recherche avancée

Médias (91)

Autres articles (23)

  • Demande de création d’un canal

    12 mars 2010, par

    En fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
    Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...)

  • Gestion de la ferme

    2 mars 2010, par

    La ferme est gérée dans son ensemble par des "super admins".
    Certains réglages peuvent être fais afin de réguler les besoins des différents canaux.
    Dans un premier temps il utilise le plugin "Gestion de mutualisation"

  • MediaSPIP Core : La Configuration

    9 novembre 2010, par

    MediaSPIP Core fournit par défaut trois pages différentes de configuration (ces pages utilisent le plugin de configuration CFG pour fonctionner) : une page spécifique à la configuration générale du squelettes ; une page spécifique à la configuration de la page d’accueil du site ; une page spécifique à la configuration des secteurs ;
    Il fournit également une page supplémentaire qui n’apparait que lorsque certains plugins sont activés permettant de contrôler l’affichage et les fonctionnalités spécifiques (...)

Sur d’autres sites (6461)

  • Dreamcast SD Adapter and DreamShell

    31 décembre 2014, par Multimedia Mike — Sega Dreamcast

    Nope ! I’m never going to let go of the Sega Dreamcast hacking. When I was playing around with Dreamcast hacking early last year, I became aware that there is such a thing as an SD card adapter for the DC that plugs into the port normally reserved for the odd DC link cable. Of course I wanted to see what I could do with it.

    The primary software that leverages the DC SD adapter is called DreamShell. Working with this adapter and the software requires some skill and guesswork. Searching for these topics tends to turn up results from various forums where people are trying to cargo-cult their way to solutions. I have a strange feeling that this post might become the unofficial English-language documentation on the matter.

    Use Cases
    What can you do with this thing ? Undoubtedly, the primary use is for backing up (ripping) the contents of GD-ROMs (the custom optical format used for the DC) and playing those backed up (ripped) copies. Presumably, users of this device leverage the latter use case more than the former, i.e., download ripped games, load them on the SD card, and launch them using DreamShell.

    However, there are other uses such as multimedia playback, system exploration, BIOS reprogramming, high-level programming, and probably a few other things I haven’t figured out yet.

    Delivery
    I put in an order via the dc-sd.com website and in about 2 short months, the item arrived from China. This marked my third lifetime delivery from China and curiously, all 3 of the shipments have pertained to the Sega Dreamcast.


    Dreamcast SD Adapter package

    Click for larger image


    I thought it was very interesting that this adapter came in such complete packaging. The text is all in Chinese, though the back states “Windows 98 / ME / 2000 / XP, Mac OS 9.1, LINUX2.4”. That’s what tipped me off that they must have just cannibalized some old USB SD card readers and packaging in order to create these. Closer inspection of the internals through the translucent pink case confirms this.

    Usage
    According to its change log, DreamShell has been around for a long time with version 1.0.0 released in February of 2004. The current version is 4.0.0 RC3. There are several downloads available :

    1. DreamShell 4.0 RC 3 CDI Image
    2. DreamShell 4.0 RC 3 + Boot Loader
    3. DreamShell 4.0 RC 3 + Core CDI image

    Option #2 worked for me. It contains a CDI disc image and the DreamShell files in a directory named DS/.

    Burn the CDI to a CD-R in the normal way you would burn a bootable Dreamcast disc from a CDI image. This is open-ended and left as an exercise to the reader, since there are many procedures depending on platform. On Linux, I used a small script I found once called burncdi-dc.sh.

    Then, copy the contents of the DS/ folder to an SD card. As for filesystem, FAT16 and FAT32 are both known to work. The files in DS/ should land in the root of the SD card ; the folder DS/ should not be in the root.

    Plug the SD card into the DC SD adapter and plug the adapter in the link cable port on the back of the Dreamcast. Then, boot the disc. If it works, you will see this minor corruption of the usual Sega licensing screen :


    DreamShell logo on Dreamcast startup

    Then, there will be a brief white-on-black text screen that explains the booting process :


    DreamShell booting text

    Then, there will be the main DreamShell logo :


    DreamShell logo

    Finally, you will land on the DreamShell main desktop :


    DreamShell 4.0.0 RC3 main desktop

    Skepticism
    At first, I was supremely skeptical of the idea that this SD adapter could perform speedily enough to play games reasonably. This was predicated on the observation that my DC coder’s cable that I used to use for homebrew development could not transfer faster than 115200 bits/second, amounting to about 11 kbytes/sec. I assumed that this was a fundamental limitation of the link port.

    In fact, I ripped a few of my Dreamcast discs over a decade ago and still have those rips lying around. So I copied the ISO image of Resident Evil : Code Veronica — the game I personally played most on the DC — to the SD card (anywhere works) and used the “ISO loader” icon seen on the desktop above to launch the game.

    It works :


    Resident Evil: Code Veronica title

    The opening FMV plays at full speed. Everything loads as fast as I remember. I was quite surprised.

    Digression : My assumptions about serial speeds have often been mistaken. 10 years ago, I heard stories about how we would soon be able to watch streaming video on our cell phones. I scoffed because I thought the 56K limitation of dialup modems was some sort of fundamental speed-of-light type of limitation for telephony bandwidth, wired or wireless.

    The desktop menu also includes a ‘speedtest’ tool that profiles the write and read performance of your preferred storage medium. For my fastest SD card (a PNY 2 GB card) :


    DreamShell speedtest utility

    This is probably more representative of the true adapter bandwidth as reading and writing is a good deal faster through more modern interfaces on PC and Mac with this same card.

    Look at the other options on the speedtest console. Hard drive ? Apparently, it’s possible, but it requires a good deal more hardware hacking than just purchasing this SD adapter.

    Ripping
    As you can see from the Resident Evil screenshot, playing games works quite nicely. How about ripping ? I’m pleased to say that DreamShell has a beautiful ripping interface :


    Ripping a GD-ROM using DreamShell

    Enter a name for the disc (or read the disc label), select the storage medium, and let it, well, rip. It indicates which track it’s working on and the Sega logo acts as a progress bar, shading blue as the track rip progresses.

    I’m finally, efficiently, archiving that collection of Sega Dreamcast demo discs ; I’m hoping they’ll eventually find a home at the Internet Archive. How is overall ripping performance ? Usually about 38-40 minutes to rip a full 900-1000 MB. That certainly beats the 27-28 hours that were required when I performed the ripping at 11 kbytes/sec via the DC coders cable.

    All is well until I get a sector reading error :


    DreamShell ripping error

    That’s when it can come in handy to have 3 DC consoles (see ?! not crazy !).

    Other Uses
    There’s a file explorer. You can browse the filesystem of the SD card, visual memory unit, or the CD portion of the GD-ROM (would be more useful if it accessed the GD area). There are FFmpeg files included. So I threw a random Cinepak file and random MPEG-1 file at it to see what happens. MPEG-1 didn’t do anything, but this Cinepak file from some Sierra game played handily :


    DreamShell playing Cinepak

    If you must enter strings, it helps to have a Dreamcast keyboard (which I do). Failing that, here’s a glimpse of the onscreen keyboard that DreamShell equips :


    DreamShell onscreen keyboard

    Learning to use it is a game in itself.

    There is an option of installing DreamShell in the BIOS. I did not attempt this. I don’t know if it’s possible (not like there’s a lot of documentation)– perhaps a custom BIOS modchip is needed. But here’s what the screen looks like :


    DreamShell BIOS installation menu

    There is also a plain console to interact with (better have a physical keyboard). There are numerous file manipulation commands and custom system interaction commands. I see one interesting command called ‘addr’ that looks useful for dumping memory regions to a file.

    A Lua language interpreter is also built in. I would love to play with this if I could ascertain whether DreamShell provided Dreamcast-specific APIs.

    Tips And Troubleshooting
    I have 3 Dreamcast consoles, affectionately named Terran, Protoss, and Zerg after the StarCraft II stickers with which they are adorned. Some seem to work better than others. Protoss seemed to be able to boot the DreamShell disc more reliably than the others. However, I was alarmed when it couldn’t boot one morning when it was churning the previous day.

    I think the problem is that it was just cold. That seemed to be the issue. I put in a normal GD-ROM and let it warm up on that disc for awhile and then DreamShell booted fine. So that’s my piece of cargo-culting troubleshooting advice.

  • Saying Goodbye To Old Machines

    1er décembre 2014, par Multimedia Mike — General, powerpc, via

    I recently sent a few old machines off for recycling. Both had relevance to the early days of the FATE testing effort. As is my custom, I photographed them (poorly, of course).

    First, there’s the PowerPC-based Mac Mini I procured thanks to a Craigslist ad in late 2006. I had plans to develop automated FFmpeg building and testing and was already looking ahead toward testing multiple CPU architectures. Again, this was 2006 and PowerPC wasn’t completely on the outs yet– although Apple’s MacTel transition was in full swing, the entire new generation of video game consoles was based on PowerPC.


    PPC Mac Mini pieces

    Click for larger image


    I remember trying to find a Mac Mini PPC on Craigslist. Many were to be found, but all asked more than the price of even a new Mac Mini Intel, always because the seller was leaving all of last year’s applications and perhaps including a monitor, neither of which I needed. Fortunately, I found this bare Mac Mini. Also fortunate was the fact that it was far easier to install Linux on it than the first PowerPC machine I owned.

    After FATE operation transitioned away from me, I still kept the machine in service as an edge server and automated backup machine. That is, until the hard drive failed on reboot one day. Thus, when it was finally time to recycle the computer, I felt it necessary to disassemble the machine and remove the hard drive for possible salvage and then for destruction.

    If you’ve ever attempted to upgrade or otherwise service this style of Mac Mini, you will no doubt recognize the pictured paint scraper tool as standard kit. I have had that tool since I first endeavored to upgrade the RAM to 1 GB from the standard 1/2 GB. Performing such activities on a Mac Mini is tedious, but only if you care about putting it back together afterwards.

    The next machine is a bit older. I put it together nearly a decade ago, early in 2005. This machine’s original duty was “download agent”– this would be more specifically called a BitTorrent machine in modern tech parlance. Back then, I placed it on someone else’s woefully underutilized home broadband connection (with their permission, of course) when I was too cheap to upgrade from dialup.


    VIA small form factor front

    Click for larger image


    This is a small form factor system from VIA that was clearly designed with home theater PC (HTPC) use cases in mind. It has a VIA C3 x86-compatible CPU (according to my notes, Centaur VIA Samuel 2 stepping 03, flags : fpu de tsc msr cx8 mtrr pge mmx 3dnow) and 128 MB of RAM (initially ; I upgraded it to 512 MB some years later, just for the sake of doing it). And then there was the 120 GB PATA HD for all that downloaded goodness.


    VIA machine small form factor inside

    Click for larger image


    I have specific memories of a time when my main computer at home wasn’t working correctly for one reason or another. Instead, I logged into this machine remotely via SSH to make several optimizations and fixes on FFmpeg’s VP3/Theora video decoder, all from the terminal, without being able to see the decoded images with my own eyes (which is why I insist that even blind people could work on video codecs).

    By the time I got my own broadband, I had become inspired to attempt the automated build and test system for FFmpeg. This was the machine I used for prototyping early brainstorms of FATE. By the time I put a basic build/test system into place in early 2008, I had much faster computers that could build and test the project– obvious limitation of this machine is that it could take at least 1/2 hour to build the entire codebase, and that was the project from 8 years ago.

    So the machine got stuffed in a closet somewhere along the line. The next time I pulled it out was in 2010 when I wanted to toy with Dreamcast programming once more (the machine appears in one of the photos in this post). This was the only machine I still owned which still had an RS-232 serial port (I didn’t know much about USB serial converters yet), plus it still had a bunch of pre-compiled DC homebrew binaries (I was having trouble getting the toolchain to work right).

    The next time I dusted off this machine was late last year when I was trying some experiments with the Microsoft Xbox’s IDE drive (a photo in that post also shows the machine ; this thing shows up a lot on this blog). The VIA machine was the only machine I still owned which had 40-pin IDE connectors which was crucial to my experiment.

    At this point, I was trying to make the machine more useful which meant replacing the ancient Gentoo Linux distribution as well as simply interacting with it via a keyboard and mouse. I have a long Evernote entry documenting a comedy of errors revolving around this little box. The interaction troubles were due to the fact that I didn’t have any PS/2 keyboards left and I couldn’t make a USB keyboard work with it. Diego was able to explain that I needed to flip a bit in the BIOS to address this which worked. As for upgrading the OS, I tried numerous Linux distributions large and small, mostly focusing on the small. None worked. I eventually learned that, while I was trying to use i686 distributions, this machine did not actually qualify as an i686 CPU ; installations usually booted but failed because the default kernel required the cmov instruction. I was advised to try i386 distros instead. My notes don’t indicate whether I had any luck on this front before I gave up and moved on.

    I just made the connection that this VIA machine has two 40-pin IDE connectors which means that the thing was technically capable of supporting up to 4 IDE devices. Obviously, the computer couldn’t really accommodate that in terms of space or power. When I wanted to try installing a new OS, I needed take off the top and connect a rather bulky IDE CD-ROM drive. This computer’s casing was supposed to be able to support a slimline optical drive (perhaps like the type found in laptops), but I could never quite visualize how that was supposed to work, space-wise. When I disassembled the PowerPC Mac Mini, I realized I might be able to repurpose that machines optical drive for this computer. Obviously, I thought better of trying since both machines are off to the recycle pile.

    I would still like to work on the Xbox project a bit more, but I procured a different, unused, much more powerful yet still old computer that has a motherboard with 1 PATA connector in addition to 6 SATA connectors. If I ever get around to toying with Linux kernel development, this should be a much more appropriate platform to use.

    I thought about turning this machine into an old Windows XP (and lower, down to Windows 3.1) gaming platform ; the capabilities of the machine would probably be perfect for a huge portion of my Windows game collection. But I think the lack of an optical drive renders this idea intractable. External USB drives are likely out of the question since there is very little chance that this motherboard featured USB 2.0 (the specs don’t mention 2.0, so the USB ports are probably 1.1).

    So it is with fond memories that I send off both machines, sans hard drives, to the recycle pile. I’m still deciding on an appropriate course of action for failed hard drives, though.

  • Revision a49d80bfc8 : Squash commits from master to playground Moving RD-opt related code from vp9_en

    26 juin 2014, par Yue Chen

    Changed Paths :
     Modify /build/make/gen_msvs_proj.sh


     Modify /build/make/gen_msvs_vcxproj.sh


     Modify /build/make/iosbuild.sh


     Modify /examples/vp9_spatial_svc_encoder.c


     Modify /test/decode_test_driver.cc


     Modify /test/decode_test_driver.h


     Add /test/invalid_file_test.cc


     Modify /test/svc_test.cc


     Modify /test/test-data.sha1


     Modify /test/test.mk


     Modify /test/test_vectors.cc


     Add /test/user_priv_test.cc


     Add /third_party/libmkv/EbmlIDs.h


     Add /third_party/libmkv/EbmlWriter.c


     Add /third_party/libmkv/EbmlWriter.h


     Modify /vp8/common/rtcd_defs.pl


     Modify /vp8/encoder/x86/quantize_sse2.c


     Delete /vp8/encoder/x86/quantize_sse4.asm


     Add /vp8/encoder/x86/quantize_sse4.c


     Modify /vp8/vp8cx.mk


     Modify /vp9/common/arm/neon/vp9_convolve_neon.c


     Modify /vp9/common/arm/neon/vp9_loopfilter_16_neon.c


     Modify /vp9/common/vp9_alloccommon.c


     Modify /vp9/common/vp9_alloccommon.h


     Modify /vp9/common/vp9_convolve.c


     Modify /vp9/common/vp9_mvref_common.c


     Modify /vp9/common/vp9_mvref_common.h


     Modify /vp9/common/vp9_quant_common.c


     Modify /vp9/common/vp9_quant_common.h


     Modify /vp9/common/vp9_scale.h


     Modify /vp9/decoder/vp9_decodeframe.c


     Modify /vp9/decoder/vp9_decoder.c


     Modify /vp9/decoder/vp9_dthread.h


     Modify /vp9/decoder/vp9_read_bit_buffer.c


     Modify /vp9/encoder/vp9_bitstream.c


     Modify /vp9/encoder/vp9_block.h


     Modify /vp9/encoder/vp9_denoiser.c


     Modify /vp9/encoder/vp9_denoiser.h


     Modify /vp9/encoder/vp9_encodeframe.c


     Modify /vp9/encoder/vp9_encoder.c


     Modify /vp9/encoder/vp9_encoder.h


     Modify /vp9/encoder/vp9_firstpass.c


     Modify /vp9/encoder/vp9_firstpass.h


     Modify /vp9/encoder/vp9_lookahead.c


     Modify /vp9/encoder/vp9_lookahead.h


     Modify /vp9/encoder/vp9_pickmode.c


     Modify /vp9/encoder/vp9_pickmode.h


     Modify /vp9/encoder/vp9_ratectrl.c


     Modify /vp9/encoder/vp9_ratectrl.h


     Modify /vp9/encoder/vp9_rdopt.c


     Modify /vp9/encoder/vp9_rdopt.h


     Modify /vp9/encoder/vp9_speed_features.c


     Modify /vp9/encoder/vp9_speed_features.h


     Modify /vp9/encoder/vp9_svc_layercontext.c


     Modify /vp9/encoder/vp9_svc_layercontext.h


     Modify /vp9/vp9_cx_iface.c


     Modify /vp9/vp9_dx_iface.c


     Modify /vp9/vp9cx.mk


     Modify /vpx/src/svc_encodeframe.c


     Modify /vpx/svc_context.h



    Squash commits from master to playground

    Moving RD-opt related code from vp9_encoder.h to vp9_rdopt.h.

    Squashed-Change-Id : I8fab776c8801e19d3f5027ed55a6aa69eee951de

    gen_msvs_proj : fix in tree configure under cygwin

    strip trailing ’/’ from paths, this is later converted to ’\’ which
    causes execution errors for obj_int_extract/yasm. vs10+ wasn’t affected
    by this issue, but make the same change for consistency.

    gen_msvs_proj :
    + add missing ’"’ to obj_int_extract call
    unlike gen_msvs_vcproj, the block is duplicated
    missed in : 1e3d9b9 build/msvs : fix builds in source dirs with spaces

    Squashed-Change-Id : I76208e6cdc66dc5a0a7ffa8aa1edbefe31e4b130

    Improve vp9_rb_bytes_read

    Squashed-Change-Id : I69eba120eb3d8ec43b5552451c8a9bd009390795

    Removing decode_one_iter() function.

    When superframe index is available we completely rely on it and use frame
    size values from the index.

    Squashed-Change-Id : I0011d08b223303a8b912c2bcc8a02b74d0426ee0

    iosbuild.sh : Add vpx_config.h and vpx_version.h to VPX.framework.

    - Rename build_targets to build_framework
    - Add functions for creating the vpx_config shim and obtaining
    preproc symbols.

    Squashed-Change-Id : Ieca6938b9779077eefa26bf4cfee64286d1840b0

    Implemented vp9_denoiser_alloc,free()

    Squashed-Change-Id : I79eba79f7c52eec19ef2356278597e06620d5e27

    Update running avg for VP9 denoiser

    Squashed-Change-Id : I9577d648542064052795bf5770428fbd5c276b7b

    Changed buf_2ds in vp9 denoiser to YV12 buffers

    Changed alloc, free, and running average code as necessary.

    Squashed-Change-Id : Ifc4d9ccca462164214019963b3768a457791b9c1

    sse4 regular quantize

    Squashed-Change-Id : Ibd95df0adf9cc9143006ee9032b4cb2ebfd5dd1b

    Modify non-rd intra mode checking

    Speed 6 uses small tx size, namely 8x8. max_intra_bsize needs to
    be modified accordingly to ensure valid intra mode checking.
    Borg test on RTC set showed an overall PSNR gain of 0.335% in speed
    - 6.

    This also changes speed -5 encoding by allowing DC_PRED checking
    for block32x32. Borg test on RTC set showed a slight PSNR gain of
    0.145%, and no noticeable speed change.

    Squashed-Change-Id : I1502978d8fbe265b3bb235db0f9c35ba0703cd45

    Implemented COPY_BLOCK case for vp9 denoiser

    Squashed-Change-Id : Ie89ad1e3aebbd474e1a0db69c1961b4d1ddcd33e

    Improved vp9 denoiser running avg update.

    Squashed-Change-Id : Ie0aa41fb7957755544321897b3bb2dd92f392027

    Separate rate-distortion modeling for DC and AC coefficients

    This is the first step to rework the rate-distortion modeling used
    in rtc coding mode. The overall goal is to make the modeling
    customized for the statistics encountered in the rtc coding.

    This commit makes encoder to perform rate-distortion modeling for
    DC and AC coefficients separately. No speed changes observed.
    The coding performance for pedestrian_area_1080p is largely
    improved :

    speed -5, from 79558 b/f, 37.871 dB -> 79598 b/f, 38.600 dB
    speed -6, from 79515 b/f, 37.822 dB -> 79544 b/f, 38.130 dB

    Overall performance for rtc set at speed -6 is improved by 0.67%.

    Squashed-Change-Id : I9153444567e5f75ccdcaac043c2365992c005c0c

    Add superframe support for frame parallel decoding.

    A superframe is a bunch of frames that bundled as one frame. It is mostly
    used to combine one or more non-displayable frames and one displayable frame.

    For frame parallel decoding, libvpx decoder will only support decoding one
    normal frame or a super frame with superframe index.

    If an application pass a superframe without superframe index or a chunk
    of displayable frames without superframe index to libvpx decoder, libvpx
    will not decode it in frame parallel mode. But libvpx decoder still could
    decode it in serial mode.

    Squashed-Change-Id : I04c9f2c828373d64e880a8c7bcade5307015ce35

    Fixes in VP9 alloc, free, and COPY_FRAME case

    Squashed-Change-Id : I1216f17e2206ef521fe219b6d72d8e41d1ba1147

    Remove labels from quantize

    Use break instead of goto for early exit. Unbreaks Visual Studio
    builds.

    Squashed-Change-Id : I96dee43a3c82145d4abe0d6a99af6e6e1a3991b5

    Added CFLAG for outputting vp9 denoised signal

    Squashed-Change-Id : Iab9b4e11cad927f3282e486c203564e1a658f377

    Allow key frame more flexibility in mode search

    This commit allows the key frame to search through more prediction
    modes and more flexible block sizes. No speed change observed. The
    coding performance for rtc set is improved by 1.7% for speed -5 and
    3.0% for speed -6.

    Squashed-Change-Id : Ifd1bc28558017851b210b4004f2d80838938bcc5

    VP9 denoiser bugfixes

    s/stdint.h/vpx\/vpx_int.h

    Added missing ’break ;’s

    Also included other minor changes, mostly cosmetic.

    Squashed-Change-Id : I852bba3e85e794f1d4af854c45c16a23a787e6a3

    Don’t return value for void functions

    Clears "warning : ’return’ with a value, in function returning void"

    Squashed-Change-Id : I93972610d67e243ec772a1021d2fdfcfc689c8c2

    Include type defines

    Clears error : unknown type name ’uint8_t’

    Squashed-Change-Id : I9b6eff66a5c69bc24aeaeb5ade29255a164ef0e2

    Validate error checking code in decoder.

    This patch adds a mechanism for insuring error checking on invalid files
    by creating a unit test that runs the decoder and tests that the error
    code matches what’s expected on each frame in the decoder.

    Disabled for now as this unit test will segfault with existing code.

    Squashed-Change-Id : I896f9686d9ebcbf027426933adfbea7b8c5d956e

    Introduce FrameWorker for decoding.

    When decoding in serial mode, there will be only
    one FrameWorker doing decoding. When decoding in
    parallel mode, there will be several FrameWorkers
    doing decoding in parallel.

    Squashed-Change-Id : If53fc5c49c7a0bf5e773f1ce7008b8a62fdae257

    Add back libmkv ebml writer files.

    Another project in ChromeOS is using these files. To make libvpx
    rolls simpler, add these files back unitl the other project removes
    the dependency.

    crbug.com/387246 tracking bug to remove dependency.

    Squashed-Change-Id : If9c197081c845c4a4e5c5488d4e0190380bcb1e4

    Added Test vector that tests more show existing frames.

    Squashed-Change-Id : I0ddd7dd55313ee62d231ed4b9040e08c3761b3fe

    fix peek_si to enable 1 byte show existing frames.

    The test for this is in test vector code ( show existing frames will
    fail ). I can’t check it in disabled as I’m changing the generic
    test code to do this :

    https://gerrit.chromium.org/gerrit/#/c/70569/

    Squashed-Change-Id : I5ab324f0cb7df06316a949af0f7fc089f4a3d466

    Fix bug in error handling that causes segfault

    See : https://code.google.com/p/chromium/issues/detail?id=362697

    The code properly catches an invalid stream but seg faults instead of
    returning an error due to a buffer not having been initialized. This
    code fixes that.

    Squashed-Change-Id : I695595e742cb08807e1dfb2f00bc097b3eae3a9b

    Revert 3 patches from Hangyu to get Chrome to build :

    Avoids failures :
    MSE_ClearKey/EncryptedMediaTest.Playback_VP9Video_WebM/0
    MSE_ClearKey_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0
    MSE_ExternalClearKey_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0
    MSE_ExternalClearKey/EncryptedMediaTest.Playback_VP9Video_WebM/0
    MSE_ExternalClearKeyDecryptOnly/EncryptedMediaTest.Playback_VP9Video_WebM/0
    MSE_ExternalClearKeyDecryptOnly_Prefixed/EncryptedMediaTest.Playback_VP9Video_We
    bM/0
    SRC_ExternalClearKey/EncryptedMediaTest.Playback_VP9Video_WebM/0
    SRC_ExternalClearKey_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0
    SRC_ClearKey_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0

    Patches are
    This reverts commit 9bc040859b0ca6869d31bc0efa223e8684eef37a
    This reverts commit 6f5aba069a2c7ffb293ddce70219a9ab4a037441
    This reverts commit 9bc040859b0ca6869d31bc0efa223e8684eef37a

    I1f250441 Revert "Refactor the vp9_get_frame code for frame parallel."
    Ibfdddce5 Revert "Delay decreasing reference count in frame-parallel
    decoding."
    I00ce6771 Revert "Introduce FrameWorker for decoding."

    Need better testing in libvpx for these commits

    Squashed-Change-Id : Ifa1f279b0cabf4b47c051ec26018f9301c1e130e

    error check vp9 superframe parsing

    This patch insures that the last byte of a chunk that contains a
    valid superframe marker byte, actually has a proper superframe index.
    If not it returns an error.

    As part of doing that the file : vp90-2-15-fuzz-flicker.webm now fails
    to decode properly and moves to the invalid file test from the test
    vector suite.

    Squashed-Change-Id : I5f1da7eb37282ec0c6394df5c73251a2df9c1744

    Remove unused vp9_init_quant_tables function

    This function is not effectively used, hence removed.

    Squashed-Change-Id : I2e8e48fa07c7518931690f3b04bae920cb360e49

    Actually skip blocks in skip segments in non-rd encoder.

    Copy split from macroblock to pick mode context so it doesn’t get lost.

    Squashed-Change-Id : Ie37aa12558dbe65c4f8076cf808250fffb7f27a8

    Add Check for Peek Stream validity to decoder test.

    Squashed-Change-Id : I9b745670a9f842582c47e6001dc77480b31fb6a1

    Allocate buffers based on correct chroma format

    The encoder currently allocates frame buffers before
    it establishes what the chroma sub-sampling factor is,
    always allocating based on the 4:4:4 format.

    This patch detects the chroma format as early as
    possible allowing the encoder to allocate buffers of
    the correct size.

    Future patches will change the encoder to allocate
    frame buffers on demand to further reduce the memory
    profile of the encoder and rationalize the buffer
    management in the encoder and decoder.

    Squashed-Change-Id : Ifd41dd96e67d0011719ba40fada0bae74f3a0d57

    Fork vp9_rd_pick_inter_mode_sb_seg_skip

    Squashed-Change-Id : I549868725b789f0f4f89828005a65972c20df888

    Switch active map implementation to segment based.

    Squashed-Change-Id : Ibb841a1fa4d08d164cf5461246ec290f582b1f80

    Experiment for mid group second arf.

    This patch implements a mechanism for inserting a second
    arf at the mid position of arf groups.

    It is currently disabled by default using the flag multi_arf_enabled.

    Results are currently down somewhat in initial testing if
    multi-arf is enabled. Most of the loss is attributable to the
    fact that code to preserve the previous golden frame
    (in the arf buffer) in cases where we are coding an overlay
    frame, is currently disabled in the multi-arf case.

    Squashed-Change-Id : I1d777318ca09f147db2e8c86d7315fe86168c865

    Clean out old CONFIG_MULTIPLE_ARF code.

    Remove the old experimental multi arf code that was under
    the flag CONFIG_MULTIPLE_ARF.

    Squashed-Change-Id : Ib24865abc11691d6ac8cb0434ada1da674368a61

    Fix some bugs in multi-arf

    Fix some bugs relating to the use of buffers
    in the overlay frames.

    Fix bug where a mid sequence overlay was
    propagating large partition and transform sizes into
    the subsequent frame because of :-
    sf->last_partitioning_redo_frequency > 1 and
    sf->tx_size_search_method == USE_LARGESTALL

    Squashed-Change-Id : Ibf9ef39a5a5150f8cbdd2c9275abb0316c67873a

    Further dual arf changes : multi_arf_allowed.

    Add multi_arf_allowed flag.
    Re-initialize buffer indices every kf.
    Add some const indicators.

    Squashed-Change-Id : If86c39153517c427182691d2d4d4b7e90594be71

    Fixed VP9 denoiser COPY_BLOCK case

    Now copies the src to the correct location in the running average buffer.

    Squashed-Change-Id : I9c83c96dc7a97f42c8df16ab4a9f18b733181f34

    Fix test on maximum downscaling limits

    There is a normative scaling range of (x1/2, x16)
    for VP9. This patch fixes the maximum downscaling
    tests that are applied in the convolve function.

    The code used a maximum downscaling limit of x1/5
    for historic reasons related to the scalable
    coding work. Since the downsampling in this
    application is non-normative it will revert to
    using a separate non-normative scaler.

    Squashed-Change-Id : Ide80ed712cee82fe5cb3c55076ac428295a6019f

    Add unit test to test user_priv parameter.

    Squashed-Change-Id : I6ba6171e43e0a43331ee0a7b698590b143979c44

    vp9 : check tile column count

    the max is 6. there are assumptions throughout the decode regarding
    this ; fixes a crash with a fuzzed bitstream

    $ zzuf -s 5861 -r 0.01:0.05 -b 6- \
    < vp90-2-00-quantizer-00.webm.ivf \
    | dd of=invalid-vp90-2-00-quantizer-00.webm.ivf.s5861_r01-05_b6-.ivf \
    bs=1 count=81883

    Squashed-Change-Id : I6af41bb34252e88bc156a4c27c80d505d45f5642

    Adjust arf Q limits with multi-arf.

    Adjust enforced minimum arf Q deltas for non primary arfs
    in the middle of an arf/gf group.

    Squashed-Change-Id : Ie8034ffb3ac00f887d74ae1586d4cac91d6cace2

    Dual ARF changes : Buffer index selection.

    Add indirection to the section of buffer indices.
    This is to help simplify things in the future if we
    have other codec features that switch indices.

    Limit the max GF interval for static sections to fit
    the gf_group structures.

    Squashed-Change-Id : I38310daaf23fd906004c0e8ee3e99e15570f84cb

    Reuse inter prediction result in real-time speed 6

    In real-time speed 6, no partition search is done. The inter
    prediction results got from picking mode can be reused in the
    following encoding process. A speed feature reuse_inter_pred_sby
    is added to only enable the resue in speed 6.

    This patch doesn’t change encoding result. RTC set tests showed
    that the encoding speed gain is 2% - 5%.

    Squashed-Change-Id : I3884780f64ef95dd8be10562926542528713b92c

    Add vp9_ prefix to mv_pred and setup_pred_block functions

    Make these two functions accessible by both RD and non-RD coding
    modes.

    Squashed-Change-Id : Iecb39dbf3d65436286ea3c7ffaa9920d0b3aff85

    Replace cpi->common with preset variable cm

    This commit replaces a few use cases of cpi->common with preset
    variable cm, to avoid unnecessary pointer fetch in the non-RD
    coding mode.

    Squashed-Change-Id : I4038f1c1a47373b8fd7bc5d69af61346103702f6

    [spatial svc]Implement lag in frames for spatial svc

    Squashed-Change-Id : I930dced169c9d53f8044d2754a04332138347409

    [spatial svc]Don’t skip motion search in first pass encoding

    Squashed-Change-Id : Ia6bcdaf5a5b80e68176f60d8d00e9b5cf3f9bfe3

    decode_test_driver : fix type size warning

    like vpx_codec_decode(), vpx_codec_peek_stream_info() takes an unsigned
    int, not size_t, parameter for buffer size

    Squashed-Change-Id : I4ce0e1fbbde461c2e1b8fcbaac3cd203ed707460

    decode_test_driver : check HasFailure() in RunLoop

    avoids unnecessary errors due to e.g., read (Next()) failures

    Squashed-Change-Id : I70b1d09766456f1c55367d98299b5abd7afff842

    Allow lossless breakout in non-rd mode decision.

    This is very helpful for large moving windows in screencasts.

    Squashed-Change-Id : I91b5f9acb133281ee85ccd8f843e6bae5cadefca

    Revert "Revert 3 patches from Hangyu to get Chrome to build :"

    This patch reverts the previous revert from Jim and also add a
    variable user_priv in the FrameWorker to save the user_priv
    passed from the application. In the decoder_get_frame function,
    the user_priv will be binded with the img. This change is needed
    or it will fail the unit test added here :
    https://gerrit.chromium.org/gerrit/#/c/70610/

    This reverts commit 9be46e4565f553460a1bbbf58d9f99067d3242ce.

    Squashed-Change-Id : I376d9a12ee196faffdf3c792b59e6137c56132c1

    test.mk : remove renamed file

    vp90-2-15-fuzz-flicker.webm was renamed in :
    c3db2d8 error check vp9 superframe parsing

    Squashed-Change-Id : I229dd6ca4c662802c457beea0f7b4128153a65dc

    vp9cx.mk : move avx c files outside of x86inc block

    same reasoning as :
    9f3a0db vp9_rtcd : correct avx2 references

    these are all intrinsics, so don’t depend on x86inc.asm

    Squashed-Change-Id : I915beaef318a28f64bfa5469e5efe90e4af5b827

    Dual arf : Name changes.

    Cosmetic patch only in response to comments on
    previous patches suggesting a couple of name changes
    for consistency and clarity.

    Squashed-Change-Id : Ida3a359b0d5755345660d304a7697a3a3686b2a3

    Make non-RD intra mode search txfm size dependent

    This commit fixes the potential issue in the non-RD mode decision
    flow that only checks part of the block to estimate the cost. It
    was due to the use of fixed transform size, in replacing the
    largest transform block size. This commit enables per transform
    block cost estimation of the intra prediction mode in the non-RD
    mode decision.

    Squashed-Change-Id : I14ff92065e193e3e731c2bbf7ec89db676f1e132

    Fix quality regression for multi arf off case.

    Bug introduced during multiple iterations on : I3831*

    gf_group->arf_update_idx[] cannot currently be used
    to select the arf buffer index if buffer flipping on overlays
    is enabled (still currently the case when multi arf OFF).

    Squashed-Change-Id : I4ce9ea08f1dd03ac3ad8b3e27375a91ee1d964dc

    Enable real-time version reference motion vector search

    This commit enables a fast reference motion vector search scheme.
    It checks the nearest top and left neighboring blocks to decide the
    most probable predicted motion vector. If it finds the two have
    the same motion vectors, it then skip finding exterior range for
    the second most probable motion vector, and correspondingly skips
    the check for NEARMV.

    The runtime of speed -5 goes down
    pedestrian at 1080p 29377 ms -> 27783 ms
    vidyo at 720p 11830 ms -> 10990 ms
    i.e., 6%-8% speed-up.

    For rtc set, the compression performance
    goes down by about -1.3% for both speed -5 and -6.

    Squashed-Change-Id : I2a7794fa99734f739f8b30519ad4dfd511ab91a5

    Add const mark to const values in non-RD coding mode

    Squashed-Change-Id : I65209fd1e06fc06833f6647cb028b414391a7017

    Change-Id : Ic0be67ac9ef48f64a8878a0b8f1b336f136bceac