- Kevin Paul
- January 6, 2021
Android Codec 2.0: Developing Multimedia Applications for newer Android Platforms
Tightening security by accelerating updates for security bugs and features has become one of the prime necessities of the connected world. The faster you roll out updates, the better these vulnerabilities can be plugged in. The intent is to create media frameworks which are extensible; partners can continue to extend media codecs and media format extractors.
Prior to Android N (released in 2016), all the modules of the Android Media framework like playback, recording, camera, audio were part of the media server process. But due to the stagefright security vulnerabilities, the media server was split into processes like the media codec, media extractor, camera server, audio server, etc.
In 2018, Google came up with Project Treble, with the aim of reducing the problem of Fragmentation. To understand more about Project Treble, please go through the article at Google’s Official Developer Blog. As part of Google’s plan for a more modularized framework, Google provided a new MediaCodec implementation framework – Codec 2.0 on Android Q (released in 2019).

What is Codec 2.0?
Prior to Android Q, the two main modules of multimedia frameworks were MediaPlayer and MediaCodec. MediaCodec was only responsible for decoding and rendering. MediaCodec called the third-party codec through OpenMAX-IL via the ACodec layer to implement hardware encoding/decoding. Chip manufacturers only need to support the OpenMAX interface developed by Khronos to implement MediaCodec hardware encoding and decoding. Google launched Codec2.0 on Android Q, which was to replace ACodec and OpenMAX. This can be viewed as a new set of middleware that works with MediaCodec.
Why Codec 2.0?
One of the major issues with the earlier issue was on the fragmentation of the Android ecosystem. The changes were cumbersome and varying from customer to customer based on the specific customization support that was required for the device. In order to overcome this challenge, Google launched a new concept of the mainline module and the fact that manufacturers are not allowed to modify the SDK. The mainlines modules can be upgraded through the Google Play store. The mainline module can be modified by submitting code to the mainline.
Google’s Codec 2.0 belongs to the mainline module, and manufacturers cannot modify its code. In this case, Android devices of various manufacturers are consistent in the multimedia middleware module. If the manufacturer wants to add features to the middleware module or fix a bug, manufacturers can only submit codes or patches to Google’s mainline. Mainline being merged and up to date benefits Google and other vendors.
Second, compared with the middleware framework of ACodec+OMX, Codec 2.0 will have several features: component chaining, filters, and configuration querying.
Third, in terms of performance, Codec 2.0 has more advantages compared to the ACodec+OMX framework. The Buffer management mechanism that the decoding and encoding components of Codec 2.0 rely on has a zero-copy feature to avoid performance degradation caused by the copy of large blocks of data.
Codec 2.0 Framework
The code for Codec2.0 is located at /frameworks/av/media/codec2. The top-level directory structure is as follows:
sfplugin/CCodec.cpp is the entry to the codec 2.0 framework. As the name sfplugin suggests, CCodec acts as the interface to the stagefright. This essentially means CCodec.cpp is synonymous with ACodec.cpp in libstagefright. The interface API’s provided by the CCodec is consistent with the ACodec interface which makes CCodec easy to integrate with MediaCodec.

The important member objects of CCodec class are :
- mChannel : CCodecBufferChannel Class, which is mainly responsible for buffer delivery.
- mClient : Codec2Client class, Codec2Client helps the CCodec to interact with the Codec2 components. The entry point is Codec2Client::CreateFromService(), which creates a Codec2Client object and from this Codec2Client, the Interface and the Component objects can be created by calling createComponent() and createInterface(). Component is the representative of a specific decoder/encoder component. Component Interface provides an interactive interface for configuration and parameters, between CCodec and the component. Both the component and its interface are created through a vendor specific ComponentStore.
- mClientListener : Listener class essentially used for input, output and error callbacks.
Sequence Diagrams:
1.Component Interface creation

2. Component creation

3. Playback sequence

