
Recherche avancée
Médias (1)
-
The Slip - Artworks
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Texte
Autres articles (76)
-
Keeping control of your media in your hands
13 avril 2011, parThe vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...) -
Les tâches Cron régulières de la ferme
1er décembre 2010, parLa gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
Le super Cron (gestion_mutu_super_cron)
Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...) -
Submit bugs and patches
13 avril 2011Unfortunately a software is never perfect.
If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
You may also (...)
Sur d’autres sites (10334)
-
Xbox Sphinx Protocol
I’ve gone down the rabbit hole of trying to read the Xbox DVD drive from Linux. Honestly, I’m trying to remember why I even care at this point. Perhaps it’s just my metagame of trying to understand how games and related technologies operate. In my last post of the matter, I determined that it is possible to hook an Xbox drive up to a PC using a standard 40-pin IDE interface and read data sectors. However, I learned that just because the Xbox optical drive is reading an Xbox disc, that doesn’t mean it’s just going to read the sectors in response to a host request.
Oh goodness, no. The drive is going to make the host work for those sectors.
To help understand the concept of locked/unlocked sectors on an Xbox disc, I offer this simplistic diagram :
Any DVD drive (including the Xbox drive) is free to read those first 6992 sectors (about 14 MB of data) which just contain a short DVD video asking the user to insert the disc into a proper Xbox console. Reading the remaining sectors involves performing a sequence of SCSI commands that I have taken to calling the “Sphinx Protocol” for reasons I will explain later in this post.
References
Doing a little Googling after my last post on the matter produced this site hosting deep, technical Xbox information. It even has a page about exactly what I am trying to achieve : Use an Xbox DVD Drive in Your PC. The page provides a tool named dvdunlocker written by “The Specialist” to perform the necessary unlocking. The archive includes a compiled Windows binary as well as its source code. The source code is written in Delphi Pascal and leverages Windows SCSI APIs. Still, it is well commented and provides a roadmap, which I will try to describe in this post.Sphinx Protocol
Here is a rough flowchart of the steps that are (probably) involved in the unlocking of those remaining sectors. I reverse engineered this based on the Pascal tool described in the previous section. Disclaimer : at the time of this writing, I haven’t tested all of the steps due to some Linux kernel problems, described later.
Concerning the challenge/response table that the drive sends back, it’s large (0×664 / 1636 bytes), and not all of the bytes’ meanings are known. However, these are the bytes that seem to be necessary (all multi-byte numbers are big endian) :
bytes 0-1 Size of mode page payload data (should be 0x0662) bytes 2-771 Unknown byte 772 Should be 1 byte 773 Number of entries in challenge/response table bytes 774-1026 Encrypted challenge/response table bytes 1027-1186 Unknown bytes 1187-1230 Key basis (44 bytes) bytes 1231-1635 Unknown
The challenge/response table is the interesting part, but it’s encrypted with RC4 a.k.a. ARCFOUR. The key is derived from the 44 bytes I have labeled “key basis”– cryptographic literature probably has a better term for it ; chime in if you know what that might be. An SHA-1 hash is computed over the 44 bytes.
The resulting SHA-1 hash — the first part of it, to be exact — is fed as the key into the RC4 decryption. The output of SHA-1 contains 160 bits of information. 160 / 8 = 20 bytes of information. To express this as a printable hex digest requires 40 characters. The SHA-1 hash is converted to a hex digest and then the first 7 of the characters are fed into the RC4 initialization function as the key. Then, the RC4 decrypter does its work on the 253 bytes of the challenge/response table.
So that’s why I took to calling this the “Sphinx Protocol” — I felt like I was being challenged with a bizarre riddle. Perhaps that describes a lot of cryptosystems, though You have to admit it sounds kind of cool.
The challenge/response table contains 23 11-byte records. The format of this table is (again, multi-byte numbers are big-endian) :
byte 0 This is 1 if this challenge/response pair is valid byte 1 Challenge ID bytes 2-5 Challenge byte 6 Response ID bytes 7-10 Response
Example
It’s useful to note that the challenge/response table and associated key is different for every disc (at least all the ones I have looked at). So this might be data that comes from the disc, since the values will always be the same for a given disc.Let’s examine Official Xbox Magazine disc #16 (Indiana Jones and The Emperor’s Tomb) :
Before I decrypt the challenge/response table, it looks like this :
0 : 180, 172 : 0xEB100059 ; 66 : 0xD56AFB56 1 : 34, 71 : 0x8F9BF03A ; 192 : 0xC32CBDF8 2 : 226, 216 : 0xA29B77F2 ; 12 : 0x4474A6F1 3 : 72, 122 : 0x9F5ABF33 ; 255 : 0xC5E3C304 4 : 1, 103 : 0x76142ADA ; 233 : 0xDE145D42 **** 5 : 49, 193 : 0xA1CD6192 ; 189 : 0x2169DBA5 6 : 182, 250 : 0x9977894F ; 96 : 0x5A929E2B 7 : 148, 71 : 0x6DD10A54 ; 115 : 0xF0BDAC4F 8 : 12, 45 : 0x5D5EB6FD ; 148 : 0x84E60A00 9 : 99, 121 : 0xFEAED372 ; 201 : 0xDA9986F9 10 : 172, 230 : 0xE6C0D0B4 ; 214 : 0x9050C250 11 : 84, 65 : 0x95CB8775 ; 104 : 0x550886C6 12 : 210, 65 : 0x1ED23619 ; 171 : 0x6DF4A35B 13 : 2, 155 : 0xD0AAE1E0 ; 130 : 0x00D1FFCF 14 : 40, 2 : 0x172EFEB8 ; 159 : 0x37E03E50 15 : 49, 15 : 0x43E5E378 ; 223 : 0x267F9C9A 16 : 240, 173 : 0x357D5D1C ; 250 : 0x24965D67 17 : 80, 184 : 0x5E7AF1A3 ; 81 : 0x3A8F69A7 18 : 154, 186 : 0x6626BEAC ; 245 : 0xE639540A 19 : 231, 249 : 0xFABAAFB7 ; 227 : 0x4C686A07 20 : 150, 186 : 0x9A6D7AA3 ; 133 : 0x25971CF0 21 : 236, 192 : 0x5CD97DD4 ; 247 : 0x26655EFB 22 : 68, 173 : 0xE2D372E4 ; 207 : 0x103FBF94 there are 1 valid pairs in the list : 4
My best clue that it’s not right is that there is only 1 valid entry (denoted by my tool using ****). The source I reverse engineered for this data indicates that there needs to be at least 2 valid pairs. After running the RC4 decryption on the table, it looks like this and I get far more valid pairs :
0 : 1, 174 : 0xBD628255 ; 0 : 0x9F0A31AF **** 1 : 2, 176 : 0x3151B341 ; 2 : 0x9C87C180 2 : 3, 105 : 0x018879E5 ; 1 : 0xFF068B5C 3 : 2, 7 : 0x1F316AAF ; 3 : 0xF420D3ED 4 : 3, 73 : 0xC2EBFBE9 ; 0 : 0x17062B5B 5 : 252, 163 : 0xFF14B5CB ; 236 : 0xAF813FBC 6 : 2, 233 : 0x5EE95C49 ; 1 : 0x37AA5511 7 : 1, 126 : 0xBD628255 ; 0 : 0x5BA3FBD4 **** 8 : 3, 4 : 0xB68BFEE6 ; 3 : 0xA8F3B918 9 : 3, 32 : 0xEA614943 ; 2 : 0xA678D715 10 : 2, 248 : 0x1BDD374E ; 0 : 0x8D2AC2C7 11 : 3, 17 : 0x0EABCE81 ; 2 : 0xC90A7242 12 : 1, 186 : 0xBD628255 ; 0 : 0xC4820242 **** 13 : 3, 145 : 0xB178F942 ; 3 : 0x4D78AD62 14 : 3, 37 : 0x4A6CE5E2 ; 2 : 0xBF94E1C6 15 : 1, 102 : 0xBD628255 ; 0 : 0xFFB83D8D **** 16 : 3, 122 : 0xF97B0905 ; 1 : 0x38533125 17 : 3, 197 : 0x57A6865D ; 2 : 0xA61D31EF 18 : 3, 27 : 0xC7227D7C ; 2 : 0xA3F9BA1E 19 : 1, 16 : 0xBD628255 ; 0 : 0x8557CCC8 **** 20 : 2, 53 : 0x1DA9D156 ; 3 : 0xC9051754 21 : 2, 90 : 0x3CD66BEE ; 3 : 0xFD851D3E 22 : 1, 252 : 0xBD628255 ; 0 : 0xB3F22701 **** there are 6 valid pairs in the list : 0 7 12 15 19 22
So, hopefully, I have the decryption correct.
Also of note is that you only get one chance to get this unlocking correct– fail, and the drive won’t return a valid DVD structure block again. You will either need to reboot the Xbox or eject & close the tray before you get to try again.
Problems Making It Work In Linux
There are a couple of ways to play with SCSI protocols under Linux. In more recent kernels, block devices are named /dev/sda, /dev/sdb, etc. Each of these block devices has a corresponding character device named /dev/sg0, /dev/sg1, etc. ‘sg’ stands for SCSI generic. This character devices can be opened as readable and/or writable and SCSI commands can be freely written with write() and data retrieved with read(). Pretty powerful.Except that the one machine I still possess which supports 40-pin IDE/ATAPI devices is running Linux kernel 2.6.24 which dates back to early 2008 and it still enumerates the IDE block devices as /dev/hda, /dev/hdb, etc. There are no corresponding /dev/sgX character devices. What to do ? It seems that a program can still issue SCSI commands using an ioctl() facility named SG_IO.
I was able to make the SG_IO ioctl() work for the most part (except for the discovery that the Xbox drive doesn’t respond to a basic SCSI Inquiry command). However, I ran into a serious limitation– a program can only open a /dev/hdX block device in read-only mode if the device corresponds to a read-only drive like, for example, a DVD-ROM drive. This means that a program can’t issue SCSI mode select commands to the drive, which counts as writing. This means that my tool can’t unlock the drive.
Current Status
So this is where my experiment is blocked right now. I have been trying to compile various Linux kernels to remedy the situation. But I always seem to find myself stuck in one of 2 situations, depending on the configuration options I choose : Either the drives are enumerated with the /dev/hdX convention and I am stuck in read-only mode (with no mode select) ; or the drives are enumerated with /dev/sdX along with corresponding /dev/sgN character devices, in which case the kernel does not recognize the Xbox DVD-ROM drive.This makes me wonder if there’s a discrepancy between the legacy ATA/ATAPI drivers (which sees the drive) and the newer SATA/PATA subsystem (which doesn’t see the drive). I also wonder about hacking the kernel logic to allow SCSI mode select logic to proceed to the device for a read-only file handle.
-
A Primer to Ethical Marketing : How to Build Trust in a Privacy-First World
Imagine a marketing landscape where transparency replaces tactics, where consumer privacy is prioritised over exploitation, and where authentic value builds genuine relationships.
This isn’t just an ideal—it’s the future of marketing. And it starts with ethical marketing practices.
76% of consumers refuse to buy from companies they do not trust with their data. Ethical marketing has become essential for business survival. As privacy regulations tighten and third-party cookies phase out, marketers face a critical question : how can they balance effective, personalised campaigns whilst respecting privacy ?
This comprehensive guide explores what ethical marketing is, the key principles behind ethical marketing practices, and practical strategies to implement an ethical approach that builds trust while driving growth.
What is ethical marketing ? A comprehensive definition
Ethical marketing places respect for consumer boundaries at its core whilst delivering genuine value. It prioritises transparent practices, honest communication, and fair value exchange with consumers. This approach represents a significant shift from traditional marketing, which often relied on collecting vast amounts of user data through invasive tracking methods and obscure policies.
The modern approach to ethical marketing creates a foundation built on three key pillars :
- User Control : Giving people genuine choice and agency over their data
- Fair Value : Providing clear benefits in exchange for any data shared
- Transparency : Being honest about how data is collected, used, and protected
Key principles of ethical marketing
Transparency
Transparency means being clear and forthright about your marketing practices, data collection policies, and business operations. It involves :
- Using plain language to explain how you collect and use customer data
- Being upfront about pricing, product limitations, and terms of service
- Disclosing sponsored content and affiliate relationships
- Making privacy policies accessible and understandable
When Matomo surveyed 2,000 consumers, 81% said they believe an organisation’s data practices reflect their overall treatment of customers. Transparency isn’t just about compliance—it’s about demonstrating respect.
Honesty
While similar to transparency, honesty focuses specifically on truthfulness in communications :
- Avoiding misleading claims or exaggerations about products and services
- Not manipulating statistics or research findings to support marketing narratives
- Representing products accurately in advertisements and marketing materials
- Acknowledging mistakes and taking responsibility when things go wrong
Social responsibility
Ethical marketing requires consideration of a brand’s impact on society as a whole :
- Considering environmental impacts of marketing campaigns and business practices
- Promoting diversity and inclusion in marketing representations
- Supporting social causes authentically rather than through “purpose-washing”
- Ensuring marketing activities don’t promote harmful stereotypes or behaviours
Ethical marketing dilemmas : Navigating complex business decisions
Data privacy concerns
The digital marketing landscape has been transformed by increasing awareness of data privacy issues and stricter regulations like GDPR, CCPA, and upcoming legislation. Key challenges include :
- The phase-out of third-party cookies, impacting targeting and measurement
- Growing consumer resistance to invasive tracking technologies
- Balancing personalisation with privacy (71% of consumers expect personalised experiences, yet demand privacy)
- Ensuring compliance across different jurisdictional requirements
Cultural sensitivity
Global brands must navigate complex cultural landscapes :
- Avoiding cultural appropriation in marketing campaigns
- Understanding varied cultural expectations around privacy
- Respecting local customs and values in international marketing
- Adapting messaging appropriately for diverse audiences
Environmental sustainability
The environmental impact of marketing activities is under increasing scrutiny :
- Digital carbon footprints from ad serving and website hosting
- Waste generated from physical marketing materials
- Promoting sustainable products honestly without greenwashing
- Aligning marketing messages with actual business practices
The benefits of ethical marketing
For years, digital marketing has relied on third-party data collection and broad-scale tracking. However, new regulations such as GDPR, CCPA, and the end of third-party cookies are pushing brands to adopt ethical data practices.
Increased customer loyalty
Ethical marketing fosters deeper relationships with customers by building trust. Research consistently shows that consumers are more loyal to brands they trust, with 71% indicating they would stop buying from a brand if trust is broken.
These trust-based relationships are more resilient during business challenges. When customers believe in a company’s integrity, they’re more likely to give the benefit of the doubt during controversies or service issues. They’re also more likely to provide constructive feedback rather than simply leaving for competitors.
Perhaps most importantly, loyal customers become advocates, sharing positive experiences with others and defending the brand against criticism. This organic advocacy is far more powerful than paid promotions and reduces customer acquisition costs significantly over time.
Enhanced brand reputation
A strong ethical stance improves overall brand perception across multiple dimensions. Media outlets are increasingly focused on corporate behaviour, providing positive coverage for ethical practices that extends a brand’s reach organically.
Social conversations about ethical brands tend to be more positive, with consumers sharing experiences and values rather than just discussing products. This creates a halo effect that benefits all aspects of the business.
This enhanced reputation also provides resilience during public relations challenges. Organisations with strong ethical foundations find it easier to navigate controversies because they’ve built a reservoir of goodwill with customers, employees, and other stakeholders.
Competitive advantage
Ethical marketing provides several distinct competitive advantages in modern markets. It helps brands access privacy-conscious consumer segments that actively avoid companies with questionable data practices. These segments often include higher-income, educated consumers who are valuable long-term customers.
Ethical approaches also reduce vulnerability to regulatory changes and potential penalties. As privacy laws continue to evolve globally, organisations with strong ethical foundations find compliance easier and less disruptive than those scrambling to meet minimum requirements.
Perhaps most significantly, ethical marketing supports more sustainable growth trajectories. While manipulative tactics might drive short-term results, they typically lead to higher churn rates and increasing acquisition costs. Ethical approaches build foundations for long-term success and stable growth.
For a detailed roadmap, download the Ethical Marketing Guide.
Case studies : Ethical marketing in action
Patagonia : Purpose-driven marketing
Patagonia integrates sustainability into its marketing, reinforcing its commitment to ethical business practices. By aligning with social causes, the brand strengthens customer loyalty.
Apple : Privacy as a competitive advantage
Apple positions itself as a leader in consumer privacy, ensuring data protection remains central to its marketing strategy. This commitment has become a key differentiator in the tech industry.
Matomo : The ethical analytics tool
Matomo offers privacy-first analytics that prioritise data ownership and compliance. Businesses using Matomo benefit from accurate insights while respecting user privacy.
These companies demonstrate that ethical marketing is not just a compliance requirement—it is a long-term competitive advantage.
Strategies for implementing ethical marketing
Aligning marketing efforts with brand values
Consistency between values and actions is essential for ethical marketing. This alignment starts with a clear understanding of what your organisation truly stands for—not just aspirational statements, but genuine commitments that inform daily decisions.
Implementing this alignment requires cross-functional collaboration. Marketing teams need to work closely with product development, customer service, and leadership to ensure consistency across all touchpoints. When different departments send contradictory messages about company values, trust erodes quickly.
Clear guidelines help marketing teams apply values in practical decisions, from campaign concepts to media placements. Regular ethical reviews of marketing plans can identify potential issues before campaigns launch, avoiding reactive corrections that damage credibility.
Privacy-first data strategies
Developing robust approaches to customer data is fundamental to ethical marketing. This starts with prioritising first-party data (collected directly from your own channels) and zero-party data (actively shared by customers through preference centres, surveys, and similar mechanisms).
Measuring success doesn’t have to come at the expense of privacy. Ethical analytics provide accurate insights while protecting user data, ensuring compliance, and enhancing customer trust.
Ethical personalisation approaches focus on using aggregated or anonymised data rather than individual tracking. This allows for relevant experiences without the invasive feeling that erodes trust when consumers feel watched across the internet.
Most importantly, ethical data strategies create transparent value exchanges where users clearly understand what benefits they receive in return for sharing information. This reciprocity transforms data collection from exploitation to fair exchange.
Measuring success ethically
Traditional marketing measurement often relies on individual-level tracking across sites and platforms. Ethical approaches require adapting these frameworks to respect privacy while still demonstrating impact.
Focusing on aggregate patterns rather than individual behaviour provides valuable insights without privacy invasions. For example, understanding that 30% of visitors to a specific page subsequently make purchases is actionable intelligence that doesn’t require tracking specific people.
Incrementality testing measures campaign impact by comparing outcomes between exposed and control groups at an aggregate level. This provides more accurate attribution than traditional last-click models while respecting privacy boundaries.
Server-side conversion tracking offers another ethical measurement approach, collecting necessary data on your servers rather than through client-side scripts vulnerable to blocking. This improves data accuracy while reducing reliance on cookies and browser storage.
Implementing ethical marketing strategies : A practical framework
1. Align marketing with brand values – Ensure campaigns reflect transparency and trust
2. Leverage first-party data – Collect insights directly from consumers with clear consent
3. Respect privacy and consent – Give users control over their data and clearly communicate its use
4. Create value-driven content – Offer educational and relevant resources instead of relying solely on advertising
5. Use privacy-compliant analytics – Switch to ethical platforms such as Matomo for responsible performance measurement
For a step-by-step guide to implementing ethical marketing strategies, download the full report here.
The future of ethical marketing
With the decline of third-party cookies and the rise of privacy regulations, ethical marketing is no longer optional. Brands that adopt privacy-first practices now will gain a sustainable competitive edge in the long term. The future of marketing belongs to brands that earn consumer trust, not those that exploit it.
Key trends shaping the future of marketing include :
- Privacy-first analytics to replace invasive tracking
- First-party and zero-party data strategies for direct consumer engagement
- Consent-driven personalisation to balance relevance and privacy
- Greater emphasis on corporate social responsibility in marketing initiatives
Companies that proactively address these changes will build stronger customer relationships, enhance brand reputation, and ensure long-term success.
Take the next step
Ready to transform your marketing approach for 2025 and beyond ?
Download Matomo’s comprehensive “2025 Ethical Marketing Field Guide” to get practical frameworks, implementation strategies, and real-world case studies that will help you build trust while driving growth.
With detailed guidance on first-party data activation, consent-based personalisation techniques, and privacy-preserving analytics methods, this guide provides everything you need to future-proof your marketing strategy in a privacy-first world.
Download the ethical marketing guide now to start building stronger, more trusted relationships with your customers through ethical marketing practices.
-
In ffmpeg : Can't get peak bitrate values within 10% error tolerance for HLS playlist files
5 octobre 2019, par ALS20394I’m using ffmpeg to produce several HLS variant playlists from an .mp4 file. When I check master.m3u8 file with mediastreamvalidator I get :
Error : Measured peak bitrate compared to master playlist declared value exceeds error tolerance
I understand that the error percentage needs to be less than 10%, and figured it out on 1 variant but not the three others. I’ve spent quite a bit of time adjusting the -maxrate and the -buffsize but the error percentage change is minimal. Beginning to wonder if I’m misunderstanding something ?
This is the latest of what I enter :
ffmpeg -i FHVid.mp4 \
-b:v:0 5000k -maxrate 5250k -bufsize 5500k -profile:v main -c:v h264 -crf 20 -sc_threshold 0 -g 48 \
-b:v:1 2800k -maxrate 2940k -bufsize 3100k -profile:v main -c:v h264 -crf 20 -sc_threshold 0 -g 48 \
-b:v:2 1400k -maxrate 1540k -bufsize 1700k -profile:v main -c:v h264 -crf 20 -sc_threshold 0 -g 48 \
-b:v:3 800k -maxrate 840k -bufsize 1050k -profile:v main -c:v h264 -crf 20 -sc_threshold 0 -g 48 \
-b:a:0 192k \
-b:a:1 128k \
-b:a:2 128k \
-b:a:3 96k \
-c:a aac -ar 48000 -keyint_min 48 -map 0:v -map 0:a -map 0:v -map 0:a -map 0:v -map 0:a -map 0:v -map 0:a \
-f hls -var_stream_map "v:0,a:0 v:1,a:1 v:2,a:2 v:3,a:3" \
-master_pl_name FHVidmaster.m3u8 -hls_time 4 -hls_playlist_type vod \
-hls_segment_filename 'file_%v_%03d.ts' out_%v.m3u8but I’ve also tried max rates that seem to be more standard
-b:v:0 5000k -maxrate 5500k -bufsize 6500k
-b:v:1 2800k -maxrate 3080k -bufsize 3200k
-b:v:2 1400k -maxrate 1540k -bufsize 1900k
-b:v:3 800k -maxrate 880k -bufsize 1050kThe latest error message :
Error: Measured peak bitrate compared to master playlist declared value exceeds error tolerance
--> Detail: Measured: 1111.54 kb/s, Master playlist: 1680.80 kb/s, Error: 33.87%
--> Source: /Users/Bun/Documents/CODING/CosmicPerspectiveAssets/01-FalconHeavy/HLS/FHVidmaster.m3u8
--> Compare: out_2.m3u8
--> Detail: Measured: 1178.21 kb/s, Master playlist: 5711.20 kb/s, Error: 79.37%
--> Source: /Users/Bun/Documents/CODING/CosmicPerspectiveAssets/01-FalconHeavy/HLS/FHVidmaster.m3u8
--> Compare: out_0.m3u8
--> Detail: Measured: 1109.03 kb/s, Master playlist: 3220.80 kb/s, Error: 65.57%
--> Source: /Users/Bun/Documents/CODING/CosmicPerspectiveAssets/01-FalconHeavy/HLS/FHVidmaster.m3u8
--> Compare: out_1.m3u8Any help would be greatly appreciated on the -maxrate and -buffsize for variant playlists 0, 1, and 2. No adjustment I make seems to make any difference.