Mercurial > mplayer.hg
view TOOLS/dump_mp4.c @ 19619:a83e5b8d2e63
Patch from Karolina Lindqvist <karolina.lindqvist@kramnet.se>
"There is a bug in the zoran -vo zr driver, that makes the output garbled
always. It also probably affects the zrmjpeg filter. This patch takes care of
the problem."
Patch tested and OK. And 10l to me, because this bug probably has existed for a
looong time.
author | rik |
---|---|
date | Fri, 01 Sep 2006 18:49:40 +0000 |
parents | 106a6f116776 |
children | d7ae37864b03 |
line wrap: on
line source
int main(){ int c; unsigned int head=-1; int pos=-3; while((c=getchar())>=0){ head<<=8; if(head==0x100){ int startcode=head|c; printf("%08X 1%02X ",pos,c); if (startcode<=0x11F) printf("Video Object Start"); else if(startcode<=0x12F) printf("Video Object Layer Start"); else if(startcode<=0x13F) printf("Reserved"); else if(startcode<=0x15F) printf("FGS bp start"); else if(startcode<=0x1AF) printf("Reserved"); else if(startcode==0x1B0) printf("Visual Object Seq Start"); else if(startcode==0x1B1) printf("Visual Object Seq End"); else if(startcode==0x1B2) printf("User Data"); else if(startcode==0x1B3) printf("Group of VOP start"); else if(startcode==0x1B4) printf("Video Session Error"); else if(startcode==0x1B5) printf("Visual Object Start"); else if(startcode==0x1B6) printf("Video Object Plane start"); else if(startcode==0x1B7) printf("slice start"); else if(startcode==0x1B8) printf("extension start"); else if(startcode==0x1B9) printf("fgs start"); else if(startcode==0x1BA) printf("FBA Object start"); else if(startcode==0x1BB) printf("FBA Object Plane start"); else if(startcode==0x1BC) printf("Mesh Object start"); else if(startcode==0x1BD) printf("Mesh Object Plane start"); else if(startcode==0x1BE) printf("Still Textutre Object start"); else if(startcode==0x1BF) printf("Textutre Spatial Layer start"); else if(startcode==0x1C0) printf("Textutre SNR Layer start"); else if(startcode==0x1C1) printf("Textutre Tile start"); else if(startcode==0x1C2) printf("Textutre Shape Layer start"); else if(startcode==0x1C3) printf("stuffing start"); else if(startcode<=0x1C5) printf("reserved"); else if(startcode<=0x1FF) printf("System start"); printf("\n"); } head|=c; ++pos; } }