On the Internet, there are many types of packets: VoIP, Audio, Video. As QoS is used to prioritize packets based on DSCP or VLAN priority. who set these bits for each and every packet. Like Audio gets DSCP 000111 (for example), Video gets DSCP 001100?
An application may set the priorities, a switch may set the priorities, a router may set the priorities, or really any device through which your packets travel may set the priorities. Switches may even set layer-2 priorities.
When designing your QoS policies, you need to determine the trust points. These would be the demarcation places where packets on one side have untrusted priorities. As the packets pass this point, they should be classified and marked. Generally, it is better to mark the packets as close to the source as possible so that they have correct markings for as long as they are in your network. Also, marking the packets on routers may cause an undue burden on the routers, driving up CPU utilization unacceptably. Marking on the switches, as traffic comes into a port or VLAN, is much less burdensome all the way around (the load is split among many access switches rather than a few routers), and it is very close to the source.
Which type of traffic gets which priority is also up to your QoS design. A very complex QoS design with many different priorities is not actually practical, and it is a big mistake people make when first setting up QoS.
By the way, your markings and QoS policies are only good inside your own network. Other networks, including your ISP, and any other ISPs through which your packets travel, will not honor your markings and QoS policies.
VLAN priority is something very different which has to do with root bridge selection in STP, but you can mark packet priorities based on which VLAN, among other criteria.