Ignitarium’s Expertise on Codec 2.0
For the last several years, Ignitarium has been developing and supporting customers on various multimedia solutions on Linux and Android. We work with product companies, MNCs, and startups to architect and design solutions on multimedia products. The team at Ignitarium has a complete understanding of the Android Multimedia Framework and has been undertaking several R&D projects on Codec 2.0. A few implementations for customers are listed here:
1) Custom system service creation for interaction between application and framework
2) HIDL interface development from scratch
3) Vendor service creation for interaction with system services through HIDL interface
4) SE policy changes
The Ignitarium team is capable of developing Codec 2.0 compliant components for various hardware decoders. Ignitarium team has designed mechanisms to have pre/post-processing modules to any of the decoders without having a dependency on the hardware component vendors while complying to the Treble requirements. This design enables the use of various accelerated processing like OpenGL, etc.
If you are looking for expertise in Android Multimedia Framework and Codec2 specifically, do reach out to us for a discussion.
248 thoughts on “Android Codec 2.0: Developing Multimedia Applications for newer Android Platforms”
Your point of view caught my eye and was very interesting. Thanks. I have a question for you.
I’m impressed, I must say. Really not often do I encounter a blog that’s both educative and entertaining, and let me inform you, you have got hit the nail on the head. Your concept is excellent; the issue is one thing that not sufficient persons are speaking intelligently about. I am very blissful that I stumbled across this in my seek for something relating to this.
cГ©tirizine sans ordonnance: compralgyl sans ordonnance – pharmacie sans ordonnance montpellier
apoteka online: Snabb Apoteket – jobb pГҐ apotek
https://zorgpakket.com/# apotheke
apotek maps [url=https://snabbapoteket.com/#]Snabb Apoteket[/url] billigt godis online
https://tryggmed.shop/# antiskli sokker voksne apotek
zink apotek: Snabb Apoteket – stetoskop kГ¶pa
malurt apotek: TryggMed – mycoplasma test apotek
billigt solskydd [url=http://snabbapoteket.com/#]apotek jodtabletter[/url] borax apotek
https://snabbapoteket.com/# kräm för blåmärken
medicatielijst apotheek: Medicijn Punt – medicijnlijst apotheek
https://tryggmed.com/# neti pot apotek
apotek djurrecept: Snabb Apoteket – apotek sverige
jojobaolje apotek [url=https://tryggmed.shop/#]sГҐrlim apotek[/url] stoppe neseblod apotek
https://snabbapoteket.com/# graviditetstest apotek
apotek med gratis frakt: plantar fascitt sГҐler apotek – apotek 24 timer
med apotheek: Medicijn Punt – apteka nl
https://snabbapoteket.shop/# mg/ml till procent
tens apparat apotek [url=https://tryggmed.com/#]TryggMed[/url] blod i avfГёring test apotek
apotek lagerstatus: SnabbApoteket – ilningar engelska
http://zorgpakket.com/# online medicijnen
kГ¶pa medicin: apotek city – apotek fullmakt blankett
https://tryggmed.com/# skin tag remover apotek
rubbing alcohol apotek [url=https://snabbapoteket.com/#]SnabbApoteket[/url] saltlГ¶sning piercing apotek
covid hjemmetest apotek: Гёke forbrenning apotek – fysiologisk saltvann apotek
apotek pГҐ.nett: TryggMed – hemoroider apotek
http://tryggmed.com/# halsbrann apotek
köpa sömntabletter på nätet [url=http://snabbapoteket.com/#]Snabb Apoteket[/url] apotek halstabletter
medicatie bestellen apotheek: recept medicijn – online apotheek nederland met recept
https://snabbapoteket.com/# kan man rГ¶ka te
oppblГҐst mage apotek: jojobaolje apotek – vaksiner apotek
https://tryggmed.shop/# corona test apotek
MediMexicoRx [url=http://medimexicorx.com/#]sildenafil mexico online[/url] sildenafil mexico online
rexall pharmacy & drug store: imitrex online pharmacy – Indinavir (Cipla Ltd)
https://indiamedshub.shop/# legitimate online pharmacies india
pharmacy continuing education online: prescription online – xeloda specialty pharmacy
MediMexicoRx: order kamagra from mexican pharmacy – low cost mexico pharmacy online
safe place to buy semaglutide online mexico [url=https://medimexicorx.shop/#]MediMexicoRx[/url] trusted mexican pharmacy
https://indiamedshub.com/# IndiaMedsHub
http://indiamedshub.com/# reputable indian online pharmacy
IndiaMedsHub: IndiaMedsHub – cheapest online pharmacy india
isotretinoin from mexico [url=https://medimexicorx.shop/#]buy meds from mexican pharmacy[/url] MediMexicoRx
https://indiamedshub.com/# buy medicines online in india
get viagra without prescription from mexico: cheap mexican pharmacy – MediMexicoRx
ExpressCareRx: ExpressCareRx – propecia pharmacy direct
compounding pharmacy piroxicam [url=https://expresscarerx.online/#]propecia online pharmacy no prescription[/url] generic zoloft online pharmacy
https://medimexicorx.com/# mexican drugstore online
http://medimexicorx.com/# MediMexicoRx
ExpressCareRx: target pharmacy wellbutrin – ExpressCareRx
https://indiamedshub.shop/# IndiaMedsHub
ExpressCareRx [url=http://expresscarerx.org/#]testosterone online pharmacy[/url] price of cialis at pharmacy
online pharmacy without scripts: ExpressCareRx – publix pharmacy wellbutrin
order from mexican pharmacy online: semaglutide mexico price – buy viagra from mexican pharmacy
https://indiamedshub.shop/# IndiaMedsHub
buy cialis from mexico [url=https://medimexicorx.com/#]legit mexican pharmacy for hair loss pills[/url] accutane mexico buy online
pharmacy website india: indian pharmacies safe – indian pharmacy online
https://expresscarerx.online/# generic viagra online pharmacy reviews
п»їlegitimate online pharmacies india: online shopping pharmacy india – IndiaMedsHub
https://indiamedshub.shop/# Online medicine order
IndiaMedsHub [url=https://indiamedshub.com/#]india pharmacy mail order[/url] indian pharmacy paypal
india pharmacy: buy medicines online in india – best india pharmacy
https://expresscarerx.online/# cheapest pharmacy to buy plavix
MediMexicoRx: trusted mexico pharmacy with US shipping – generic drugs mexican pharmacy
levitra online pharmacy review [url=https://expresscarerx.org/#]accutane northwest pharmacy[/url] compounding pharmacy viagra
MediMexicoRx: buy kamagra oral jelly mexico – MediMexicoRx
http://expresscarerx.org/# viagra india pharmacy
http://medimexicorx.com/# best mexican online pharmacies
order azithromycin mexico: MediMexicoRx – finasteride mexico pharmacy
reputable indian online pharmacy [url=https://indiamedshub.com/#]Online medicine home delivery[/url] п»їlegitimate online pharmacies india
https://expresscarerx.org/# online pharmacy usa viagra
top 10 online pharmacy in india: reputable indian online pharmacy – IndiaMedsHub
real mexican pharmacy USA shipping: trusted mexico pharmacy with US shipping – zithromax mexican pharmacy
freds pharmacy store hours [url=http://expresscarerx.org/#]ExpressCareRx[/url] ExpressCareRx
https://finasteridefromcanada.shop/# Propecia for hair loss online
http://tadalafilfromindia.com/# buy Cialis online cheap
buy tadalafil online no prescription: buy Cialis online cheap – tadalafil online no rx
buy Cialis online cheap: Cialis without prescription – Tadalafil From India
buy lexapro online india [url=https://lexapro.pro/#]lexapro discount[/url] Lexapro for depression online
https://tadalafilfromindia.shop/# canada tadalafil generic
buy Cialis online cheap: cheap Cialis Canada – cheap Cialis Canada
Propecia for hair loss online: cost cheap propecia for sale – Finasteride From Canada
purchase generic Zoloft online discreetly [url=https://zoloft.company/#]Zoloft for sale[/url] purchase generic Zoloft online discreetly
https://tadalafilfromindia.com/# Tadalafil From India
cheap Accutane: generic isotretinoin – order isotretinoin from Canada to US
sertraline online: Zoloft Company – buy Zoloft online without prescription USA
https://finasteridefromcanada.com/# cheap Propecia Canada
https://lexapro.pro/# lexapro drug
canada pharmacy lexapro [url=https://lexapro.pro/#]Lexapro for depression online[/url] best price for lexapro
Lexapro for depression online: Lexapro for depression online – lexapro 20 mg discount
cheap Zoloft: Zoloft Company – Zoloft for sale
https://finasteridefromcanada.shop/# generic Finasteride without prescription
Isotretinoin From Canada [url=https://isotretinoinfromcanada.com/#]purchase generic Accutane online discreetly[/url] Isotretinoin From Canada
cheap Accutane: order isotretinoin from Canada to US – generic isotretinoin
https://lexapro.pro/# lexapro 20mg pill
cheap Propecia Canada: generic Finasteride without prescription – Finasteride From Canada
http://finasteridefromcanada.com/# generic Finasteride without prescription
Propecia for hair loss online [url=https://finasteridefromcanada.com/#]get generic propecia without dr prescription[/url] Finasteride From Canada
buy lexapro online india: Lexapro for depression online – lexapro 1.25 mg
https://lexapro.pro/# lexapro 20 mg coupon
Lexapro for depression online [url=https://lexapro.pro/#]Lexapro for depression online[/url] lexapro drug
purchase generic Zoloft online discreetly: buy Zoloft online – buy Zoloft online without prescription USA
http://finasteridefromcanada.com/# cheap Propecia Canada
order isotretinoin from Canada to US: Isotretinoin From Canada – Isotretinoin From Canada
https://tadalafilfromindia.com/# Cialis without prescription
buying generic propecia [url=https://finasteridefromcanada.shop/#]cheap Propecia Canada[/url] Propecia for hair loss online
buy cheap lexapro online: Lexapro for depression online – prescription price for lexapro
https://isotretinoinfromcanada.com/# order isotretinoin from Canada to US
Thanks for your suggestions. One thing I’ve got noticed is the fact banks and also financial institutions know the spending practices of consumers and as well understand that the majority of people max out their credit cards around the vacations. They prudently take advantage of this particular fact and begin flooding your current inbox along with snail-mail box by using hundreds of no interest APR credit cards offers shortly after the holiday season concludes. Knowing that should you be like 98 of all American community, you’ll leap at the opportunity to consolidate consumer credit card debt and transfer balances to 0 APR credit cards.
generic Finasteride without prescription: Propecia for hair loss online – propecia for sale
Tadalafil From India [url=https://tadalafilfromindia.com/#]tadalafil online no rx[/url] Tadalafil From India
https://zoloft.company/# generic sertraline
best price for lexapro: cheapest price for generic lexapro – lexapro 20mg pill
https://lexapro.pro/# buy lexapro from canada
lexapro escitalopram: Lexapro for depression online – Lexapro for depression online
Zoloft online pharmacy USA [url=https://zoloft.company/#]buy Zoloft online without prescription USA[/url] buy Zoloft online without prescription USA
http://isotretinoinfromcanada.com/# isotretinoin online
generic Finasteride without prescription: cheap Propecia Canada – cheap Propecia Canada
buying cheap propecia without insurance: generic Finasteride without prescription – generic Finasteride without prescription
https://lexapro.pro/# Lexapro for depression online
sertraline online [url=https://zoloft.company/#]generic sertraline[/url] generic sertraline
Zoloft for sale: generic sertraline – cheap Zoloft
https://zoloft.company/# buy Zoloft online
http://tadalafilfromindia.com/# tadalafil online no rx
tadalafil online no rx [url=http://tadalafilfromindia.com/#]buy Cialis online cheap[/url] Cialis without prescription
Propecia for hair loss online: generic Finasteride without prescription – generic Finasteride without prescription
https://zoloft.company/# Zoloft for sale
cheap Accutane [url=http://isotretinoinfromcanada.com/#]order isotretinoin from Canada to US[/url] Isotretinoin From Canada
generic isotretinoin: purchase generic Accutane online discreetly – Accutane for sale
purchase generic Zoloft online discreetly: Zoloft Company – Zoloft for sale
lexapro buy [url=https://lexapro.pro/#]lexapro brand name discount[/url] where can i purchase lexapro online
Zoloft for sale: Zoloft online pharmacy USA – sertraline online
http://tadalafilfromindia.com/# cheap Cialis Canada
USA-safe Accutane sourcing: order isotretinoin from Canada to US – buy Accutane online
cheap Propecia Canada [url=http://finasteridefromcanada.com/#]Finasteride From Canada[/url] Propecia for hair loss online
buy Cialis online cheap: tadalafil online price – buy Cialis online cheap
buying cheap propecia no prescription: generic Finasteride without prescription – Propecia for hair loss online
Tadalafil From India [url=https://tadalafilfromindia.shop/#]cheap Cialis Canada[/url] buy Cialis online cheap
Tadalafil From India: generic tadalafil medication – cheap Cialis Canada
isotretinoin online: USA-safe Accutane sourcing – Isotretinoin From Canada
https://zoloft.company/# Zoloft online pharmacy USA
purchase generic Accutane online discreetly: generic isotretinoin – purchase generic Accutane online discreetly
Zoloft Company: Zoloft Company – buy Zoloft online without prescription USA
generic sertraline: Zoloft Company – sertraline online
https://finasteridefromcanada.shop/# Finasteride From Canada
Propecia for hair loss online: get cheap propecia pill – cheap Propecia Canada
purchase generic Zoloft online discreetly: Zoloft Company – buy Zoloft online without prescription USA
Clomid Hub Pharmacy: Clomid Hub Pharmacy – how can i get generic clomid for sale
where to buy Modafinil legally in the US [url=https://wakemedsrx.shop/#]Modafinil for ADHD and narcolepsy[/url] safe Provigil online delivery service
ReliefMeds USA: anti-inflammatory steroids online – prednisone 475
safe Provigil online delivery service: wakefulness medication online no Rx – WakeMedsRX
https://reliefmedsusa.com/# ReliefMeds USA
NeuroRelief Rx: NeuroRelief Rx – NeuroRelief Rx
ReliefMeds USA [url=http://reliefmedsusa.com/#]ReliefMeds USA[/url] anti-inflammatory steroids online
prednisone in uk: ReliefMeds USA – Relief Meds USA
gabapentin al 300 mg: NeuroRelief Rx – gabapentin hangover
ClearMeds Direct: order amoxicillin without prescription – antibiotic treatment online no Rx
NeuroRelief Rx [url=https://neuroreliefrx.com/#]gabapentin for canine seizures[/url] NeuroRelief Rx
http://neuroreliefrx.com/# NeuroRelief Rx
where to buy clomid no prescription: clomid without insurance – Clomid Hub Pharmacy
generic prednisone pills: anti-inflammatory steroids online – Relief Meds USA
Clear Meds Direct: Clear Meds Direct – Clear Meds Direct
NeuroRelief Rx [url=https://neuroreliefrx.com/#]efectos secundarios del gabapentin 300 mg[/url] NeuroRelief Rx
smart drugs online US pharmacy: wakefulness medication online no Rx – where to buy Modafinil legally in the US
https://clomidhubpharmacy.com/# Clomid Hub Pharmacy
ReliefMeds USA: ReliefMeds USA – prednisone pill prices
amoxicillin 500mg price: antibiotic treatment online no Rx – Clear Meds Direct
NeuroRelief Rx [url=https://neuroreliefrx.com/#]can you take buspar with gabapentin[/url] NeuroRelief Rx
buying clomid without dr prescription: Clomid Hub Pharmacy – Clomid Hub
Relief Meds USA: order corticosteroids without prescription – Relief Meds USA
ReliefMeds USA: Relief Meds USA – anti-inflammatory steroids online
low-cost antibiotics delivered in USA [url=http://clearmedsdirect.com/#]amoxicillin canada price[/url] low-cost antibiotics delivered in USA
low-cost antibiotics delivered in USA: Clear Meds Direct – order amoxicillin without prescription
Wake Meds RX: where to buy Modafinil legally in the US – buy Modafinil online USA
anti-inflammatory steroids online [url=http://reliefmedsusa.com/#]ReliefMeds USA[/url] Relief Meds USA
https://clomidhubpharmacy.com/# Clomid Hub Pharmacy
can i get clomid without prescription: how to buy clomid without dr prescription – Clomid Hub
can i purchase clomid without prescription: Clomid Hub Pharmacy – can you buy clomid without insurance
can you get fluoxetine [url=https://neuroreliefrx.com/#]NeuroRelief Rx[/url] kegunaan obat gabapentin
anti-inflammatory steroids online: ReliefMeds USA – anti-inflammatory steroids online
NeuroRelief Rx: gabapentin dose in fibromyalgia – NeuroRelief Rx
NeuroRelief Rx: can gabapentin increase nerve pain – gabapentin 300mg tablet
buy cheap clomid without dr prescription [url=https://clomidhubpharmacy.com/#]where can i get clomid without prescription[/url] Clomid Hub
Relief Meds USA: anti-inflammatory steroids online – buy prednisone 1 mg mexico
https://clomidhubpharmacy.com/# Clomid Hub Pharmacy
low-cost antibiotics delivered in USA: antibiotic treatment online no Rx – low-cost antibiotics delivered in USA
NeuroRelief Rx: does gabapentin give you headaches – phenibut vs gabapentin
anti-inflammatory steroids online [url=https://reliefmedsusa.com/#]anti-inflammatory steroids online[/url] otc prednisone cream
generic prednisone 10mg: order corticosteroids without prescription – anti-inflammatory steroids online
smart drugs online US pharmacy: where to buy Modafinil legally in the US – Modafinil for focus and productivity
WakeMeds RX: smart drugs online US pharmacy – safe Provigil online delivery service
WakeMeds RX [url=http://wakemedsrx.com/#]buy Modafinil online USA[/url] nootropic Modafinil shipped to USA
buy prednisone nz: Relief Meds USA – order corticosteroids without prescription
http://clomidhubpharmacy.com/# Clomid Hub Pharmacy
low-cost antibiotics delivered in USA: order amoxicillin without prescription – amoxicillin 500 mg tablet
prednisone pills 10 mg: buy prednisone online without a script – order corticosteroids without prescription
Wake Meds RX [url=https://wakemedsrx.shop/#]prescription-free Modafinil alternatives[/url] buy Modafinil online USA
anti-inflammatory steroids online: anti-inflammatory steroids online – prednisone brand name in usa
how to get generic clomid without insurance: buy generic clomid without insurance – how can i get cheap clomid price
order corticosteroids without prescription: prednisone 25mg from canada – anti-inflammatory steroids online
antibiotic treatment online no Rx [url=https://clearmedsdirect.com/#]antibiotic treatment online no Rx[/url] antibiotic treatment online no Rx
Relief Meds USA: order corticosteroids without prescription – Relief Meds USA
https://mexicarerxhub.shop/# MexiCare Rx Hub
IndiGenix Pharmacy: IndiGenix Pharmacy – IndiGenix Pharmacy
MexiCare Rx Hub: MexiCare Rx Hub – buying from online mexican pharmacy
CanadRx Nexus [url=https://canadrxnexus.shop/#]CanadRx Nexus[/url] CanadRx Nexus
CanadRx Nexus: CanadRx Nexus – CanadRx Nexus
cheapest online pharmacy india: indian pharmacy – IndiGenix Pharmacy
mexican rx online: MexiCare Rx Hub – mexican pharmaceuticals online
IndiGenix Pharmacy [url=https://indigenixpharm.com/#]world pharmacy india[/url] indian pharmacy
IndiGenix Pharmacy: IndiGenix Pharmacy – cheapest online pharmacy india
buy meds from mexican pharmacy: MexiCare Rx Hub – modafinil mexico online
IndiGenix Pharmacy: pharmacy website india – indian pharmacy
buy antibiotics from mexico [url=https://mexicarerxhub.shop/#]MexiCare Rx Hub[/url] buy antibiotics from mexico
best canadian pharmacy: canadian drug prices – CanadRx Nexus
CanadRx Nexus: CanadRx Nexus – canadian pharmacy uk delivery
IndiGenix Pharmacy [url=https://indigenixpharm.shop/#]indianpharmacy com[/url] reputable indian pharmacies
CanadRx Nexus: canadian pharmacy india – CanadRx Nexus
MexiCare Rx Hub: buy antibiotics from mexico – MexiCare Rx Hub
canadian king pharmacy: safe canadian pharmacies – pharmacy in canada
http://mexicarerxhub.com/# mexican online pharmacies prescription drugs
MexiCare Rx Hub [url=https://mexicarerxhub.shop/#]MexiCare Rx Hub[/url] order from mexican pharmacy online
MexiCare Rx Hub: mexican online pharmacies prescription drugs – mexican mail order pharmacies
isotretinoin from mexico: MexiCare Rx Hub – finasteride mexico pharmacy
top 10 pharmacies in india: indian pharmacy – IndiGenix Pharmacy
CanadRx Nexus [url=https://canadrxnexus.com/#]canadian pharmacy tampa[/url] canadian pharmacy meds review
MexiCare Rx Hub: medicine in mexico pharmacies – MexiCare Rx Hub
order from mexican pharmacy online: MexiCare Rx Hub – MexiCare Rx Hub
CanadRx Nexus: canadian pharmacy ed medications – CanadRx Nexus
https://mexicarerxhub.shop/# purple pharmacy mexico price list
online pharmacy india [url=https://indigenixpharm.shop/#]india online pharmacy[/url] Online medicine home delivery
canadian drug stores: CanadRx Nexus – CanadRx Nexus
Your article helped me a lot, is there any more related content? Thanks!
indian pharmacy online: IndiGenix Pharmacy – IndiGenix Pharmacy
amoxicillin mexico online pharmacy: legit mexico pharmacy shipping to USA – zithromax mexican pharmacy
CanadRx Nexus [url=http://canadrxnexus.com/#]CanadRx Nexus[/url] CanadRx Nexus
IndiGenix Pharmacy: IndiGenix Pharmacy – indian pharmacy online
IndiGenix Pharmacy: IndiGenix Pharmacy – best online pharmacy india
mail order pharmacy india: IndiGenix Pharmacy – IndiGenix Pharmacy
best mail order pharmacy canada [url=https://canadrxnexus.shop/#]CanadRx Nexus[/url] canada pharmacy online legit
https://mexicarerxhub.shop/# mexican border pharmacies shipping to usa
CanadRx Nexus: CanadRx Nexus – canadapharmacyonline com
MexiCare Rx Hub: buy meds from mexican pharmacy – MexiCare Rx Hub
CanadRx Nexus: buying drugs from canada – CanadRx Nexus
canadian online drugs [url=https://canadrxnexus.com/#]canadian pharmacy king[/url] CanadRx Nexus
MexiCare Rx Hub: MexiCare Rx Hub – MexiCare Rx Hub
best online pharmacy india: Online medicine order – IndiGenix Pharmacy
gabapentin mexican pharmacy: mexico pharmacy – MexiCare Rx Hub