A video decoding method, implemented by a computer having multiple parallel processing units (P0,...,PN-1), comprising: receiving a stream of data elements, some of which encode video content, the stream comprising marker sequences (S1, S2), each marker sequence comprising a marker (M1, M2) which does not encode video content, wherein a known pattern of data elements occurs in each marker sequence; supplying a respective part (SS1, SS2) of the stream to each parallel processing unit; each parallel processing unit processing the respective part of the stream, whereby multiple parts of the stream are processed in parallel, to detect whether any of the multiple parts matches the known pattern of data elements, thereby identifying the markers, wherein at least some of the markers are dividing markers which divide the stream into packets (208,210), the dividing markers identified to identify the packets, wherein each packet comprises payload data and header data; and when each packet is identified: if the header data identifies the payload data as being encoded video content, repeatedly supplying respective parts of the stream to each parallel processing unit until the next packet is identified, and if the header data identifies the payload data as being control data, processing the stream one part at a time to identify the next packet; the method further comprising: separating the encoded video content from the identified markers; decoding the separated video content; and outputting the decoded video content on a display. receiving a stream of data elements, some of which encode video content, the stream comprising marker sequences (S1, S2), each marker sequence comprising a marker (M1, M2) which does not encode video content, wherein a known pattern of data elements occurs in each marker sequence; supplying a respective part (SS1, SS2) of the stream to each parallel processing unit; each parallel processing unit processing the respective part of the stream, whereby multiple parts of the stream are processed in parallel, to detect whether any of the multiple parts matches the known pattern of data elements, thereby identifying the markers, wherein at least some of the markers are dividing markers which divide the stream into packets (208,210), the dividing markers identified to identify the packets, wherein each packet comprises payload data and header data; and when each packet is identified: if the header data identifies the payload data as being encoded video content, repeatedly supplying respective parts of the stream to each parallel processing unit until the next packet is identified, and if the header data identifies the payload data as being control data, processing the stream one part at a time to identify the next packet; if the header data identifies the payload data as being encoded video content, repeatedly supplying respective parts of the stream to each parallel processing unit until the next packet is identified, and if the header data identifies the payload data as being control data, processing the stream one part at a time to identify the next packet; the method further comprising: separating the encoded video content from the identified markers; decoding the separated video content; and outputting the decoded video content on a display. separating the encoded video content from the identified markers; decoding the separated video content; and outputting the decoded video content on a display.