Linux iad1-shared-b7-18 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
Apache
: 67.205.6.31 | : 216.73.216.13
Cant Read [ /etc/named.conf ]
8.2.29
fernandoquevedo
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
share /
doc /
libmpeg2-4-dev /
examples /
[ HOME SHELL ]
Name
Size
Permission
Action
sample1.c
3.47
KB
-rw-r--r--
sample2.c
3.07
KB
-rw-r--r--
sample3.c
4.41
KB
-rw-r--r--
sample4.c
3.54
KB
-rw-r--r--
sample5.c
5.1
KB
-rw-r--r--
sample6.c
4.2
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : sample3.c
/* * sample3.c * Copyright (C) 2003 Regis Duchesne <hpreg@zoy.org> * Copyright (C) 2000-2003 Michel Lespinasse <walken@zoy.org> * Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca> * Copyright (C) 2006 Sam Hocevar <sam@zoy.org> * * This file is part of mpeg2dec, a free MPEG-2 video stream decoder. * See http://libmpeg2.sourceforge.net/ for updates. * * mpeg2dec is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * mpeg2dec is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * This program reads a MPEG-2 stream, and saves each of its frames as * an image file using the PGM format (black and white). * * It demonstrates how to use the following features of libmpeg2: * - Output buffers use the YUV 4:2:0 planar format. * - Output buffers must be 16-byte aligned. * - Output buffers are allocated by the caller but managed by the library. */ #include <stdio.h> #include <stdlib.h> #include <inttypes.h> #include "mpeg2.h" static void save_pgm (int width, int height, int chroma_width, int chroma_height, uint8_t * const * buf, int num) { char filename[100]; FILE * pgmfile; int i; static uint8_t black[16384] = { 0 }; sprintf (filename, "%d.pgm", num); pgmfile = fopen (filename, "wb"); if (!pgmfile) { fprintf (stderr, "Could not open file \"%s\".\n", filename); exit (1); } fprintf (pgmfile, "P5\n%d %d\n255\n", 2 * chroma_width, height + chroma_height); for (i = 0; i < height; i++) { fwrite (buf[0] + i * width, width, 1, pgmfile); fwrite (black, 2 * chroma_width - width, 1, pgmfile); } for (i = 0; i < chroma_height; i++) { fwrite (buf[1] + i * chroma_width, chroma_width, 1, pgmfile); fwrite (buf[2] + i * chroma_width, chroma_width, 1, pgmfile); } fclose (pgmfile); } static void sample3 (FILE * mpgfile) { #define BUFFER_SIZE 4096 #define ALIGN_16(p) ((void *)(((uintptr_t)(p) + 15) & ~((uintptr_t)15))) uint8_t buffer[BUFFER_SIZE]; mpeg2dec_t * decoder; const mpeg2_info_t * info; const mpeg2_sequence_t * sequence; mpeg2_state_t state; size_t size; int framenum = 0; uint8_t * mbuf[3][3]; uint8_t * fbuf[3][3]; int i, j; decoder = mpeg2_init (); if (decoder == NULL) { fprintf (stderr, "Could not allocate a decoder object.\n"); exit (1); } info = mpeg2_info (decoder); size = (size_t)-1; do { state = mpeg2_parse (decoder); sequence = info->sequence; switch (state) { case STATE_BUFFER: size = fread (buffer, 1, BUFFER_SIZE, mpgfile); mpeg2_buffer (decoder, buffer, buffer + size); break; case STATE_SEQUENCE: for (i = 0; i < 3; i++) { mbuf[i][0] = (uint8_t *) malloc (sequence->width * sequence->height + 15); mbuf[i][1] = (uint8_t *) malloc (sequence->chroma_width * sequence->chroma_height + 15); mbuf[i][2] = (uint8_t *) malloc (sequence->chroma_width * sequence->chroma_height + 15); if (!mbuf[i][0] || !mbuf[i][1] || !mbuf[i][2]) { fprintf (stderr, "Could not allocate an output buffer.\n"); exit (1); } for (j = 0; j < 3; j++) fbuf[i][j] = ALIGN_16 (mbuf[i][j]); mpeg2_set_buf (decoder, fbuf[i], NULL); } break; case STATE_SLICE: case STATE_END: case STATE_INVALID_END: if (info->display_fbuf) save_pgm (sequence->width, sequence->height, sequence->chroma_width, sequence->chroma_height, info->display_fbuf->buf, framenum++); if (state != STATE_SLICE) for (i = 0; i < 3; i++) for (j = 0; j < 3; j++) free (mbuf[i][j]); break; default: break; } } while (size); mpeg2_close (decoder); } int main (int argc, char ** argv) { FILE * mpgfile; if (argc > 1) { mpgfile = fopen (argv[1], "rb"); if (!mpgfile) { fprintf (stderr, "Could not open file \"%s\".\n", argv[1]); exit (1); } } else mpgfile = stdin; sample3 (mpgfile); return 0; }
Close