{"action":"created","issue":{"url":"https://api.github.com/repos/ShiftMediaProject/FFmpeg/issues/4","labels_url":"https://api.github.com/repos/ShiftMediaProject/FFmpeg/issues/4/labels{/name}","comments_url":"https://api.github.com/repos/ShiftMediaProject/FFmpeg/issues/4/comments","events_url":"https://api.github.com/repos/ShiftMediaProject/FFmpeg/issues/4/events","html_url":"https://github.com/ShiftMediaProject/FFmpeg/issues/4","id":109174638,"number":4,"title":"Some projects do not load in ffmpeg.sln and some header files are missing","user":{"login":"david-sackstein","id":14914400,"avatar_url":"https://avatars.githubusercontent.com/u/14914400?v=3","gravatar_id":"","url":"https://api.github.com/users/david-sackstein","html_url":"https://github.com/david-sackstein","followers_url":"https://api.github.com/users/david-sackstein/followers","following_url":"https://api.github.com/users/david-sackstein/following{/other_user}","gists_url":"https://api.github.com/users/david-sackstein/gists{/gist_id}","starred_url":"https://api.github.com/users/david-sackstein/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/david-sackstein/subscriptions","organizations_url":"https://api.github.com/users/david-sackstein/orgs","repos_url":"https://api.github.com/users/david-sackstein/repos","events_url":"https://api.github.com/users/david-sackstein/events{/privacy}","received_events_url":"https://api.github.com/users/david-sackstein/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-09-30T20:37:54Z","updated_at":"2015-10-02T19:24:14Z","closed_at":null,"body":"I cloned the project and opened ffmpeg.sln with Visual Studio 2013\r\nThe following projects failed to load: libavcodec, libavdevice, libavfilter, libavformat, libswresample and libswscale.\r\nIn addition during compilation a number of headers were not found: zlib.h, sdl.h and a few others.\r\nHow can I resolve these?"},"comment":{"url":"https://api.github.com/repos/ShiftMediaProject/FFmpeg/issues/comments/145131181","html_url":"https://github.com/ShiftMediaProject/FFmpeg/issues/4#issuecomment-145131181","issue_url":"https://api.github.com/repos/ShiftMediaProject/FFmpeg/issues/4","id":145131181,"user":{"login":"cxsup","id":14945602,"avatar_url":"https://avatars.githubusercontent.com/u/14945602?v=3","gravatar_id":"","url":"https://api.github.com/users/cxsup","html_url":"https://github.com/cxsup","followers_url":"https://api.github.com/users/cxsup/followers","following_url":"https://api.github.com/users/cxsup/following{/other_user}","gists_url":"https://api.github.com/users/cxsup/gists{/gist_id}","starred_url":"https://api.github.com/users/cxsup/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cxsup/subscriptions","organizations_url":"https://api.github.com/users/cxsup/orgs","repos_url":"https://api.github.com/users/cxsup/repos","events_url":"https://api.github.com/users/cxsup/events{/privacy}","received_events_url":"https://api.github.com/users/cxsup/received_events","type":"User","site_admin":false},"created_at":"2015-10-02T19:24:14Z","updated_at":"2015-10-02T19:24:14Z","body":"Here's a modified bash script that's wired to download the SMP projects and do a few other things.  I run it from MSYS2 with git support:\r\n\r\n```bash\r\n#!/bin/bash\r\n\r\nTEMP=`getopt -o ufi:rc: --long config:,ignore,update,clean,rebuild,show,filter:,reset -- \"$@\"`\r\n\r\noptstatus=$?\r\n\r\n# Note the quotes around `$TEMP': they are essential!\r\neval set -- \"$TEMP\"\r\n\r\nbasedir=$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\r\nbname=$(basename ${BASH_SOURCE[0]})\r\n\r\nhelp() {\r\n  cat << EOF\r\n  $bname\r\n    -u, --update          update source\r\n    -r, --reset           hard source update -- requires update option\r\n    -i, --ignore          ignore errors -- continue building on error\r\n        --clean           clean project(s)\r\n        --rebuild         rebuild project(s)\r\n        --show            show project(s)\r\n    -f, --filter=PROJECT  project filter to work on\r\n    -c, --config=CONFIG   required build configuration: Debug, ReleaseDLL, ReleaseDLLStaticDeps\r\nEOF\r\n  exit 1\r\n}\r\n\r\nif [ $optstatus != 0 ] \r\nthen\r\n  help \r\n  exit 1\r\nfi\r\n\r\nfilter=\r\nupdate=0\r\nhardreset=0\r\nconfig=\r\nclean=\r\nignore=0\r\nshow=0\r\n\r\nwhile true; do\r\n  case \"$1\" in\r\n    -u | --update ) update=1; shift ;;\r\n    -r | --reset ) hardreset=1; shift ;;\r\n    -i | --ignore ) ignore=1; shift ;;\r\n    -i | --show ) show=1; shift ;;\r\n    -f | --filter ) filter=$2; shift 2;;\r\n    -c | --config ) config=$2; shift 2;;\r\n         --clean ) clean=/target:Clean; shift ;;\r\n         --rebuild ) clean=/target:Rebuild; shift ;;\r\n    -- ) shift; break ;;\r\n    * ) break ;;\r\n  esac\r\ndone\r\n\r\nif [ 1 -eq 0 ] \r\nthen\r\n  echo filter=$filter\r\n  echo update=$update\r\n  echo reset=$hardreset\r\n  echo config=$config\r\n  echo ignore=$ignore\r\nfi\r\n\r\nif [[ !  \",DebugDLL,Debug,DebugDLLStaticDeps,ReleaseDLL,Release,ReleaseDLLStaticDeps,\" =~ \",$config,\" ]]  && [ $update -eq 0 ]\r\nthen\r\n  echo Invalid config: $config\r\n  echo\r\n  help\r\nfi\r\n\r\n\r\nSHIFTMEDIA=git://github.com/ShiftMediaProject\r\n\r\nlibiconv=libiconv\r\nlibs=( \r\n  zlib=libz\r\n  libiconv=\r\n  libcdio=\r\n  libcdio-paranoia=\r\n  modplug=libmodplug\r\n  libgpg-error=\r\n  libgcrypt=\r\n  libssh=\r\n  liblzma=\r\n  libxml2=\r\n  freetype2=libfreetype2\r\n  fontconfig=libfontconfig\r\n  libbluray=\r\n  gmp=libgmp\r\n  nettle=nettle\r\n  gnutls=libgnutls\r\n  bzip2=libbz2\r\n  rtmpdump=librtmp\r\n  game-music-emu=libgme\r\n  soxr=libsoxr\r\n  enca=libenca\r\n  fribidi=libfribidi\r\n  harfbuzz=libharfbuzz\r\n  libass=\r\n  fdk-aac=libfdk-aac\r\n  lame=libmp3lame\r\n  libilbc=\r\n  x264=\r\n  x265=\r\n  opus=libopus\r\n  speex=libspeex\r\n  ogg=libogg\r\n  theora=libtheora\r\n  libvpx=\r\n  vorbis=libvorbis\r\n  xvid=libxvidcore\r\n  ffmpeg=,0,0\r\n)\r\n  \r\n\r\n\r\nclone_or_update() {\r\n\r\n  ar=(${1//\\=/ })\r\n  module=${ar[0]}\r\n  \r\n  shopt -s nocasematch\r\n  if [ ! -z $filter ] && [[ ! $module =~ $filter ]]\r\n  then\r\n    #echo skipping $module\r\n    shopt -u nocasematch\r\n    return 0\r\n  fi\r\n  shopt -u nocasematch\r\n  \r\n  cd $basedir > /dev/null\r\n\r\n  url=$SHIFTMEDIA/$module\r\n  if [ -d $module ]; then\r\n    echo Updating $module...\r\n    pushd $module > /dev/null\r\n    if [ $hardreset -eq 1 ]\r\n    then\r\n      git clean -xfd\r\n      git fetch\r\n      git reset --hard origin/master\r\n    else\r\n      git stash\r\n      git pull origin master\r\n      git stash pop\r\n    fi\r\n    popd > /dev/null\r\n  else\r\n    echo Cloning $module...\r\n    git clone $url $module\r\n    pushd $module > /dev/null\r\n    git config --local core.autocrlf false\r\n    git rm --cached -r .\r\n    git reset --hard\r\n    popd > /dev/null\r\n  fi\r\n}\r\n\r\nshow() {\r\n\r\n  ar=(${1//,/ })\r\n\r\n  slib=${ar[1]:-1}\r\n  build=${ar[2]:-1}\r\n\r\n  ar=${ar[0]}\r\n  ar=(${ar//\\=/ })\r\n  module=${ar[0]}\r\n\r\n  shopt -s nocasematch\r\n  [ ! -z $filter ] && [[ ! $module =~ $filter ]] && return 0\r\n  shopt -u nocasematch\r\n\r\n  #echo ${ar[@]} ${ar[1]}\r\n\r\n  if [ $slib -eq 0 ]; then cfg=$config; else cfg=${config%DLLStaticDeps}; fi\r\n\r\n  if [ -z ${ar[1]} ]; then url=$module; else url=${ar[1]}; fi\r\n\r\n  echo $module: $url, cfg: $cfg, build: $build\r\n}\r\n\r\nbuild() {\r\n\r\n  ar=(${1//,/ })\r\n\r\n  slib=${ar[1]:-1}\r\n  build=${ar[2]:-1}\r\n  [ $build -eq 0 ] && return 0\r\n\r\n  ar=${ar[0]}\r\n\r\n  ar=(${ar//\\=/ })\r\n  module=${ar[0]}\r\n  if [ -z ${ar[1]} ]; then sln=$module; else sln=${ar[1]}; fi\r\n\r\n  shopt -s nocasematch\r\n  [ ! -z $filter ] && [[ ! $module =~ $filter ]] && return 0\r\n  shopt -u nocasematch\r\n\r\n#echo ${ar[@]} ${ar[1]}\r\n\r\n\r\n  cd $basedir > /dev/null\r\n  smp=$module/SMP\r\n  if [ ! -d $smp ]\r\n  then\r\n    echo invalid project $smp\r\n    return 1\r\n  fi\r\n  \r\n  if [ $slib -eq 0 ]; then cfg=$config; else cfg=${config%DLLStaticDeps}; fi\r\n  \r\n  pushd $smp  > /dev/null\r\n  if [ -f $sln.sln ] \r\n  then\r\n    msbuild.exe \"$sln.sln\"  /maxcpucount:4 $clean /property:Configuration=$cfg /property:Platform=x64 && err=0\r\n    typeset e=$?\r\n  else\r\n    echo -n missing $sln  ---- \r\n    dir *.sln\r\n    typeset e=1\r\n  fi\r\n  popd  > /dev/null\r\n  return $e\r\n}\r\n\r\n\r\n#clone_or_update libiconv\r\nif [ $update -eq 1 ]\r\nthen\r\n  for lib in ${libs[@]}\r\n  do \r\n    clone_or_update $lib\r\n  done\r\nfi\r\n\r\nresults=()\r\n\r\n# build\r\nif [ ! -z $config ]\r\nthen\r\n  for lib in ${libs[@]}\r\n  do \r\n    if [ $show -eq 1 ]\r\n    then\r\n      show $lib\r\n    else\r\n      build $lib\r\n    fi\r\n    typeset e=$?\r\n    if [ $e -ne 0 ]\r\n    then\r\n      results+=(\"build returned $e for $lib\")\r\n      if [ $ignore -eq 0 ]\r\n      then\r\n        break\r\n      fi\r\n    fi\r\n  done\r\nfi\r\n\r\n\r\necho ${results[@]}\r\n\r\n\r\n\r\n```"}}